Commit graph

118 commits

Author SHA1 Message Date
Ryan Campbell
6799c3a5c5 Add testcases for restoreKeys API.
Add a positive and two negative test cases for the restoreKeys
function in DRM vendor plugin.

Test: vts-tradefed run commandAndExit vts -m VtsHalDrmV1_0Target
--primary-abi-only --skip-all-system-status-check
Bug: 34178477
Change-Id: Ia7f323dbd92e7281efa96b9b7d07b85123e819f4
2017-04-14 00:18:16 -07:00
Jeff Tinker
f783c20b0e Merge "DRM vts test bug fixes" into oc-dev am: ca7205fa61
am: 52ea2d0772

Change-Id: Ibe290e5ef25832b3c132c9406cc8ab238666a816
2017-04-13 18:17:56 +00:00
TreeHugger Robot
ca7205fa61 Merge "DRM vts test bug fixes" into oc-dev 2017-04-13 17:53:05 +00:00
Jeff Tinker
9dee7287e8 DRM vts test bug fixes
A session wasn't being closed in the ListenerKeysChange
test, that was causing erratic behavior on subsequent tests.
The expected return code was incorrect in the test
AttemptDecryptWithKeysRemoved.

bug:37272108
Change-Id: I11590b85c81548622359d91ebc9af75276a7b58c
2017-04-13 00:56:34 -07:00
Jeff Tinker
4c9339e2d1 Merge "Change drm/crypto service names to "default"" into oc-dev am: 8eb3a1ea59
am: 94c3beecfc

Change-Id: I004d1f2341ebac8b7876128602840772c6223197
2017-04-13 02:39:47 +00:00
TreeHugger Robot
8eb3a1ea59 Merge "Change drm/crypto service names to "default"" into oc-dev 2017-04-13 02:25:25 +00:00
Steven Moreland
d5bf55bd5a Merge changes from topic 'hidl-vendor-available' into oc-dev am: 17f0c0dde7
am: fce6b7f0d9

Change-Id: Ic95bee140e0bbbf094e89dcc7d0d99c30966786c
2017-04-12 22:54:17 +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
3b36a83a2e Update makefiles (2/2).
Test: pass
Change-Id: Ic7e6289c7b69785491708ce0acbb657f4c704229
2017-04-11 09:58:03 -07:00
Jeff Tinker
dc90103a3f Merge "Support binderized and passthrough vendor services" into oc-dev am: 25197f0f6f
am: 3d1a5c83ce

Change-Id: I3b5db2e5edef2b3359d529718d6feb8e94257e1d
2017-04-10 22:41:19 +00:00
TreeHugger Robot
25197f0f6f Merge "Support binderized and passthrough vendor services" into oc-dev 2017-04-10 22:14:20 +00:00
Jeff Tinker
bf064c8b31 Merge "Fix event listener timeout issues" into oc-dev am: 61fd056380
am: c7505938fa

Change-Id: I1b54ecc574169c0701d52840328eeffb266d6051
2017-04-10 18:34:22 +00:00
TreeHugger Robot
61fd056380 Merge "Fix event listener timeout issues" into oc-dev 2017-04-10 18:10:15 +00:00
Jeff Tinker
cf3916a1fd Support binderized and passthrough vendor services
Previously only the vendor service name was used
to get the drm and crypto services, which would work
either for binderized or passthrough devices, but not
both. With this change, the vendor service name is
tried first, and failing that the default passthrough
service is used.

Change-Id: I05e9552da992e8d9dbba0f8dde485406262410a9
related-to-bug:34178477
Test: drm vts test
2017-04-07 17:41:49 -07:00
TreeHugger Robot
04b10ccc41 Merge "Fix transitive includes." 2017-04-06 23:36:13 +00:00
Jeff Tinker
3da372af67 Fix event listener timeout issues
The drm vts event listener tests would hang if event
callouts failed to work as expected. Use the vts test
callback template instead.

Change-Id: I5234f5760d90c1e884badc25cd251da27c2c672d
related-to-bug:34178477
2017-04-06 16:09:02 -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
Steven Moreland
3eb7df74b8 Fix transitive includes.
Files relying on transitive include of utils/Log.h (and things that it
includes) from MQDescriptor.h

