View Full Version : Blu-ray playback with libaacs & libbdplus
Mahna
7th August 2022, 22:22
would this also work with the current version of libre elec on an Intel PC?
Grimsdyke
9th August 2022, 22:10
So recently I noticed that libbdplus and libaacs had been updated for some time (which was especially exciting since libbdplus hasn't gotten a proper new version since 2015!). I figured I'd go to the main post and download them like before, but it appears that both sets of files haven't been updated yet. So, I decided to try and figure out how to do it myself, ...
@ Roof Tile. Have you tested your new files with BD+ titles ?? I am asking because they did not work on my system so I had to go back to the originals. Kind reagrds
Mahna
13th August 2022, 00:10
Ok mein englisch ist unterirdisch daher versuche ich es auf deutsch. Ich habe einen Asus Vivo Mini PC PN40. Darauf habe ich Libre Elec gespielt. Per USB ist ein 4k Friendly Laufwerk angeschlossen. Bisher habe ich ohne Probleme alle DVD´s und Bluray abspielen können. Nun habe ich aber eine Bluray und eine 4K Disk bekommen. Diese wollen nicht laufen obwohl sie in der KeyDB.cfg aufgeführt sind. Von Libre Elec bekomme ich die Meldung das sie verschlüsselt seien. Kann mir dazu jemand hier helfen?
Vielen Dank schonmal im Vorraus.
Roof Tile
14th August 2022, 12:24
@ Roof Tile. Have you tested your new files with BD+ titles ?? I am asking because they did not work on my system so I had to go back to the originals. Kind reagrds
I don't think I have any BD+ titles currently, so I don't know how well they work with them. I figured that they would work just fine but it's totally possible my ignorance caused issues. My only thought would be to make sure that the cached BD+ tables in the main post are in the right place and that you did one after the other (along with the one Phantom Menace bin below the collections after the very first set). Again though, I wouldn't know since I don't believe I have any BD+ titles to test. Sorry I can't be that big of a help to your issue. Maybe at some point candela or someone else with more experience will upload their own versions that don't have that problem, if that's where the kerfuffle is coming from anyway.
candela
16th August 2022, 22:10
@ Roof Tile. Have you tested your new files with BD+ titles ?? I am asking because they did not work on my system so I had to go back to the originals. Kind reagrds
Seems like recent libddplus code is broken. It loads the cached convtab if you play with menus but not without menus.
If the disc is an older BD+ gen it will show a "update player firmware" screen which has a "continue" button. In this case you can still play the disc and stream is fine (I tested Romancing the Stone). But newer BD+ gen (I tested Epic) will be stuck on the "update player firmware" screen with no way to continue.
Cyber Akuma
24th August 2022, 21:28
Is the "Edit the KEDYB.cfg and put the keys and certs from this post on top" step still relevant today, or is that outdated information now? I noticed that the linked post is from 2019, and the last post made in that thread was in 2020. But the KEYB.cfg file that's in the download link was last updated 8/24/2022, just today. Wouldn't all the information from that post in 2019 be in the current versions of the KEYDB.cfg file today?
DanTheMann15
25th August 2022, 01:34
@Cyber Akuma
Not many host certs were revoked since MKBv72, and consequently nobody is willing to share any cert that's not currently revoked.
This KEYDB.cfg will decrypt everything (MKBv71) and older, these are the best keys publicly available.
; KEYDB.cfg
; Processing Keys
; Device Keys
| DK | DEVICE_KEY 0x5FB86EF127C19C171E799F61C27BDC2A | DEVICE_NODE 0x0A00 | KEY_UV 0x00000400 | KEY_U_MASK_SHIFT 0x17 ; MKBv01-MKBv48
| DK | DEVICE_KEY 0x38841673E2B4E05191659899606CFFB8 | DEVICE_NODE 0x0C00 | KEY_UV 0x00000A00 | KEY_U_MASK_SHIFT 0x0B ; MKBv49-MKBv71
; Host Certificate
| HC | HOST_PRIV_KEY 0x909250D0C7FC2EE0F0383409D896993B723FA965 | HOST_CERT 0x0203005CFFFF800001C100003A5907E685E4CBA2A8CD5616665DFAA74421A14F6020D4CFC9847C23107697C39F9D109C8B2D5B93280499661AAE588AD3BF887C48DE144D48226ABC2C7ADAD0030893D1F3F1832B61B8D82D1FAFFF81 ; MKBv71
; Bluray Disc VUK Keys ;
if you try to play anything with v72 or up it'll revoke this host cert in your drive, and that's where the FindVUK database comes in because
it'll give you the database of all known VUK decryption keys, so you'll still be able to play your blurays (even ones above MKBv71).
but you won't be able to play BusEncrypted discs without a valid host cert, Unless your BD Drive is an old one that doesn't support BusEncryption.
It'll be awhile for those needing a new cert, but one will come eventually. :)
Cyber Akuma
25th August 2022, 16:45
Sorry, still trying to understand all this. Are you saying those few lines are all I need in my entire KEYDB.cfg? Or that I should add those on top of what is in the existing latest KEYDB.cfg?
I was trying to test this out, and I had zero issues playing 1080p Blu-Rays (after I downgraded Java because the latest version crashes VLC if you enable menues) but any 4K disk I try gives me "AACS Host certificate revoked".
I admit, I wasn't aware of this key revoking thing, because the first 4K Blu-Ray I tried was a movie that JUST came out on disk, Sonic 2. Then I tried a random movie I had from 2018, the first Avengers movie, and that one still gives me the error. Did I permanently cripple my drive or something by attempting to play a newer movie and now it's been disabled/revoked? It's not clear to me if revoked means it just simply won't play newer disks that use a newer cert, or if the entire ability for my drive/PC to play 4K Blu-Rays has been revoked now. Since it won't even play that 2018 movie I worry it's just completely revoked the UHD ability of my system. I would have assumed that the MakeMKV firmware/VLC would at least not honor disabling itself like that for older disks that it has/had the certs for.
And if a new cert comes out, would attempting to play a movie with a newer cert revoke it again and then no 4K movies will again be playable until another new one comes out? Is that how it works? Or can I never even add a new cert again and have it work now that it's been revoked?
richy
27th August 2022, 21:24
@Cyber Akuma...
Those few lines are the highest publicly known processing keys and are all you need..... provided you don't play a disc that's MKBv72 or above, which is what you appear to have done.
Once you've done that and revoked your drive then it won't be able to generate valid keys for you any more until a newer set is made public. Depending on your setup, what would normally happen is that the decryption key for your disc would be found and then cached for future usage. Without a working host certificate etc this can't happen but any keys you've got cached already or in your keydb.cfg will still allow you to play those specific titles.
If you get hold of the most recent keydb.cfg file with the 100k+ entries in it then you should be fine as it contains all the decryption keys that people have already found and submitted. Unless you have some really obscure titles in your collection then it's highly likely the keys you'll need to play them will be in there already. If not, then you may just have to wait for someone to submit the decryption keys in a future update. The file is updated pretty much constantly.
I hope that all makes sense... and apologies to the more technical types on here if my explanation has any howlers in it! ;-)
Cyber Akuma
2nd September 2022, 02:43
@richy
Thanks, let me make sure that I understood this right:
So those three lines that DanTheMann15 posted are all I would need to decrypt any 4K Blu-Ray that's MKBv71 or earlier (I am not sure what MKB even is), but every disk that I do, it gets cached so that a key to decrypt just that disk is stored?
And if I put in a disk that is MKBv72 or later (how does one even check that?) it will somehow disable any UHD Blu-Ray decrypting on that drive until a new host key is released somehow?
One thing I don't understand is why the whole revoking keys thing still happens even if you have custom firmware. Does the custom MakeMKV firmware not disable this? Or is it something very hard-coded and not possible to disable? I don't really understand how if you have access to the files on the system itself (A PC in this case) and the drive's firmware that you can still somehow have your keys get permanently revoked. And how come MakeMKV is still able to decrypt disks despite this revocation.
Also, if the reason the KEYDB.cfg file is so massive is because it contains a huge list of known cached UHD keys, then why was neither Sonic 2 nor Avengers playing? I noticed that there are multiple entries for both of those movies in the latest KEDYB.cfg, so if those are cached keys then shouldn't those disks still play even with the host key revoked?
DanTheMann15
2nd September 2022, 17:13
@richy
i am not sure what mkb even is
MKB is short for "Media Key Block" you can find more information here on Wikipedia (https://wikipedia.org/wiki/Media_Key_Block).
another thing is that all UHD Blurays use Bus Encryption, so without a valid host certificate you cannot play those movies even if you have cached vuk keys, except if your keys are cached by VLC before you revoked your cert which would have an RDK.
more info on that including for AACS 2.1 in the first post here (https://forum.doom9.org/showthread.php?p=1886086#post1886086).
also, there may be several keys for the same title so your discs of Sonic 2 or Avengers may not have been put up on the key database yet, but still bus encryption stands in your way even if you do have keys for your discs.
richy
3rd September 2022, 17:52
@Cyber Akuma...
The keydb.cfg file isn't just UHD keys, it contains mostly "regular" blu-ray disc titles just because there are way more of those in existence than 4K ones.
I don't have a UHD-compatible drive myself (yet) so I can't really help regarding 4K discs - apologies if that was essentially what you were asking about!
You've mentioned custom MakeMKV firmware so I'm guessing you're talking about LibeDrive. I've looked into it a little myself because I want to get a new drive but you may be better off asking at the MakeMKV forum because it's more their "thing".
In what may be an internet first, I'm going to shuttup now because I'd rather not confuse the situation any further by posting any more drivel about a subject I don't know enough about! ;-)
Cyber Akuma
3rd September 2022, 20:53
another thing is that all UHD Blurays use Bus Encryption, so without a valid host certificate you cannot play those movies even if you have cached vuk keys, except if your keys are cached by VLC before you revoked your cert which would have an RDK.
I see, so if VLC itself didn't cache my disks when the key is revoked not even the keydb.cfg will help me. I am assuming that the keys VLC caches are different from the keydb.cfg and that I can't somehow use those in VLC?
To be honest though, I still don't understand how using my own open software (VLC/libaccs/libbdplus) and a custom firmware on my optical drive would allow a key to be revoked permanently even for disks that are MKBv71 and older, and how MakeMKV apparently still gets around this somehow.
@Cyber Akuma...
I don't have a UHD-compatible drive myself (yet) so I can't really help regarding 4K discs - apologies if that was essentially what you were asking about!
Yeah, I specifically meant UHDs. I have had no issues playing 1080p Blu-Rays. Even the 1080p Blu-Ray of Sonic 2 played just fine from the same Steelbook the UHD disk came from.
You've mentioned custom MakeMKV firmware so I'm guessing you're talking about LibeDrive. I've looked into it a little myself because I want to get a new drive but you may be better off asking at the MakeMKV forum because it's more their "thing".
I tried the VLC forums, and a mod just linked me to this thread. :D
candela
6th September 2022, 17:11
I see, so if VLC itself didn't cache my disks when the key is revoked not even the keydb.cfg will help me. I am assuming that the keys VLC caches are different from the keydb.cfg and that I can't somehow use those in VLC?
To be honest though, I still don't understand how using my own open software (VLC/libaccs/libbdplus) and a custom firmware on my optical drive would allow a key to be revoked permanently even for disks that are MKBv71 and older, and how MakeMKV apparently still gets around this somehow.
Yeah, I specifically meant UHDs. I have had no issues playing 1080p Blu-Rays. Even the 1080p Blu-Ray of Sonic 2 played just fine from the same Steelbook the UHD disk came from.
I tried the VLC forums, and a mod just linked me to this thread. :D
I haven't looked at Libredrive in a while but from what I remember it doesn't disable host certificate revocation. It creates custom commands to retrieve the VID and to disable the bus encryption on the drive so the host certificate is not needed.
VLC doesn't know about Libredrive. It doesn't know the custom commands to get the VID and to disable the bus encryption (and the drive certificate will still say the drive supports bus encryption). So VLC tries to retrieve the VID and RDK (for bus encryption) using the host certificate and fails because it's been revoked by the drive.
If you managed to play those UHD before, VLC should have cached the RDK and you should still be able to play the disc on that specific drive you played it before (if you flashed the firmware the RDk may have changed, I'm not sure about that)
Cyber Akuma
12th September 2022, 20:05
I haven't looked at Libredrive in a while but from what I remember it doesn't disable host certificate revocation. It creates custom commands to retrieve the VID and to disable the bus encryption on the drive so the host certificate is not needed.
VLC doesn't know about Libredrive. It doesn't know the custom commands to get the VID and to disable the bus encryption (and the drive certificate will still say the drive supports bus encryption). So VLC tries to retrieve the VID and RDK (for bus encryption) using the host certificate and fails because it's been revoked by the drive.
I see, so unless the VLC team adds support for that Libredrive work-around then it doesn't help whatsoever to have Libredrive bypass all of this when trying to play them in VLC. I recall reading there is a way to make VLC use MakeMKV itself to decrypt and play the disk, but IIRC that requires having MakeMKV running and that program isn't free.
If you managed to play those UHD before, VLC should have cached the RDK and you should still be able to play the disc on that specific drive you played it before (if you flashed the firmware the RDk may have changed, I'm not sure about that)
I didn't unfortunately, Sonic 2 was the first UHD I attempted, I was testing if the latest UHDs could play and was not aware that the disks could revoke licenses like that.
I don't suppose that the cached keys in the keydb.cfg file are in any way the same format as in VLC and that I could somehow import them or insert them into whatever file VLC uses to cache UHDs?
candela
12th September 2022, 21:17
I see, so unless the VLC team adds support for that Libredrive work-around then it doesn't help whatsoever to have Libredrive bypass all of this when trying to play them in VLC.
correct
I recall reading there is a way to make VLC use MakeMKV itself to decrypt and play the disk, but IIRC that requires having MakeMKV running and that program isn't free.
well it's free (they keep publishing new beta keys for free as far as I know) but it hides the disc keys. A lot BD decryption info comes from MakeMKV directly or indirectly so they do deserve support. But we want to be able to backup keys for playback.
I don't suppose that the cached keys in the keydb.cfg file are in any way the same format as in VLC and that I could somehow import them or insert them into whatever file VLC uses to cache UHDs?
No. The keys you need for UHD are RDK which are not in keydb.cfg since they are disc+drive specific. No one has the same keys as you.
In theory it's possible to extract the RDK from a different player and put in the appropriate folder for VLC to use. I don't know for sure but I'm guessing DVDFab will have it unencrypted in memory somewhere (in the past even some official BD players had them unecrypted in memory). So someone would have to make FindRDK, a FindVUK for RDK :)
BalooDP
18th September 2022, 23:03
Previously there was a post in this thread with instructions on how to get BD+ disc playback working on the fly decryption on Debian based Linux distros. The post contained instructions on how to build the libbdplus library because the one in the repo wasnt sufficient. It also contained a pre built version which I used with success on my Pop OS distro for a little while, but it has stopped working. Has anyone had success in using libbdplus in the Ubuntu/Debian repos or their own build to decrypt and playback libbdplus discs on the fly again in Ubuntu 22.10 and higher distros?
Cyber Akuma
28th September 2022, 15:48
No. The keys you need for UHD are RDK which are not in keydb.cfg since they are disc+drive specific. No one has the same keys as you.
In theory it's possible to extract the RDK from a different player and put in the appropriate folder for VLC to use. I don't know for sure but I'm guessing DVDFab will have it unencrypted in memory somewhere (in the past even some official BD players had them unecrypted in memory). So someone would have to make FindRDK, a FindVUK for RDK :)
I see. So basically once my key is revoked I can never play a UHD movie on that drive with VLC again unless I make use of the MakeMKV work-around or hope that someday a new database comes out... and then be careful not to get it revoked again.
That or if someone does that whole key extraction thing you mentioned which I doubt is going to happen.
Is there any way to know what version a disk is so I can avoid using one that will revoke the keys in the future?
candela
28th September 2022, 20:37
That or if someone does that whole key extraction thing you mentioned which I doubt is going to happen.
It already happened :), please check the topic Get Blu-ray VID and RDK from MakeMKV (https://forum.doom9.org/showthread.php?t=184373)
demomode
24th October 2022, 21:50
How do I extract BD+ tables? I tried BlurayTest&Decrypt but isn't working.
candela
30th October 2022, 12:07
How do I extract BD+ tables? I tried BlurayTest&Decrypt but isn't working.
it "doesn't work" is not really useful info, what exactly doesn't work. Note that BT&D and libbdplus use different filenames for the tables. Can you post the DiscID? The table probably already exists in the archive (but the filename is the MediaKey)
elsanto
11th November 2022, 20:47
First of all thank you very much to candela and all the other people on doom9 that have made possible to watch blu-rays "featuring" BD+ using free software.:thanks:
Previously there was a post in this thread with instructions on how to get BD+ disc playback working on the fly decryption on Debian based Linux distros. The post contained instructions on how to build the libbdplus library because the one in the repo wasnt sufficient. It also contained a pre built version which I used with success on my Pop OS distro for a little while, but it has stopped working. Has anyone had success in using libbdplus in the Ubuntu/Debian repos or their own build to decrypt and playback libbdplus discs on the fly again in Ubuntu 22.10 and higher distros?
I remember that post, but it is not here anymore. I red it some time ago, and followed that instructions when I was using Debian 10, some time ago.
I recently upgrade to Debian 11 (bullseye) and had to setup all this again. This is what I did. I hope it works for you:
For libaacs, I built 0.11.1 release from Debian 12 (bookworm) source repository:
As root user:
I added a line like "deb-src http://deb.debian.org/debian/ bookworm main" to /etc/apt/sources.list
I updated the package indexes: "apt update"
I installed some dependencies: "apt install dpkg-dev pkg-config" . pkg-config is a dependency for libbdplus.
I installed dependencies for building libaacs : "apt build-dep libaacs"
As an ordinary (not-privileged) user:
I got sources for libaacs 0.11.1 and built the deb packages: "apt source --compile libaacs"
After that I had three deb files:
libaacs-dev_0.11.1-1_amd64.deb
libaacs0_0.11.1-1_amd64.deb
libaacs0-dbgsym_0.11.1-1_amd64.deb
I installed the first two running as root the following commmand:
apt install ./libaacs-dev_0.11.1-1_amd64.deb ./libaacs0_0.11.1-1_amd64.deb
I needed to install dev package because is necessary for libbdplus building.
For libbdplus, i tried with 0.2.0 release from Debian 12 (bookworm), that according to changelog (https://code.videolan.org/videolan/libbdplus/-/blob/0.2.0/ChangeLog) supports cached conversion tables, but it didn't worked.
The artifacts with BD+ discs are still there.
I couldn't successfully apply the patch included in 2020-07-26_libaacs_libbdplus.7z link from the first candela's post over libbdplus 0.1.2 source. I needed to download libbdplus source as it was on 2020_07_26.
You can browse the history of the code at: https://code.videolan.org/videolan/libbdplus/-/commits/0.2.0
The last commit before 2020_07_26 is e98c143cbd33c3c6b0c67690dec31c7772e133d2.
You can check that code at: https://code.videolan.org/videolan/libbdplus/-/tree/e98c143cbd33c3c6b0c67690dec31c7772e133d2
The tarball for the libbdplus at that temporal point can be downloaded from: https://code.videolan.org/videolan/libbdplus/-/archive/e98c143cbd33c3c6b0c67690dec31c7772e133d2/libbdplus-e98c143cbd33c3c6b0c67690dec31c7772e133d2.tar.gz
This is what I did to get a proper working libbdplus library:
As a normal (non privileged) user:
I got the code:
wget https://code.videolan.org/videolan/libbdplus/-/archive/e98c143cbd33c3c6b0c67690dec31c7772e133d2/libbdplus-e98c143cbd33c3c6b0c67690dec31c7772e133d2.tar.gz
I extracted the tarball:
tar -xvzf libbdplus-e98c143cbd33c3c6b0c67690dec31c7772e133d2.tar.gz
I changed working directory to the just created directory:
cd libbdplus-e98c143cbd33c3c6b0c67690dec31c7772e133d2
Tha candela patch can be applied cleanly over this tree.
I downloaded the candela 2020-07-26_libaacs_libbdplus.7z file from first post, and extracted the candela patch: libbdplus-0001-Use-cached-conversion-tables.patch
I applied the patch. In this example the patch was in my $HOME directory (~):
patch -p1 -i ~/libbdplus-0001-Use-cached-conversion-tables.patch
The patch applied successfully.
Then I compiled the patched libbdplus library:
./bootstrap
./configure
make
And then, as root, I installed libbdplus library:
make install
This setup works for me. I hope it can be helpful to others.
Of course, I needed to put a proper KEYDB.cfg file in ~/.config/aacs and convtab files in ~/.cache/libbdplus/convtab. This is well explained over the thread.
demomode
3rd December 2022, 01:39
it "doesn't work" is not really useful info, what exactly doesn't work. Note that BT&D and libbdplus use different filenames for the tables. Can you post the DiscID? The table probably already exists in the archive (but the filename is the MediaKey)
[E:][0FC3A2AC76379365A762F7A5295D058C97A85AD9]
volumeid: 2697E90766193BCACA36831360D9AEB9
It's the Fight Club movie. I can watch via Leawo Player, but not with VLC.
https://i.imgur.com/jWlLNw5.jpeg
----edit----
Okay, here's what I did. I'm using RevealX to decrypt the disc and watch, but for Fight Club it was accusing there was no Fixup Table.
So in the BlurayTestAndDecrypt was explaining how to get this BD+ table, it said I had to use Pavtube BdMagic, open the disc and get it. I did it and went back to TestAndDecrypt, it got the bd+ table, I placed into convtab but RevealX still didn't recognize it, saying it couldn't find "158CB5A4357391E6E272687AE77E3AA82E899B42.fut", so I doubled the .bin and renamed it to the fut file Reveal was pointing, and bam. Worked.
https://i.imgur.com/36OPllQ.jpg
https://i.imgur.com/eV6mMJW.jpg
candela
3rd December 2022, 19:12
[E:][0FC3A2AC76379365A762F7A5295D058C97A85AD9]
volumeid: 2697E90766193BCACA36831360D9AEB9
It's the Fight Club movie. I can watch via Leawo Player, but not with VLC.
Seems you were trying to play the movie in VLC using menus even though it is stated that cached BD+ tables are not compatible with menus. That's why you get this "Update Player" error
Okay, here's what I did. I'm using RevealX to decrypt the disc and watch, but for Fight Club it was accusing there was no Fixup Table.
So in the BlurayTestAndDecrypt was explaining how to get this BD+ table, it said I had to use Pavtube BdMagic, open the disc and get it. I did it and went back to TestAndDecrypt, it got the bd+ table, I placed into convtab but RevealX still didn't recognize it, saying it couldn't find "158CB5A4357391E6E272687AE77E3AA82E899B42.fut", so I doubled the .bin and renamed it to the fut file Reveal was pointing, and bam. Worked.
https://i.imgur.com/36OPllQ.jpg
I have no idea what kind of ID "158CB5A4357391E6E272687AE77E3AA82E899B42" Xreveal is looking for
The table for your disc (DiscID=0FC3A2AC76379365A762F7A5295D058C97A85AD9 and MK=A150638CC12168AE418E42623A800BB9) has been available since the first archive of BD+ tables, i.e. A150638CC12168AE418E42623A800BB9_FIGHT_CLUB.bin
So there was no need for you to use Pavtube
demomode
3rd December 2022, 21:24
Seems you were trying to play the movie in VLC using menus even though it is stated that cached BD+ tables are not compatible with menus. That's why you get this "Update Player" error
I have no idea what kind of ID "158CB5A4357391E6E272687AE77E3AA82E899B42" Xreveal is looking for
The table for your disc (DiscID=0FC3A2AC76379365A762F7A5295D058C97A85AD9 and MK=A150638CC12168AE418E42623A800BB9) has been available since the first archive of BD+ tables, i.e. A150638CC12168AE418E42623A800BB9_FIGHT_CLUB.bin
So there was no need for you to use Pavtube
I didn't know it was available. Well, Xreveal was asking for BD+ Fixup Tables, I just tried to rename the .bin to the one the software was looking for. It worked, playing with menus. I also don't know what ID this is.
candela
3rd December 2022, 23:16
I didn't know it was available. Well, Xreveal was asking for BD+ Fixup Tables, I just tried to rename the .bin to the one the software was looking for. It worked, playing with menus. I also don't know what ID this is.
Hmm. Are you saying that when you play the disc with menus in VLC and supplying the BD+ table:
* it works when using Xreveal
* it goes to player update screen with Libaacs/Libdplus
That shouldn't be possible unless this Xreveal is patching the menus somehow.
I notice on this Xreveal site it displays a bunch of disc related IDs under "Status". Can you post them for fight club?
demomode
5th December 2022, 14:07
Hmm. Are you saying that when you play the disc with menus in VLC and supplying the BD+ table:
* it works when using Xreveal
* it goes to player update screen with Libaacs/Libdplus
That shouldn't be possible unless this Xreveal is patching the menus somehow.
All my blu-rays plays with menu in VLC. I just don't know which of them asks for BD+ table (Now I know about Fight Club). Sometimes I use DVDFab Passkey, but since it's paid and some new blu-rays doesn't decrypt, I use Xreveal.
If Xreveal can't find the FUT, it goes to the update screen. If it finds it (or doesn't need it), the disc plays normally with menus.
You should try Xreveal and update the post :)
I notice on this Xreveal site it displays a bunch of disc related IDs under "Status". Can you post them for fight club?
Where can I post it?
candela
5th December 2022, 15:49
All my blu-rays plays with menu in VLC. I just don't know which of them asks for BD+ table (Now I know about Fight Club). Sometimes I use DVDFab Passkey, but since it's paid and some new blu-rays doesn't decrypt, I use Xreveal.
If Xreveal can't find the FUT, it goes to the update screen. If it finds it (or doesn't need it), the disc plays normally with menus.
You should try Xreveal and update the post :)
The point of this thread is to play blurays using VLC. If you need to use Xreveal you can just as well use makemkv or dvdfab.
The thing is having the FUT table doesn't prevent the disc showing the "player update" screen in VLC. libbdplus currently isn't emulating the BD+ virtual machine properly so the menus on the disc detect this and show the "player update" screen. If this is not happening with Xreveal it must be patching the menus to circumvent this detection
So ideally we figure out what exactly it's doing so it can be implemented in libbdplus
Is that xreveal fut id "158CB5A4357391E6E272687AE77E3AA82E899B42" for your disc listed in the Status screen? What is the name of this id there
demomode
8th December 2022, 13:14
The point of this thread is to play blurays using VLC. If you need to use Xreveal you can just as well use makemkv or dvdfab.
Ohhhh, now I see.
Is that xreveal fut id "158CB5A4357391E6E272687AE77E3AA82E899B42" for your disc listed in the Status screen? What is the name of this id there
It's SHA
https://i.imgur.com/h9Zmfsx.jpg
candela
8th December 2022, 23:11
Thanks, still have no idea what DHA and SHA ids are supposed to be. But I decided to install this myself and tried it with the BD+ movie Rio and indeed, it fixed the menus...
I disabled all Blu-Ray settings in XReveal except "Remove BD+ protection" and checked what it was doing. It changed only 2 bytes in 1 file BDMV\BDJO\65535.bdjo. I converted this file to JSON using BDTools (https://forum.doom9.org/showthread.php?t=174563) to make it readable
It seems to switch the value of "application_control_code" for 2 entries in "ApplicationManagementTable". Since one of them is labeled "initial_class_name": "com.macrovision.bdplus.Handshake" I'm assuming it's doing some kind of redirection, pointing a bad handshake from the BD+ VM in libbdplus to the correct menu screen (and vice versa). But I have no idea how all the java stuff works unfortunately.
It's probably not possible to implement something like this in libbdplus, since those BDJO menu files are going to be handled in libbluray
Update: after looking at bdjo_dump.c in libbluray source, Xreveal seems to be changing the control_code for the BD+ handshake from "autostart" to "present". And "present" to "autostart" for the other application. Not sure exactly what this means and how it knows what to change. Maybe it's just based on those class_names in the First Playback title (=65535.bdjo)
You can also look at these BDJO files using BDEdit (http://bdedit.pel.hu/)
richy
11th December 2022, 12:54
I made a load of notes about BD+ and Xreveal a while back when I was still able to use Laewo BD Player and/or BDMagic in combination with BlurayTestAndDecrypt to produce my own BD+ tables (for comparison with the "official" ones) but I can't find where they are currently.
The one thing I do remember, and I don't know if it's of any relevance, was that having "Disable BD-Live" selected in XReveal fixed the "You need to update your player" red screen message that I'd been getting with Fox titles.
I also had a load of problems with all things Java-related in VLC for a short while until I rolled back my Java install to an earlier version... but I can't find any of the notes I'd made about that either! I can't remember if the two issues were related but I think I came to the conclusion that it was something to do with libaacs and/or libbdplus being quite out of date and not compatible with more recent versions of Java. I did nab the versions that Roof Tile compiled (earlier in this thread) but don't think I've tried them yet.
Sorry if none of this is of any help whatsoever - I've been *VERY* out of the loop due to "real life" stuff recently - but it's just that I spent quite a bit of time trying to get those Fox titles working and was pleased when I did so.... it's just a pity I'm so bad at keeping track of everything on my PC! :P
BalooDP
15th December 2022, 04:35
First of all thank you very much to candela and all the other people on doom9 that have made possible to watch blu-rays "featuring" BD+ using free software.:thanks:
I remember that post, but it is not here anymore. I red it some time ago, and followed that instructions when I was using Debian 10, some time ago.
I recently upgrade to Debian 11 (bullseye) and had to setup all this again. This is what I did. I hope it works for you:
For libaacs, I built 0.11.1 release from Debian 12 (bookworm) source repository:
As root user:
I added a line like "deb-src http://deb.debian.org/debian/ bookworm main" to /etc/apt/sources.list
I updated the package indexes: "apt update"
I installed some dependencies: "apt install dpkg-dev pkg-config" . pkg-config is a dependency for libbdplus.
I installed dependencies for building libaacs : "apt build-dep libaacs"
As an ordinary (not-privileged) user:
I got sources for libaacs 0.11.1 and built the deb packages: "apt source --compile libaacs"
After that I had three deb files:
libaacs-dev_0.11.1-1_amd64.deb
libaacs0_0.11.1-1_amd64.deb
libaacs0-dbgsym_0.11.1-1_amd64.deb
I installed the first two running as root the following commmand:
apt install ./libaacs-dev_0.11.1-1_amd64.deb ./libaacs0_0.11.1-1_amd64.deb
I needed to install dev package because is necessary for libbdplus building.
For libbdplus, i tried with 0.2.0 release from Debian 12 (bookworm), that according to changelog (https://code.videolan.org/videolan/libbdplus/-/blob/0.2.0/ChangeLog) supports cached conversion tables, but it didn't worked.
The artifacts with BD+ discs are still there.
I couldn't successfully apply the patch included in 2020-07-26_libaacs_libbdplus.7z link from the first candela's post over libbdplus 0.1.2 source. I needed to download libbdplus source as it was on 2020_07_26.
You can browse the history of the code at: https://code.videolan.org/videolan/libbdplus/-/commits/0.2.0
The last commit before 2020_07_26 is e98c143cbd33c3c6b0c67690dec31c7772e133d2.
You can check that code at: https://code.videolan.org/videolan/libbdplus/-/tree/e98c143cbd33c3c6b0c67690dec31c7772e133d2
The tarball for the libbdplus at that temporal point can be downloaded from: https://code.videolan.org/videolan/libbdplus/-/archive/e98c143cbd33c3c6b0c67690dec31c7772e133d2/libbdplus-e98c143cbd33c3c6b0c67690dec31c7772e133d2.tar.gz
This is what I did to get a proper working libbdplus library:
As a normal (non privileged) user:
I got the code:
wget https://code.videolan.org/videolan/libbdplus/-/archive/e98c143cbd33c3c6b0c67690dec31c7772e133d2/libbdplus-e98c143cbd33c3c6b0c67690dec31c7772e133d2.tar.gz
I extracted the tarball:
tar -xvzf libbdplus-e98c143cbd33c3c6b0c67690dec31c7772e133d2.tar.gz
I changed working directory to the just created directory:
cd libbdplus-e98c143cbd33c3c6b0c67690dec31c7772e133d2
Tha candela patch can be applied cleanly over this tree.
I downloaded the candela 2020-07-26_libaacs_libbdplus.7z file from first post, and extracted the candela patch: libbdplus-0001-Use-cached-conversion-tables.patch
I applied the patch. In this example the patch was in my $HOME directory (~):
patch -p1 -i ~/libbdplus-0001-Use-cached-conversion-tables.patch
The patch applied successfully.
Then I compiled the patched libbdplus library:
./bootstrap
./configure
make
And then, as root, I installed libbdplus library:
make install
This setup works for me. I hope it can be helpful to others.
Of course, I needed to put a proper KEYDB.cfg file in ~/.config/aacs and convtab files in ~/.cache/libbdplus/convtab. This is well explained over the thread.
Thanks for this write-up. What is the reason for why the libbdplus library in Ubuntu distros doesn't work? Is there a flaw? Has the Candela patch not been applied? I am very curious now. Will have to get around to trying to build my own library to install over the old one. Thanks again for the instructions.
Grimsdyke
30th December 2022, 02:22
While trying to find out why a certain disc is causing some issues I stumbled upon something and I would like to ask if it is (maybe) only my setup somehow.
Could you guys please check that if LAV SPLITTER is used that the 4 libaacs ddls are not necessary any longer for directshow-players ??
binaryflow
2nd June 2023, 21:05
Hello.
I'm not new to the forum, but I have never posted before.
I bought a pair of ASUS BW-16D1X-U USB 3.0 drives a few years ago, but never used them. Internally they are BW-16D1HT. I changed the firmware to LibreDrive. I bought them in an impulse buy and forgot why, then understood the reason after a bit of impulse research about the drive ;)
Now I'm slowly entering into "modern age" and looking at BluRay, quite interested in 4K releases and BD+. I use tons of operating systems, but I prefer Linux distributions (Archlinux, for example) as the main operating system.
I dislike how messy modern formats are, with all those nasty stuff such as AACS and BD+. I use different platforms and many of those don't officially support BD.
I did read about BD+ and Java requirements, it's very nasty but OK. Then I looked at libbdplus and it seems development stalled a year ago. Are there any updated forks? Why are there unmerged patches? What's happening? Is there an uptodate fork (I was unable to find one)? Why no new commits?
Kind regards.
candela
4th June 2023, 10:26
Then I looked at libbdplus and it seems development stalled a year ago. Are there any updated forks? Why are there unmerged patches? What's happening? Is there an uptodate fork (I was unable to find one)? Why no new commits?
There can be no updates to libbdplus without someone reverse engineering a real player like PowerDVD or maybe Playstation3. Unfortunately this seems unlikely to happen since it is lots of effort for low benefit given BD+ isn't being used anymore by new discs and cached tables fix the playback problems.
candela
28th July 2023, 18:47
Added a few more bdplus tables and new keydb.cfg link (working up to at least MKBv81) in the first post of this thread
BalooDP
27th August 2023, 22:26
Hello,
I'm curious if anyone can give me some more information on 4k UHD Blu-Ray Playback in Linux, even with MakeMKV if I were to have a proper drive. Is it possible in VLC? Or must the movie get ripped beforehand? Information online seems to be lacking.
metalsonic88
28th October 2023, 22:58
In the FindVUK thread (https://forum.doom9.org/showthread.php?p=1992997) I've been looking for support getting the keys from my UHD discs. In the newest update to the program nalor seems to have fixed all the issues I have and I can generate the keys and RDK from all my UHD discs. However, playback of the disc from the drive in VLC still doesn't work properly.
In that thread, this was also posted about my issue:
I assume you're using libaacs?
If so, then libaacs needs to be patched to use AACS2 drive certificate as a drive id similar to FindVUK.
Considering what was needed to get FindVUK to work for me was reading the AACS2 drive certificate, I figure this is probably the right answer. I don't know if anyone in this thread has worked on libaacs in the past (candela perhaps?), but if anyone sees this who is able to add support for AACS2 I'd sure appreciate it. I can't do much, but I'll gladly provide more info or run tests using my drive if it gets worked on.
mick0
28th October 2023, 23:23
Considering what was needed to get FindVUK to work for me was reading the AACS2 drive certificate, I figure this is probably the right answer. I don't know if anyone in this thread has worked on libaacs in the past (candela perhaps?), but if anyone sees this who is able to add support for AACS2 I'd sure appreciate it. I can't do much, but I'll gladly provide more info or run tests using my drive if it gets worked on.
I've sent you a PM.
dgel34
12th November 2023, 02:22
I think I'm following the rules by posting a question here...
I just got burned by the "AACS Host Certificate Revoked" issue - something I was completely unaware of. I had a KEYDB.cfg from 2018, and tried to play a disk with AACSv68 on it using VLC Media Player, with a version of libaacs from here: https://vlc-aacs.whoknowsmy.name/. I had been happily watching various BluRays up until now on my computer with VLC, not knowing there was some lurking demon ready to make things break. I have a Pioneer External BD Drive (BDR-XD05).
Well, it broke stuff, I couldn't even play old discs like Charlie Brown Thanksgiving (AACSv16 or something like that). I (thought) I learned a little about the problem (this post for example https://forum.doom9.org/showthread.php?t=164698), and thought I just need a new host key, so I updated to the latest KEYDB.cfg from that same address above which said it was revoked in v72, and was definitely different than the one that was revoked before from the first KEYDB.cfg, and figured that would fix the problem... the disc I was trying to play is AACSv68 and this KEYDB.cfg said the host cert was revoked in v72.... so I figured I was safe? However, the host key got revoked again when I tried to play the disc in VLC. Maybe I don't really understand how all this really works?
I then found this thread, and installed the library version listed here, and went and got the DK/PK/HC from the post references and replaced the DK/PK/HC in my KEYDB.cfg. Then, very suspicious of this BluRay, I went and got an old BluRay I'd watched before with VLC, A Charlie Brown Thanksgiving, and tried that. Lo and behold, it worked fine - menus and all!
So then turning my attention back to the problematic disc, I thought - surely it will work with this host certificate, right? The post says it is good up through MKBv81 (same as AACSv81, right?? I am thinking yes, but not sure of anything anymore...)
I then read about how MakeMKV uses libredrive to "protect" against revoked certificates by disabling the mkb revocation list (here: https://forum.redfox.bz/threads/libredrive-makemkv-anydvd-hd-powerful-combination-exactly-why.87038/post-603221). Someone said that just having MakeMKV running "enables" libredrive for VLC player or anything else running on the PC.
So I figured maybe I could protect against getting THIS host certificate revoked (it's not like there are piles of them out there) by having MakeMKV running when I tried to play this problematic disc from VLC again. So I had it running in the background, and tried this again. AGAIN I got a notification that the host certificate had been revoked. I was like, What the heck? I then very rapidly (totally unsure of myself at this point) pulled out this crappy disc and put the Charlie Brown one in again, closing VLC and re-opening it. Fortunately, the Charlie Brown disc still worked - I think LibreDrive did its job of blocking the writing of the revoked host certificate to the drive.
But I'm still stumped as to why this disk keeps causing a host certificate revocation issue? The new host certificate linked in post #1 of this thread should be okay for a disc with AACSv68, right? But the more I read, the more I feel like I don't know. The disc's VUK doesn't seem to be present in the KEYDB.cfg file - It's called "Salvatore Shoemaker of Dreams" from Sony Pictures Classics. It does say Copyright 2023, so it's pretty new (my dad brought it over to my house). Release date on BluRay was Feb 21, 2023 according to blu-ray.com.
Should I be trying to run this without menus, is that my problem? But also, there's no ".bin" file for this title either in the cached BD+ tables, that I could find.
I was able to make a rip the disc, and make a full decrypted backup just fine with MakeMKV. I pointed VLC at the backup folder of the disc that MakeMKV created, and opened it as a "BluRay with menus," and it played just fine, menus and all... so just a little
(okay a lot...) stumped?
Thanks for any insight!
P13r_
19th November 2023, 11:11
Hi,
I recently discovered this guide, while searching for a metod to play 4k discs on vlc (i have a UHD friendly drive, it's a Hitachi-Lg WH16NS40, and i followed the guide to flash the firmware to be able to play UHD discs).
Now, i followed the guide here exactly how it is written (also checked again twice, to see if i forgot something, but it was all good) but when i go to play a 4k disc (no menus option checked), it stay still at the splash screen of the disc and even after some time, remains the same, i tried all of my 4k discs, it's always the same result.
I also noticed that if i go to the popup menu of vlc to select the language, the option is greyed out.
Here's the photo of the problem:
https://i.imgur.com/3Dymm40.png
Also here is the screenshot of the specs of my uhd drive, in case i missed something in the guide(screenshot is done in makemkv)
https://i.imgur.com/90ijvnb.png
(it says that the firmware is not patched, but it is)
Grimsdyke
19th November 2023, 14:45
So, blu-rays are playing fine ? Just so that we know all elements like the keyDB.cfg are in the proper locations !
What happens when you try to play with menues ?
And have you tried MPC-BE or -HC to play this disc ? (Can't really help you further if it is VLC problem because I do not use it.)
P13r_
20th November 2023, 09:15
So, blu-rays are playing fine ? Just so that we know all elements like the keyDB.cfg are in the proper locations !
What happens when you try to play with menues ?
And have you tried MPC-BE or -HC to play this disc ? (Can't really help you further if it is VLC problem because I do not use it.)
Yes, blurays and and bd+ are playing just fine. I checked and keydb.cfg it's in the right folder, double, triple checked. Menus on normal blurays works just fine, of course as stated in the guide, menus for bd+ are not supported so i didn't even try.
Even if i check show menu on UHD discs, gives the same result.
What is MPC-BE -HC? i don't know what are you referring to
Grimsdyke
20th November 2023, 18:28
Download the portable/zip of MPC-BE from here : https://www.videohelp.com/software/MPC-BE
Create a directory and unpack there and put the 4 lib dlls into that directory.
If MPC-BE opens the UHD and starts the movie then VLC seem to have a problem. If not, then your setup may be not 100% accurate yet.
P13r_
20th November 2023, 21:07
Download the portable/zip of MPC-BE from here : https://www.videohelp.com/software/MPC-BE
Create a directory and unpack there and put the 4 lib dlls into that directory.
If MPC-BE opens the UHD and starts the movie then VLC seem to have a problem. If not, then your setup may be not 100% accurate yet.
I tried what you said, but mpc says "cannot render the file", for every bluray that i try to play, normal bd or uhd. I've done as you said and put the 4 libs in the folder.
Maybe wanna hop on teamviewer or anydesk to help out? if yes, pm me
Grimsdyke
20th November 2023, 22:12
Sorry, but if you like we could continue via PM but finding setup errors may always help others later.
Please make sure that you did not mixed up 64bit MPC-BE with 32bit lib dlls - or vice versa.
And is your keyDB.cfg in '....\appdata\roaming\aacs' ? If not, please try this and report back.
mick0
20th November 2023, 22:32
Hi,
I recently discovered this guide, while searching for a metod to play 4k discs on vlc (i have a UHD friendly drive, it's a Hitachi-Lg WH16NS40, and i followed the guide to flash the firmware to be able to play UHD discs).
...
Also here is the screenshot of the specs of my uhd drive, in case i missed something in the guide(screenshot is done in makemkv)
https://i.imgur.com/90ijvnb.png
(it says that the firmware is not patched, but it is)
The issue is your drive firmware.
WH16NS60 is an UHD official (AACS2) drive and libaacs does not support AACS2 drives. Standard BD's will work since they use AACS, but UHD BD's will not due to AACS2.
It should work with the original WH16NS40 "DE" firmware though.
P13r_
21st November 2023, 12:28
The issue is your drive firmware.
WH16NS60 is an UHD official (AACS2) drive and libaacs does not support AACS2 drives. Standard BD's will work since they use AACS, but UHD BD's will not due to AACS2.
It should work with the original WH16NS40 "DE" firmware though.
Ohhhhh, that's why, thanks for the information, gonna try and flash the firmware you said.
Edit:
Flashed the "Stock" modified firmware and now i can play UHD discs
P13r_
21st November 2023, 14:01
Sorry, but if you like we could continue via PM but finding setup errors may always help others later.
Please make sure that you did not mixed up 64bit MPC-BE with 32bit lib dlls - or vice versa.
And is your keyDB.cfg in '....\appdata\roaming\aacs' ? If not, please try this and report back.
yes, i did use the right ddls for 64, also tried 32 bit version of mpc with 32 bit dlls, still cannot render file.
yes, keydb.cfg is in C:\Users\<USER>\AppData\Roaming\aacs.
i found out that for vlc it was the drive firmware, now 4ks are working fine
P13r_
21st November 2023, 18:34
ok, now i have another problem, loads discs, but then it's just black screen, idk what happened, i tried to reinstall everything, from vlc, to all the files, nothing, black screen. man, uhd playback it's a little jank
Edit:
Fixed, i had the wrong firmware again now it's all good (i'm dumb)
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.