mirror of
https://github.com/freemkv/freemkv-unlock.git
synced 2026-10-07 18:13:11 +00:00
Fixed - ld/profile: find_by_drive_id no longer mis-binds a drive whose reported product_id is real but uncatalogued to a sibling model's profile (and its wrong LibreDrive microcode); the product-id-blind loose match is gated on an empty id. Docs / CI - Third-party NOTICE for the LibreDrive microcode bundled in profiles.json; cargo-deny gate (#15) and audience-based comment-guard (#17).
30 lines
1.2 KiB
Markdown
30 lines
1.2 KiB
Markdown
# Module visibility rationale (`src/lib.rs`)
|
|
|
|
Why each unlocker module is `pub mod` or `mod`, and what's actually public
|
|
about it. The consumer never reaches an unlocker impl directly — only through
|
|
[`all_unlockers`] — so "public" here means "exposes something other than the
|
|
unlocker impl itself."
|
|
|
|
## `ld`
|
|
|
|
Public ONLY for its drive-profile catalog (`ld::profiles` / the `Profiles`
|
|
object) and, under the `emulation` feature, the unlock-handshake wire format
|
|
the bdemu test-emulator needs. The unlocker impl itself (`Mt1959Unlocker`) is
|
|
`pub(crate)` — clients still reach unlockers only through `all_unlockers`.
|
|
`aacs` and `css` carry no such public catalog, so they stay fully private.
|
|
|
|
## `renesas`
|
|
|
|
Public for its `is_renesas` drive-probe, which reports a dead bus as
|
|
`Err(UnlockError::Transport)` rather than "not a Renesas drive" — a
|
|
distinction the consumer needs before it can trust a negative probe result.
|
|
The unlocker impl (`Renesas`) is `pub(crate)` — reached only through
|
|
`all_unlockers`.
|
|
|
|
## `freemkv`
|
|
|
|
Carries no public catalog (the firmware self-identifies rather than matching
|
|
a bundled profile) and no emulation wire format yet, so it stays fully
|
|
private — the unlocker impl (`FreemkvUnlocker`) is reached only through
|
|
`all_unlockers`.
|