Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 438cc30a authored by Yifan Hong's avatar Yifan Hong Committed by android-build-merger
Browse files

Merge "DRM 1.1: Add VINTF doc" am: 8ad3e78d am: 2524404a

am: adf20184

Change-Id: Iff1292a68022495c06438ba479dffc41520e2ace
parents 3c66fe3f adf20184
Loading
Loading
Loading
Loading

drm/1.1/README.md

0 → 100644
+84 −0
Original line number Diff line number Diff line
# 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:

```xml
<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:


```xml
<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:

```xml
<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>
```