Commit Graph

57 Commits

Author SHA1 Message Date
Bill Peckham
294ad24d74 Convert Android.mk to Android.bp for vendor snapshot.
This change enables the converted modules to be included
in the vendor snapshot, which considers only
soong-defined modules.

Conversion of the modules in this directory to
Android.bp was blocked by a build-time conditional check
of TARGET_ENABLE_MEDIADRM_64. Using a Soong config
variable, we can perform the conversion.

Bug: 161571531
Bug: 123557988
Test: Build with TARGET_ENABLE_MEDIADRM_64 :=
Test: Build with TARGET_ENABLE_MEDIADRM_64 := true
Test: Insepction of out/soong/soong.variables for each
Test: Inspection of target files package for each
Test: Verify inclusion of modules in vendor snapshot
Change-Id: I47c3b739dfafdf619f8a9a85de560652966af290
2020-07-23 14:33:20 -07:00
Robert Shih
d94926c55d Merge "Add drm hal/vts owners"
am: 72c3a98e9f

Change-Id: If29d7653aa2d75bf9a839519738146fefd2bebec
2020-01-28 15:12:33 -08:00
Robert Shih
e44ad509d6 Add drm hal/vts owners
Change-Id: Ie6f0116a0fc9f4590b3a272d877c0d5be719d624
2020-01-28 13:14:09 -08:00
Automerger Merge Worker
66fb6492f5 default drm hidl: Fix decrypt destination base ptr am: d79abbb0d3 am: 86828796ac am: 44fa9a5cf0 am: 0e8630788f am: 119b9ea01d am: 43f65e0f60
Change-Id: I66ebe64f3387a8b46eb745c6b037877605e05945
2020-01-09 05:21:10 +00:00
Automerger Merge Worker
119b9ea01d default drm hidl: Fix decrypt destination base ptr am: d79abbb0d3 am: 86828796ac am: 44fa9a5cf0 am: 0e8630788f
Change-Id: I73b41a1aebe7dec987e637ca30c9d65b1aedc41e
2020-01-09 04:51:59 +00:00
Automerger Merge Worker
0e8630788f default drm hidl: Fix decrypt destination base ptr am: d79abbb0d3 am: 86828796ac am: 44fa9a5cf0
Change-Id: Ie67b811fe2a172d9a33458ed5c23578c71a0a221
2020-01-09 04:33:04 +00:00
Automerger Merge Worker
44fa9a5cf0 default drm hidl: Fix decrypt destination base ptr am: d79abbb0d3 am: 86828796ac
Change-Id: I4fac71fd9946d37a7a3b1d32a611f007de3e5303
2020-01-09 04:14:08 +00:00
Automerger Merge Worker
86828796ac default drm hidl: Fix decrypt destination base ptr am: d79abbb0d3
Change-Id: Ifaa69ef0ed98f90a42a66b7b64ef9d61457af107
2020-01-09 03:59:10 +00:00
Robert Shih
d79abbb0d3 default drm hidl: Fix decrypt destination base ptr
Bug: 144351324
Test: poc_CryptoPlugin_155
Change-Id: Id5d221cd6978d55c46c0368aceb10c1d2f559fd9
2019-11-18 08:23:30 +00:00
Robert Shih
d056adc919 default hidl CryptoPlugin: security fixes am: 1e18883b72 am: 02ef6a6283 am: 4d3b73ee5e
am: c1d79c8182

Change-Id: Ib2cc45a2f430e8bdc1cdeab430b37b69a565709f
2019-09-11 21:37:12 -07:00
Robert Shih
f6e7c9ed25 default hidl CryptoPlugin: security fixes [RESTRICT AUTOMERGE] am: d22f1447fe
am: 756f134fcc

Change-Id: I4289e38c6eab3e8cac9e489a08f74b3efcf008f9
2019-09-11 21:18:04 -07:00
Robert Shih
756f134fcc default hidl CryptoPlugin: security fixes [RESTRICT AUTOMERGE]
am: d22f1447fe

