Files
freemkv-unlock/README.md
T
Matthew Jackson 5cec84dfc6 Initial commit: LibreDrive unlocker plugin for libfreemkv
New crate freemkv-unlock-ld — the LibreDrive Unlocker implementation,
split out of libfreemkv so the library stays firmware-clean on crates.io.

Owns everything about HOW MediaTek MT1959 drives are firmware-unlocked:
  - profiles.json (the bundled drive-profile database + DriveProfile parse)
  - src/platform/mt1959/* (variant-A/B firmware upload + unlock handshake)
  - WRITE_BUFFER / MODE SELECT upload, unlock CDBs, disc-speed calibration

Exposes LibreDrive::new() implementing libfreemkv::Unlocker (name/matches/
unlock). Plug it in with one line at process start:

  libfreemkv::register_unlocker(Box::new(freemkv_unlock_ld::LibreDrive::new()));

Depends on libfreemkv (path-patched via gitignored .cargo/config.toml in
dev) for the trait, ScsiTransport, DriveId, and Result. README notes it's
the LibreDrive unlocker (attribution to be added by owner).
2026-06-22 10:32:00 -07:00

867 B

freemkv-unlock-ld

The LibreDrive unlocker plugin for libfreemkv.

libfreemkv ships only the Unlocker trait + registry and stays firmware-clean. This crate owns how MediaTek MT1959 drives are firmware-unlocked: the bundled drive-profile database (profiles.json), the firmware blobs, the WRITE_BUFFER / MODE SELECT upload, the unlock CDBs, and the variant-A / variant-B handshake logic.

Usage

Register the unlocker once at process start, before any rip:

libfreemkv::register_unlocker(Box::new(freemkv_unlock_ld::LibreDrive::new()));

That single line is the whole plug. Any drive whose identity matches a bundled profile is firmware-unlocked at drive-prep; everything else falls through to libfreemkv's host-certificate AACS handshake.