AesCtrDecryptor::decrypt() doesn't check whether the size of "key" is
equal to 16 bytes, which may lead to an OOB read problem in the context
of mediadrmserver. The fix is in clearkey plugin. Add tests to validate
the fix.
Test: VTS test
adb shell /data/nativetest/VtsHalDrmV1_0TargetTest/VtsHalDrmV1_0TargetTest
bug: 63982768
Merged-In: Ife2da17e7f39d8031bc36b83c3b27ba5e9d83eb7
Change-Id: Ife2da17e7f39d8031bc36b83c3b27ba5e9d83eb7
1. Fix the following issues:
- queryKeyStatus is now implemented, do not return
ERROR_DRM_CANNOT_HANDLE anymore
- expectedKeyRequest and knownKeyResponse should use
'-' and '_' instead of '+' and '/' for base64Url encode;
one uint8_t change from 0x2b to 0x2d for each vector
2. Add tests to create clearkey drm and crypto plugin using
both common pssh box format system ID and clearkey scheme
UUID.
Test: Vts test on Marlin and Taimen
adb shell /data/nativetest/VtsHalDrmV1_0TargetTest/
VtsHalDrmV1_0TargetTest
Test: Cts ClearKeyTest on Marlin and Taimen
ANDROIOP= ./android-cts/tools/cts-tradefed run cts
-m CtsMediaTestCases
--test android.media.cts.ClearKeySystemTest
Test: ClearKey plugin unit tests
adb shell LD_LIBRARY_PATH="/vendor/lib/mediadrm"
/data/nativetest/ClearKeyDrmUnitTest/ClearKeyDrmUnitTest
Test: netflix and Play Movies & TV for sanity check
bug: 66327050
Change-Id: Icfbe715cf246a7c5253d5f104d0fd446618b18bd
As VTS tests are considered system and link against these.
Bug: 38302533
Bug: 62523241
Test: builds
Change-Id: Iac5c872c58ec9646d6d6974aacceb930daad7e5e
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
DRM cannot skip all tests when vendor modules are
not present. Currently even the clearkey tests are
skipping when there is no vendor lib. This can be
replicated by just pushing the DRM VTS test binary
build from master (or DR or MR) and executing the
binary without VTS. All test cases skip (including
clearkey).
This change prevents exiting when no vendor
modules are found.
Test: Push the test binary and confirm that the
clearkey tests run.
bug:64459011
Change-Id: Ic5f554d9b223d6ca4bf26f92f072254cc18f4620
Test for both ClearKey plugin UUIDs in DrmHalClearkeyFactoryTest.
Test: VTS - VtsHalDrmV1_0TargetTest
bug: 64386897
Change-Id: Id7f140518910a87efdf9eaa19ce16113e206264f
Update the Android.bp generated with hidl-gen.
Test: build with and without BOARD_VNDK_VERSION=current
Bug: 63866913
Change-Id: I1a9db1df49e0f13c5790da2b118ae9ec63ba34a7
Allow HAL definition libs to be static.
Bug: 32920003
Bug: 64040096
Test: update-all-google-makefiles.sh
Change-Id: I1483d572bea6799717d1614fb7d52fe225e31104
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
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
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
As VTS tests are considered system and link against these.
Bug: 38302533
Bug: 62523241
Test: builds
Change-Id: Iac5c872c58ec9646d6d6974aacceb930daad7e5e
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