[ Merge of go/wvgerrit/186611 ]
Android user can set the property using the developer option.
Bug: 301669353
Change-Id: I730b635f6cc28dfb0471c1d679627c94b9e16af1
[ Merged of go/wvgerrit/186370 ]
CDM by default allows test keybox from device side.
Bug: 299987160
Bug: 301669353
Change-Id: I06f1936ccd068eb71364a5a8931970954233b686
The following files have been updated as part of this change:
libwvdrmengine/prebuilt/v17/android.hardware.drm-service.widevine
Built here: ab/10868711
The change is generated with prebuilt drop tool.
Bug: 300303634
Change-Id: I7477f3c4efaecc0b56fbcf27b37653f3462a605c
[ Merge of http://go/wvgerrit/183472 ]
For provisioning 4.0 devices, the DRM certificate serial number
was changing on a reprovisioning attempt or factory reset. The
app parameters sent up in the client identification name-value
pair field were being filtered out in provisioning requests.
This has been corrected for provisioning 4.0 stage 2
(DRM certificate request). There is no need to include them for
stage 1 (OEM certificate request).
The test case WvCdmRequestLicenseTest.ProvisioningSpoidTest
was created earlier to ensure that SPOIDs and DRM certificates are
stable. Unfortunately due to another bug b/250099615, the RKP service
was holding a connection to the Widevine TA for provisioning 4.0
devices. When native tests ran as their own process, L1 would fail
to load due to a connection failure and the test would run as L3.
The tests passed for provisioning 4.0 devices Pixel 7 and 8 when
they should have failed. This gave us a false sense of confidence
that the SPOIDs were stable.
For now a workaround is to run a shell command to kill the widevine
TA before running native tests.
$ adb shell pkill -f -9 widevine
New tests have been introduced to provide integration coverage
WVPluginTest at the WV plugin level and CoreIntegrationTest
for core. GTS tests are also being written in b/295538002.
Bug: 294451432
Bug: 293950895
Test: WVPluginTest.ProvisioningStableSpoidTestL1, WVTS tests
Change-Id: Ib9ace4387866ea38bb1840feb69cea78d2d2c09c
The following files have been updated as part of this change:
libwvdrmengine/prebuilt/v17/android.hardware.drm-service.widevine
Built here: ab/P61807725
The change is generated with prebuilt drop tool.
Bug: 297297678
Test: com.google.android.wvts
Change-Id: I1d91131c16a044aa4f3aad0afc2857fb74182851
The following files have been updated as part of this change:
libwvdrmengine/prebuilt/v17/android.hardware.drm-service.widevine
Built here: ab/P61073747
The change is generated with prebuilt drop tool.
Bug: 291139517
Test: com.google.android.wvts.MediaDrmParameterizedTests#testValidateMetrics[L1] and 3
Change-Id: I66e2c03ba226c6404ee0c92ab84e07f187a20b32
[ Merge of http://go/wvgerrit/181151 ]
[ Cherry-pick of http://ag/24103737 ]
For devices with a large number of usage entries, when restoring the
usage table a capacity check is performed. This checks that a new
entry can be created. This test was originally added as some devices
might enter a "stuck" state the table cannot be initialized.
To perform this test, a temporary crypto session is created and an
entry is created for that session. After successfully creating that
entry, the entry is deleted. However, because the session was left
open, the entry could not be deleted.
This change closes the capacity-check-session before deleting the
entry, as well as includes additional logs for helping future debugs.
Bug: 286176947
Bug: 291351287
Test: usage_table_header_unittest
Test: Android GTS R11 on oriole
Change-Id: I6923de00175f70b2392bfe581ca5f9ae60c4af25
(cherry picked from commit 8b4bbeeb6f440c48a3250b961f7a7dab2472d7e9)
(cherry picked from commit bb925c46e5)
[ Merge of http://go/wvgerrit/181152 ]
[ Cherry-pick of http://ag/24137228 ]
Partners have requested that we log HDCP information during certain
operation:
1) Current and max HDCP capability when calls to decrypt or select
key failure due to insufficient or mixed HDCP levels.
2) Current, desired and default HDCP level when video contraints
are not met.
To avoid spamming the logs, decrypt failures are only logged on their
first occurrence, and unmet video constrains when one of the
requirements change.
Bug: 276686656
Bug: 292005982
Test: license_keys_unittest
Test: Android WVTS on oriole
Change-Id: I98b18e66d7ce1c474a018ae83af4f1c0b03308df
(cherry picked from commit c84b9afd38)
This reverts commit 7f16e103e6.
Reason for revert: Widevine has historically kept the Widevine and Android master branches in sync. But since the impact to Android is minimal, this change doesn't meet the bar for Android UDC-QPR2 or any other QPR. And in the new rolling release model, master(main) is now UDC-QPR2, so there's nowhere this code can be checked in on the Android side at this time. Reverting the original, premature sync of the change from the Widevine repo.
Change-Id: I4382750956cf7e472741760cef315f0871d5f4f5
Merged from http://go/wvgerrit/175350.
Sony has identified a 5-year-old copy-and-paste error in
LicenseKeys::GetAllowedUsage(). For entitled keys, it was calling
CanDecryptContent() instead of GetAllowedUsage() on the entitlement key
session. This meant that for entitled keys, the allowed_usage parameter
was never updated and the return value of the function was indicating
something different than intended.
Bug: 280902715
Test: build_and_run_all_unit_tests
Change-Id: Ic1db01b6dce08d444572f53157ff08b337c48d31
dev_sign_bundle uses `out/dist` as default out directory. It should
respect DIST_DIR setting.
Bug: 281617982
Test: git_mainline-widevine-release/mainline_modules-user
Change-Id: I2ede21b099b512c948e4e83702a1478982acc779
[ Merge of http://go/wvgerrit/175310 ]
Pass the real oemcrypto session id from `pair.session` instead of
`session` for LoadEntitledContentKeys, since `session` can be
changed when L1 and L3 are running in parallel and `session` in
that case may not be the correct oemcrypto session id any more.
Bug: 279967915, 282180589
Test: wvts
Change-Id: I127ff37abf8b618dfbcb623f59bc999e58e7a028
CI build_test target tests every product, which invokes the new
widevine_generic product out of the build script. This makes build fail
due to the missing TARGET_BASE_PRODUCT.
Fix it by fallback to module_arm as base product.
Bug: 281617982
Test: TH
Change-Id: I36d437a56609865e64aea86c5d3af02887b42bc7
[ Merge of http://go/wvgerrit/174555 ]
This is only announced if OEMCrypto is v18+
Bug: 278751387
Test: Duration use case tests, wvts tests
Change-Id: I5cbfcc733ed2af2c940fde381b40a5be850e7e88
[ Merge of http://go/wvgerrit/173290 ]
* Renew timer offset from when license is loaded verifies that the
rental duration has not expired and begins decryption.
* Renew timer offset from first decrypt bugfix
* Feature is enabled based on oemcrypto v18 presence
* Renewal logic verifies that |can_renew| is enabled
* Unit tests were added to reflect use cases from duration
and renewal documentation
Bug: 278751387
Test: policy unittests, CdmUseCase tests, wvts tests
Change-Id: I3070b3f31b316e150c28ebe38d0440ab1eeb89b9