15e263451e8b7a453e30dfc43ed5f92ca8c9a3d9
The variant-B firmware load hardcoded one drive's F1 vendor-verify token and a fixed 0x9C0 firmware size. Across the 140 B drives the verify CDB has 39 distinct per-drive values, and the real firmware length is encoded in each drive's MODE SELECT CDB (2192..2528 bytes) — so the constants were wrong for ~139 of 140 drives and truncated 13. - DriveProfile gains fw_verify_cdb (the per-drive 0xF1 verify). - variant_b uploads firmware.len() (now the correct per-drive size from the regenerated profiles.json) and issues profile.fw_verify_cdb, falling back to the const only for legacy profiles. - profiles.json regenerated: 79 firmware fields corrected (13 truncated recovered to full length, 66 over-reads trimmed). - Adds a recording-transport regression test asserting the profile's F1 verify is issued (not the const) and MODE SELECT carries firmware.len().
freemkv-unlock
Unlocker plugins for libfreemkv.
libfreemkv ships only the pluggable Unlocker trait + registry and stays
firmware-clean — it contains no concrete unlock code. Each crate in this
workspace implements one unlocker and is registered into libfreemkv by a single
line in the consuming binary:
libfreemkv::register_unlocker(Box::new(my_unlocker::MyUnlocker::new()));
Removing an unlocker is deleting that one line and the dependency (delete-to-comply).
Members
Each member is a self-contained unlocker plugin — see its own README for details.
License: AGPL-3.0-only.
Languages
Rust
100%