Configure WV HAL APEX to be updatable

- add "supportRebootless" to apex_manifest.json
- add <allowed-vendor-apex> sysconfig
- add "on property:apex.com.google.android.widevine.ready=true" to .rc

Now, we can test `adb install` new version of the APEX and see the
service is restarted from the new version.

Note that this doesn't mean that DRM Framework works fine with the
update.

Bug: 248192031
Test: adb install --force-non-staged \
   -i com.android.vending \
   $OUT/vendor/com.google.android.widevine.apex
Change-Id: I7c41b224f0bb55742c0023c23196bba4a09e555f
This commit is contained in:
Jooyung Han
2022-09-22 19:13:25 +09:00
parent 84badb3109
commit b278b4170e
4 changed files with 29 additions and 3 deletions

View File

@@ -58,6 +58,11 @@ apex {
key: "com.google.android.widevine.key", key: "com.google.android.widevine.key",
certificate: ":com.google.android.widevine.certificate", certificate: ":com.google.android.widevine.certificate",
updatable: false, updatable: false,
// install sysconfig to allow the apex to be updatable
required: [
"allowlist_com.google.android.widevine.xml",
],
} }
linker_config { linker_config {
@@ -81,3 +86,10 @@ prebuilt_etc {
name: "com.google.android.widevine.rc", name: "com.google.android.widevine.rc",
src: "com.google.android.widevine.rc", src: "com.google.android.widevine.rc",
} }
prebuilt_etc {
name: "allowlist_com.google.android.widevine.xml",
src: "allowlist_com.google.android.widevine.xml",
vendor: true,
sub_dir: "sysconfig",
}

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This XML file declares the vendor apex package names eligible for installation.
-->
<config>
<allowed-vendor-apex package="com.google.android.widevine" installerPackage="com.android.vending" />
</config>

View File

@@ -1,4 +1,5 @@
{ {
"name": "com.google.android.widevine", "name": "com.google.android.widevine",
"version": 1 "version": 1,
"supportsRebootlessUpdate": true
} }

View File

@@ -1,8 +1,12 @@
on apex-ready on property:apex.all.ready=true
mkdir /data/vendor/mediadrm 0770 media mediadrm mkdir /data/vendor/mediadrm 0770 media mediadrm
# Start service after update
on property:apex.com.google.android.widevine.ready=true
start vendor.drm-widevine-hal
service vendor.drm-widevine-hal /apex/com.google.android.widevine/bin/hw/android.hardware.drm-service.widevine service vendor.drm-widevine-hal /apex/com.google.android.widevine/bin/hw/android.hardware.drm-service.widevine
interface aidl android.hardware.drm::IDrmFactory/widevine interface aidl android.hardware.drm.IDrmFactory/widevine
class hal class hal
user media user media
group media mediadrm drmrpc system group media mediadrm drmrpc system