[Bug 280633] multimedia/libaacs: add MMC drive support

From: <bugzilla-noreply_at_freebsd.org>
Date: Mon, 05 Aug 2024 14:50:29 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=280633

            Bug ID: 280633
           Summary: multimedia/libaacs: add MMC drive support
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: ports-bugs@FreeBSD.org
          Reporter: shoesoft@gmx.net

Created attachment 252521
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=252521&action=edit
patch for MMC drive support

Currently, Blu-ray playback only works if the VUK of the disc is available in
KEYDB.cfg.

Otherwise it fails. Tested with bd_info from libbluray:
$ bd_info /dev/cd0 
Using libbluray version 1.3.4
aacs.c:365: device 0x800 is revoked
aacs.c:380: could not find applying subset-difference for device 0x800
aacs.c:365: device 0xc00 is revoked
aacs.c:380: could not find applying subset-difference for device 0xc00
mmc_device_linux.c:188: Only block devices supported
aacs.c:121: No usable AACS libraries found!
dec.c:197: aacs_open() failed: -6!
Volume Identifier   : <redacted>
BluRay detected     : yes
First Play supported: yes
Top menu supported  : yes
HDMV titles         : 7
BD-J titles         : 0
UNSUPPORTED titles  : 0

BD-J detected       : no

AACS detected       : yes
libaacs detected    : yes
Disc ID             : <redacted>
AACS MKB version    : 81
AACS handled        : no
                      (MMC authentication failed)

BD+ detected        : no

Application info:
  initial mode preference : 2D
  3D content exists       : No
  video format            : ignored (0x0)
  frame rate              : ignored (0x0)
  initial dynamic range   : SDR (0x0)
  provider data           : '                                '

No disc library metadata


With this patch, libaacs will compute the key if non-revoked device keys and
host certificate are present in KEYDB.cfg.

The patch provides an MMC device implementation based on libcam. The linux
implementation uses the CDROM_SEND_PACKET ioctl which is not available on
FreeBSD.

AACS decryption is now working in bd_info (vlc also works)

$ bd_info /dev/cd0 
Using libbluray version 1.3.4
aacs.c:365: device 0x800 is revoked
aacs.c:380: could not find applying subset-difference for device 0x800
aacs.c:365: device 0xc00 is revoked
aacs.c:380: could not find applying subset-difference for device 0xc00
Volume Identifier   : <redacted>
BluRay detected     : yes
First Play supported: yes
Top menu supported  : yes
HDMV titles         : 7
BD-J titles         : 0
UNSUPPORTED titles  : 0

BD-J detected       : no

AACS detected       : yes
libaacs detected    : yes
Disc ID             : <redacted>
AACS MKB version    : 81
AACS handled        : yes

BD+ detected        : no

Application info:
  initial mode preference : 2D
  3D content exists       : No
  video format            : ignored (0x0)
  frame rate              : ignored (0x0)
  initial dynamic range   : SDR (0x0)
  provider data           : '                                '

No disc library metadata


To run with debug enabled:
$ AACS_DEBUG_MASK=0xffff bd_info /dev/cd0

-- 
You are receiving this mail because:
You are the assignee for the bug.