Change-Id: I480b83a0c4ffd752637ff5357b30d6f5c1916b4b
2019-09-11 21:10:00 -07:00
Robert Shih
02ef6a6283 default hidl CryptoPlugin: security fixes
am: 1e18883b72

Change-Id: Ifbbc3cf6c827085046259365808d962ad192c55a
2019-09-11 21:09:00 -07:00
Robert Shih
d22f1447fe default hidl CryptoPlugin: security fixes [RESTRICT AUTOMERGE]
* reject native handle output for clearkey
* validate subsample sizes

Bug: 137370777
Test: cryptopoc
Change-Id: I2a81f2a00ebf7954b16fb10d2af586ce0da801ed
2019-09-11 22:08:28 +00:00
Robert Shih
1e18883b72 default hidl CryptoPlugin: security fixes
* reject native handle output for clearkey
* validate subsample sizes

Bug: 137370777
Test: cryptopoc
Change-Id: Idf075e1a297fe1ab3ea3e1621806dd46b4a51e35
2019-09-11 22:08:19 +00:00
Steven Moreland
b3a4d3832e Remove libhwbinder/libhidltransport deps
Since these were combined into libhidlbase.

Bug: 135686713
Test: build only (libhwbinder/libhidltransport are empty)
Change-Id: I075670b64eebbbbd6a6ae0e84ad51bf1c6f5ba36
2019-09-06 01:07:02 +00:00
Peter Kalauskas
724a9fc643 Add lazy service target for drm HAL
Test: Run gts on Pixel 1/2/3, marlin_svelte, and walleye_svelte
Bug: 112386116
Change-Id: I5d86e3158794ebae967efb009a0cef8cd140ccb7
2019-01-08 09:00:23 -08:00
Jeff Tinker
3418cd6077 Remove spurious error log message
In change id Ie2f306bce6aec697ae584da3f55b3cf72edaa07b, a
shared memory leak was fixed using a workaround that
maintained compatibility with the frozen DRM HAL API
1.1. Unfortunately it triggered an error log message that
was no longer an error condition.  This change just removes
the log line to avoid raising undue concerns.

Change-Id: I9abe08ef5ab86b2f8589a5c1e5c5175e19ab09d2
Test: Compiles
Bug:111131173
2018-07-31 18:34:12 +00:00
Jeff Tinker
b065c9d8b7 Fix failing drm 1.0 vts tests
The shared library path was incorrectly set based on
the drm.64bit.enabled flag. It should be set based
on whether the drm service is running as 32-bit or
64-bit.

Test: vts-tradefed run commandAndExit vts -m VtsHalDrmV1_0Target

bug:111289939
Change-Id: I388dc87bd4566211dc2901feccf1e6e1c90bfe67
2018-07-20 16:36:05 -07:00
Rahul Frias
173d4fb93b Add new values to KeyRequestType
Two additional KeyRequestTypes have been added, None and Update. None
indicates that no key request is needed as keys have already been loaded.
Update indicates that while keys have previously been loaded, an
additional (non-renewal) license request is needed.

Bug: 70335058
Test: make
Change-Id: I43b7491110871332c3a79573773c441c2a4f5ccb
2018-01-23 13:33:59 -08:00
Jeff Tinker
5fee182384 Fix potential memory leak in default drm crypto plugin
bug:70205403

Test: manual play movies test forcing the legacy default
  widevine plugin to be used, instead of the widevine hidl
  service.

Change-Id: Icb5b234999c5bf49b31d967814e48d42d9dd767f
2018-01-05 11:18:00 -08:00
Jaekyun Seok
81104ae5ef Add 'vendor.' prefix to a vendor HAL service name
To prevent property name collisions between properties of system and
vendor, 'vendor.' prefix must be added to a vendor HAL service name.
You can see the details in http://go/treble-sysprop-compatibility.

