About BD+ and SVQ files
BD+ is a sophisticated protection scheme used by some blu-ray discs. An overview of BD+ (albeit somewhat incorrect) can be found at wikipedia . In addition to standard AACS encryption each disc with BD+ protection contains a program that is executed by a player each time disc is loaded. Every blu-ray player knows how to execute such program and program code has complete access to all player hardware [1]. BD+ program code must be executed in order to access protected AV clips; in addition to being encrypted AV clips are also "damaged" and BD+ code execution is required to "fix"[2] the files.
Two things are required in order to execute BD+ program - execution environment (BD+ virtual machine[3]) and a set of decryption keys. MakeMKV contains an implementation of BD+ virtual machine that is required to execute BD+ code and can process any BD+ enabled disc, however there is a big catch - MakeMKV doesn't contain BD+ decryption keys. Instead it uses SVQ-based approach.
SVQ file is a small (typically less than 64 bytes) file that contains keys necessary to execute BD+ program. SVQ files come in two flavors - generic SVQs and disc-specific SVQs.
Generic SVQs allow processing of all BD+ discs that were released before specific date - they are similar to what is an AACS processing key . They share the same fate as AACS processing keys though - once published the keys contained in generic SVQ would be revoked and will stop working with newer discs.
Disc-specific SVQ only allow processing of a single specific disc, but they last forever and provide no revocation information. In that regard disc-specific SVQ files are very similar to AACS volume keys.
Since MakeMKV doesn't contain any BD+ keys it requires either generic or disc-specific SVQ file to process BD+ protected disc. If no disc-specific SVQ is available or BD+ version is too new for a generic svq, and "BD+ dump directory" is set in preferences then program will create a "BD+ dump file". We will produce and make available for download disc-specific SVQ files from all dump files sent to svq@makemkv.com . Sending us a dump file will help to analyze new versions of BD+ protection and expand the generic svq support.
Usage
Starting from version 1.5.8 MakeMKV downloads all required SVQ files automatically - all discs that require disc-specific SVQ should work without any additional steps. Please see our forum for more details.Notes
- For example, if a blu-ray player is connected to home network then a BD+ program can scan all shared files on all computers on the network and upload the report to a remote server. While it is very unlikely that studios will put such an evil program on a disc, it is technically possible.
- Execution of BD+ code produces so-called FUTs - "fix-up tables" that contain information how to repair specific files. Applying FUTs also adds forensic marks to "repaired" files that describe all aspects of VM implementation including information that in some cases allows to identify a player up to a serial number.
- Unlike most virtual machines, BD+ VM is not sandboxed and BD+ code deliberately has access to all player hardware resources by means of communicating to BD-J code, native memory access and native code execution.