Commit Graph

3379 Commits

Author SHA1 Message Date
Cong Lin
b7280404bd Merge "Fix CSR in wv factory upload tool" into udc-dev 2023-03-28 18:02:05 +00:00
Jooyung Han
a4de7eb9b5 Set min_sdk_version for the Widevine APEX
also remove `use_vndk_as_stable: true` to remove dependency to VNDK
libs.

Bug: 251299786
Test: build WV APEX with V and install it on U device
Change-Id: Ie7f7f9b699119478d4b33f95ab9e6ba7f459346c
2023-03-28 06:57:46 +00:00
Jooyung Han
81171a7e75 Link dependencies statically
This reduces the APEX size from 6754304 to 4378624.

Bug: 274818387
Test: m com.google.android.widevine
Test: adb install $OUT/vendor/apex/com.google.android.widevine.apex
Test: adb reboot
Change-Id: Ib31291e5ee35297b9d85120f5eca118ebf10f55f
(cherry picked from commit 78f0b81ece)
2023-03-27 23:43:17 +00:00
Cong Lin
6db1ae5167 Fix CSR in wv factory upload tool
Merge of https://widevine-internal-review.googlesource.com/c/cdm/+/169024

The CSR extracted by WV internal BCC extraction tool is missing a
field "unverifiedDeviceInfo". This is required by the RKP's device
uploading tool for the CSR to be accepted.

Also updated the size of the randomly generated challenge from 32 bytes
to 64 bytes, same as what is used by rpk_factory_extraction_tool.