Test: succeeded building and tested on a walleye device
Bug: 36796459
Change-Id: I4e8fbee791ec917a8f627a1366f4d44ec7e6febc
2017-09-12 08:01:42 +09:00
Edwin Wong
3b8a9ed510 Check for nullptr IMemory.
mapMemory can return a nullptr, must check for nullptr
IMemory.

Test: Play Movies (stream and pin movies)
Test: VtsHalDrmV1_0TargetTest

bug: 38386082
Change-Id: I0766380a5843415ef0260c26bd21d4b4051b20ea
2017-07-18 10:45:16 -07:00
Jiyong Park
323d172db7 Build android.hardware.drm@1.0-service with BOARD_VNDK_VERSION
Instead of relying on the global include paths, use the new headers lib
'media_plugin_headers'. Also, media/SharedLibrary.h is not used, thus deleted.

Bug: 37342627
Test: BOARD_VNDK_VERSION=current m -j android.hardware.drm@1.0-service
Change-Id: I30d8bcb6315b734cef7ad082c432da51eb33119c
2017-07-03 18:16:04 +09:00
Steven Moreland
c019787ce9 Use vendor variant of libstagefright_foundation.
Rather than having a lib called libstagefright_foundation and one
called libstagefright_foundation_vendor, we now just have one library
and the build system keeps track of the vendor APIs that are exposed.

Test: (sanity) boot device, watch (part of) DRM protected movie.
Change-Id: I7495be3e8f546cac1b4909108313cf61fc85b1d8
2017-06-22 17:11:09 -07:00
Martijn Coenen
14adc6ebc0 Make camera/drm helper classes available to system.
As VTS tests are considered system and link against these.

Bug: 38302533
Bug: 62523241
Test: builds
Change-Id: Iac5c872c58ec9646d6d6974aacceb930daad7e5e
2017-06-20 08:57:46 -07:00
Jiyong Park
07770c78e1 Remove dependency to libmediadrm from drm HAL
drm HAL has been using libmediadrm for android::SharedLibrary class and
android::PluginLoader class. This is a Treble violation since
libmediadrm is a framework-only library that is not available to
vendors.

To solve the problem, the two classes are copied into this directory
to form a small static library android.hardware.drm@1.0-helper.a.

Bug: 38302533
Test: mm under /hardware/interfaces/drm/1.0/default and
/hardware/interfaces/drm/1.0/vts/functional

Change-Id: I7b4e5cdb3bc815e971e0c3b7ec99ea86042e13eb
2017-06-20 12:32:28 +09:00
Jiyong Park
eb845dab6e Use libstagefright_foundation_vendor
DRM HAL is a library in vendor. When BOARD_VNDK_VERSION is turned
on, any lib in vendor partition can only link against to other vendor
libs or libs marked as vendor_available:true. This lib is using
libstagefright_foundation and the lib is not available to vendors.
Instead, libstagefright_foundation_vendor is provided as a
vendor-variant of the foundation library. Thus switching to the vendor
variant.

Bug: 37462569
Test: m android.hardware.drm@1.0-impl
Change-Id: Iaee9886f9ba3643e1c19928690bad13c26ac29d7
2017-06-19 19:14:46 +00:00
Jeff Tinker
e3b6ae14f5 Revert "Fix resource leaks in drm hal"
This caused b/38343526 which is a chase list issue, reverting for now.

This reverts commit 4e1fe736af.

Change-Id: Ib9ffcd11e575e3f05f54cbea17fda2f2eb3780b5
2017-05-16 18:21:39 +00:00
Jeff Tinker
4e1fe736af Fix resource leaks in drm hal
bug:36408047
test: manual tests to verify leaks are fixed
Change-Id: Idd79e99e211d81f8b3e58cf52c9b01ce9d370dc4
2017-05-09 11:24:49 -07:00
John W. Bruce
467c0db62c Prefix ENABLE_MEDIADRM_64 with TARGET_
This build-time flag should be prefixed.

