Commit Graph

41 Commits

Author SHA1 Message Date
Bob Badour
6f047790e0 Cleanup vendor projects are proprietary.
Test: m droid dist
Change-Id: I0bdec38c4d12710fa97b91665d211ba6c0d4b24d
2023-02-03 14:37:11 -08:00
Ulya Trafimovich
07440a83bf Disable dexpreopt and <uses-library> check for tests.
Bug: 132357300
Test: treehugger
Change-Id: Ia2c6cba7a4a91f6d3b0b343a44c4257817c3a4cf
2021-04-27 14:27:37 +01:00
Bob Badour
7e3dcfe54a [LSC] Add LOCAL_LICENSE_KINDS to vendor/widevine
Added legacy_by_exception_only to:
  libwvdrmengine/test/castv2/Android.mk
  libwvdrmengine/test/java/MediaDrmApiTest/Android.mk

Bug: 68860345
Bug: 151177513
Bug: 151953481

Test: m all

Exempt-From-Owner-Approval: janitorial work
Change-Id: I71c2aaa0efb3730f56863bc9047f8794e6a9de01
2021-04-21 14:31:12 -07:00
Rahul Frias
ec8bed38f4 Update Widevine Copyright header for android
[ Merge of http://go/wvgerrit/108084 ]

The Widevine License Agreement has been renamed to use inclusive
language. This covers files in the android directory.

Bug: 168562298
Test: verified compilation (comment only change)
Change-Id: I0f9e6445e0168ebe85425baeb81371e182e5a39c
2020-10-21 02:49:05 -07:00
Fred Gylys-Colwell
ea539673a4 FDPT: Full Decrypt Path Testing Application
Cherry pick of http://go/ag/9326830

This is a merge of the full decrypt path testing CLs from the Widevine
repo: http://go/wvgerrit/q/topic:FDPT-subsamples

This is the Full Decrypt Path Testing application that can be used by
device makers to verify that OEMCrypto is correctly decrypting content
to secure buffers.

Testing: Ran App.
Bug: 113594822

Change-Id: Icbb1e2f2e762bac3cc1b7b20749922c14ea24449
2019-10-28 14:57:22 -07:00
Edwin Wong
d81904ec78 Move MediaDrmApiTest to its own folder.
Merged from http://go/wvgerrit/67523

This is in preparation for adding the Full Decryption Path Test
android application so it will reside under
vendor/widevine/libwvdrmengine/test/java.

Test: build and run MediaDrmAPITest.apk from the new directory

bug: 113594822
Change-Id: If4adb51ba7bb24a5e28e04956909c2d5a1af3c53
2018-12-04 15:21:09 -08:00
Fred Gylys-Colwell
1a25cbdad6 Update Copyright
Merge from Widevine repo of http://go/wvgerrit/47860

This CL updates the copyright notice to indicate that files
shared with partners are shared under the Widevine Master
License Agreement.

bug: 77926774
test: comment change only
Change-Id: I0423668111578b80fb39a932d763df2827e2dfc3
2018-04-16 16:38:05 -07:00
Anton Hansson
fe7ca1ad87 vendor/widevine: Set LOCAL_SDK_VERSION where possible.
This change sets LOCAL_SDK_VERSION for all packages where
this is possible without breaking the build, and
LOCAL_PRIVATE_PLATFORM_APIS := true otherwise.

Setting one of these two will be made required soon, and this
is a change in preparation for that. Not setting LOCAL_SDK_VERSION
makes the app implicitly depend on the bootclasspath, which is
often not required. This change effectively makes depending on
private apis opt-in rather than opt-out.

Test: make relevant packages
Bug: 73535841
Change-Id: I1c0366e78fb44f06bc07329866440097275f5b51
2018-02-27 18:58:17 +00:00
Paul Duffin
00f28599b9 Add uses-library for org.apache.http.legacy
The following change descriptions were generated automatically and so
may be a little repetitive. They are provided to give the reviewer
enough information to check the comments match what has actually been
changed and check the reasoning behind the changes.

* libwvdrmengine/test/castv2/AndroidManifest.xml
    Add uses-library for org.apache.http.legacy because CastSignAPITest
    depends on org.apache.http.legacy library at build time so
    presumably needs it to be provided at runtime. Unfortunately,
    CastSignAPITest targets P and from P onwards the
    org.apache.http.legacy library is only provided when explicitly
    requested through the manifest.

* libwvdrmengine/test/java/AndroidManifest.xml
    Add uses-library for org.apache.http.legacy because MediaDrmAPITest
    depends on org.apache.http.legacy library at build time so
    presumably needs it to be provided at runtime. Unfortunately,
    MediaDrmAPITest targets P and from P onwards the
    org.apache.http.legacy library is only provided when explicitly
    requested through the manifest.

Bug: 72375096
Bug: 18027885
Test:  make checkbuild
Change-Id: I3a761a693918fd506ace26fd7c3502a2a42c031d
2018-02-23 14:55:50 +00:00
Rahul Frias
169d0b6cb6 Merges to android Pi release (part 4)
These are a set of CLs merged from the wv cdm repo to the android repo.

* Correct RELEASE_ALL_USAGE_INFO_ERRORs

  Author: Rahul Frias <rfrias@google.com>

  [ Merge of http://go/wvgerrit/28742 ]

  RELEASE_ALL_USAGE_INFO_ERROR_4 and 5 were introduced and made use of in
  http://go/wvgerrit/24022 (branch: oc-dev). The error code definitions
  were merged over in http://go/wvgerrit/24602.

  When http://go/wvgerrit/24622 from cdm_partners_3.2 was merged to master
  (http://go/wvgerrit/27723) there was conflict in error codes. The error
  codes were adjusted to RELEASE_ALL_USAGE_INFO_ERROR_3 and 4
  and were made use of.

  To avoid renaming the errors between oc-dev and master, new errors
  RELEASE_ALL_USAGE_INFO_ERROR_6 and 7 have been added to handle the
  scenarios noted in the merge from cdm_partner_3.2. The other
  errors have been reverted back to RELEASE_ALL_USAGE_INFO_ERROR_4 and 5.
  They will be used when http://go/wvgerrit/24602 is merged.

* Address compilation issues

  Author: Rahul Frias <rfrias@google.com>

  [ Merge of http://go/wvgerrit/28740 ]

  These changes enable compilation of most of the cdm code on android
  expect for OEMCrypto unit tests (b/62739406) on wv master.

* Add property for binary/base64 provisioning msgs.

  Author: Gene Morgan <gmorgan@google.com>

  [ Merge of http://go/wvgerrit/28074 ]

  Property is "provisioning_messages_are_binary". Its default setting is
  false in the CE CDM, but it can be overridden by integrators.

  Added section to integration guide that discusses Provisioning Server
  message formats and the new property.

  Link: https://docs.google.com/document/d/1cBVbhgrajLpDe2W3_vzLzUqzpdDt73chvm4_sZlZlS8/edit#heading=h.hgxw53ddw7jo

BUG: 71650075
Test: Not currently passing. Will be addressed in a subsequent
      commit in the chain.

Change-Id: I9168193819974d1ff65d9a94dbd762e45ecc43ca
2018-01-16 19:27:13 -08:00
Rahul Frias
0419b55222 Merges to android Pi release (part: 1)
Below are a set of CLs being merged from the wv cdm repo to the android repo.

* Fix handling of OEM Cert public key.

  Author: Srujan Gaddam <srujzs@google.com>

  [ Merge of http://go/wvgerrit/27921 ]

  This is a potential fix for b/36656190. Set aside public
  key on first call to get the public key, and use it afterwards.
  This gets rid of extra calls to OEMCrypto_GetOEMPublicCertificate(),
  which has side-effect of staging the OEM private key.

  This also fixes a problem where the public cert string was
  not being trimmed to match the size returned by
  OEMCrypto_GetOEMPublicCertificate().

* Complete provisioning request/response for Provisioning 3.0

  Author: Gene Morgan <gmorgan@google.com>

  [ Merge of http://go/wvgerrit/27780 ]

  Fix bug on provisioning request path where GenerateDerivedKeys()
  was being called when preparing to generate the signature.

  Add message signature verification, and call correct OEMCrypto
  routine to rewrap the private key (OEMCrypto_RewrapDeviceRSAKey30).

* Implement Cdm::deleteAllUsageRecords()

  Author: Gene Morgan <gmorgan@google.com>

  [ Merge of http://go/wvgerrit/27780 ]

  Delete all usage records for current origin.  Removes usage
  records from file system and retains the PSTs.  The deletes
  any usage entries matching those PSTs held by OEMCrypto.

  BUG: 35319024

* Remove stringencoders library from third_party.

  Author: Jacob Trimble <modmaker@google.com>

  [ Merge of http://go/wvgerrit/27585 ]

  We have a fork of the stringencoders library that we use for base64
  encoding.  This reimplements base64 encoding to remove the extra
  dependency and to reduce the amount of code.

* Add Cdm::deleteUsageRecord() based on key_set_id.

  Author: Gene Morgan <gmorgan@google.com>

  [ Merge of http://go/wvgerrit/27605 ]

  Delete specified usage record from file system usage info and
  from OEMCrypto.

  BUG: 35319024

* Modifiable OEMCrypto

  Author: Fred Gylys-Colwell <fredgc@google.com>

  [ Merge of http://go/wvgerrit/24729 ]

  This CL adds a new variant of the OEMCrypto mock code that adjusts its
  behavior based on a configuration file.  This is intended for
  testing.

  For example, a tester can set current_hdcp to 2 in the options.txt
  file, push it to the device, and verify that a license is granted for
  HDCP 2.0.  Then the tester can edit the value of current_hdcp to 1 and
  push the file to the device.  Playback should stop because the license
  is no longer valid.

  This variant uses a real level 1 liboemcrypto.so to push data to a
  secure buffer.  That means we can test playback for a license that
  requires secure buffers on an Android device with real secure buffers.

  BUG: 35141278
  BUG: 37353534

BUG: 71650075
Test: Not currently passing. Will be addressed in a subsequent
      commit in the chain.

Change-Id: I58443c510919e992bb455192e70373490a00e2b6
2018-01-16 19:21:54 -08:00
Paul Duffin
940146a195 Add dependencies on org.apache.http.legacy where needed
Incorporates two main changes:
* Stops statically including the org.apache.http.legacy library. That library is
  a stubs library so it makes no sense to statically include it.
* Adds uses-library declaration for org.apache.http.legacy to those packages
  that depend on org.apache.http.legacy, either directly or transitively.

The following change descriptions were generated automatically and so
may be a little repetitive. They are provided to give the reviewer
enough information to check the comments match what has actually been
changed and check the reasoning behind the changes.

* libwvdrmengine/test/castv2/AndroidManifest.xml
    Added <uses-library> for org.apache.http.legacy to ensure classes
    are provided at runtime. It is marked as optional as the
    application is intended to be run on versions that do not provide
    the library, but provide the classes by default, i.e. its
    minSdkVersion is < M (23).

* libwvdrmengine/test/java/AndroidManifest.xml
    Added <uses-library> for org.apache.http.legacy to ensure classes
    are provided at runtime. It is marked as optional as the
    application is intended to be run on versions that do not provide
    the library, but provide the classes by default, i.e. its
    minSdkVersion is < M (23).

Bug: 18027885
Test: m -j32 droid && adb reboot bootloader && fastboot flashall -w
Change-Id: I4eb4621bc4c2f481c0d909acac871187f006e145
2017-07-25 09:14:51 +01:00
Kyle Alexander
038580c6c9 Update unit tests to build into /data/bin
Tradefed needs these tests to be in the /DATA directory.

Test: cd vendor/widevine && ./build_and_run_all_unit_tests
      All tests should build and pass.
      make tests
      unzip android-tests.zip and verify all tests located in DATA/bin

Bug: 62055647
Change-Id: I35925e29558561c4726bb2249499bfee4e54cf45
2017-06-12 23:48:15 -07:00
Kyle Alexander
27c8c3f150 Add display and logging for validating HDCP levels.
This adds display and logging values to help with debugging b/28024277.

Matching Widevine cl: go/wvgerrit/17446

Bug: 28024277
Change-Id: Ib25ebf37f885b60ae4ab41851df4af4e75b5aace
2016-04-11 09:48:27 -07:00
Jeff Tinker
06c45414b5 Fix StringIndexOutOfBoundsException in MediaDrmAPITest
The AES test was useful to verify the framework API changes, but
the decrypt test was not correct.  Removing it for now.

Merge of go/wvgerrit/17472

bug: 27973491
Change-Id: I942fda22072636ea7ce56b992e7d3a60077c0d27
2016-04-08 16:51:22 +00:00
Jeff Tinker
4aedea8512 Support AES-CBC sample encryption in MediaDrm
bug:23719082
Change-Id: I1842bab291d6c86a87e46abbb98827c87f7f1d53
2016-01-11 17:16:08 -08:00
Jeff Tinker
e1ba3ee601 Fix session count properties
bug: 21787354

merge of http://go/wvgerrit/14663 from the widevine repo

Change-Id: Ia8618c9daba2526234c5c5c84590e74d6feebf95
2015-06-11 14:57:18 -07:00
Jeff Tinker
92bf971ea8 Fix possible infinite loop in test code
Also handle ResourceBusyException

merge of http://go/wvgerrit/14470 from widevine repo

bug: 21172957
Change-Id: I6815786eb7a678725cf2632f1009c7f566ba7499
2015-05-27 16:52:28 -07:00
Narayan Kamath
fc2b694b4f Declare explicit dependency org.apache.http.legacy.
This is required because these makefiles contain a module that's
building agains the "current" SDK and will need to add an explicit
compile time dependency on the apache API.

Note that no runtime dependency is needed because the app targets
SDK version 12 (?!!).

bug: 18027885
Change-Id: I37587b91f9c52f88a8becce0449ac9b24a77fdad
2015-02-05 12:50:05 +00:00
Lajos Molnar
63aa037b03 Dequeue new input buffer once old on is queued
Bug: 17630446
Change-Id: I9ce19849f85eba4c419e0dab8ea03a0675526366
2014-09-24 14:07:11 -07:00
Edwin Wong
138160ddea Update license request url to new signed Widevine UAT proxy.
Bug: 16631113
Change-Id: I442f9c9decd03213912c8c2befcbeccc2a332c53
2014-09-13 01:32:29 +00:00
Jeff Tinker
b3a031ded1 Handle ResourceBusyException from MediaDrm.openSession
Change-Id: I21dc9b194ba1195fd28071cdd213cae489b67387
related-to-bug: 13792521
2014-06-26 08:59:02 -07:00
John "Juce" Bruce
5a1bf27fd3 Upgrade Integration Test to Use Latest EME Spec
(This is a merge of
https://widevine-internal-review.googlesource.com/#/c/10140/
from the Widevine CDM repo.)

Updates the integration test from using "video/avc" to "cenc".

Bug: 13731637
Change-Id: Idfa0eabb6eb359a3d08008952bff495bea164cc7
2014-05-14 20:12:08 -07:00
Jeff Tinker
e49f0e320e Use the new borg-based proxy server for MediaDrmAPITest
Improves availability and reliability of the server.

Change-Id: I53f71e618d9c3b9dcd5df16f8e8140e63a795c3d
2014-03-04 18:43:50 +00:00
Andy Hung
641456cdcc Handle IOException from MediaCodec factory methods
Bug: 11364276
Change-Id: I930f37e8c2cba77e1da3d6a6878186182282b51e
Signed-off-by: Andy Hung <hunga@google.com>
2014-01-16 12:15:26 -08:00
Jeff Tinker
711a98164f Add tests for key sharing mode and decrypting without keys
Merge of https://widevine-internal-review.googlesource.com/#/c/8480/ from
widevine cdm repo.

Change-Id: Idb5ab83bceeb97016075c26c428aba692f017929
related-to-bug: 11967440
2013-12-12 16:23:19 -08:00
Jeff Tinker
5d5d1baf7a Merge "Address unit test failures" into klp-dev 2013-12-12 19:26:03 +00:00
Jeff Tinker
4ab8efc21d Add additional MediaDrm API tests
bug: 12033958

Merge of https://widevine-internal-review.googlesource.com/#/c/8402/
from the Widevine CDM repo.

Change-Id: I441eb816db69620feff0bd72c485bd3ad7ec8031
2013-12-12 10:56:51 -08:00
Rahul Frias
f32baf91b5 Address unit test failures
A number of failures were observed,
* GPlay dev license server is being worked on. This causes random
  failures when running unit tests. Switching to the staging
  server for now.
* Occasionally, the license server times out. Introducing a retry
  mechanism do deal with HTTP responses (merge from master #45e8ddd5f)
* Release license tests are now disabled. Tests were previously passing,
  even though they were not in fact supported by the GPlay license server.
  The response included just enough information to be a valid license and
  passed minimal verification that was taking place. Additional verification
  was not necessary because session is torndown and resources released as
  soon as the response has been received.
  A change at the GPlay server now causes the release license request to be
  flagged as an error and the tests to fail. Work is in progress to
  support release of licenses at the GPlay server.
* The wrong message test (from request license tests) fails. This is
  because GPlay behaviour changed from returning a HTTP 500, when
  processing an invalid PSSH, to returning a HTTP 200 without any included
  license.
* Security level path backward compatibility tests on L3 which failed and
  caused the succeeding license request tests to fail.

b/12000457

Change-Id: I8e6adc490504475d1039793ea555a17799cb78c4
2013-12-11 16:22:58 -08:00
Jeff Tinker
113d4d0755 Add end-to-end generic encrypt/decrypt/sign/verify tests
bug: 11534771

Merge of https://widevine-internal-review.googlesource.com/#/c/8291/
from the Widevine CDM repo.

Change-Id: I76110013838f91c8009fe710586226c96de890be
2013-11-12 14:19:58 -08:00
Jeff Tinker
d4fa39113d Improve Widevine MediaDrm plugin tests
1. add missing checks to set the overall result when some tests fail
(to verify b/10528466)

2. Fix test result on L1 devices where we can't hash the decrypt result
due to inaccessible memory buffers.

3. Configure the codec with a surface to avoid codec errors on L1 devices

b/10528466

Merge of https://widevine-internal-review.googlesource.com/#/c/7510/
from the widevine CDM repo

Change-Id: I5c7ef5ce802cc4ff63f62524ef2120fb671920f4
2013-08-28 17:14:46 -07:00
Jeff Tinker
10a55612d0 MediaDrmAPI test: send signed provisioning request as query string
bug: 8790775

Merge of https://widevine-internal-review.googlesource.com/#/c/5510/
from Widevine CDM repository

Change-Id: I7d040fcebdea7f038352bd4216dcbaab4ff9401c
2013-05-08 17:41:52 -07:00
Jeff Tinker
cb5541b740 Hook up events and new exceptions in the MediaDrm API test
Bug: 8725707

Merge of https://widevine-internal-review.googlesource.com/#/c/5302/
from the Widevine CDM repository

Change-Id: If142e558585e5cc7ba0cecf45693413943b2b64f
2013-04-30 17:35:29 -07:00
Jeff Tinker
f702e50919 Update java MediaDrm API test to cover more of the API
bug: 8620943
Change-Id: I72b690cfcd838064a470042e0943a711cc536207
2013-04-25 05:34:39 -07:00
Jeff Tinker
4b0963de96 Update MediaDrmAPI test to use boxless-pssh
bug: 8584241

Merge of https://widevine-internal-review.googlesource.com/#/c/5280/
from Widevine CDM repository

Change-Id: I3596e41a67df44e25c9b31c4c16d4c3d9b7ad92a
2013-04-24 14:29:27 -07:00
Jeff Tinker
f2c3db81d3 Unit test script and end-to-end license/decrypt test update
Does not affect any production code, only unit tests

Makes the end-to-end license/decrypt test compatible with the
fix for b/8604068 (merged).

related-to-bug: 8604068

Merge of https://widevine-internal-review.googlesource.com/#/c/4982/
from widevine cdm repository to android repository.

Change-Id: Ic5739c9de0cd385a672311ec87b9a475e367121a
2013-04-18 17:20:57 -07:00
Jeff Tinker
38f5308c85 Update libwvdrmengine to be consistent with MediaDrm API review update
bug: 8603279

Change-Id: I1d4dfdc52c1cdb74ead4ad373a3a03abc8886299
2013-04-17 19:45:19 -07:00
Jeff Tinker
2f980d7d7e Fix for b/8594163 [SelectContentKey(): No key matches key id]
...when playing clear parts of encrypted content.

Change-Id: I5fb027d22212f07b43deced2da77c98cb3800e7f
2013-04-11 14:14:55 -07:00
Jeff Tinker
352e7b0820 Add end-to-end decryption test with vectors
Added a test_mode flag to the libwvdrmengine plugin
to support verifying decryption results.

Change-Id: I9edbd6279d54fc495b5bbad8273c179106cad474
2013-04-09 13:32:46 -07:00
Jeff Tinker
9a16115975 MediaDrm API update
Clarify offline usage of sessions and keys and implement
implement CryptoSession to support additional crypto use
cases.

Change-Id: I3788e7b187cd20c4224bf07f3fc6bef48ee38bd6
2013-03-30 16:30:21 -07:00
Jeff Tinker
1a8aa0dd05 Initial import of Widevine Common Encryption DRM engine
Builds libwvmdrmengine.so, which is loaded by the new
MediaDrm APIs to support playback of Widevine/CENC
protected content.

Change-Id: I6f57dd37083dfd96c402cb9dd137c7d74edc8f1c
2013-03-22 11:14:17 -07:00