Test: pass
Change-Id: Iff316b21bef556bb026378b7f89e97ded3febef4
2017-04-06 15:01:59 -07: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
TreeHugger Robot
7ba8df9b7c Merge "Correct comment on getProvisionRequest" into oc-dev 2017-04-06 15:37:51 +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
Jeff Tinker
1da5b1a987 Correct comment on getProvisionRequest
There is no session ID in the parameter list.

Test: Compiles, it's a comment change

bug: 36735099
Change-Id: I0eccfcb3aa312a694b391c0b5a76e3b8425a7d36
2017-04-05 22:11:27 +00:00
TreeHugger Robot
fdfb81ebb6 Merge "Fix DRM prebuilt vendor module handling" into oc-dev 2017-04-05 18:31:02 +00:00
Jeff Tinker
f50e7a7495 Fix DRM prebuilt vendor module handling
bug:36817233
Change-Id: I93659a9901198d05fd43bf95804067a244533808
2017-04-04 22:46:37 -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
Ryan Campbell
5a07bab793 Update DRM makefile.
Change module name to VTS format.

Test: cd hardware/interfaces && mma
Bug: 34178477
Change-Id: I33490627e1254ec1b1d36ebb7778e20680005910
2017-03-31 14:55:32 -07:00
TreeHugger Robot
ebf7f3213b Merge "Add VTS tests for drm+crypto HALs" into oc-dev 2017-03-31 05:29:55 +00:00
Jeff Tinker
0ea406920a Add VTS tests for drm+crypto HALs
Tests: drm vts tests are passing

related-to-bug: 32815560

Change-Id: I2b36f27fbb42eba37f3e5a26acea0e359e60b3af
2017-03-30 20:17:18 -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
Steven Moreland
561b602a99 Update makefiles for hwtypes.h
Test: pass
Change-Id: I8e17eb8fec5d2f04c526476a866c8dd54ccb556c
2017-03-28 15:18:20 +00: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
TreeHugger Robot
a652f5fc1d Merge "Remove warning from DrmFactory.cpp" 2017-03-08 18:28:29 +00:00
Steven Moreland
542f434dc2 Remove warning from DrmFactory.cpp
Test: pass
Change-Id: Ie5d37a257bfb1f4f5d9173bbe41e734161941954
2017-03-08 08:34:00 -08:00
Jeff Tinker
7e0a4e54ad Allow drm hal implementations to not require provisioning
Not all drm schemes require provisioning. This change
updates the documentation to explicitly support it.

bug:36007160
Change-Id: Ia4dc471314d2cce92ce8d69258bf1d16d5104302
2017-03-07 02:55:27 +00: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
Tri Vo
85120c9490 Update makefiles to use filgroup syntax.
Test: mmma hardware/interfaces
Change-Id: I9f4457c78b7820c242d46359f0debe05d1b3e482
2017-02-10 12:45:19 -08:00
Tri Vo
ce608bec74 Migrate driver/profiler to test/vts-testcase/hal.
Bug: 34893894
Test: mmma hardware/interfaces

Change-Id: Ic72716577a5f93700c5056986aff55a76b170b5d
2017-02-07 19:13:28 -08:00
Zhuoyao Zhang
e9b43bbe2d Update Andriod.bp for hals.
* Add driver/profiler build rule for all hals.

Test: mma
Change-Id: I98325f7af14fec7dd1bb64b1668de8c7c20ace92
2017-02-03 10:03:01 -08:00
Ryan Campbell
18b1d14339 Merge "Update DRM makefile." 2017-01-31 21:31:53 +00:00
Jeff Tinker
45548ea846 Add vendor-requested parameter to createPlugin
A feature in O requires a small change to the
drm HAL: adding a parameter to the createPlugin
method in the DrmFactory.

bug:31306973
Change-Id: Iab0f7ee58103b357f10cf05ea7986a8fc01eebf6
2017-01-31 05:10:47 +00:00
Ryan Campbell
cbcec7efe5 Update DRM makefile.
Test: cd hardware/interfaces && mma
Bug: 34801248
Change-Id: I2b3f90863c01ad4a8808a96800d8107123420888
2017-01-30 10:12:46 -08:00
Jeff Tinker
d4c3cbcc38 Merge "Enable loading of treble-based plugins" 2017-01-28 01:22:19 +00:00
Jeff Tinker
fbf3650370 Enable loading of treble-based plugins
Test: gtests passing

