View Full Version : Blu-ray playback with libaacs & libbdplus
candela
29th September 2019, 13:55
After a long hiatus, discoveries in the past few years on this forum have made Blu-ray playback possible again on free (libre) software such as VLC without proprietary solutions such as DVDFab, MakeMKV or AnyDVD.
Presented here is a new libaacs & libbdplus build for Windows with some improvements made by several different people. Included are Win32/Win64 builds and the actual source patches. It would be nice if someone actually good at C can clean these up and integrate them on the VideoLan source repository.
Improvements:
Cached BD+ tables support: circumvent the need for the BD+ Virtual Machine (VM) and play BD+ discs of all generations without menus
UHD support: play 4K Blu-ray discs
Read Data Key (RDK) caching: play Bus Encrypted Enabled (BEE) discs on Bus Encryption Enabled (BEC) drives after the Host Certificate (HC) is revoked
Media Key (MK) caching: similar to already existing Volume Unique Key (VUK) and VolumeID (VID) caching. This enables possible scraping in the future by FindVUK
Incomplete Unit Key (UK) support: allow (partial) playback of discs in case not all unit keys are available in KEYB.cfg and the VUK is not available
How To (Windows):
Put the 32-bit or 64-bit libaacs/libbdplus (https://mega.nz/file/ZM91CL5Q#VIm1IKA_qMr0zUvw7uXqzF666o7lJkyo-LwlkINByek) DLLs (all 4) in the corresponding VLC directory
Put the BD+ vm files (https://mega.nz/#!MFlTDYiT!I-laau3lrg9OgcAL-1DPk-c9ytxbOCKUj73NBhI8Cr0) in the %APPDATA%\bdplus\vm0 directory
Put the cached BD+ tables (https://mega.nz/#!Jd1xEQbJ!DRhG9eWLNnrmA5dcwHugnKxmVUpIsT9X-HKuuGjU7n8) (1.5GB) in the %APPDATA%\bdplus\convtab directory
updated tables 2020-07-05 (https://mega.nz/file/ZZdA3QCJ#FaL2ohltwFCtX91UMngB_dUtqht8JZ3-nRgnTAJD8jk) (36MB)
updated tables 2021-01-06 (https://mega.nz/file/pc0VTaYY#Tl1XMSex_Y9iCKmvYEKddr7GQQVQbMDEHJbw0uXumj0) (31MB)
updated tables 2022-06-19 (https://mega.nz/file/gVsRQQ7Y#JOJwO5woXdz2X73rrvHHBTYCdLposz7aiSVkEX4vChM) (12MB)
updated tables 2023-07-28 (https://mega.nz/file/AR8DDaib#GgSUMnNGBlVXdJT0BEkNkGm5f4NfodBaQ8SSgFFM4ZA) (3MB)
Put FindVUK's KEYDB.cfg (http://fvonline-db.bplaced.net/) in the %APPDATA%\aacs directory
Edit KEDYB.cfg and add/replace the device keys (DK), processing keys (PK) and host certificates (HC) at the top with the ones from this post (https://forum.doom9.org/showthread.php?p=1990091#post1990091) (valid up to MKBv81). Older keys can be found in this thread (https://forum.doom9.org/showthread.php?p=1883655)
Builds:
2019-10-21_libaacs_libbdplus.7z (https://mega.nz/#!oJVjwKCT!0L7a7ftjQhVqcIOXUOZid88818Rnsu-y_CyKY3ra4-4)
libaacs 0.9.0 + patches
libbdplus 0.1.2 + patches
2020-07-26_libaacs_libbdplus.7z (https://mega.nz/file/ZM91CL5Q#VIm1IKA_qMr0zUvw7uXqzF666o7lJkyo-LwlkINByek)
libaacs 0.11.0
libbdplus 0.1.2 + patches
extra Kodi patch from user nst no longer required, use Kodi version > 18.7 because of BD playback bug
2025-10-09 download or compile yourself (https://github.com/KnugiHK/libaacs-libbdplus-windows)
libaacs 0.11.1
libbdplus 0.2.0
note: I did not test these builds
Directories:
base aacs/bdplus directories in above "How To:" are different depending on OS and user-based or system-based (all users) installation
Windows:
aacs (per user): %APPDATA%\aacs
aacs (system wide): %ProgramData%\aacs
bdplus (per user): %APPDATA%\bdplus
bdplus (system wide): %ProgramData%\bdplus
dll 32-bit: C:\Program Files (x86)\VideoLAN\VLC
dll 64-bit: C:\Program Files\VideoLAN\VLC
Linux:
aacs (per user): ~/.config/aacs
aacs (system wide): /etc/xdg/aacs
bdplus (per user): ~/.cache/bdplus
bdplus (system wide): /etc/xdg/bdplus
MacOS:
aacs (per user): ~/Library/Preferences/aacs
aacs (system wide): /Library/Preferences/aacs
bdplus (per user): ~/Library/Caches/bdplus
bdplus (system wide): /Library/Preferences/bdplus
dylib: /usr/local/lib
Decryption keys:
Simplified, libaacs/libbdplus uses the following flow to remove supported protections
if Disc = BEE and Drive = BEC then
HC -> RDK -> remove bus encryption
if Disc = AACS then
DK -> PK -> MK
HC -> VID
MK + VID -> VUK -> UK -> remove AACS encryption
if Disc = BD+ then
BD+ VM -> BD+ table -> remove BD+ protection
When either DK or HC has been revoked, libaacs cannot generate decryption keys anymore. However, any step in the process can be skipped by using cached keys in the local aacs directory or KEYDB.cfg. For example, when VUK is cached DK + HC are no longer needed for AACS decryption. Check the following threads to retrieve all necessary keys without a valid DK and HC
FindVUK tool - get VUK of all Blurays supported by DVDfab applications (https://forum.doom9.org/showthread.php?t=172472)
Get Blu-ray VID and RDK from MakeMKV (https://forum.doom9.org/showthread.php?t=184373)
The BD+ VM only supports a very limited amount of early titles. In practice cached BD+ tables will be necessary for all your discs
Debugging:
debug output is possible using environment variables, ref. source util\logging.h and util\logging.c for more information
e.g. in Windows open CMD window and execute the following:
set AACS_DEBUG_MASK=65535
set BD_DEBUG_MASK=512
set AACS_DEBUG_FILE=c:\temp\debuglog_aacs.txt
set BDPLUS_DEBUG_FILE=c:\temp\debuglog_bdplus.txt
set BD_DEBUG_FILE=c:\temp\debuglog_libbluray.txt
start VLC from command line in the same CMD window
About BD+:
BD+ tables contain the necessary patches to fix the video errors and circumvent the need to emulate the BD+ VM. Since Blu-ray menus interact with the BD+ VM, cached BD+ tables are incompatible with VLC Blu-ray menu support
To save space, it is assumed that all discs with the same MK also have the same BD+ table. Therefore cached BD+ tables are loaded from the filename MK*.bin. For clarity, provided tables are named MK_VolumeLabel.bin
At this moment, the last known discs with BD+ protection were released in 2017 (MKBv60). Hence PKs are available in KEYDB.cfg to calculate the necessary MK for all BD+ discs
BD+ tables can also be used by DumpHD (https://forum.doom9.org/showpost.php?p=966851) (command line --convtable:table.bin) and BlurayTest&Decrypt (https://forum.doom9.org/showthread.php?t=173796) (loaded from %APPDATA%\bdplus\convtab\DiscID*.bin)
There is no way to validate BD+ tables without playing the actual disc and checking if video corruption is fixed. Therefore the tables that are offered come with no guarantees. Fixes for tables reported as bad:
- 1677D189ECCC2161451A3C0FA4F53CD4_THE_PHANTOM_MENACE.bin (https://mega.nz/#!lB1w3K5Z!kBKWr3vwwEZXDFImCdRpbaRTh8ucRtFFj6DBU1jNR0s)
In case the BD+ table included for the MK of your disc does not work, you can try retrieving a working table using Nalor's BlurayTest&Decrypt (https://forum.doom9.org/showthread.php?t=173796). The table will be saved in %APPDATA%\bdplus\convtab\DiscID*.bin and will have to be renamed to MK*.bin to use with libbdplus
About RDK:
Discs that have BEE (all UHD and <10% of BD) and are played on a BEC drive (https://forum.doom9.org/showthread.php?t=172914) (i.e. all recent drives) require a valid Host Cert to be present in KEYDB.CFG in order to calculate the RDK. Once the current Host Cert is revoked by the drive, the previously cached RDK can still used instead
The RDK, drive and disc specific, is saved in %APPDATA%\aacs\rdk\[DriveID]\[DiscID]. The [DriveID] is a hash of the Drive Cert which is assumed to be unique
It seems possible some BEC drive would calculate a different RDK each time the same BEE disc is played. In this case, caching the RDK will obviously not work. No such drives are known at this time
Updating a drive's firmware may or may not change the RDK
About UHD:
UHD playback requires a UHD friendly drive, i.e. a non-AACS2.0 drive that supports reading UHD discs and accepts AACS1.0 Host Certs
It may be possible to convert your non-friendly UHD drive to a friendly one by flashing a different firmware. Read the following topic VERY carefully Ultimate UHD Drives Flashing Guide Updated 2022 (https://forum.makemkv.com/forum/viewtopic.php?f=16&t=19634)
No AACS2.0 PK or DK are currently known. Playback depends on a valid VUK, UK or MK being available in KEYDB.cfg
AACS2.1 discs are currently not supported. At the moment 5 such discs exist (Fury, The Patriot, Stand By Me, Charlie's Angels, Zombieland)
About Java menus:
In order to play Blu-rays with Java based menus the Java Runtime Environment (JRE) is required
Install one of the following:
OpenJDK (https://adoptium.net/temurin/releases/?version=8)
Oracle (https://java.com/en/download/)
Note that recent JRE versions appear to crash VLC. The last known working version is 8u322b06
Make sure the %JAVA_HOME% environment variable is set and points to the installation directory, e.g. "JAVA_HOME=C:\Program Files\Java\jre1.8.0_221". The OpenJDK installer can set this automatically
In Windows, e.g. Vista, environment variables can be set in Control Panel > System And Maintenance > System > Advanced System Settings > Environment Variables
About Region Coding:
Some Blu-ray discs may be region locked when menus are enabled in VLC. Select the correct region in VLC to circumvent this. Goto Tools > Preferences > Show Settings: All > Input / Codecs > Access Modules > Blu-ray and select the Region Code that matches the disc: A, B or C
Command line tools:
Using commandline tools like aacs_info or aacskeys allows getting all keys VUK/MK/VID/UK and learning about AACS
aacs_info is included with libaacs and uses keys in KEYDB.cfg. Debug output as described above is also possible. Example usage: aacs_info F:
aacskeys and accompanying keyfiles can be downloaded here (https://mega.nz/folder/0NsgjBjA#mWAQnhDmCo8pJP5SUNi3Fw). Example usage: aacskeys -v F:
instructions (https://forum.doom9.org/showthread.php?p=1932548#post1932548)for Mplayer by hnsteyding
To do:
Playlist obfuscation is a protection where the correct playlist (BDMV\PLAYLIST\*.mpls) for a disc is hidden between hundreds of fake playlists. Although the FindVUK KEYDB.cfg lists the correct playlist for many discs, it's not possible to actually select this playlist in VLC when playing without menus. VLC uses its own title index that has no obvious relation with the actual mpls file. This would need to be changed in libbluray
Implementation of HD-DVD playback. Although VLC can play files on unprotected HD-DVDs, libaacs has no support for HD-DVD. The source code of aacskeys (https://forum.doom9.org/showthread.php?t=123311)could be used as an example
Improvement of BD+ VM libbdplus. Complete implementation will likely be very difficult and require reverse engineering of official players. However, it is plausible that minor improvements to the libbdplus implementation could result in the generation of encrypted BD+ tables. In this case, only (much smaller) decryption keys need to be cached instead of complete tables. This method appears to be used by several non-official players. To study how BD+ tables work load them in ConvTableView (https://forum.doom9.org/showpost.php?p=966851) and look at the libbdplus source
maetel99
30th September 2019, 07:01
This is a very interesting post. I'm curious about the cached BD+ tables you posted. Is this archive really comprehensive? If so, then there really is no longer a need for libbdplus, vm0, and all that.
You could just locate the correct decrypted BD+ table for the disc, parse it, and deliver the patches directly in response to requests for particular sectors of data. That code is pretty simple and could be incorporated directly into libaacs.
candela
30th September 2019, 17:50
This is a very interesting post. I'm curious about the cached BD+ tables you posted. Is this archive really comprehensive?
It's difficult to say for certain. Out of 5051 known BD+ discs this archive provides tables for at least 4811 so that's ~95%. There's almost 100.000 discs in KEYDB.cfg now but that's probably only 50-60% of existing discs. However, BD+ is only used by Fox on high profile titles so I guess most of those titles are already in KEYDB.cfg. And the titles that are not in KEYDB.cfg likely use an MK for which a table is available. So support for 90-95% of BD+ titles is probably a good estimation.
If so, then there really is no longer a need for libbdplus, vm0, and all that.
It's still needed for menu support for those early BD+ generations that are supported.
You could just locate the correct decrypted BD+ table for the disc, parse it, and deliver the patches directly in response to requests for particular sectors of data. That code is pretty simple and could be incorporated directly into libaacs.
While possible, that doesn't seem a good idea to me and probably requires changes in libbluray to disable libbdplus. This patch is just a quick hack to use existing libbdplus functions without interfering with the things that do work
And I still hope the libbdplus implementation will be improved at some point in time
maetel99
1st October 2019, 05:26
It's still needed for menu support for those early BD+ generations that are supported.
I guess I don't follow what you mean here. The BD+ fixup table contains sub-tables with arrays of patches for each modified m2ts file. Menus are also stored in m2ts files. If you have the full BD+ table, then it seems like you have everything necessary to remove the BD+ modifications from the disc. Am I missing something?
While possible, that doesn't seem a good idea to me and probably requires changes in libbluray to disable libbdplus. This patch is just a quick hack to use existing libbdplus functions without interfering with the things that do work
I don't think there would be changes necessary for libbluray. Each time a block of data is requested from libaacs, it would decrypt it as needed and also check if there are BD+ patches that need to be applied. If there are patches, it would just apply them before returning the decrypted data to libbluray.
Sparktank
1st October 2019, 05:53
Thanks for the updated libraries!
I just stumbled through the forum looking for updated downloads so I can start watching Community on bluray with all the commentary.
It's a lot easier for tv blurays to start from the menu, as most programs just start with the longest title first when using something like DVDFab Passkey.
mick0
1st October 2019, 07:26
I guess I don't follow what you mean here. The BD+ fixup table contains sub-tables with arrays of patches for each modified m2ts file. Menus are also stored in m2ts files. If you have the full BD+ table, then it seems like you have everything necessary to remove the BD+ modifications from the disc. Am I missing something?
When you try playing java menus with cached tables you will just get a warning message saying that you need to update your player firmware.
I don't think there would be changes necessary for libbluray. Each time a block of data is requested from libaacs, it would decrypt it as needed and also check if there are BD+ patches that need to be applied. If there are patches, it would just apply them before returning the decrypted data to libbluray.
It's actually libbluray that dlopens libaacs and libbdplus on demand so yes it would require disabling libbdplus in libbluray.
Dandu
6th October 2019, 00:10
Hi
I have tried this on Mac OS X, but without success
I have patched libaacs and libbdplus and the compilation works. I can read the Blu-ray, libaacs cache the MK, but i can't read BD+ Blu-ray (i have the corruption).
Can you help me ?
candela
6th October 2019, 01:41
Hi
I have tried this on Mac OS X, but without success
I have patched libaacs and libbdplus and the compilation works. I can read the Blu-ray, libaacs cache the MK, but i can't read BD+ Blu-ray (i have the corruption).
Can you help me ?
are you sure the table is available for your MK and in the correct dir ? also try enabling debug logs using the environment vars in util\logging.c although I didn't manage for some reason (I can do it for AACS logs). it should show you which table get's loaded "BD_DEBUG(DBG_BDPLUS | DBG_CRIT, "[bdplus] Opening cached CONVERSION TABLE from %s ...\n", file);"
Also can you adapt How To: for mac so I can put in my initial post
mick0
6th October 2019, 08:09
...i can't read BD+ Blu-ray (i have the corruption).
Can you help me ?
On Mac you probably need to use "cache" dir for tables instead of "config" dir - at least that's how it's on Linux. On Windows these two are one and the same. It's also possible to use system wide config dir so the configuration doesn't need to be duplicated for all users.
Windows:
%AppData%\bdplus\convtab (per user installation)
or
%ProgramData%\bdplus\convtab (system wide installation)
Linux:
$HOME/.cache/bdplus/convtab (per user installation)
or
/etc/xdg/bdplus/convtab (system wide installation)
Mac (I'm not 100% sure about these):
$HOME/Library/Caches/bdplus/convtab (per user installation)
or
/Library/Preferences/bdplus/convtab (system wide installation)
I hope this helps.
Dandu
6th October 2019, 16:31
Thank you, it works.
My error was dumb : the convtab was in $HOME/Library/Preferences/bdplus/convtab
I have placed the files in the good place and it works !
nst
10th October 2019, 19:46
FWIW, I tried this with Kodi and the libbluray/libaacs/libbdplus stack (with the patches from candela, of course) and wondered why BD+ wasn't working, despite the convtab.bin's being at the right place. I found out that after selecting the desired title from Kodi's title selection dialog, it always said "bdplus_m2ts(...): no conversation table" without any real traces of libbdplus doing anything beforehand.
So I patched bdplus.c:bdplus_m2ts() to simply trigger a BDPLUS_RUN_CONVTAB event based on the bdplus_test.c example and finally got it working that way.
What I did to "fix" this might be a very bad idea, and even libbluray or Kodi might be doing something wrong, but I thought anyway I'd share my findings and also the patch to apply to the libbdplus sources, see the attached file.
Maybe someone finds another way to fix this "the right way", though until then hopefully this is of any help for anyone.
Thanks to candela (and whoever is involved in this) for getting BD+ playback to work in this way!
EDIT: Seems like the attachment needs approval, until this is done, I've uploaded the patch to https://anonfile.com/U0Hfh885nf/bdplus_m2ts_try_convtab.patch_txt (no mega account, sorry).
RealSnoopyDog
11th October 2019, 22:25
Thank you very much for this :)
I tested the 32 bit variant on Windows 10 together with the LAV codecs and DVBViewer on two different PCs. In my HTPC, I have an "UHD friendly" drive. I used some older and some brandnew Blu-Rays and also my few 4k Blu-Rays. Everything played back fine so far.
I have no problems with Blu-Ray playlists because I developed a little add on for DVBViewer which manages and displays the playlists on it's own. It tries to detect the main movie and if this fails, you can choose any other playlist as the main movie.
mick0
15th October 2019, 16:20
New host certificate. Already revoked in MKBv72, but since it works up to MKBv71 it might help someone else.
| HC | HOST_PRIV_KEY 0x909250D0C7FC2EE0F0383409D896993B723FA965 | HOST_CERT 0x0203005CFFFF800001C100003A5907E685E4CBA2A8CD5616665DFAA74421A14F6020D4CFC9847C23107697C39F9D109C8B2D5B93280499661AAE588AD3BF887C48DE144D48226ABC2C7ADAD0030893D1F3F1832B61B8D82D1FAFFF81 ; Revoked in MKBv72
DanTheMann15
21st October 2019, 00:08
holy crap mick0, thanks!
Buck
21st October 2019, 23:35
How To (Windows):
Put the 32-bit or 64-bit libaacs/libbdplus (https://mega.nz/#!oJVjwKCT!0L7a7ftjQhVqcIOXUOZid88818Rnsu-y_CyKY3ra4-4) DLLs (all 4) in the corresponding VLC directory
Put the BD+ vm files (https://mega.nz/#!MFlTDYiT!I-laau3lrg9OgcAL-1DPk-c9ytxbOCKUj73NBhI8Cr0) in the %APPDATA%\bdplus\vm0 directory
Put the cached BD+ tables (https://mega.nz/#!Jd1xEQbJ!DRhG9eWLNnrmA5dcwHugnKxmVUpIsT9X-HKuuGjU7n8) (1.5GB) in the %APPDATA%\bdplus\convtab directory
Put the FindVUK KEYDB.cfg (http://fvonline-db.bplaced.net/) in the %APPDATA%\aacs directory
Edit the KEDYB.cfg and put the keys and certs from this post (https://forum.doom9.org/showthread.php?p=1883655#post1883655) on top
All MEGA links expired? For example, #1:
mega:#!oJVjwKCT!0L7a7ftjQhVqcIOXUOZid88818Rnsu-y_CyKY3ra4-4?_escaped_fragment_=oJVjwKCT!0L7a7ftjQhVqcIOXUOZid88818Rnsu-y_CyKY3ra4-4
Enter decryption key
The provided key is invalid. Please check that the key is correct or ask the creator of the link again.
candela
21st October 2019, 23:58
All MEGA links expired? For example, #1:
mega:#!oJVjwKCT!0L7a7ftjQhVqcIOXUOZid88818Rnsu-y_CyKY3ra4-4?_escaped_fragment_=oJVjwKCT!0L7a7ftjQhVqcIOXUOZid88818Rnsu-y_CyKY3ra4-4
I changed the first link today because I included MacOS libs compiled by Dandu. But the links seem to work for me. Not sure where this escape_fragment stuff in your link is coming from
nst
4th November 2019, 16:26
In case the BD+ table included for the MK of your disc does not work, you can try retrieving a working table using Nalor's BlurayTest&Decrypt (https://forum.doom9.org/showthread.php?t=173796). The table will be saved in %APPDATA%\bdplus\convtab\DiscID*.bin and will have to be renamed to MK*.bin to use with libbdplus
[/LIST]
One question regarding this: Is there any other way to retrieve these tables? For me, (at least) the convtab for "Star Wars Ep. 1 - The Phantom Menace" (1677D189ECCC2161451A3C0FA4F53CD4_THE_PHANTOM_MENACE.bin) doesn't fully work (picture errors starting from around ~0:30:00 playtime). I tried playing the disc with Leawo (where the tables seem to come from) and it yields the same error. Other discs from the Star Wars box (played episodes 4-6) work fine, so I believe the patched libbdplus is fine in this regard. Any info on this might help with other discs of course.
Thanks,
nst
candela
4th November 2019, 18:09
One question regarding this: Is there any other way to retrieve these tables? For me, (at least) the convtab for "Star Wars Ep. 1 - The Phantom Menace" (1677D189ECCC2161451A3C0FA4F53CD4_THE_PHANTOM_MENACE.bin) doesn't fully work (picture errors starting from around ~0:30:00 playtime). I tried playing the disc with Leawo (where the tables seem to come from) and it yields the same error. Other discs from the Star Wars box (played episodes 4-6) work fine, so I believe the patched libbdplus is fine in this regard. Any info on this might help with other discs of course.
Thanks,
nst
The table seems to have problems. Please try this table (https://mega.nz/#!lB1w3K5Z!kBKWr3vwwEZXDFImCdRpbaRTh8ucRtFFj6DBU1jNR0s)
nst
4th November 2019, 19:25
The table seems to have problems. Please try this table (https://mega.nz/#!lB1w3K5Z!kBKWr3vwwEZXDFImCdRpbaRTh8ucRtFFj6DBU1jNR0s)
That one seems to work fine (didn't watch the whole movie but skipped through the chapters and watched a bit of the end, didn't notice any glitches). Thank you!
RealSnoopyDog
26th November 2019, 18:55
I have one question regarding the disc keys in the keydb.cfg
Today I tried to playback the UHD of Valerian and the playback failed because the disc key was missing. So I queried the key with the little program "aacs_info", duplicated the line of the existing VALERIAN UHD and excanged only the disc key with the queried one. Is this already ok? The disc seems to playback fine with this modification.
candela
26th November 2019, 19:16
I have one question regarding the disc keys in the keydb.cfg
Today I tried to playback the UHD of Valerian and the playback failed because the disc key was missing. So I queried the key with the little program "aacs_info", duplicated the line of the existing VALERIAN UHD and excanged only the disc key with the queried one. Is this already ok? The disc seems to playback fine with this modification.
can you paste both lines since this doesn't make any sense . For UHD aacs_info cannot retrieve any other keys than what is in keydb.cfg. So if the key was wrong for VLC, running aacs_info cannot show you a different key
qyot27
26th November 2019, 20:28
I'm pretty sure they're talking about the Disc ID, not any of the keys. aacs_info should be able to get that much, no matter what happens to be inside keydb.cfg (since it's just the SHA-1 hash of Unit_Keys_RO.inf).
RealSnoopyDog
27th November 2019, 10:05
Yes, sorry, I confused the words. I mean the Disc ID :)
RealSnoopyDog
28th November 2019, 23:27
This is what I did
0x018D1B988A96CC29F2E0DABB07770D8CBE553851 = UHD_VALERIAN | U | 1-0x2DA7E5518B5D93220A99E3C01A89256A ; (UHD) (LEGACY) (NOTVALIDATED) (BD)
0x2C70B65B65A7EC26152698552E900A51C7575264 = UHD_VALERIAN | U | 1-0x2DA7E5518B5D93220A99E3C01A89256A ; (UHD) (LEGACY) (NOTVALIDATED) (BD)
and it works.
candela
28th November 2019, 23:41
This is what I did
0x018D1B988A96CC29F2E0DABB07770D8CBE553851 = UHD_VALERIAN | U | 1-0x2DA7E5518B5D93220A99E3C01A89256A ; (UHD) (LEGACY) (NOTVALIDATED) (BD)
0x2C70B65B65A7EC26152698552E900A51C7575264 = UHD_VALERIAN | U | 1-0x2DA7E5518B5D93220A99E3C01A89256A ; (UHD) (LEGACY) (NOTVALIDATED) (BD)
and it works.
yes then it's a different release of the movie using the same UnitKey (and likely same MK) but different VUK/VID so the discid is different. this works quite often
xabaras414n
12th May 2020, 20:58
After a long hiatus, discoveries in the past few years on this forum have made Bluray playback possible again on free (libre) software such as VLC without proprietary solutions such as DVDFab, MakeMKV or AnyDVD.
Thanks candela, with all this setup I can finally play back my blu-rays on Linux :D
Included are Win32/Win64 builds and the actual source patches. It would be nice if someone actually good at C can clean these up and integrate them on the VideoLan source repository.
Upstream integration would be great... Have you already tried approaching someone on the VideoLan side or submitting issues/merge requests for those changes?
candela
13th May 2020, 20:35
Have you already tried approaching someone on the VideoLan side or submitting issues/merge requests for those changes?
I don't think they respond to such requests. Feel free to try, I don't know how all that git stuff works.
If you can program, we need changes to libbluray regarding playlist selection in VLC interface
xabaras414n
16th May 2020, 16:06
I will try to submit an issue regarding these patches integration, maybe pointing to this thread.
If they ask for attribution information, what should I tell them? As of now, all patches are anonymous (signed by John Doe).
Regarding libbluray: yes, I can program but I'm no C/C++ expert, nor I have experience with Qt libraries or bluray internals.
amayra
24th May 2020, 21:14
do i need this dll in my mpv setup to work ?
xabaras414n
25th June 2020, 16:18
Good news: it seems like the libaacs patches already got merged: https://code.videolan.org/videolan/libaacs/-/merge_requests/6.
The libbdplus ones are on the way: https://code.videolan.org/videolan/libbdplus/-/merge_requests/2
jbkempf
28th June 2020, 16:12
Indeed, I took some of the patches I found here and rebased + created merge requests.
For libaacs, most have been merged, but one (Don't discard unit keys unless VUK is available).
For libbdplus, it is not yet done.
Don't ask me when this will be done, since I'm not the one doing the reviews/coding.
candela
29th June 2020, 12:26
thanks xabaras414n and jbkempf
For libaacs, most have been merged, but one (Don't discard unit keys unless VUK is available).
is something wrong with this?
jbkempf
30th June 2020, 12:28
thanks xabaras414n and jbkempf
is something wrong with this?
I think the reviewers don't understand it yet (and so do I)
mick0
30th June 2020, 13:22
I think the reviewers don't understand it yet (and so do I)
Let's explain it then. ;)
Currently upstream libaacs will discard all unit keys from config file when disc have different amount of unit keys than what we have in the config file.
E.g. say we have a disc that contains four encrypted unit keys and we have an entry for that disc which contains only one unit key - and we can't get a VUK for some reason (missing VUK, missing MK or VID, missing processing key, revoked host certificate etc.). This one unit key in config file could still work for at least one title (e.g. main feature).
Currently upstream libaacs will just check that unit key count in config file don't match the unit key count in Unit_Key_RO.inf and discard the only unit key we have for that disc - which obviously means playback will fail when VUK cannot be calculated. With this patch included it won't do that, it will instead try decrypting the disc with given unit key(s) before giving up.
There are lot of cases (see FV DB xml files for examples) when a disc has e.g. seven unit keys, but six of them are never being used - or in other words - having just one unit key would decrypt the whole disc.
In above scenario with upstream libaacs one would have to make an entry like this, which doesn't make any sense
0xDISCID = LABEL | U | 1-0xUNITKEY | 2-0x00000000... | 3-0x00000000... | 4-0x00000000...
With this patch included, having an entry like this would do
0xDISCID = LABEL | U | 1-0xUNITKEY
It will still discard incomplete entries when VUK or MK+VID are available.
I hope this helps.
jbkempf
30th June 2020, 13:27
I hope this helps.
Let's hope so :)
candela
5th July 2020, 19:43
First post is updated with:
* extra bdplus tables (36 MB). Some tables are new, some tables have a different name, some tables are different. This is just a side effect of how the table list is generated. It is impossible to tell automatically which tables are correct without playing the disc. Different tables can both be correct
* some notes about command line tools and aacs_info and aacskeys to get keys manually
jbkempf
18th July 2020, 15:12
And all the patches are merged in libaacs
jbkempf
19th July 2020, 19:19
Also, quite a bit new commits from 3 other people came on libaacs lately. It might be faster than before.
jbkempf
23rd July 2020, 10:10
And a release of libaacs: 0.11 has appeared. ;)
https://code.videolan.org/videolan/libaacs/-/tags/0.11.0 (https://code.videolan.org/videolan/libaacs/-/tags/0.11.0)
candela
8th August 2020, 12:57
Windows builds 32/64 bit updated in first post. Libaacs no longer requires extra patches, libbdplus still has cached table patch and now fixes Kodi playback
jbkempf
8th August 2020, 15:14
We're focusing on improving libbluray, those days, for better menu support and misc crashes.
SilentK
25th August 2020, 17:00
I have followed your directions and attached a screen shot of the error messages. I have also attached the DEBUG File.
I am running Windows 10 64 bit and installed VLC 3.0.11 32 bit. I have a libre compliant drive that works with makeMKV.
I can play DVD's but not Blu Ray or 4K Blu Ray
Any help would surely be appreciated.
Thanks!
candela
27th August 2020, 07:41
I have followed your directions and attached a screen shot of the error messages. I have also attached the DEBUG File.
I am running Windows 10 64 bit and installed VLC 3.0.11 32 bit. I have a libre compliant drive that works with makeMKV.
I can play DVD's but not Blu Ray or 4K Blu Ray
Any help would surely be appreciated.
Thanks!
can you also upload the files on tinyupload . still cant get the attachments
SilentK
27th August 2020, 15:54
can you also upload the files on tinyupload . still cant get the attachments
Google Chrome throws a security error and won't let me upload to tinyupload. I don't know why you can't open the attachments, I can!!
SilentK
27th August 2020, 16:43
Google Chrome throws a security error and won't let me upload to tinyupload. I don't know why you can't open the attachments, I can!!
It appears the attachments are pending approval. I'm not sure who approves them but that may be the reason you can not get them.
SilentK
27th August 2020, 16:47
can you also upload the files on tinyupload . still cant get the attachments
It appears the attachments are "Pending Approval". I'm not sure who approves them but that may be why you cant get them.
I tried using tinyupload and Goggle Chrome posted a security alert and would not let me upload the files.
Emulgator
31st August 2020, 08:06
Rename them to something unsuspicious and try wetransfer.com ?
DanTheMann15
1st September 2020, 02:05
zippyshare (https://www.zippyshare.com/) is also an option if need-be.
SilentK
5th September 2020, 03:27
zippyshare (https://www.zippyshare.com/) is also an option if need-be.
Have you tried to open the files I sent? I can open them perfectly. The .png is an image file and 8 ZIP is a very common zip tool that can be downloaded via google search. I don't see why I have to use any other tool. Can someone explain why I need to use another tool other than the one I am currently using?
DanTheMann15
5th September 2020, 05:44
Have you tried to open the files I sent? I can open them perfectly. The .png is an image file and 8 ZIP is a very common zip tool that can be downloaded via google search. I don't see why I have to use any other tool. Can someone explain why I need to use another tool other than the one I am currently using?
it's not the zip tool you are using, it seems that files uploaded here for some reason need to be "approved" before anyone else can download them,
which is a stupid policy when you are just trying to upload a logfile, image, or crashdump.
the only way to circumvent this is to host your attachments elsewhere and then put a link to them here,
hence why i mentioned using a free file hosting site like zippyshare, tinyupload, etc.
i hope this is helpful.
jbkempf
24th October 2020, 19:16
Btw, libbluray 1.2.1 is now out.
mick0
24th October 2020, 23:39
I have followed your directions and attached a screen shot of the error messages. I have also attached the DEBUG File.
I am running Windows 10 64 bit and installed VLC 3.0.11 32 bit. I have a libre compliant drive that works with makeMKV.
I can play DVD's but not Blu Ray or 4K Blu Ray
Any help would surely be appreciated.
Thanks!
It seems your attachments got approved.
Logfile you attached comes from VLC and doesn't contain messages from libaacs. We would need to see the libaacs log instead.
However, from that error message we can tell that either 1) you don't have host certificates in your keyfile or 2) all host certificates in your keyfile have been revoked by your drive.
Note that for 4K blurays to work you need to use AACS1 drive with a friendly firmware. AACS2 drives require AACS2 host certificates for 4K discs. Libre compliant drive that works with makemkv doesn't necessarily mean that the drive is friendly.
nuraman00
27th October 2020, 01:42
I tried the steps in the OP.
I am getting an error when I try to play the Blu-Ray.
I can't attach the log file because it says the max attachment size is 200 KB.
The log file is 3,346 KB.
nuraman00
27th October 2020, 02:13
I zipped the log file.
nuraman00
31st October 2020, 22:01
Here it is on ZippyShare.
https://www46.zippyshare.com/v/HzrkEeDC/file.html
candela
31st October 2020, 23:50
Here it is on ZippyShare.
https://www46.zippyshare.com/v/HzrkEeDC/file.html
Libaacs can't retrieve the key for that disc, use FindVuk
DanTheMann15
1st November 2020, 18:36
@nuraman00
you can get FindVUK here: https://forum.doom9.org/showthread.php?t=172472
and DVDFab here: https://www.dvdfab.cn/download.htm
nuraman00
1st November 2020, 23:22
EDIT:
Nevermind.
candela
1st November 2020, 23:30
How do you know it's looking for FindVuk? I searched through the logs for "FindVuk", but couldn't see that reference.
FindVUK is a program to extract the keys needed for playback from the commercial ripper DVDFab. Also when you run FindVUK, it synchronizes your local key database with the online database. Once someone uses FindVUK on a particular disc, the key gets added to the database and then everyone can play that disc. Since no one has added the key to the database before, you will have to do it.
nuraman00
1st November 2020, 23:30
Libaacs can't retrieve the key for that disc, use FindVuk
@nuraman00
you can get FindVUK here: https://forum.doom9.org/showthread.php?t=172472
and DVDFab here: https://www.dvdfab.cn/download.htm
Thanks. After I try these steps, I will let you know what happens, or if I need more help.
nuraman00
9th November 2020, 03:05
Now the Blu Ray plays, but I'm getting this error:
This Blu-ray disc requires Java for menus support.Java was not found on your system.
The disc will be played without menus.
I have java installed here:
C:\Program Files\Java\jdk-12.0.1
nuraman00
9th November 2020, 03:12
This is the log file:
src/libaacs/aacs.c:1276: libaacs 0.11.0 [176]
src/libaacs/aacs.c:1278: Initializing libgcrypt...
src/libaacs/unit_key.c:196: 1 CPS unit keys (AACS1)
src/libaacs/unit_key.c:98: Assigning CPS units to titles ...
src/libaacs/unit_key.c:109: Title FP : CPS unit 1
src/libaacs/unit_key.c:110: Title TM : CPS unit 1
src/libaacs/unit_key.c:130: Title 01 : CPS unit 1
src/libaacs/unit_key.c:130: Title 02 : CPS unit 1
src/libaacs/unit_key.c:130: Title 03 : CPS unit 1
src/libaacs/unit_key.c:130: Title 04 : CPS unit 1
src/libaacs/aacs.c:1078: Disc ID: ba4590ca75e050e4760dba62404ebcb9a6749235
src/file/file_win32.c:131: Opened WIN32 file C:\Users\nuram\AppData\Roaming\aacs\KEYDB.cfg (04f4b3b0)
src/file/keydbcfg.c:101: Opened C:\Users\nuram\AppData\Roaming\aacs\KEYDB.cfg for r
src/file/keydbcfg.c:567: found config file: C:\Users\nuram\AppData\Roaming\aacs\KEYDB.cfg
src/file/file_win32.c:46: Closed WIN32 file (04f4b3b0)
src/file/file_win32.c:131: Opened WIN32 file C:\ProgramData\aacs\KEYDB.cfg (04f4b4c8)
src/file/keydbcfg.c:125: Reading C:\ProgramData\aacs\KEYDB.cfg
src/file/keydbcfg.c:567: found config file: C:\ProgramData\aacs\KEYDB.cfg
src/file/file_win32.c:46: Closed WIN32 file (04f4b4c8)
src/file/file_win32.c:113: Error opening file C:\Users\nuram\AppData\Roaming\aacs\ProcessingDeviceKeysSimple.txt
src/file/keydbcfg.c:101: C:\Users\nuram\AppData\Roaming\aacs\ProcessingDeviceKeysSimple.txt not found
src/file/file_win32.c:113: Error opening file C:\ProgramData\aacs\ProcessingDeviceKeysSimple.txt
src/file/keydbcfg.c:136: C:\ProgramData\aacs\ProcessingDeviceKeysSimple.txt not found
src/file/file_win32.c:113: Error opening file C:\Users\nuram\AppData\Roaming\aacs\HostKeyCertificate.txt
src/file/keydbcfg.c:101: C:\Users\nuram\AppData\Roaming\aacs\HostKeyCertificate.txt not found
src/file/file_win32.c:113: Error opening file C:\ProgramData\aacs\HostKeyCertificate.txt
src/file/keydbcfg.c:136: C:\ProgramData\aacs\HostKeyCertificate.txt not found
src/file/keydbcfg.c:659: Config summary:
src/file/keydbcfg.c:661: 0 Device keys
src/file/keydbcfg.c:663: 19 Processing keys
src/file/keydbcfg.c:665: 8 Host certificates
src/file/keydbcfg.c:667: 1 Disc entries
src/libaacs/aacs.c:1321: Starting AACS waterfall...
src/file/file_win32.c:113: Error opening file C:\Users\nuram\AppData\Roaming\aacs\vuk\ba4590ca75e050e4760dba62404ebcb9a6749235
src/file/keydbcfg.c:387: C:\Users\nuram\AppData\Roaming\aacs\vuk\ba4590ca75e050e4760dba62404ebcb9a6749235 not found
src/libaacs/aacs.c:1006: Searching for keydb config entry...
src/libaacs/aacs.c:841: Found config entry for discid ba4590ca75e050e4760dba62404ebcb9a6749235
src/libaacs/aacs.c:875: Acquire CPS unit keys from keydb config file...
src/libaacs/aacs.c:913: Unit key 0 from keydb entry: 0a34a4ec251da52d7273b2d8b398abbf
src/file/mmc_device_win32.c:140: Opening Windows MMC drive D:\...
src/file/mmc_device_win32.c:161: Windows MMC drive \\.\D: opened
src/libaacs/mmc.c:132: MMC get configuration [feature 0x10d] ...
src/file/mmc_device_win32.c:122: Send succeeded!
src/libaacs/mmc.c:231: AACS feature descriptor:
src/libaacs/mmc.c:232: AACS version: 1
src/libaacs/mmc.c:233: AACS active: 1
src/libaacs/mmc.c:234: Binding Nonce generation support: 1
src/libaacs/mmc.c:235: Binding Nonce block count: 1
src/libaacs/mmc.c:236: Bus encryption support: 1
src/libaacs/mmc.c:237: Read drive certificate: 1
src/libaacs/mmc.c:238: AGID count: 2
src/libaacs/mmc.c:66: MMC report key...
src/file/mmc_device_win32.c:122: Send succeeded!
src/libaacs/aacs.c:1139: Bus Encryption Capable flag in drive certificate: 1
src/libaacs/mmc.c:413: Closed MMC drive
src/libaacs/aacs.c:1344: AACS initialized!
src/libaacs/mkb.c:79: MKB size: 14944
src/libaacs/mkb.c:49: Retrieved MKB record 0x10 (04f58e38)
src/libaacs/mkb.c:80: MKB type: 0x41003
src/libaacs/mkb.c:49: Retrieved MKB record 0x10 (04f58e38)
src/libaacs/mkb.c:81: MKB version: 72
src/libaacs/mkb.c:49: Retrieved MKB record 0x10 (04f58e38)
src/libaacs/aacs.c:1690: aacs_set_title(first_play): CPS unit 0
src/libaacs/aacs.c:1690: aacs_set_title(first_play): CPS unit 0
src/libaacs/aacs.c:1360: AACS destroyed!
Ghostsmurf
21st November 2020, 11:14
Hello everyone,
Thank you for this amazing tutorial and providing all those ressources !
I would like to ask a question which seems appropriate in this thread "Bluray playback with libaacs & libbdplus" :
In which folder should I put libaacs and libbdplus in the following setup : Potplayer + LAVFilters + MadVR ?
For VLC everything works fine but I'd prefer to use PotPlayer as my default player for Blurays.
I hope you can help me,
Have a great day,
Ghostsmurf.
SpaceSaver
6th December 2020, 22:18
Hello everyone,
Thank you for this amazing tutorial and providing all those ressources !
I would like to ask a question which seems appropriate in this thread "Bluray playback with libaacs & libbdplus" :
In which folder should I put libaacs and libbdplus in the following setup : Potplayer + LAVFilters + MadVR ?
For VLC everything works fine but I'd prefer to use PotPlayer as my default player for Blurays.
I hope you can help me,
Have a great day,
Ghostsmurf.
Hi Ghostsmurf!
I have done a little research regarding your question and to me it would make sense to install the libraries to PotPlayer since LAVFilters and MadVR are playing the content through PotPlayer. I would recommend trying that and going from there.
Hope this helps!
Have a superb day,
SpaceSaver
SpaceSaver
6th December 2020, 22:29
Now the Blu Ray plays, but I'm getting this error:
This Blu-ray disc requires Java for menus support.Java was not found on your system.
The disc will be played without menus.
I have java installed here:
C:\Program Files\Java\jdk-12.0.1
Hi nuraman00!
I have done some research on your problem and have come up with two things you should try. Make sure the version of Java is the same as VLC (64bit or 32bit), and try setting the JAVA_HOME environment variable to the location where the Java executable is installed.
Hope this helps!
Have an amazing day,
SpaceSaver
Grimsdyke
25th December 2020, 13:37
UHD playback requires a UHD friendly drive, i.e. a non-AACS2.0 drive that supports reading UHD discs and accepts AACS1.0 Host Certs
In the last couple of days I did set this up to become a little more independent of the usual apps. Great work, thanks !!
However, unfortunately none of my UHDs work so, I guess, my drive does not have the above abilities, right ?
Emulgator
28th December 2020, 17:17
You don't need to guess, more knowledge is here:
https://makemkv.com/forum/viewforum.php?f=16
hnsteyding
5th January 2021, 22:10
1. Download and install the following Java environments via link below:
OpenJDK 19.0.2:
https://www.oracle.com/java/technologies/javase/jdk19-archive-downloads.html
jdk-19.0.2_windows-x64_bin.exe
!!! Attention !!!
Don't use JDK (Java SE Development Kit) Version 20 or above - libbluray does not support these versions at the moment !!
JRE 8:
https://www.java.com/de/download/manual.jsp
jre-8u391-windows-x64.exe
jre-8u391-windows-i586.exe
2. Set system variable:
Name: JAVA_HOME
Path: C:\Program Files (x86)\Java\jre-1.8
3. Download und compile libaacs and libbdplus libraries via links below:
Download libaacs: https://www.videolan.org/developers/libaacs.html
Download libbdplus: https://www.videolan.org/developers/libbdplus.html
Download latest ANT binaries:
https://archive.apache.org/dist/ant/binaries/?C=M;O=D
apache-ant-1.10.14-bin.zip
Extract binaries package and move containing folders BIN,LIB,ETC to /mingw32 (x86) or /mingw64 (x64)
Compile libbluray library (without option --disable-bdjava-jar !!)
4. Move compiled DLLs ("libaacs-0.dll", "libbdplus-0.dll") to corresponding MPLayer binary (MPLayer.exe) directory und rename to "libaacs.dll" and "libbdplus.dll"
Move JAR files (e.g. libbluray-awt-j2se-1.3.4.jar, libbluray-j2se-1.3.4.jar) from source code sub folder ".libs"
to corresponding MPLayer binary (MPLayer.exe) directory.
5. Download AACS keydb.cfg file via http://fvonline-db.bplaced.net and move it to "C:\Users\<YourWindowsUser>\AppData\Roaming\aacs"
For example "C:\Users\WonderFox\AppData\Roaming\aacs". Just create an "aacs" folder if it doesn't exist in the subfolder of "Roaming".
6. Now run MPLayer: "mplayer -cache 8192 br:///E:" in case E: is your Bluray drive
Troubleshooting:
--------------------------------------------------------------------------------------------------------------------------------------------------------
Bluray would not be played - MPLayer message(s):
----------------------> ../src/libaacs/aacs.c:597: Error calculating media key. Missing right processing key ?
../src/libaacs/mmc.c:682: Drive does not support reading drive certificate
../src/libaacs/aacs.c:1142: Unable to read drive certificate
src/libbluray/disc/aacs.c:121: No usable AACS libraries found!
src/libbluray/disc/dec.c:197: aacs_open() failed: -3!
src/libbluray/bdj/bdj.c:750: BD-J check: Failed to load JVM library
src/libbluray/bdj/bdj.c:750: BD-J check: Failed to load JVM library
Fülle Zwischenpuffer: 0.00% (0 Bytes) src/libbluray/bluray.c:752: Skipping broken unit at 0
src/libbluray/bluray.c:299: 00002.m2ts: no timestamp for SPN 0 (got 0). clip 90000-436666140.
src/libbluray/bluray.c:752: Skipping broken unit at 0
src/libbluray/bluray.c:752: Skipping broken unit at 6144
...
src/libbluray/bluray.c:695: TP header copy permission indicator != 0. Stream seems to be encrypted.
...
Explanation:
------------
The AACS keydb.cfg file does not contain the appropriate Device- and/or ProcessingKeys for AACS library for your Bluray device.
Solution:
---------
Download latest FindVUK version via link below:
http://fvonline-db.bplaced.net/findvuk/?C=M;O=D
Install one of the following programs:
DVDFab 10.0.4.8
Passkey 9.2.1.1 or
Media Player 3.2.0.0.
Registered versions are recommended !
However, newwer versions of DVDFab has stopped supporting these players for newer discs. Latest DVDFab programs only allow retrieval of UnitKeys.
Start FindVUK and follow the instructions.
--------------------------------------------------------------------------------------------------------------------------------------------------------
Bluray would not be played - MPLayer message(s):
----------------------> ../src/file/keydbcfg.c:701: No valid AACS configuration files found
../src/libaacs/mmc.c:682: Drive does not support reading drive certificate
../src/libaacs/aacs.c:1142: Unable to read drive certificate
src/libbluray/disc/aacs.c:121: No usable AACS libraries found!
src/libbluray/disc/dec.c:197: aacs_open() failed: -2!
src/libbluray/bdj/bdj.c:750: BD-J check: Failed to load JVM library
src/libbluray/bdj/bdj.c:750: BD-J check: Failed to load JVM library
Fülle Zwischenpuffer: 0.00% (0 Bytes) src/libbluray/bluray.c:752: Skipping broken unit at 0
src/libbluray/bluray.c:299: 00002.m2ts: no timestamp for SPN 0 (got 0). clip 90000-436666140.
src/libbluray/bluray.c:752: Skipping broken unit at 0
src/libbluray/bluray.c:752: Skipping broken unit at 6144
...
src/libbluray/bluray.c:695: TP header copy permission indicator != 0. Stream seems to be encrypted.
src/libbluray/bluray.c:752: Skipping broken unit at 55296
...
Solution:
---------
Check if the AACS keydb.cfg file is located in "C:\Users\<YourWindowsUser>\AppData\Roaming\aacs"
For example "C:\Users\WonderFox\AppData\Roaming\aacs". Just create an "aacs" folder if it doesn't exist in the subfolder of "Roaming".
--------------------------------------------------------------------------------------------------------------------------------------------------------
MPLayer message(s):
...
----------------------> src/libbluray/bdj/bdj.c:750: BD-J check: Failed to load JVM library
----------------------> src/libbluray/bdj/bdj.c:750: BD-J check: Failed to load JVM library
...
Solution 1:
-----------
Copy JAR files (e.g. libbluray-awt-j2se-1.3.4.jar, libbluray-j2se-1.3.4.jar) from source sub folder ".libs" corresponding MPLayer binary (MPLayer.exe) directory.
Solution 2:
-----------
Delete system variable "JAVA_HOME"
daviduu
28th January 2021, 05:47
Thought I should quickly write about my experience using these instructions for VLC. I had a few snags here and there but things seem to be working fairly well for the most part.
The first hiccup (which was due to my own confusion with the instructions) occurred because, while I put the aacs and libbdplus DLLs in the corresponding %programdata% folders, I hadn't copied them into the VLC folder in my C: drive. After putting copies of the DLLs inside that folder, I was able to play Blu-rays pretty smoothly.
Menus weren't working at first, but downloading Java fixed that.
I was occasionally getting some fragmenting with certain discs in certain chapters, but disabling hardware-accelerated decoding seems to have fixed that issue.
I've been using VLC to watch my Twin Peaks Blu-rays, and the program seems to crash reliably in the same spot right before getting to the main menu (after selecting the language and right after the DTS logo). I've been able to circumvent this by changing the starting position to title 3 when opening the discs. Doing this opens the disc into one of the episodes, allowing me to hit shit+m to reach the main menu.
I've occasionally had issues where playback won't continue when a new chapter is reached, and I haven't found a great fix for this other than manually clicking the progress bar forward. This has only happened on two episodes so far. If anyone has any suggestions, let me know. I'll admit I'm not really knowledgeable about this stuff and have essentially cobbled enough knowledge together to barely scrape by.
Count_Omega
17th April 2021, 12:30
Hi all, I´ve tried ( unsuccessfully) to playback my Legion blu ray disk with vlc. I did all the steps candela described in the intitial post. VLC keeps complaining about the missing libary despite it being installed. Log:
src/libbluray/disc/bdplus.c:142: attempting to load libbdplus
and
-- logger module started --
main: VLC is run with the default interface. Use 'cvlc' to use VLC without interface.
main: playlist is empty
libbluray: First play: 0, Top menu: 0
HDMV Titles: 5, BD-J Titles: 86, Other: 86
libbluray: First play: 0, Top menu: 0
HDMV Titles: 5, BD-J Titles: 86, Other: 86
-- logger module stopped --
i also tried 32 bit VLC.
I guess the libary isn´t "recognized" by VLC. Any thoughts on this? My drive is a Hitachi hl-dt-st bddvdrw ch10n.
daviduu
23rd June 2021, 03:11
Thought I'd write an update of sorts to my last post.
I just bought Second Sight's release of Lake Mungo on Blu-ray, and when I put it in my disc drive, I was sad to see an error relating to AACS and keys (I figure because it's such a new release). I was fiddling around with MakeMKV afterwards and realized there's an option in the preferences which allows VLC to use MakeMKV to decrypt Blu-ray discs. I checked the box, closed MakeMKV, fired up VLC and voila, the disc played perfectly. This might be a placebo, but it seems to load a bit faster than the method outlined here, and it seems like you don't have to do as much fiddling. I've since removed everything from the steps listed here and all is still good. We'll see how it works in the long run.
A funny change I've noticed is that VLC no longer loads a splash card upon loading the disc. No idea why.
I think it's worth checking out for anyone interested in BD playback in VLC!
Edit: It seems I've spoken too soon! I was testing VLC with other discs and it seems to crash a lot with the MakeMKV method. I guess I'll be using both for now.
Grimsdyke
25th June 2021, 09:40
I am using the "system wide" settings in MakeMKV and have not had any problems so far !
By the way, does anyone maybe know how to set up this decryption only as a Windows service ?
richy
8th July 2021, 19:07
I've just been checking a stack of discs I've acquired to make sure their keys were already in the online database before I got shot of most of them. Any that were missing keys I've been submitting via FindVUK.
One of the first few I tried was an Alvin and the Chipmunks movie trilogy set and I soon discovered they were blighted with BD+ so I produced my own set of tables using Pavtube BDMagic and BlurayTest&Decrypt as well. I've done this before with other Fox titles I own because I figure it doesn't hurt to double check them against the "official" ones (in the first post of this thread) to make sure they're ok. On this occasion I wasn't able to do the first film using my normal method and had to use bdvmdbg instead because BDMagic didn't produce a table for this one... I'm guessing because it's a MKBv7 disc??
Anyway, the first two films matched the existing tables and played fine. The third one, however, consistently produced a table that was the same size as the existing one but was not an exact match. I even deleted the files BDMagic had downloaded and re-did the whole process and still got the same result.
Looking in a hex editor I can see that there's a whole run where every 16th byte differs for about 34 instances, then there's a gap, then there's a run of differences every 16th byte for 32 instances... and so on, and so on. Basically, there is a lot of similarity but they obviously aren't identical. What doesn't help is that both tables *appear* to work ok with my disc in terms of playback. I don't know whether BD+ would only affect specific files or whether the whole disc would be affected. For instance, I've only skimmed the main movie and one of the extras and they seemed ok to me.
Presumably it isn't technically possible to produce two tables that aren't identical and yet have them both work ok... right?
Alvin and the Chipmunks: Chipwrecked MKBv23
Disc ID: EB347A795DB26D90EF780868805FF850082865E2
Media key: EAAB32C8E239547746AC537E9D2E5410
Existing BD+ table CRC32: 6F33BE9C
My BD+ table CRC32: F9D2F008
I've tried having a look at them in ConvTableView but it's really way over my head. Would it be any use if I sent my table for someone to look at? I'd hate to think that a cinematic classic such as this had an incorrect BD+ table ;)
TL;DR - is it possible to have two differing BD+ tables for the same title?
maetel99
10th July 2021, 06:52
TL;DR - is it possible to have two differing BD+ tables for the same title
I believe the answer is yes. The reason is that there are values in the BD+ fixup tables called "type 2" switchable entries. During the decryption of the tables, those entries are resolved into either inactive "type 0" entries or active "type 1" entries.
The different BD+ tools store the resolved active "type 1" entries in different ways, with some tools leaving the "type 2" bit still set and others clearing that bit and storing them as true "type 1" entries.
My guess is that players ignore the "type 2" bit during playback so that it doesn't matter which format you use to store the table. However, tables stored by two different tools might end up with differing entries.
richy
11th July 2021, 12:29
Thanks for your reply and I'm pretty sure you're right as after reading it it occurred to me that I ought to be able to verify if the tables were both producing the same results by hashing and comparing the decrypted video files - a lot more scientific than trying to spot if two videos that looked ok were actually the same just by watching them!
I initially compared the checksums of some of the smaller files and they matched so I ended up creating two full iso images using the two different tables and both were 100% identical.
I use Xreveal as it's free and can decrypt discs on the fly and I also noticed that it creates a temporary text file which appears to be a cached version of all the addresses it needs to patch (headings of LBA, Addr, Data followed by 15904 entries). Using the two different tables produced an identical text file both times (which is what you'd expect if the decrypted files were the same) so after all that belt and braces checking I guess I've now got a definitive answer to my question. :)
I don't know if either table is a more "elegant"(?) option but if I do happen to get differing tables in the future I can at least verify them 100%. If anyone does want a copy of my table for any reason then just let me know.
candela
11th July 2021, 22:48
Thanks for your reply and I'm pretty sure you're right as after reading it it occurred to me that I ought to be able to verify if the tables were both producing the same results by hashing and comparing the decrypted video files - a lot more scientific than trying to spot if two videos that looked ok were actually the same just by watching them!
I initially compared the checksums of some of the smaller files and they matched so I ended up creating two full iso images using the two different tables and both were 100% identical.
It won't always work. I've seen different tables that patch the 5 corrected bytes with an addres offset of 1 (so in a sequence of 6 bytes, only 4 get patched to the same value by the different tables). Yet both tables seem to work. It may be some kind of watermarking going on to identify the emulated player (or simply an error in one of the tables, can't really know)
I use Xreveal as it's free and can decrypt discs on the fly and I also noticed that it creates a temporary text file which appears to be a cached version of all the addresses it needs to patch (headings of LBA, Addr, Data followed by 15904 entries). Using the two different tables produced an identical text file both times (which is what you'd expect if the decrypted files were the same) so after all that belt and braces checking I guess I've now got a definitive answer to my question. :)
This would be the same as the Convtabview columns +address 0, +address 1, patch0, patch1
I don't know if either table is a more "elegant"(?) option but if I do happen to get differing tables in the future I can at least verify them 100%. If anyone does want a copy of my table for any reason then just let me know.
Like maetel99 said, the difference in table hash is sometimes caused by the different entry types. Unfortunately the original cached libbdplus format removed the inactive entries (instead of keeping them and ignoring) which causes all the offsets in the table to change.
The encrypted version of the table is actually somewhere in the BDSVM files on the disc (except for the final versions of bdplus). You can find them by searching for the table headers, eg search for the first 12 bytes of the table in the BDSVM files. Note that later BD+ version have more than 1 encrypted table, requiring different encryption keys (targeting different players)
Basically the cached table matches a encrypted version on the disc, except the "patch 0/1" data has been decrypted. But because of those removed entries and changed offsets in the tables in this collection, it's not always possible to easily compare them.
It would be possible to seriously reduce the table database size by supplying only the decryption keys for the tables on the disc. It would allow you to generate the decrypted table for Libbdplus using your disc and the keys. It's probably more reliable. But we would need a cross platform user friendly tool.
trucide
1st September 2021, 14:56
With libaacs and a proper keydb (thanks to findVUK), I can decrypt nearly all of my bluray on the fly and play them with VLC and Kodi.
I wonder if this combo can be used with other softwares who need to access bluray ? For example, BDInfo is unable to decrypt a blu ray directly from the disc. Ideally, if a software like AnyDVD HD could be coupled to libaacs, we could achieve a complete access to blu ray discs. Is there a way to achieve that ? or is it completely foolish ?
Anyway, a big thanks to all those who contribute to develop these tools that help us to be independent from blu ray player manufacturers.
nevcairiel
1st September 2021, 15:38
If you already have AnyDVD HD, you don't need libaacs anymore, since AnyDVD HD will decrypt the disc before any other software can see it.
On the other side, MakeMKV actually can make its decryption engine mimick libaacs and libbdplus, so with that you can also play discs that MakeMKV can decrypt without needing a seperate libaacs setup.
trucide
2nd September 2021, 17:00
Thank you for your answer.
I don't have and don't want to use anyDVD. My question was about replacing anyDVD who decrypt the bluray "on the fly" (which allow free access to the content of the bluray, so any video player who can read mkv will play movie files directly from the disc) with an open soft that doesn't need to access the internet to find the bluray keys and just get them from keybd (via libaacs ?)
>> Free access to the content of the bluray whatever soft used, without access to the internet.
I don't know if I'm clear. English is not my maternal language.
richy
5th September 2021, 15:15
I'd recommend Xreveal by yubsoft. It's a free on-the-fly decrypter that uses the keys from your keydb.cfg file to decrypt any blu-ray you insert and doesn't require access to the internet.
Emulgator
5th September 2021, 21:05
My question was about replacing anyDVD who decrypt the bluray "on the fly" (which allow free access to the content of the bluray, so any video player who can read mkv will play movie files directly from the disc) with an open soft that doesn't need to access the internet to find the bluray keys and just get them from keybd (via libaacs ?)
MakeMKV can do that. (Ah, just saw it, Nev mentioned it too)
You can expose libmmbd to other programs (like players).
nalor
6th September 2021, 07:26
I'd recommend Xreveal by yubsoft. It's a free on-the-fly decrypter that uses the keys from your keydb.cfg file to decrypt any blu-ray you insert and doesn't require access to the internet.Sounds interesting [emoji2]
Will test it tonight.
Gesendet von meinem H8324 mit Tapatalk
trucide
8th September 2021, 08:55
I'd recommend Xreveal by yubsoft. It's a free on-the-fly decrypter that uses the keys from your keydb.cfg file to decrypt any blu-ray you insert and doesn't require access to the internet.
Thank you very much !
I'll try it tonight. :thanks:
trucide
8th September 2021, 08:59
MakeMKV can do that. (Ah, just saw it, Nev mentioned it too)
You mean you can use MakeMKV without internet, with just the keydb file ? I've vaguely tried this once, but to no effect.
You can expose libmmbd to other programs (like players).
Can you develop a little bit ?
How can you do that ?
Thank you very much for any insight.
candela
8th September 2021, 18:57
can we please stop talking about 3rd party applications that work without libaacs/libbdplus, since the whole point of this thread was to avoid such applications. Use a different forum thread for those.
nst
8th October 2021, 19:55
Hello all,
I'm not entirely sure if all changes to libaacs are merged to upstream yet (IIRC they are). Regarding libbdplus and the cached convtab functionality: Cached convtabs are working with and is fully supported by upstream libbdplus as of today! The functionality itself was added upstream in the last few days except the automatic load from the cache directory. I created a merge request for this missing bit and added table loading from .config/bdplus (suggestion by the upstream maintainers) aswell as loading from the system config dir, that MR got merged today. Also, BD+ disc playback from within Kodi got fixed properly in libbluray, so the patch tampering with bdplus_m2ts() isn't necessary anymore when using libbluray from GIT HEAD.
Thanks to the original authors of the original patches, making BD playback (on Linux and Kodi) possible without the need for proprietary closed blobs!
Regards,
nst
farmerjoe
2nd January 2022, 10:11
Good morning,
yesteday VLC told my that the key of the movie (Ghost_in_the_Shell) I wanted to watch was revoked - never seen that before with 200+ discs.. anyone know hat the issue is?
Made a backup of the movie to disc using MakeMKV with the same keyfile and had no issues at all.
Brgds
Joe
daviduu
15th February 2022, 03:26
Like others in this thread, I started getting the following error message when trying to load a disc: "Blu-ray error: No valid processing key found in AACS config file." This started happening on discs that I'd for sure played in the past. I've found that using MakeMKV to decrypt the disc has worked (although I had to make sure I had a working beta key). VLC will initially crash, but reopening the program and the disc seems to work fairly reliably.
candela
16th February 2022, 19:42
The keydb.cfg currently has:
Processing Key up to MKBv68
Host Certificate revoked in MKBv72
Disc specific keys up to MKBv76
If you have attempted to play a disc with MKBv72 or higher the host certificate is revoked by your drive:
You can no longer play discs that have bus encryption enabled (unless bus key was cached by VLC or your drive does not support bus encryption)
You can no longer play discs without a disc specific key (in keydb.cfg or cached by VLC)
Problems
"Ghost in the shell" -> probably has bus encryption
"Blu-ray error: No valid processing key found in AACS config file." This started happening on discs that I'd for sure played in the past. -> Hard to believe you played these discs before because there would have been a disc specific key, or the processing key generated the disc specific VUK which would be cached by VLC on your PC
PoShawnified
28th March 2022, 17:25
Made an account to thank @candela for the steps.
Threw this together for myself but will share it here in case it helps any other Windows users. No warranty and no guarantees ;) https://github.com/PoShawnified/VLC_BluRay_Support
demomode
11th April 2022, 19:53
If you have attempted to play a disc with MKBv72 or higher the host certificate is revoked by your drive:
You can no longer play discs that have bus encryption enabled (unless bus key was cached by VLC or your drive does not support bus encryption)
You can no longer play discs without a disc specific key (in keydb.cfg or cached by VLC)
And what can we do to play this disc on VLC?
RealSnoopyDog
30th April 2022, 11:46
You'll either need a new "Host Cerificate" (and I always ask myself where they come from - are they just "findings" or can they be calculated) or maybe an alternate firmware for the drive like LibreDrive might help. But I don't have experience with LibreDrive, I only know that you should flash it BEFORE you try to playback a Blu-Ray which requires a newer host certificate. And the latest revision that I find is from 2020
I still playback my old Blu-Rays without any problems with this software, LAV and DVBViewer. But I did not buy any new Blu-Rays the last months. Not because streaming movies from different platforms is possible. I still would prefer to buy new movies on a Blu-Ray from time to time because the picture and sound quality is much better compared to streaming. But I want to avoid the risk that an updated required host certificate on a new Blu-Ray will "kill" my drive and I can not watch my old movies anymore. So congratulations to the paranoic content protection "mafia", you ruin your own business.
And thank you very much candela for giving us this software, it works very satisfying from the beginning.
Roof Tile
3rd May 2022, 13:59
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, working off of the nice post by hnsteyding to do so.
It took far longer than it should have due to me not understanding how all of this works, but I finally was able to get the files in their new, shiny glory and got them to work with VLC like the old set. Given how hard it was for me to figure this all out, I'm throwing up my 64-Bit versions of the files and the instructions of how I did so both to help others and in case I somehow messed something up without knowing it.
Edit: Fixed some terrible spelling on my part in the instructions and added a little note to say what version of libaacs and libbdplus the files are for future people's clarification.
Content isn't any different besides that.
StainlessS
26th May 2022, 05:19
I'de like to try your updated libs but alas, Attachments Pending Approval, still.
[why in 4 part RAR for piddly little files - cant be that big. {EDIT: Maybe avoid malware scan ???}]
EDIT: Great, attachments approved. Thanx Mod.
hnsteyding
28th May 2022, 23:36
@Roof Tile:
Hint regarding to your making instructions - Topic 3:
"3. Install the latest version of Ant from here (https://ftp-stud.hs-esslingen.de/pub/Mirrors/ftp.apache.org/dist//ant/binaries/) by putting its BIN,LIB,ETC files
inside /mingw32 (x86) or /mingw64 (x64) depending on what build you are making. *I don't know if this is actually needed, but the guide said it was so I do it*"
ANT is only required if you want compile libbluray library with BD-J (Blu-ray Disc Java) support.
:)
Regards.
Bahamuth
21st July 2022, 07:07
Hi everyone,
I have a BluRay from a 2007 movie (The Simpsons movie, German one). And it is kinda strange, that the bdplus tables do not have any entry for that, isn't it?
FindVUK database lists three DiscIDs with the name of the disc:
0x704DC40295374F2450A675E2ADC7F54D33FC203A = SIMPSONS_MOVIE_F2 | D | 2007-10-03 | V | 0xF169EF38CE36B19E63B060788C1F2C8D | M | 0x98A87950D323B12A1D8E9D5475D90959 | I | 0xD35AE8AA31B7B7BEA588E792A79B1DFE | U | 1-0x68E98204C5E70658CEB0C3C3136F4934 ; MKBv4/BD+/FindVUK 1.07 - MainPlaylist: 00116.mpls - VolumeSize: 33901182976 (BD)
0x760E63AE7B491F96E8BC080DE25015C31A1C57BA = SIMPSONS_MOVIE_F2 | D | 2007-10-03 | V | 0xAC2F600506AE8CCEBB6B630D11CBC1CB | M | 0x98A87950D323B12A1D8E9D5475D90959 | I | 0xA9C3C947131BFC6F2C681A8EB8CFF31C | U | 1-0x68E98204C5E70658CEB0C3C3136F4934 ; MKBv4/BD+/FindVUK 1.38 - MainPlaylist: 00116.mpls - VolumeSize: 33901182976 (BD)
0x7D807F13D5948FE89DA2E3BF21CEAFE265D8401B = SIMPSONS_MOVIE_F2 [The Simpsons Movie] | D | 2007-10-28 | V | 0x1AA7C2F98D320FAB647B73A4F777BB25 | M | 0x98A87950D323B12A1D8E9D5475D90959 | I | 0x61EAFAF0219B22B96092C0E7A1218486 | U | 1-0x68E98204C5E70658CEB0C3C3136F4934 ; libaacs (LEGACY) (NOTVALIDATED) (BD)
The middle one is mine. But none of the DiscIDs can be found in AppData\Roaming\bdplus\convtab after downloading all cached BD+ tables. Is the first gen somehow not included or do I have a very special movie there?
candela
21st July 2022, 09:38
Hi everyone,
I have a BluRay from a 2007 movie (The Simpsons movie, German one). And it is kinda strange, that the bdplus tables do not have any entry for that, isn't it?
The middle one is mine. But none of the DiscIDs can be found in AppData\Roaming\bdplus\convtab after downloading all cached BD+ tables. Is the first gen somehow not included or do I have a very special movie there?
BD+ tables are not identified by DiscID but by MK (98A87950D323B12A1D8E9D5475D90959_SIMPSONS_MOVIE_F2.bin)
Bahamuth
21st July 2022, 10:05
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, working off of the nice post by hnsteyding to do so.
It took far longer than it should have due to me not understanding how all of this works, but I finally was able to get the files in their new, shiny glory and got them to work with VLC like the old set. Given how hard it was for me to figure this all out, I'm throwing up my 64-Bit versions of the files and the instructions of how I did so both to help others and in case I somehow messed something up without knowing it.
Edit: Fixed some terrible spelling on my part in the instructions and added a little note to say what version of libaacs and libbdplus the files are for future people's clarification.
Content isn't any different besides that.
Funny that the "Instructions when making new build" say "Rename "libaacs-0.dll" and "libbdplus-0.dll" to remove the "-0"" but when doing so and running aacs_info it tells me, that it cannot find libaacs-0.dll.
Bahamuth
21st July 2022, 10:06
BD+ tables are not identified by DiscID but by MK (98A87950D323B12A1D8E9D5475D90959_SIMPSONS_MOVIE_F2.bin)
Ah I see. Guess I have to write to the BlurayTestAndDecrypt-guy then, because watching the process with Process Monitor, it is searching for a file named conv_tab_ + DiscID. There's where my ignorance came from about the ID.
Thank you!
Roof Tile
23rd July 2022, 12:15
Sorry for not checking up on this in forever, my bad.
I'de like to try your updated libs but alas, Attachments Pending Approval, still.
[why in 4 part RAR for piddly little files - cant be that big. {EDIT: Maybe avoid malware scan ???}]
EDIT: Great, attachments approved. Thanx Mod.
I tried just uploading it in one part but for some reason it hated that. So, I split it up into the amount it said was the limit and went with that. I probably just didn't read something correctly, but I figured this place had a data limit to prevent spam or the like. Sorry to give you a scare about malware, wasn't my intention to seem nefarious or anything but I totally understand the concern.
@Roof Tile:
Hint regarding to your making instructions - Topic 3:
"3. Install the latest version of Ant from here (https://ftp-stud.hs-esslingen.de/pub/Mirrors/ftp.apache.org/dist//ant/binaries/) by putting its BIN,LIB,ETC files
inside /mingw32 (x86) or /mingw64 (x64) depending on what build you are making. *I don't know if this is actually needed, but the guide said it was so I do it*"
ANT is only required if you want compile libbluray library with BD-J (Blu-ray Disc Java) support.
:)
Regards.
Thank you for the info!
Funny that the "Instructions when making new build" say "Rename "libaacs-0.dll" and "libbdplus-0.dll" to remove the "-0"" but when doing so and running aacs_info it tells me, that it cannot find libaacs-0.dll.
Huh, that’s what I had to do to get VLC to play nice. Maybe I did something wrong and somehow fixed it in a dumb roundabout way? Regardless, I hope I didn’t cause you any annoyance with the issue.
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)
Balling
9th April 2024, 22:53
"2020-07-26_libaacs_libbdplus.7z
libaacs 0.11.0
libbdplus 0.1.2 + patches"
Can someone compile latest for windows https://code.videolan.org/videolan/libaacs/-/commit/37b8a4807aedf7ff86751d2c4d9a68efdc665d2f
hnsteyding
11th May 2024, 12:42
I've compile current x86/x64 windows versions of libaacs and libbdplus from videolan repositories:
https://github.com/hnsteyding/files
coricopat
12th May 2024, 06:00
cached BD+ tables
Not that I miss anything in particular, but just wondered whether there's still someone collecting the BD+ tables for newly released movies with BD+ since the latest update from July 2023? :-)
Grimsdyke
12th May 2024, 09:34
I've compile current x86/x64 windows versions of libaacs and libbdplus from videolan repositories
Those files do not work with MPC-BE or am I missing something ?
mick0
12th May 2024, 11:35
Not that I miss anything in particular, but just wondered whether there's still someone collecting the BD+ tables for newly released movies with BD+ since the latest update from July 2023? :-)
AFAIK there haven't been any new titles released with BD+ since 2017.
hnsteyding
13th May 2024, 15:37
@Grimsdyke:
MPC-BE did not recognize/search for these files (i checked this with ProcessMonitor):
https://forum.makemkv.com/forum/viewtopic.php?t=19644
My compiled libraries work with MPLayer
Treaties Of Warp
14th June 2024, 06:44
Edit KEDYB.cfg and add/replace the device keys (DK), processing keys (PK) and host certificates (HC) at the top with the ones from this post (https://forum.doom9.org/showthread.php?p=1990091#post1990091) (valid up to MKBv81). Older keys can be found in this thread (https://forum.doom9.org/showthread.php?p=1883655)
Is this step still necessary even with the latest keydb.cfg file from fvonline-db.bplaced.net (http://fvonline-db.bplaced.net/)?
ewozniakx86
8th July 2024, 16:48
Is there any way to add menu support for bd+ discs on vlc? It sucks that this does not support menus when using a bd+ disc because some blu rays i like to have because of all of the bonus content and the menus.
boelle
21st July 2024, 09:40
i would like to ask the same, i have the star wars collection and yes of course they are "high profile"
i have aacs figured out a while ago as i wanted to convert Person of Interest in to mp4, but the guide in the first post i could not figure
>>>>>"Put the 32-bit or 64-bit libaacs/libbdplus DLLs (all 4) in the corresponding VLC directory"
what is the corresponding VLC directory? C:\Program Files\VideoLAN\VLC where i put libaacs.dll back when i added aacs ?
>>>>>"Edit KEDYB.cfg and add/replace the device keys (DK), processing keys (PK) and host certificates (HC) at the top with the ones from this post (valid up to MKBv81). Older keys can be found in this thread"
i have a file dated 22/5-2024 so its newer than the date of the post that is linked to.... and it also have a lot more lines that in the post.... do i just skip this step or replace everything in the file with the lines from the post?
http://imgur.com/a/FrmApSx
http://imgur.com/a/FrmApSx
so far i get the "Your Blu-ray Player requires an update in order to play this disc" error...
Grimsdyke
21st July 2024, 16:06
Yes, put the 4 dll's into the directories of the players you use !! Into VLC, into MPC-BE, into MPC-HC or whatever.
I don't think that adding the extra datas to the keydb.cfg is really necessary. Just grab the latest version and you should be good to go.
boelle
23rd July 2024, 07:39
well i put them in C:\Program Files\VideoLAN\VLC as i use VLC
but still get the update error as seen here: http://imgur.com/a/FrmApSx
Grimsdyke
23rd July 2024, 08:04
Try playback of a Blu-Ray with MPC-BE. If this also fails then you may have a "bad" drive that maybe needs a firmware patch.
richy
24th July 2024, 11:14
@boelle...
First up, I've gotten lazy and fall back on Xreveal a lot nowadays because it tends to just work nicely with anything that causes VLC problems. But, since this thread is about "Blu-ray playback with libaacs & libbdplus" we'll stick with that, shall we? ;)
I thought I'd try my copy of The Phantom Menace to see what happened and I got the red screen as well! However, I think my VLC setup has got a bit messed up with me trying various different things so I thought I'd have a bit of clean up to see if I could get it working.
The fact that you're at least getting the red screen error means that you must have got most of the setup correct otherwise you'd not have even got that error message to "work". I wasn't even getting that far and VLC was complaining that "This Blu-ray Disc needs a library for BD+ decoding, and your system does not have it." I had a bit of a poke around and discovered I'd somehow got my vm0 folder inside another vm0 folder... oops! Anyway...
I'd downloaded newer builds of libaacs & libbdplus at some point but not done anything with them so I thought I'd try those instead of the ones from 2020-07-26 that I appear to have been using before. Voila! Both the builds from Roof Tile and hnsteyding seemed to work fine. No more red screen error message.
In the end, I decided to settle with the ones compiled by hnsteyding from May of this year:
https://forum.doom9.org/showthread.php?p=2001748#post2001748
TL;DR - Maaaan, I need to be more concise but, basically, try the files from the post I linked to :)
TTide
28th February 2025, 19:22
I came across a post on code.videolan.org (https://code.videolan.org/-/snippets/1754) about a BD+ - Utilities for generating smaller cached convtabs via in-stream tables.
The first tool (bdplus_diff) and The second utility (mask_regen) will hopefully speed up assisting with open-source BD+ playback.
I'm having trouble compling the program bdplus_diff. Can someone help me?
gcc bdplus_diff.c -o bdplus_diff
bdplus_diff.c: In function ‘read_obfut’:
bdplus_diff.c:199:29: error: passing argument 1 of ‘fprintf’ from incompatible pointer type [-Wincompatible-pointer-types]
199 | fprintf("%02x", p[25 + zz]);
| ^~~~~~
| |
| char *
In file included from bdplus_diff.c:31:
/usr/include/stdio.h:357:38: note: expected ‘FILE * restrict’ but argument is of type ‘char *’
357 | extern int fprintf (FILE *__restrict __stream,
| ~~~~~~~~~~~~~~~~~^~~~~~~~
bdplus_diff.c:199:38: error: passing argument 2 of ‘fprintf’ makes pointer from integer without a cast [-Wint-conversion]
199 | fprintf("%02x", p[25 + zz]);
| ~^~~~~~~~~
| |
| uint8_t {aka unsigned char}
/usr/include/stdio.h:358:44: note: expected ‘const char * restrict’ but argument is of type ‘uint8_t’ {aka ‘unsigned char’}
358 | const char *__restrict __format, ...) __nonnull ((1));
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
maetel99
3rd March 2025, 08:53
Try changing the "fprintf" statements to just "printf" and it should build. Alternatively, change them to be "fprintf(stderr, ...)".
Sidney
3rd March 2025, 20:37
I'm having trouble getting the menus to work for the complete series of Succession on blu-ray. I can either get the title screen to show up but then be unable to click on or play anything from that menu, or I can play without menus and watch only the first episode on discs that usually have 3. I tried fiddling with a few things, but I ended up reverting my setup to the bare bones having the keyfiles, libaacs, libbdplus, libgcrypt, and libgpg error in the aacs folder along with the vlc directory. I set JAVA_HOME to JRE311 with a batch file, and it seems to work for my other discs. My sneaking suspicion is that the discs are too new (released Aug 2024), but I would love to get this working and proven wrong.
TTide
8th March 2025, 20:25
I fixed the code so it compiles but i don't know how to use it.
# Compile bdplus_diff and mask_regen on linux
gcc -laacs bdplus_diff.c -o bdplus_diff
gcc -laacs mask_regen.c -o mask_regen
Parse & Diff BD+ discs.
Usage: ./bdplus_diff [disc_root] [cached BD+ table] [obfuscated FUT output] [diff output]
OR: ./bdplus_diff [disc_root] [decrypted & patched disc_root] [obfuscated FUT output] [diff output]
mask_regen: Regenerate BD+ xor masks for smaller convtabs
Requires obfut and diff files produced by bdplus_diff
Usage: ./mask_regen [disc_root] [obfuscated FUT input] [diff input] [convtab output]
All i have to go by it that convtabs are stored in ".config/bdplus/convtab" and look like this ->
32 Hex No. and the name of the movie.
00000000000000000000000000000000_MOVIE_NAME.bin
TTide
10th March 2025, 23:09
I ran aacs_info and i found the convtab online.
aacs_info /run/media/gamer/MIKE_AND_DAVE_WEDDING_DATES/
MK: B4D2FA93A1174CED96ABC68F1935DB78
I started with a BD+ Disc example in .config/bdplus/convtab
B4D2FA93A1174CED96ABC68F1935DB78_MIKE_AND_DAVE_WEDDING_DATES.bin
This is what i ran but i don't know if it's the right way.
Usage: ./bdplus_diff [disc_root] [cached BD+ table] [obfuscated FUT output] [diff output]
./bdplus_diff -e /run/media/gamer/MIKE_AND_DAVE_WEDDING_DATES/ -c B4D2FA93A1174CED96ABC68F1935DB78_MIKE_AND_DAVE_WEDDING_DATES.bin -o B4D2FA93A1174CED96ABC68F1935DB78-FUTout -d B4D2FA93A1174CED96ABC68F1935DB78-diffout
Hopefully someone will help the process and tell me where i'm going wrong.
gsfx
15th February 2026, 16:54
How To (Windows):
Put the cached BD+ tables (https://mega.nz/#!Jd1xEQbJ!DRhG9eWLNnrmA5dcwHugnKxmVUpIsT9X-HKuuGjU7n8) (1.5GB) in the %APPDATA%\bdplus\convtab directory
updated tables 2020-07-05 (https://mega.nz/file/ZZdA3QCJ#FaL2ohltwFCtX91UMngB_dUtqht8JZ3-nRgnTAJD8jk) (36MB)
updated tables 2021-01-06 (https://mega.nz/file/pc0VTaYY#Tl1XMSex_Y9iCKmvYEKddr7GQQVQbMDEHJbw0uXumj0) (31MB)
updated tables 2022-06-19 (https://mega.nz/file/gVsRQQ7Y#JOJwO5woXdz2X73rrvHHBTYCdLposz7aiSVkEX4vChM) (12MB)
updated tables 2023-07-28 (https://mega.nz/file/AR8DDaib#GgSUMnNGBlVXdJT0BEkNkGm5f4NfodBaQ8SSgFFM4ZA) (3MB)
Put FindVUK's KEYDB.cfg (http://fvonline-db.bplaced.net/) in the %APPDATA%\aacs directory --> DONE.
Edit KEDYB.cfg and add/replace the device keys (DK), processing keys (PK) and host certificates (HC) at the top with the ones from this post (https://forum.doom9.org/showthread.php?p=1990091#post1990091) (valid up to MKBv81). Older keys can be found in this thread (https://forum.doom9.org/showthread.php?p=1883655)
Hello,
I am using Linux (Debian 13 Trixie) and a Blu Ray Device thats connected via USB to a Lenovo M715Q (AMD Ryzen 5 Pro 2400GE, 8 GB RAM, 256 GB SSD). I made the aacs directory with the KEYDB.cfg and the bdplus directory with the vm0 directory (as described in the Linux section). Necessary libraries were installed via apt-get install.
Are the steps mentioned above for the Windows system necessary for the Linux system as well? I can play Blu Ray discs without menus via VLC but the graphical output which starts OK (Narnia, Voyage of the dawn treader, 20th Century Fox) turns buggy (lots of artifacts) after a few seconds. Its not a general playback problem as the playback of the disc starts. But where do I have to search the problem on my configuration?
Thank you in advance!
Kind regards
Frederik
Edit:
It works now, I adapted the KEYDB.cfg like mentioned in this post:
https://forum.doom9.org/showpost.php?p=1990091&postcount=10
And I downloaded the cached BD+ tables and placed the files in the convtab directory in .cache\bdplus ...
nalor
15th July 2026, 21:25
I've uploaded the bdplus repair tables into the findvuk-online storage and created a simple interface to download specific entries if required.
Note that I don't want to offer a download of the full archive as honestly this is usually way too much data for most purposes (1,6GB).
So just download the required entries with either discid or mediakey as url parameter. When the discis is specified, there's a lookup in the key-database to get the mediakey of the disc.
When the mediakey is not present, the download fails.
Examples:
https://fvonline-db.bplaced.net/fv_bdplus.php?discid=<40 char discid>
https://fvonline-db.bplaced.net/fv_bdplus.php?mediakey=<32 char mediakey>
// Result:
// HTTP 200 "OK" ...................... file is returned, filename is defined in header "Content-Disposition"
// HTTP 400 "Bad Request" ............. either "mediakey" and "discid" are not defined or incorrect
// HTTP 404 "Not found" ............... no entry found for "mediakey" or "discid" (maybe mediakey is not available for the discid)
// HTTP 500 "Internal server error" ... an internal error happened
Next I'll add the automatic download into BlurayTestAndDecrypt and next will check how to use it in Kodi.
Losko
27th July 2026, 14:30
Note that I don't want to offer a download of the full archive as honestly this is usually way too much data for most purposes (1,6GB).
Yet I would love a simple link/button to download the whole archive...
Just for preservation purposes, you never know...
Toad King
27th July 2026, 16:22
Yet I would love a simple link/button to download the whole archive...
Just for preservation purposes, you never know...
Pretty sure they're just hosting the archives in the first post of the thread, so you can get them yourselves there.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.