Test: extracted CSR v2 and v3 and dry run uploading
Bug: 275075496
Change-Id: Icc776f810c81ac6589d82935950167925f95f906
2023-03-27 21:10:03 +00:00
Alex Dale
52bd76e0e2 Fixed test and log formatting for CdmResponseType.
[ Merge of http://go/wvgerrit/168397 ]

When CdmResponseType (enum) was transformed to CdmResponseType
(struct), the test printers where not updated to print the result
of failed comparisons.  In addition, several logs statements were
updated haphazardly, leaving inconsistencies and potential
compiler-specific behavior.

This CL replaces CdmResponseType std::string operator with a ToString()
method.  This is to make it consistent with Google's C++ style guide
on conversion operators vs methods.  The string conversion function is
now defined in wv_cdm_types.cpp instead of inline in the header file.

The PrintTo function has been implemented along with the other CDM
test printers in test_printers.cpp.

Bug: 273989359
Test: run_x86_64_tests
Test: MediaDrmParameterizedTests on redfin
Test: Forrest drm_compliance
Change-Id: Ibfaa17029046b75b1c8c278f7bd7e04a24379848
2023-03-27 11:21:45 -07:00
Fred Gylys-Colwell
bfa8d39a63 Remove some names
Merge from Widevine repo of http://go/wvgerrit/168657

Some people who have left were still in OWNERS files and TODOs.

Bug: 274772704
Test: comments only
Change-Id: I583da815586e5ca52316b2e238d1c1bb3a5e919a
2023-03-27 02:45:01 +00:00
Fred Gylys-Colwell
ab8c06906a Fix logging error type
Merge from Widevine repo of http://go/wvgerrit/166942

The error type is no longer an enumeration.

Bug: 271146682

Change-Id: I64f60fde94d1e8a586128a59f1455041622444b6
2023-03-23 16:23:43 +00:00
Alex Dale
ce25b9d44c Avoid null dereference with empty BCC strings.
[ Merge of http://go/wvgerrit/168482 ]

The function OEMCrypto_GetBootCertificateChain() does not always
provide an additional signature depending on the device.  However, the
CDM would still attempt to dereference the first character in the
additional signature buffer when empty.  This CL changes how the data
pointer to an output string is acquired.  Empty string will instead
pass in a null pointer.

Bug: 272643393
Test: run_prov40_tests
Test: atest GtsMediaTestCases
Change-Id: I10b0a3c7df4fc73272aa701bb01c60672645d4fc
(cherry picked from commit a878e7b98d)
2023-03-20 20:29:58 +00:00
TreeHugger Robot
4e8c713f8b Merge "Add Widevine lazy apex" into udc-dev 2023-03-18 04:02:05 +00:00
Cong Lin
412e1bfa13 Merge "Update Android L3 after entitled key session fix" into udc-dev 2023-03-16 18:18:09 +00:00
Alex Dale
7c213563ca Merge "Add mutex to CdmEngine for use of cert_provisioning_." into udc-dev 2023-03-15 21:34:37 +00:00
Kyle Zhang
2be47ada77 Add Widevine lazy apex
Bug: 244498309
Test: m com.google.android.widevine.lazy
Change-Id: I226ae922e9ab7817353d3e94d509b9579c6551e1
2023-03-15 21:02:14 +00:00
Cong Lin
3dd24639b3 Update Android L3 after entitled key session fix
This is a merge of
https://widevine-internal-review.googlesource.com/c/cdm/+/168143

Original commit message:
Level3_RemoveEntitledKeySession(key_session) can be called when the
entitled key_session is already released by its entitlement session.
Do not return an error if the key_session to be removed is no longer
valid.

Test: run_dynamic_level3, oemcrypto unit tests on Pixel
Test: GTS media tests
Bug: 264688931
Change-Id: If0e0d0db2137c29e1dab4df321cf11ebcad2451f
2023-03-15 09:52:05 -07:00
Pete Bentley
965a7f308d Include hmac.h in test_base.cpp. am: 4247f72e79
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/21985924

Change-Id: I83c97a129c52454782e9d1641ec3fec5c36fb568
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-13 18:31:19 +00:00
Pete Bentley
4247f72e79 Include hmac.h in test_base.cpp.
Cherry-pick note: Compile fix only, needed for latest AOSP BoringSSL in tm-qpr-dev-plus-aosp and downstream branches, e.g. udc-*-dev.

Original change description:
Include what you use - this is no longer pulled in
by the other headers used in this file.

Bug: 272749540
Test: m
Change-Id: I0d4b480e47f84f367d1a9547b89811c52073a2fc
Merged-In: I0d4b480e47f84f367d1a9547b89811c52073a2fc
(cherry picked from commit c785e91ec3)
2023-03-13 10:44:08 +00:00
TreeHugger Robot
cb0d5e24be Merge "Adding ApexInfo utility" into udc-dev 2023-03-10 06:11:13 +00:00
Alex Dale
6e5ab021d8 Add mutex to CdmEngine for use of cert_provisioning_.
[ Merge of http://go/wvgerrit/167618 ]
[ PoC http://ag/21922303 ]

Bug: 258188673
Test: sts-tradefed run sts-dynamic-develop -m StsHostTestCases \
    -t android.security.sts.Bug_258188673
Test: GtsMediaTestCases
Change-Id: If71a0e7a81f376cf28688a590b6cb9dcea699545
2023-03-09 14:01:40 -08:00
Robert Shih
3c9cbc6cbe Compact aidl exception message
[ Merge of go/wvgerrit/c/cdm/+/167499 ]

Bug: 249941041
Change-Id: I81ce1ecef22bd87c6d879d1ccfd6874e9786f892
2023-03-07 19:08:02 +00:00
Edwin Wong
09bf7fd932 Fixed race condition in closeSession am: 4222daa047 am: 0d063388de am: b0f8ed6518
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/20918774

Change-Id: Ie32cb2c358216cbdf4f47e732c06e77e8e268a49
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-07 01:01:15 +00:00
Edwin Wong
b0f8ed6518 Fixed race condition in closeSession am: 4222daa047 am: 0d063388de
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/20918774

Change-Id: Ieb1a7a2c8bd6d8d5d9488124cfb4998041232104
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-07 00:25:12 +00:00
Edwin Wong
0d063388de Fixed race condition in closeSession am: 4222daa047
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/20918774

Change-Id: I89dd8d6e85e00e22b06ac6d454411024874f3730
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-06 23:49:11 +00:00
Edwin Wong
4222daa047 Fixed race condition in closeSession
Merged from http://go/wvgerrit/165061
poc: http://go/ag/20978750

Fix race that corrupts mCryptoSessions std::map,
and race that occurs when CryptoSessions are used after free.

Test: poc
Test: atest MediaDrmParameterizedTests
Test: atest GtsMediaTestCases

Bug: 258189255
Change-Id: I298d3e0770ace9cd590dfaacaa4c52a0732c2fe3
Merged-In: I298d3e0770ace9cd590dfaacaa4c52a0732c2fe3
2023-03-06 08:00:46 +00:00
Cong Lin
1a2e90be1a Merge "Re-generate Android L3 after memset fix" into udc-dev 2023-03-03 19:48:04 +00:00
Jooyung Han
f63f6011fa Adding ApexInfo utility
This is to get name/version when the HAL is started from an APEX. This
is the initial work and just prints name/version on startup.

Bug: 268439003
Test: adb logcat | grep com.google.android.widevine
Change-Id: I756c042d544f973999738f7d17022d916b9712cd
2023-03-03 00:02:38 +00:00
Cong Lin
eed03c1bd1 Re-generate Android L3 after memset fix
This is a merge of
167280: Re-generate Android L3 after memset fix | https://widevine-internal-review.googlesource.com/c/cdm/+/167280

Original fix and commit message:
167279: Fix a few memset calls in L3 haystack | https://widevine-internal-review.googlesource.com/c/cdm/+/167279

Test: GtsMediaTest on Pixel 7
Bug: 264978856
Change-Id: Id7a801389edec23f020297b762ccf5e0e3d77c6a
2023-03-02 12:55:07 -08:00
Cong Lin
5e24549b1a Internal factory tool implements CSR v3
Widevine internal BCC extraction tool to extract CSR v3 for testing
purpose. The difference it has from the factory tool is it doesn't rely
on Widevine IRPC HAL.

It just extracts BCC/CSR in the specified format from cli.

Test: Extract CSR v3 on Pixel 7 and upload
Bug: 268246995
Change-Id: I52abe09f991c89c6e7601bcef4d980f24c020c9f
2023-03-02 12:19:43 -08:00
Cong Lin
8dc7cc0c74 Factory tool implements Widevine IRPC HAL v3
Implement IRPC HAL v3 interfaces for extracting device registration CSR.
The new interface calls OEMCrypto_GetDeviceInformation() and
OEMCrypto_GetSignedCsrPayload() and then constructs the CSR.

Also added all mandatory fields of device info in the request.

Test: Run extraction tool on Pixel 7 and upload CSR
Test: Verified Widevine remote provisioning
Bug: 268246995
Change-Id: I24097ba32c7a105266071c1341c938b5874b38d8
2023-03-02 10:51:45 -08:00
Cong Lin
e8add8eed8 Sync oemcrypto files from cdm udc-dev to Android
Changes included in this CL:

166806: Update OEMCrypto_GetDeviceInformation() | https://widevine-internal-review.googlesource.com/c/cdm/+/166806
166808: Update Android L3 after OEMCrypto_GetDeviceInformation() signature changes | https://widevine-internal-review.googlesource.com/c/cdm/+/166808
166809: Decode device info and write it to CSR payload | https://widevine-internal-review.googlesource.com/c/cdm/+/166809
167158: Fix Android include path and copy_files | https://widevine-internal-review.googlesource.com/c/cdm/+/167158
167159: Fix common typos and use inclusive language suggested by Android linter | https://widevine-internal-review.googlesource.com/c/cdm/+/167159

165618: Explicitly state python3 where needed. | https://widevine-internal-review.googlesource.com/c/cdm/+/165618

166757: Update Android.bp for Android | https://widevine-internal-review.googlesource.com/c/cdm/+/166757
164993: Refactor basic oemcrypto unit tests | https://widevine-internal-review.googlesource.com/c/cdm/+/164993
164978: Update OEMCrypto Unit Test Docs | https://widevine-internal-review.googlesource.com/c/cdm/+/164978
166941: Update make files for OEMCrypto | https://widevine-internal-review.googlesource.com/c/cdm/+/166941

165279: Refactor license unit tests | https://widevine-internal-review.googlesource.com/c/cdm/+/165279
165318: Refactor provisioning unit tests | https://widevine-internal-review.googlesource.com/c/cdm/+/165318
164800: Add extra check for renew on license load unit test | https://widevine-internal-review.googlesource.com/c/cdm/+/164800
165860: Remove duplicate definition of MaybeHex() | https://widevine-internal-review.googlesource.com/c/cdm/+/165860

164889: Updated CoreCommonRequestFromMessage and fix test | https://widevine-internal-review.googlesource.com/c/cdm/+/164889
164967: Add OPK pre-hook and post-hook error codes | https://widevine-internal-review.googlesource.com/c/cdm/+/164967
165140: Add hidden device_id_length to v18 provisioning message | https://widevine-internal-review.googlesource.com/c/cdm/+/165140
165204: Fix memory leak in oemcrypto test | https://widevine-internal-review.googlesource.com/c/cdm/+/165204

165958: Fix oemcrypto_generic_verify_fuzz mutator signature offset | https://widevine-internal-review.googlesource.com/c/cdm/+/165958

166037: Support SHA-256 in OEMCrypto Session Util | https://widevine-internal-review.googlesource.com/c/cdm/+/166037

Test: Run GtsMediaTests on Pixel 7
Bug: 270612144

Change-Id: Iff0820a2de7d043a820470a130af65b0dcadb759
2023-02-28 11:21:05 -08:00
Rahul Frias
3f7ecbc43e Merge changes Ia54117ff,I4d469a73,I926d8309 into udc-dev
* changes:
  Remove comment.
  Request debug headers and log URL correctly
  Integration tests for renew on license load
2023-02-25 00:09:25 +00:00
John "Juce" Bruce
340810f77f Remove hash algorithm from renewal requests
(Merged from http://go/wvgerrit/165859.)

Since renewal requests are signed with the MAC keys and not an
asymmetric key, it does not make sense to query OEMCrypto for the
asymmetric key hash algorithm nor to include the result in the renewal
request.

Bug: 262427121
Test: opk_ta
Change-Id: Ib309b63b79e553f4754c013718df242247ab9488
2023-02-24 21:11:50 +00:00
Bob Badour
1625b15b31 [LSC] Add LOCAL_LICENSE_KINDS to vendor/widevine
Added legacy_proprietary to:
  libwvdrmengine/apex/prebuilt/Android.bp

Bug: 68860345
Bug: 151177513
Bug: 151953481

Test: m all
Change-Id: I95cd31dc2d2cea5b266a22b6f6c87db1cfec4f68
2023-02-23 07:23:04 -08:00
Rahul Frias
f63a0b287d Remove comment.
Merged from https://widevine-internal-review.googlesource.com/164120

Based on review comment in PS10 of http://go/ag/20608670

Bug: 262797186
Test: GtsMediaTestCases
Change-Id: Ia54117ffd0882de161e772fc1ca180a8d3f27480
2023-02-22 15:53:42 -08:00
Rahul Frias
c41b6cb713 Request debug headers and log URL correctly
Merged from https://widevine-internal-review.googlesource.com/165861

We want debug headers to help diagnose b/186031735. I also
saw that we were only logging the domain name for some
errors instead of the full URL.

Bug: 186031735
Test: GtsMediaTestCases
Change-Id: I4d469a73e54f86d4d3b5d50bd0030fdb2a36df50
2023-02-22 15:09:22 -08:00
Rahul Frias
ca79034a3d Integration tests for renew on license load
Merged from https://widevine-internal-review.googlesource.com/164468

We need to add integration tests in the form of duration license tests
in order to test that this feature works with licenses from a real
server.

Bug: 253513745
Test: WV unit/integration tests
Change-Id: I926d8309ed24183ae117e3f66fb92fec2d95c310
2023-02-22 13:59:22 -08:00
TreeHugger Robot
7c5f53f861 Merge "Drop nonupdatable Widevine prebuilt files to android source tree." 2023-02-16 00:28:10 +00:00
Rahul Frias
04d136df36 Merge "Logging for L1 devices falling back to L3" 2023-02-15 21:53:10 +00:00
Kyle Zhang
2e143c1b06 Drop nonupdatable Widevine prebuilt files to android source tree.
The following files have been updated as part of this change:

libwvdrmengine/apex/prebuilt/com.google.android.widevine.nonupdatable.apks[standalones/standalone-arm64_v8a.apex]
package: name=com.google.android.widevine.nonupdatable
versionCode=331613000
versionName=
platformBuildVersionName=UpsideDownCake
compileSdkVersion=33
compileSdkVersionCodename=UpsideDownCake
sdkVersion:UpsideDownCake
targetSdkVersion:10000

libwvdrmengine/apex/prebuilt/com.google.android.widevine.nonupdatable.apks[standalones/standalone-armeabi_v7a.apex]
package: name=com.google.android.widevine.nonupdatable
versionCode=331613000
versionName=
platformBuildVersionName=UpsideDownCake
compileSdkVersion=33
compileSdkVersionCodename=UpsideDownCake
sdkVersion:UpsideDownCake
targetSdkVersion:10000

libwvdrmengine/apex/prebuilt/com.google.android.widevine.nonupdatable.apks[standalones/standalone-x86.apex]
package: name=com.google.android.widevine.nonupdatable
versionCode=331613000
versionName=
platformBuildVersionName=UpsideDownCake
compileSdkVersion=33
compileSdkVersionCodename=UpsideDownCake
sdkVersion:UpsideDownCake
targetSdkVersion:10000

libwvdrmengine/apex/prebuilt/com.google.android.widevine.nonupdatable.apks[standalones/standalone-x86_64.apex]
package: name=com.google.android.widevine.nonupdatable
versionCode=331613000
versionName=
platformBuildVersionName=UpsideDownCake
compileSdkVersion=33
compileSdkVersionCodename=UpsideDownCake
sdkVersion:UpsideDownCake
targetSdkVersion:10000

Built here: ab/9591839

Bug: 251299786
Change-Id: Iea7c522571f1648c1f6fa05e6024e4fe49037e3a
2023-02-15 21:50:38 +00:00
Rahul Frias
ca583d9510 Logging for L1 devices falling back to L3
[ Merge of http://go/wvgerrit/161877 ]

This change introduces some logging to shed some light on
why some L1 devices fallback to L3.

* Additional logging has been added to indicate whether a lookup of
  the symbols for OEMCrypto_Initialize, OEMCrypto_APIVersion
  or OEMCrypto_Terminate failed.
* OEMCrypto_Initialize error code is saved and reported later.

Bug: 245887116
Test: GtsMediaTestCases
Change-Id: Ice4d966d2fee458de2fae28a1355f292f879c38b
2023-02-14 14:11:08 -08:00
Alex Dale
b11890a694 Provide BCC in WVDrmFactory dumpsys.
[ Merge of go/wvgerrit/c/cdm/+/165138 ]

Enabled the Widevine DRM service on Android to return the raw boot
certificate chain via the CDM status query capabilities.  This
property key is not available for app-level queries.

The BCC is dumped by the WVDrmFactory when requested to print all
CDM properties via dumpsys.

Bug: 234095402
Test: request_license_test
Test: adb shell dumpsys android.hardware.drm.IDrmFactory/widevine -p
Change-Id: I34695b0655b4c609979577e9986974bc0fbda898
2023-02-13 13:27:50 -08:00
Alex Dale
1deba6cee1 Merge "Delete secure stops by key set ID." 2023-02-09 23:17:59 +00:00
Cong Lin
95d87f3936 [DO NOT MERGE] Update L3 Android T with new system id after key free fix am: a4b942e176
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/21218719

Change-Id: I79df83fc2250399f71d1e20e17444781e09d53cb
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-02-09 20:55:46 +00:00
Bob Badour
96fbf2481a Merge "Vendor projects are proprietary." 2023-02-09 18:53:02 +00:00
TreeHugger Robot
e2fd67cb3c Merge "Add non-updatable Widevine Apex in build" 2023-02-09 18:52:07 +00:00
Bob Badour
c34ecdc774 Vendor projects are proprietary.
Test: m droid dist
Change-Id: I19435feeece687cf7977ea62faac7a9692315449
2023-02-08 21:44:52 -08:00
Alex Dale
2c05c65138 Delete secure stops by key set ID.
[ Merge of http://go/wvgerrit/165617 ]

Similar to the issue with updating secure stops by PST (see
http://go/wvgerrit/165597), when deleting different secure stops with
the same PST results in unintended behavior.  This CL changes how the
CDM identifies which secure stop to delete from storaged based on the
key set ID rather than the PST.

Bug: 263316107
Test: device_files_unittest
Test: GTS MediaDrmParameterizedTests and MediaDrmStressTest
Change-Id: Ic3843a1435f252f052c7189423c211c28ed74eaa
2023-02-07 22:32:24 -08:00
Kyle Zhang
ca0a653b2d Add non-updatable Widevine Apex in build
Bug: 251299786
Test: m com.google.android.widevine.nonupdatable
Change-Id: I7129d28ef1fbfddf4176849f5d6bbe9dcc6b3df1
2023-02-07 19:28:19 +00:00
Bob Badour
080bfc7414 Merge "Cleanup vendor projects are proprietary." into tm-qpr-dev-plus-aosp am: cbb6177df2
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/21276850

Change-Id: I7ba871f7714ba4eb5dcb5b0571b6024533a25217
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-02-05 03:54:39 +00:00
Bob Badour
cbb6177df2 Merge "Cleanup vendor projects are proprietary." into tm-qpr-dev-plus-aosp 2023-02-05 03:06:24 +00:00
Bob Badour
6f047790e0 Cleanup vendor projects are proprietary.
Test: m droid dist
Change-Id: I0bdec38c4d12710fa97b91665d211ba6c0d4b24d
2023-02-03 14:37:11 -08:00
Cong Lin
a4b942e176 [DO NOT MERGE] Update L3 Android T with new system id after key free fix
Merge of https://widevine-internal-review.googlesource.com/c/cdm/+/165219

Original commit message:

Update Android L3 v17 with new system ID after key free fix

Android Arm L3 v17 Provisioning 3.0 2023       28923
Android Aarch64 L3 v17 Provisioning 3.0 2023   28924
Android X86 L3 v17 Provisioning 3.0 2023       28925
Android X86 64 L3 v17 Provisioning 3.0 2023    28926

Fix key double free issue in L3

Cherry-pick the fix from:
https://widevine-internal-review.googlesource.com/c/cdm/+/164885/
https://widevine-internal-review.googlesource.com/c/cdm/+/164958/

Then generated L3 on top of tm-widevine-release code base.
Re-used in tm-qpr-dev.

Original commit message:

During license loading if an error occurs, all the loaded keys will be
freed. Later at session termination, the previously freed keys get freed
again, which screwed up the key table.

This CL prevents the double free by checking if the key index is already
freed, and updates the freed index to be kKeyDataArrayCount.

Test: ran L3 unit tests
Test: verified GTS tests on arm32 device
Test: ran GTS media tests on Pixel4
Bug: 252434586
Bug: 267486513

Change-Id: I8ebc19260b37615efd77a533bd005f2b9485182a
2023-02-03 18:48:47 +00:00