MrPenguin wrote: ↑Mon May 25, 2026 1:19 pm
You would almost certainly need libmmbd to defeat bus encryption when playing the UHD directly, unless you were somehow able to determine the correct RDK to use instead.
Yeah I'm aware of that. In fact there's the tricky thing: libbluray would not actually make a explicit "call" to libmmbd / MakeMKV that disables the bus encryption. Rather it is
triggered when it makes the `aacs_decrypt_unit` call, which is what libbluray used to "feed" AACS-encrypted data to makemkvcon -- in other words, AFAICT, unlike when you rip a disc, MakeMKV in this case is not responsible for reading the disc. Therefore, if my understanding is correct, it means that the the player / libbluray could have read
some data from a disc
before the bus encryption is disabled (and feed the bus-encrypted data to makemkvcon).
(In other words, probably it is not really surprising that AACS decryption would fail
at the beginning. And
perhaps the reason VLC doesn't fail is just because it does not "bail" when there are decryption (really demuxing / decoding; players are somewhat not "aware" of whether there's AACS encryption, AFAIK) failures. However, mpv should be able to play the disc without any problem if it was once successfully played for a short while with VLC --
maybe until the disc is ejected and reinserted -- unless the "early" bus-encrypted data could end up "lingering" in the drive / system buffer...)
(Note that while the current libbluray attempts to load a `aacs_decrypt_bus` "symbol" from the
loaded libaacs implementation and has the
internal API libaacs_decrypt_bus, it is kind of a bogus one -- at least it is not used at all.)
MrPenguin wrote: ↑Mon May 25, 2026 1:19 pm
However, libbluray decrypts AACS by loading an implementation of the libaacs ABI dynamically. This can be either libaacs itself or libmmbd - or perhaps
both, depending on how "smart" the playing software is?
All the decryption-related logic is found in libbluray only. AFAIK libbluray will try to use libaacs first and when it fails, it will try libmmbd. (Here "fails" probably does not include decryption failure as observed here, but just up till e.g. required VUK is not found in the KEYDB.cfg.)