The docs still documented the old in-tree firmware unlocker: the MediaTek MT1959 variant table, the READ BUFFER unlock CDB bytes, the profiles.json schema (unlock_mode/unlock_buf_id/unlock_cdb), the platform/mt1959 driver listings, and the 'why unlock is needed' handshake mechanism. None of that lives in libfreemkv anymore — the core is firmware-clean and ships only the pluggable Unlocker trait + registry (src/unlock.rs). Rewrite drive-access, architecture, api-design, disc-to-rip, and the README to describe only the generic Unlocker seam: the trait, register_unlocker, the registry routing, and the host-cert fallback when no unlocker matches. Point readers to the freemkv-unlock repo for concrete unlockers. No source change.
libfreemkv Documentation
Technical documentation for libfreemkv, the open source optical drive library.
Start Here
Disc to Rip: End-to-End Flow — How the library goes from a disc in the drive to decrypted content. Read this first.
Reference
| Document | What it covers |
|---|---|
| Architecture | Module map, design principles, error codes, platform support |
| Drive Access | Drive, SCSI transport, profiles, unlock, why raw mode is needed |
| Rip Recovery | Three-layer recovery model: Disc::patch, single-shot Drive::read, DiscStream batch halving |
| AACS Encryption | Key resolution (4 paths), content decryption, bus encryption, SCSI handshake |
| UDF Filesystem | UDF 2.50 with metadata partitions, pointer chain, how files are read from disc |
| MPLS Playlists | Playlist format, play items, STN stream table, coding types |
| CLPI Clip Info | EP map (coarse + fine entries), timestamp-to-sector mapping, extent calculation |
| API Design | Stream API design, PES pipeline, input/output resolution |
Reading Order
If you want to understand the whole library:
- Disc to Rip — the big picture
- Architecture — how modules fit together
- Drive Access — how we talk to hardware
- UDF → MPLS → CLPI — how disc content is structured
- AACS — how encryption works and how we break it
API Documentation
Generated API docs are on docs.rs/libfreemkv.