Files
freemkv-unlock/README.md
T
Matthew Jackson b7f34c46bc 1.3.1: relicense to MIT
Relicensed from AGPL-3.0 to MIT, effective 1.3.1 (<=1.3.0 remain AGPL).
Version sync to 1.3.1.
2026-07-10 12:31:19 -07:00

28 lines
914 B
Markdown

# freemkv-unlock
The unlock layer for the freemkv toolchain.
An **unlocker removes a drive-level bus-encryption barrier** so the drive serves
readable (de-bus'd / de-scrambled) sectors. Content-key decryption is a separate
concern — the consumer's job.
This crate defines the `Unlocker` contract and a generic SCSI transport
contract, and holds the self-contained unlocker modules. The consumer
([libfreemkv](https://github.com/freemkv/libfreemkv)) depends on this crate and
dispatches through `all_unlockers()`; it never names an individual unlocker, and
clients of libfreemkv are oblivious to unlockers entirely (as they are to the
SCSI layer).
```rust
for u in freemkv_unlock::all_unlockers() {
if u.matches(&ctx) {
return u.unlock(&mut scsi, &ctx);
}
}
```
To remove an unlocker, delete its module directory and its one line in
`all_unlockers()` — nothing else changes.
License: MIT.