Bug: 37039525
Test: Built OS
Change-Id: If6f6cd1ad2df5f000a4264cabeb7d9eb77e194ea
2017-04-27 18:50:05 -07:00
Iliyan Malchev
136b5e46ec Route DRM HAL libbinder traffic to /dev/vndbinder
b/37309712
Test: marlin

Change-Id: I72c2304842bd21b5393c17be5beeeb90a74d5345
Signed-off-by: Iliyan Malchev <malchev@google.com>
2017-04-14 15:25:16 +00:00
Jeff Tinker
a0b44e644a Change drm/crypto service names to "default"
bug: 36371166

Test: vts drm hidl test

Change-Id: Iae98708c4f9b58dc697fb54c9f9b67d99e7ed0cf
2017-04-11 16:25:15 -07:00
Steven Moreland
4e7a307730 Fix transitive includes.
Files relying on transitive include of utils/Log.h (and things that it
includes) from MQDescriptor.h

Test: pass
Merged-In: Iff316b21bef556bb026378b7f89e97ded3febef4
Change-Id: Iff316b21bef556bb026378b7f89e97ded3febef4
2017-04-06 22:04:05 +00:00
TreeHugger Robot
69571ba233 Merge "Add additional drm hal tests" into oc-dev 2017-04-06 18:21:00 +00:00
Scott Randolph
f059ae420d Merge "Use explicit .c_str() for hidl_string" into oc-dev 2017-04-06 18:01:48 +00:00
John W. Bruce
fcde9ff3a0 Add Flag for Enabling 64-bit Legacy DRM Plugins
We are ready for devices to begin migrating to a 64-bit Legacy DRM
Loader. However, not all devices are ready to make this jump yet. A
device needs to have all of its Legacy DRM Plugins ready to run as
64-bit before it can do this. This includes having 64-bit hardware
integrations.

So that devices can turn on 64-bit support as they get ready, I am
adding flags that can be set in a device's device.mk file. There are two
parts:

* ENABLE_MEDIADRM_64 enables building the Legacy DRM Plugin HAL as
  64-bit.

* Setting drm.64bit.enabled=true in PRODUCT_PROPERTY_OVERRIDES switches
  the Legacy DRM Plugin HAL to searching for DRM Plugins in the 64-bit
  directory.

Test: Validated that turning on these flags enables a 64-bit Legacy DRM
      Plugin HAL that loads 64-bit Legacy DRM Plugins from the lib64
      directory.
Bug: 36076017
Change-Id: I8d21fc7e7c0357eb6755839d41caa0f37ca20aff
2017-04-06 01:04:27 -07:00
Jeff Tinker
f20aa0c485 Add additional drm hal tests
Test: VTS tests passing

bug:34178477
Change-Id: Ie8fa5f2ad193b717b0564bb3046de8a64ccd8d85
2017-04-05 23:21:13 -07:00
Scott Randolph
8997880087 Use explicit .c_str() for hidl_string
hidl_string no longer will provide an implicit cast to const char* as it
interfers with other expected behaviors of the class.  It now emulated
std::string in requiring a call to .c_str() to get the same behavior.

Bug:  36532780
Test:  Build the tree
Change-Id: I265590c7c18f425e44863df062a56b67519a932a
2017-04-04 10:53:26 -07:00
Jeff Tinker
fea340f1fe Fix getKeyRequest legacy HAL returning invalid status
bug: 36006198

Test: drm hal vts test
Change-Id: Ie3125b4459add4fd30dc418f92ab0f51d8fcc73b
2017-03-30 16:00:12 -07:00
Edwin Wong
c7170174d4 Check registerPassthroughServiceImplementation return status
Should abort program if registerPassthroughServiceImplementation returns
something other than OK.

Test: Play Movies & TV in non-binderized mode.

bug: 34640335
Change-Id: I94be98e7ae66cdb777a7d182123c8692aef915b7
2017-03-16 09:43:29 -07:00
Jeff Tinker
e5fbc46ef2 Fix CTS post submit failures
MediaCodecTest.android.media.cts.MediaCodecTest.testCryptoError
was failing due to incorrect error code translation introduced
by the drm hidl hal.

