sdf-flash-gui v1.1.0

Flash MT1959 drive firmware on any desktop.

A native, cross-platform front end for MakeMKV's sdftool. Dump, flash, and recover LG and ASUS Blu-ray drives on macOS, Windows, and Linux, behind safety gates that refuse the mistakes that brick drives.

curl -fsSL https://sdf-flash-gui.blahaj.uk/install.sh | sh

Uses Homebrew if you have it. Otherwise it downloads the .dmg, .deb, or AppImage for your system and checks its SHA-256. Read the script.

platforms
macOS · Windows · Linux
backends
sdftool · makemkvcon
languages
30 UI locales
license
GPL-2.0-or-later

The app window is live, not a screenshot. It is the desktop app's own egui UI, compiled to WebAssembly and wired to a simulated sdftool with three drives. Switch drives, modes, theme, and language. Anything that would touch real hardware or files stays disabled.

SDF Flash GUI wasm32 · simulated drives
$ sdf-flash-gui --target wasm32-unknown-unknown

Five gates between you and a bricked drive.

Start stays disabled until every rule passes. Each rule is decided in tested core code, not in the UI, and the tooltip tells you which one is still failing.

  1. probe

    Platform check

    sdftool --info must report an MT1959 controller. MT1939 drives are refused outright.

  2. form

    Form factor

    Slim firmware on a desktop drive, or the reverse, needs an explicit cross-flash acknowledgement.

  3. id

    Firmware identity

    Images are identified by SHA-256 and content scan, never by filename. Downgrades and model mismatches are flagged.

  4. mode

    Flash mode

    Encrypted and boot-loader rawflash are mutually exclusive. Encryption is chosen from the drive and image dates.

  5. confirm

    Typed confirmation

    Type FLASH /dev/sr0 exactly. Dry-run mode prints the full plan without writing a byte.

Spec sheet.

Everything the Windows-only SDFtool Flasher did, rebuilt in Rust for every desktop, plus the checks it never had.

drive probeVendor, model, revision, serial, firmware date, MT1959 / MT1939, encryption, LibreDrive status, SDF.bin version.--info
dumpRead the current firmware to a folder before you change anything.read
flashWrite firmware with live progress and a failure dialog that tells you exactly what to do next.rawflash
recoverRevive a drive flashed with the wrong image using its 16-byte boot token, typed in or extracted from the wrong dump.recover
firmware dbKnown-hash table plus binary scan for PCB type and embedded model.sha-256
sdf0 parserInspect sdf.bin and firmware containers: vendor, model, version, flags.sdf-info
enumerationFinds drives through IOKit, sysfs, and drive letters, then refines with the backend list.-l
backendsAuto-detects sdftool or makemkvcon on PATH and common install paths.makemkv
no shellEvery backend call is an argv plan. No shell strings, no injection surface.argv

Same engine, no window.

The binary doubles as a CLI. It plans commands through the same code path as the GUI, and flashing stays a dry run until you pass --confirm.

zsh
$ sdf-flash-gui list
Optical Drives:
  /dev/sr0 HL-DT-ST BD-RE BU40N (1.03) serial=MODJ9TK3546

$ sdf-flash-gui info /dev/sr0
Platform: MT1959=true
Encrypted firmware: false
LibreDrive: PossibleNotEnabled

$ sdf-flash-gui dump /dev/sr0 -o ~/fw-backup
$ sdf-flash-gui flash /dev/sr0 -i BU40N-1.03.bin
# dry run: prints the plan, writes nothing
$ sdf-flash-gui flash /dev/sr0 -i BU40N-1.03.bin --confirm

Install.

Requires MakeMKV, which ships sdftool and makemkvcon. An sdf.bin from the firmware pack is optional but improves probing. The install command picks the right package for you; the files below are the same release, for manual installs.

Or build from source: cargo build --release. Checksums ship with every release.