Commit Graph

7069 Commits

Author SHA1 Message Date
Cong Lin
8f2e922859 Fix session id in dynamic adapter and re-generate L3 am: 9651c61e25 am: dae2668d93
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22953666

Change-Id: I6818114f54c24bdecf2d8a846eea63cc8bcdd30e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-02 01:55:49 +00:00
Cong Lin
dae2668d93 Fix session id in dynamic adapter and re-generate L3 am: 9651c61e25
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22953666

Change-Id: I9b6a55f4ad156e341c7fa56be4d9ea8d521f6abc
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-02 01:16:05 +00:00
Cong Lin
9651c61e25 Fix session id in dynamic adapter and re-generate L3
Merge of https://widevine-internal-review.googlesource.com/c/cdm/+/173330

Skipping files that are not in android from the CL above.

Original commit message:

Pass the real oemcrypto session id from `pair.session` instead of
`session`, 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.

Also adding a few missing v18 L3 functions pointers to the dynamic
adapter.

Need to re-generate L3 since the L3 sources changed.

Test: L3 unit tests
Test: GTS dash policy tests and Dexter tests
Bug: 271290471
Bug: 279967915
Change-Id: Idc44d57ca38eb1de24c0038917800e37c25b9afc
2023-05-01 19:25:27 +00:00
Alex Dale
65dc08a6a1 Merge "Allow metrics history to outlive the Android CDM." into udc-dev am: 3e650cfd9f am: 2747f5f997
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22914977

Change-Id: I571270121f287d66d36ba4edcb025ac750c7ea4d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-29 00:50:49 +00:00
Alex Dale
5e645f59dd Merge "Include metric history in dumpsys." into udc-dev am: 7b32faf9f8 am: 1ada326822
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22794477

Change-Id: I89f91af785c5c8e75fdc5a0e263ea7e329b59a5a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-29 00:50:23 +00:00
Alex Dale
ba62072d25 Merge "Added metrics history for WV CDM for Android." into udc-dev am: b5a7412675 am: 600c37d848
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22794476

Change-Id: I218eb3950be0fc7686ccc34bb64f7244310c9be1
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-29 00:49:29 +00:00
Alex Dale
2747f5f997 Merge "Allow metrics history to outlive the Android CDM." into udc-dev am: 3e650cfd9f
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22914977

Change-Id: Ib5fc267391fb3c512eb0df864116c33af44a30a4
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-29 00:29:45 +00:00
Alex Dale
1ada326822 Merge "Include metric history in dumpsys." into udc-dev am: 7b32faf9f8
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22794477

Change-Id: I1728dc0c1f5a267f585528b8696b0f9795827878
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-29 00:29:01 +00:00
Alex Dale
3e650cfd9f Merge "Allow metrics history to outlive the Android CDM." into udc-dev 2023-04-29 00:17:49 +00:00
Alex Dale
7b32faf9f8 Merge "Include metric history in dumpsys." into udc-dev 2023-04-29 00:15:57 +00:00
Alex Dale
600c37d848 Merge "Added metrics history for WV CDM for Android." into udc-dev am: b5a7412675
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22794476