bug: 35137940
Change-Id: Ibd02425a55194f3cb0acc0e53f90b156023fb1ab
2017-03-15 20:35:37 +00:00
Steven Moreland
542f434dc2 Remove warning from DrmFactory.cpp
Test: pass
Change-Id: Ie5d37a257bfb1f4f5d9173bbe41e734161941954
2017-03-08 08:34:00 -08:00
Rahul Frias
abd4e11c9d Correct reporting of errors in MediaCrypto
Legacy error codes need to be converted into new Status values before
being reported. Decryption errors (that were negative) were changed to
absolute values. This caused their translation to new Status values to
fail.

b/35634335

Test: Verified with GtsExoPlayerTestCases. Some failures, but those
      are unrelated to this CL and will be addressed separately.

Change-Id: I995cac33cb2725d02b0f1a3922e522ce07a9d1be
2017-02-28 20:56:13 +00:00
Rahul Frias
89437fbdd9 Correct propagation of asynchonous events
The legacy plugin listener was not set when used in
passthrough mode in Treble. This caused events (session renewal,
key expired etc) not to be propagated to the app.

b/35375500

Test: In progress

Change-Id: I7d74b3320c82e22f67d3c804ee93f9b9791080b2
2017-02-27 15:07:34 -08:00
Steven Moreland
7e73d5b908 Remove viral dependency on libhwbinder. (2/2)
find hardware/interfaces -name Android.mk -exec sed -i -e '/libhwbinder
\\/d' {} \;
find hardware/interfaces -name Android.bp -exec sed -i -e
'/"libhwbinder"/d' {} \;
./hardware/interfaces/update-makefiles.sh

Note, automotive has some actual dependencies on libhwbinder, filed
b/35758626 for this.

Test: everything links
Test: (sanity) booted marlin on internal master with these changes
Bug: 35710429
Change-Id: I6d0726c8130d00684b978efbdd48e3ae396f12e5
2017-02-24 12:18:01 -08:00
Jeff Tinker
e376fbd572 Merge "Support multiple codecs per crypto instance The initial drm hidl hal implementation assumed one codec per crypto instance, but in fact there can be multiple codecs per crypto instance. This change extends the drm hal to allow multiple memory heaps per crypto plugin. It fixes the issue of mapping memory frequently during playback." 2017-02-17 23:30:16 +00:00
Jeff Tinker
0b3f41ec8d Support multiple codecs per crypto instance
The initial drm hidl hal implementation assumed one
codec per crypto instance, but in fact there can be
multiple codecs per crypto instance. This change
extends the drm hal to allow multiple memory heaps
per crypto plugin. It fixes the issue of mapping
memory frequently during playback.

bug:35275191

Test: manual verification with Play Movies on angler
and in binderized mode on marlin

Change-Id: I0ec36856248623d2ad8acb8ce9873e9274883a40
2017-02-17 19:51:03 +00:00
Jeff Tinker
9a33bb2b25 Revert "Enable loading of treble-based plugins"
bug:35329920

Tests: Verfied playback on Ryu with Play Movies in combination with
ag/1907708, ag/1909159

This reverts commit fbf3650370.

Change-Id: I4a35a329b24e4cd9efcff4fe84e9d8901c714d57
2017-02-14 21:42:16 +00:00
Steven Moreland
a0da1a1c3d Move hidl shims to the vendor partition. (2/2)
We need google shims on the vendor partition because they are providing
an implementation of a vendor defined interface. They were written by
google just as a courtesy/to make the transition easier. They're
basically a set for vendors to assemble their hal implementations
from.

Bug: 34135607
Test: marlin persist.hal.binderization on/off
Change-Id: I2e2af5af39264cf290259755bb9b2eb9827a21f5
2017-02-13 15:03:41 -08:00