Log in

View Full Version : Blu-ray playback with libaacs & libbdplus


Pages : [1] 2 3 4

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.