Change-Id: I2301c09456e5ded57e7627dad111fc01b4296cb9
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-29 00:09:23 +00:00
Alex Dale
b5a7412675 Merge "Added metrics history for WV CDM for Android." into udc-dev 2023-04-28 23:39:33 +00:00
Alex Dale
4b267e37f9 Allow metrics history to outlive the Android CDM.
[ Merge of http://go/wvgerrit/172910 ]

The lifecycle of the Android CDM is controlled by Android's strong/
weak pointer functionality.  Unfortunately, it does not provide an
easily predictable point in the code where the CDM is to be deleted
along with the saved metrics.  In order to allow the CDM to keep a
list of metrics that are persistent with the life of the service, a
global thread safe queue is provided which is created when the first
CDM is created, but will out live the CDM.

The metrics will still be deleted when the DRM service is terminated.

Bug: 270166158
Test: adb shell dumpsys android.hardware.drm.IDrmFactory/widevine -m
Change-Id: Id98676d8b5278798b4de332cc272cd5b85024244
2023-04-27 15:31:39 -07:00
Kyle Zhang
17d8250be7 Merge "Fix prebuilt apexes" into udc-dev am: 5409567ef9
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22787524

Change-Id: I8d56ed62c9e7d80cfc0bf1a955fd78441ce2f512
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-27 22:01:46 +00:00
Kyle Zhang
7377a5d5fd Merge "Create different targets for each Widevine apex" into udc-dev am: c01cd91d92
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22604302

Change-Id: I73e138c6497227e1f4cc7609d149f016fa9da245
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-27 22:01:40 +00:00
Alex Dale
666e26284f Include metric history in dumpsys.
[ Merge of http://go/wvgerrit/171470 ]

Dumping the DRM plugin metrics will now include any saved instances of
the CDM metrics that may be available.

Bug: 239462891
Bug: 270166158
Test: adb shell dumpsys android.hardware.drm.IDrmFactory/widevine -m
Test: atest GtsMediaTestCases
Change-Id: I24d3e0771b50fd20212568a7fd5654691ae51f93
2023-04-27 14:54:17 -07:00
Alex Dale
c42627a23e Added metrics history for WV CDM for Android.
[ Merge of http://go/wvgerrit/171271 ]

There is a need to maintain a short history of metrics from CDMs which
have been deleted.  This CL adds this ability to the Android version
of the WV CDM.  The history cannot yet be maintained for long, as the
WV CDM instance is destroyed if unused.

Further changes are required to the plugin to maintain the history
beyond the life-cycle of the CDM instance, and to properly format
its output.

Bug: 239462891
Bug: 270166158
Test: adb shell dumpsys android.hardware.drm.IDrmFactory/widevine -m
Test: atest GtsMediaTestCases
Change-Id: I81c0996602722a9795fc3951030d20bb39b5816b
2023-04-27 14:54:17 -07:00
Kyle Zhang
5409567ef9 Merge "Fix prebuilt apexes" into udc-dev 2023-04-27 21:21:11 +00:00
Kyle Zhang
c01cd91d92 Merge "Create different targets for each Widevine apex" into udc-dev 2023-04-27 21:21:11 +00:00
Cong Lin
5232dda438 Add BccParser to internal factory upload tool am: 5ce29c42da
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22881149

Change-Id: I44190007c85a5a931c3b40f5989e890ced328ca5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-26 23:53:12 +00:00
Cong Lin
5ce29c42da Add BccParser to internal factory upload tool
Add a Bcc parser which prints the public keys in dice chain and a few
other key properties.

Borrowed code from
https://source.corp.google.com/piper///depot/google3/video/widevine/keysmith/provisioning/provisioning40/boot_certificate_chain_parser.cc
and modified locally to build an executable tool.

Sample output from new pixel device:

ROOT DEVICE PUBLIC KEY:
key encoding format: DEVICE_KEY_OCTET_PAIR
key algorithm type: ECDSA_SHA384
curve: P384
public key bytes: 04de874f6067bde6604b2d7a5d51ad28e6335d4524de4314ba6e594e6c95ccefeb17066a0b2f86b16591815c184694d7c54f02549e390e98e9e244e9cd73e616ffd9160371936b7c57e42617a3b497265bc84a0870fae4542e9f35b350383f4ebf

CDI PUBLIC KEY 1:
Issuer: 6a680468c33e5a9a95730632070f76e016f971a9
Subject: 5fbc8ab87c4a23ae660ea38461fea5bbc375a08c
key encoding format: DEVICE_KEY_OCTET_PAIR
key algorithm type: ECDSA_SHA384
curve: P384
public key bytes: 04dfa00e8f96d25400a7824c44a27ba141520629820a7348d48b6fa9b616e6f6793df08288c81985864b07b08fbce4beca3f0297b4b1965be3c26aa493d98ef20f18b2cf2c751ed77b170e04a2a7712f7509b22ac9b504965bd0a963c5947ccc2e

CDI PUBLIC KEY 2:
Issuer: 5fbc8ab87c4a23ae660ea38461fea5bbc375a08c
Subject: 34a2c88d0edfd43663d47357e64280f26ebe5baa
key encoding format: DEVICE_KEY_OCTET_PAIR
key algorithm type: ECDSA_SHA384
curve: P384
public key bytes: 047717658a703114cd4d287162b3d75ff366b0d7dcd330bdab7fe61bcb1d50b2dd897a2ae6e878100839a3a47b966339bbb1220e76af68832035954ba39266563357fae446b734aefdf8b1295db59ac1ee9692841fee0b62b6d32651c817b34116

CDI PUBLIC KEY 3:
Issuer: 34a2c88d0edfd43663d47357e64280f26ebe5baa
Subject: 0b657b3c2448a5e0669953f9d5bdd90b431bbff2
key encoding format: DEVICE_KEY_OCTET_PAIR
key algorithm type: ECDSA_SHA384
curve: P384
public key bytes: 041a11632576b82a1ead43a6744c6601c869dc8cbc519332f588ad79d01754964b595c4f83a7168c0f494715bedefa87cb699df4d41849fe140ab95252e55808908cc02708bc86b4d3a6a0f4dc6c49d138d67a5d3406ae25773ae182972656599c

Test: parse BCC and Dice chain on pixel existing/new devices
Bug: 279688624
Change-Id: Ia77a1d9f8f467992b998549572270da2c56b38b8
2023-04-26 10:20:16 -07:00
Cong Lin
fba535cdc2 Merge "Factory extraction tool: Use device info from OS property when TEE returns empty" into udc-dev am: 9c42689506
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22816864

Change-Id: I8bb8cef564a18d0c2700d0df1931bbfa8bac682b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-26 03:28:57 +00:00
Cong Lin
9c42689506 Merge "Factory extraction tool: Use device info from OS property when TEE returns empty" into udc-dev 2023-04-26 02:57:21 +00:00
Kyle Zhang
c0e6867a62 Merge "Set drm@latest to widevine service NOT apex" into udc-dev am: 6fda7dfc49
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22655798

Change-Id: I3566c233739ab4069356898143ad53abd84f33f2
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-25 18:56:38 +00:00
Cong Lin
a0a5138a23 Merge "Use device info from OS property when TEE returns empty" into udc-dev am: 7e3821885b
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22824076

Change-Id: I984014de0291c32139677c64413b581da91175e7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-25 18:55:28 +00:00
Kyle Zhang
6fda7dfc49 Merge "Set drm@latest to widevine service NOT apex" into udc-dev 2023-04-25 18:47:14 +00:00
Cong Lin
8c0e7f2ba3 Factory extraction tool: Use device info from OS property when TEE returns empty
Similar change is merged to widevine internal tool: ag/22824076

Some mandatory device info fields like manufacturer can be empty string
when returned from TEE on devices which have not been provisioned with
attestation IDs.

The extraction tool also needs to check for empty string in the
response, and if so, populates the field with Android property values.

Test: extracting device info from new Pixel EVT 1.1 and uploading
Bug: 276958001
Change-Id: I055ee0994d9dbbbf9c0c0875670a449a56a3e29e
2023-04-25 18:23:09 +00:00
Cong Lin
7e3821885b Merge "Use device info from OS property when TEE returns empty" into udc-dev 2023-04-25 18:22:02 +00:00
Alex Dale
cb65c0c3e9 Merge "Fixed WV metrics YAML formating." into udc-dev am: d09c640c69
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22792935

Change-Id: I2f0f1f381f5d2c160e7aa896a03368ddb5b17812
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-24 22:48:59 +00:00
Robert Shih
e530349352 dumpsys properties: fix indent & quotation am: 5036a0fc07
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22822564

Change-Id: I2a0bf13393419fc6bb1a5f98a55431d5af2611e4
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-24 22:38:15 +00:00
Alex Dale
d09c640c69 Merge "Fixed WV metrics YAML formating." into udc-dev 2023-04-24 22:04:34 +00:00
Cong Lin
65f50d4662 Use device info from OS property when TEE returns empty
Some mandatory device info fields like manufacturer can be empty string
when returned from TEE on devices which have not been provisioned with
attestation IDs.

The extraction tool also needs to check for empty string in the
response, and if so, populates the field with Android property values.

Test: extracting device info from new Pixel EVT 1.1 and uploading
Bug: 276958001
Change-Id: I6e1b3dee8ffcd991335bc50b59a0c80f030cdc79
2023-04-24 14:14:42 -07:00
Robert Shih
5036a0fc07 dumpsys properties: fix indent & quotation
[ Merge of go/wvgerrit/c/cdm/+/171352 ]

Bug: 239462891
Test: adb shell dumpsys android.hardware.drm.IDrmFactory/widevine -p
Change-Id: I0b9ea26a4027b7fbbd277536c0e705885eef408e
2023-04-24 12:54:11 -07:00
Robert Shih
4edfacc073 Merge "Return apex name for PROPERTY_VENDOR" into udc-dev am: a658e076dc
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22606352

Change-Id: Iaa9c756eb7a5178e261102c4328e5aa32c547255
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-21 20:57:14 +00:00
Alex Dale
1e1f11f5b1 Fixed WV metrics YAML formating.
[ Merge of http://go/wvgerrit/171270 ]

The metrics dump tool for the Widevine DRM factory was producing
malformed YAML output.  This is compounded by the formatting using
fixed indentation for its output.

Bug: 239462891
Test: adb shell dumpsys android.hardware.drm.IDrmFactory/widevine -m
Test: atest GtsMediaTestCases
Change-Id: I784d107085721ad0dabe94bdab33e9cc073f98e4
2023-04-21 13:32:52 -07:00
Robert Shih
a658e076dc Merge "Return apex name for PROPERTY_VENDOR" into udc-dev 2023-04-21 19:37:03 +00:00
Kyle Zhang
e362704180 Create different targets for each Widevine apex
Bug: 277764729
Change-Id: I7c8599ba55ba75b092b14ddb88553735f02cdaa0
2023-04-21 17:05:38 +00:00
Jooyung Han
71781924e8 Fix prebuilt apexes
- Add vendor:true
- Use use_soong_config_var to toggle prebuilt/source_build

Bug: 251299786
Test: SOONG_CONFIG_widevine_module_source_build=false m \
        com.google.android.widevine
Change-Id: If835b443a825dcab1ec09aaa21001602e9b53d20
2023-04-21 17:05:11 +00:00
Cong Lin
dbb3775757 Fix spurious wake up in dynamic adapter am: 5ccb147bb8
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22686796

Change-Id: Ic6cee6974f33b2b3fc263c43ba8e82d8cb3ea5ff
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-20 22:26:59 +00:00
Cong Lin
5ccb147bb8 Fix spurious wake up in dynamic adapter
The predicate version of wait_for() to avoid spurious wake up by
checking running_ status.

This is a fix to ag/21439870

Test: build widevine
Bug: 272424659
Bug: 271811708
Change-Id: I446fef8f4c8c58bcd47b885dba50643b3e5e1185
2023-04-20 19:16:19 +00:00
Kyle Zhang
555b381e81 Set drm@latest to widevine service NOT apex
Bug: 277761241
Change-Id: I71f8a7e6b6a1c3cce24a8b33e0bb7748bbdd7230
2023-04-20 17:29:54 +00:00
Cong Lin
f8f75c148b Re-generate Android L3 after zero-initializer fix am: efd05207c8
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22653062

Change-Id: I35c7fdeae9978b0cf56d16c2de8b6a6c7379723a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-17 18:36:00 +00:00
Cong Lin
efd05207c8 Re-generate Android L3 after zero-initializer fix
Merge of https://widevine-internal-review.googlesource.com/c/cdm/+/170631

Original fix:

Array intializer "= {0}" may involve compiler specific behaviors which
can cause haystack hang on arm32 target. Fix is to use memset() instead.

Test: debug build verified on arm32 device
Test: Ran GTS media tests on Pixel 7
Bug: 274637461
Change-Id: I02f5df232934e0c78e259c85e4faf313c01c0b6b
2023-04-14 12:38:49 -07:00
Rahul Frias
9294de2771 Merge "Force a reprovisioning on device renewal" into udc-dev am: 333fe249e4
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22360386

Change-Id: I45da5b212de4ba8049bf0abc258b7f532f4b4590
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-14 06:10:47 +00:00
Rahul Frias
333fe249e4 Merge "Force a reprovisioning on device renewal" into udc-dev 2023-04-14 05:49:14 +00:00
Robert Shih
d258acb879 Return apex name for PROPERTY_VENDOR
[ Merge of go/wvgerrit/c/cdm/+/170370 ]

Bug: 277620071
Test: WidevineHalTest
Change-Id: I05385358875723e20b13d3abb21a0deee9f35c29
2023-04-12 15:36:38 -07:00
Alex Dale
324907a296 Moved OEMCryptoResult string converter. am: de779e7545
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22520102

Change-Id: Ic2cc0826602fdb1f53f2b8cf4185ecb3cd459048
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-12 02:27:42 +00:00
Alex Dale
de779e7545 Moved OEMCryptoResult string converter.
[ Merge of http://go/wvgerrit/170073 ]

Removed the file "error_string_util.cpp" and its header, moving the
OEMCryptoResult to string converter to "wv_cdm_types.cpp".  This extra
file served little purpose, and created a dependency on the CDM utils
to the CDM itself.

This is part of the effort to fix the formatting of WV metrics; making
enum-to-string conversion uniform throughout the CDM.

Bug: 239462891
Test: adb shell dumpsys android.hardware.drm.IDrmFactory/widevine -m
Test: Manual testing with Google TV
Change-Id: I4bf95d26b623f5b8fa86bdb2578cbc4ee65125cb
2023-04-11 14:08:30 -07:00
Cong Lin
83edd1b853 Merge "Fix invalid key session id" into udc-dev am: 9c844682a6
Original change: https://googleplex-android-review.googlesource.com/c/platform/vendor/widevine/+/22429576

Change-Id: Idd4e6479bd1e3eb10669f07d24456b43b1a77a07
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-05 18:20:06 +00:00
Cong Lin
9c844682a6 Merge "Fix invalid key session id" into udc-dev 2023-04-05 17:41:43 +00:00