bug: 34507158
Change-Id: I712dea8e211e83b36cb103d913405521d55123f5
2017-01-26 14:20:24 -08:00
Jeff Tinker
dc8e2d0620 Don't deref a NULL shared buffer base
bug:34624618
Change-Id: I5caee20a944d0c7b5d30f8abdbd8734507914a3a
2017-01-25 17:33:30 +00:00
Jeff Tinker
972a3e3292 Add LOG_TAGs to drm hal default modules
Change-Id: I1267205999b7cc660a6c908f0d183e43277a9c71
2017-01-23 16:02:27 -08:00
Jeff Tinker
da002fe641 Reorganize drm hal modules
Previously the drm and crypto plugins were separate hals.
This implied a separation of implementation libraries which
causes problems for some drm schemes. The reorganization
combines the hals into a single interface under drm.

Tests: basic gtests passing

Change-Id: I5cde6ff9f60625a0219731c4dbfcaefbd9f27f88
related-to-bug: 32815560
2017-01-20 10:48:50 -08:00
Jeff Tinker
f21cdafdaf Update shared memory access method in the crypto plugin hal
Required for functionality and performance

Test: gtests passing

bug:32815560
bug:34234561
Change-Id: I712bc4c332ff5721cf1369357d456b364d84967d
2017-01-19 17:16:38 -08:00
Jeff Tinker
6fdbe86350 Add missing 'offset' parameter to decrypt.
Required for functionality

Test: gtests passing

Change-Id: I9e368c146092512dfa42230be0e05848044d2df5
related-to-bug: 32815560
2017-01-19 08:21:12 +00:00
Jeff Tinker
d59d36252e Implement services for crypto+drm HALs
Test: service runs, basic gtests pass

bug:32815560
Change-Id: I9642f20d11805c56c46ddede64e776df5314f089
2017-01-19 05:33:21 +00:00
Jeff Tinker
01f0a5a0dd Replace ICryptoPlugin's detailed error message
It had been removed since it didn't appear to be needed,
but was found to be necessary for functionality.

Test: gtests pass

Change-Id: Ib716a04218e8d5c81f5d7889a53dfa17beccecef
related-to-bug: 32815560
2017-01-19 04:05:57 +00:00
Yifan Hong
a18049ad13 Bp/nFoo -> Bp/nHwFoo.
Test: mma
Bug: 33554989
Change-Id: I4b3f852d20fdfc49f2da671dd3c12d618ffb4140
2017-01-11 13:14:59 -08:00
Jeff Tinker
b3a16724fe Changes to drm and crypto HALs as part of client implementation
bug: 32815560
Change-Id: Iced6218014dfc921c94e38db8f7f634ab75b7a75
2017-01-03 12:33:42 -08:00
Jeff Tinker
65b7ef02d9 Remove superfluous type parameter to PluginLoader
Also cleaned up some comments

bug:32815560

Change-Id: Iabf946f811b59613c849c9cd7941196370706e0f
2016-12-28 18:57:34 -08:00
Jeff Tinker
b075caa3b9 drm+crypto HAL default implementation
Test: compiles, links

bug:32815560
Change-Id: I49595734aca46c818bb3685934373a627a98a6ed
2016-12-21 23:54:46 -08:00
Jeff Tinker
35594ec178 Follow up on "Treble HAL interfaces for drm+crypto"
Responding to post-submit feedback on previous CL.

b/32815560

Change-Id: Iaf412dc5c39c0595a0486a1220caf4e1c844e824
Tests: Make completes successfully
2016-12-20 13:13:58 -08:00
Yifan Hong
f35ee3b192 Revert "Revert "Update makefiles for Java package path.""
This reverts commit a8789f27cb.

Change-Id: I69980b580a556188ba868bb096ae1590b01759f5
2016-12-13 22:20:16 +00:00
Yifan Hong
a8789f27cb Revert "Update makefiles for Java package path."
This reverts commit ab0792ccdc.

Change-Id: I47fc272d9fa8875e3d7ccb10cb748c738fbf8135
2016-12-13 22:18:34 +00:00
Yifan Hong
ab0792ccdc Update makefiles for Java package path.
use V1_0 instead of 1.0.

Bug: 33554192

Test: hidl_test_java
Change-Id: Ic2d95265df10914a60a5bb743d75e839948838c3
2016-12-13 11:32:56 -08:00
Jeff Tinker
53b52fe81f Treble HAL interfaces for drm+crypto
b/32815560

Tests: Make completes successfully

Change-Id: Id65cfef95094ccd9a9e95fa567651f94b66aaa51
2016-12-09 19:29:45 -08:00