5d81a5814b
libcrypto is unused, which causes problems when boringssl hash injection is turned on as the code is all stripped and there is nothing left to inject the hash into. Bug: 137267623 Test: Ran the following together with the changes from http://r.android.com/q/topic:bug137267623_bsslselftest m VtsHalDrmV1_{0,1,2}TargetTest \ VtsHalWifiHostapdV1_{0,1}TargetTest{,Util} \ VtsHalWifiSupplicantV1_{0,1,2}TargetTest{,Util} \ VtsHalWifiSupplicantP2pV1_{0,2}TargetTest (croot hardware/interfaces/confirmationui ; mma) (croot hardware/interfaces/drm ; mma) (croot hardware/interfaces/keymaster ; mma) Change-Id: Ib0607671ef71d99becb483774f810aad9762f4f1 |
||
---|---|---|
.. | ||
vts/functional | ||
Android.bp | ||
ICryptoFactory.hal | ||
IDrmFactory.hal | ||
IDrmPlugin.hal | ||
README.md | ||
types.hal |
VINTF Device Manifest
In Android Pie, an <fqname>
tag was introduced to be able to express multiple
different versions of the same HAL in VINTF manifests (for DRM)
in device manifest. For devices launching with previous versions of Android and
upgrading to Android Pie, the device manifest must not use <fqname>
to
satisfy requirements for non-optional HALs, because older version of libvintf
do not recognize it, causing errors during OTA update.
Assuming that the HAL provides @1.0::I*/default
,
@1.1::I*/clearkey
and @1.1::I*/foo
instances:
Devices upgrading to Android Pie
target-level=1
or target-level=2
FCM (framework compatibility matrix) version 2 (released in Android Oreo MR1)
requires DRM 1.0. If the new device manifest has Target FCM Version (i.e.
target-level
) 1 or 2, it should use the following snippet:
<hal format="hidl">
<name>android.hardware.drm</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>ICryptoFactory</name>
<instance>default</instance>
</interface>
<interface>
<name>IDrmFactory</name>
<instance>default</instance>
</interface>
<fqname>@1.1::ICryptoFactory/clearkey</fqname>
<fqname>@1.1::IDrmFactory/clearkey</fqname>
<fqname>@1.1::ICryptoFactory/foo</fqname>
<fqname>@1.1::IDrmFactory/foo</fqname>
</hal>
target-level=3
FCM (framework compatibility matrix) version 3 (released in Android Pie)
requires DRM 1.1. If the new device manifest has Target FCM Version (i.e.
target-level
) 3, it should use the following snippet:
<hal format="hidl">
<name>android.hardware.drm</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>ICryptoFactory</name>
<instance>clearkey</instance>
<instance>foo</instance>
</interface>
<interface>
<name>IDrmFactory</name>
<instance>clearkey</instance>
<instance>foo</instance>
</interface>
<fqname>@1.0::ICryptoFactory/default</fqname>
<fqname>@1.0::IDrmFactory/default</fqname>
</hal>
Devices launching with Android Pie
If you have a new device launched with Android Pie (no OTA), both of the aforementioned snippets can be used. Besides, it is recommended to use the new, clearer format:
<hal format="hidl">
<name>android.hardware.drm</name>
<transport>hwbinder</transport>
<fqname>@1.0::ICryptoFactory/default</fqname>
<fqname>@1.0::IDrmFactory/default</fqname>
<fqname>@1.1::ICryptoFactory/clearkey</fqname>
<fqname>@1.1::IDrmFactory/clearkey</fqname>
<fqname>@1.1::ICryptoFactory/foo</fqname>
<fqname>@1.1::IDrmFactory/foo</fqname>
</hal>