Merge "DRM 1.1: Add VINTF doc"
[android/platform-hardware-interfaces.git] / drm / 1.1 / README.md
1 # VINTF Device Manifest
3 In Android Pie, an `<fqname>` tag was introduced to be able to express multiple
4 different versions of the same HAL in VINTF manifests (for DRM)
5 in device manifest. For devices launching with previous versions of Android and
6 upgrading to Android Pie, the device manifest must not use `<fqname>` to
7 satisfy requirements for non-optional HALs, because older version of `libvintf`
8 do not recognize it, causing errors during OTA update.
10 Assuming that the HAL provides `@1.0::I*/default`,
11 `@1.1::I*/clearkey` and `@1.1::I*/foo` instances:
13 ## Devices upgrading to Android Pie
15 ### `target-level=1` or `target-level=2`
17 FCM (framework compatibility matrix) version 2 (released in Android Oreo MR1)
18 requires DRM 1.0. If the new device manifest has Target FCM Version (i.e.
19 `target-level`) 1 or 2, it should use the following snippet:
21 ```xml
22 <hal format="hidl">
23     <name>android.hardware.drm</name>
24     <transport>hwbinder</transport>
25     <version>1.0</version>
26     <interface>
27         <name>ICryptoFactory</name>
28         <instance>default</instance>
29     </interface>
30     <interface>
31         <name>IDrmFactory</name>
32         <instance>default</instance>
33     </interface>
34     <fqname>@1.1::ICryptoFactory/clearkey</fqname>
35     <fqname>@1.1::IDrmFactory/clearkey</fqname>
36     <fqname>@1.1::ICryptoFactory/foo</fqname>
37     <fqname>@1.1::IDrmFactory/foo</fqname>
38 </hal>
39 ```
41 ### `target-level=3`
43 FCM (framework compatibility matrix) version 3 (released in Android Pie)
44 requires DRM 1.1. If the new device manifest has Target FCM Version (i.e.
45 `target-level`) 3, it should use the following snippet:
48 ```xml
49 <hal format="hidl">
50     <name>android.hardware.drm</name>
51     <transport>hwbinder</transport>
52     <version>1.1</version>
53     <interface>
54         <name>ICryptoFactory</name>
55         <instance>clearkey</instance>
56         <instance>foo</instance>
57     </interface>
58     <interface>
59         <name>IDrmFactory</name>
60         <instance>clearkey</instance>
61         <instance>foo</instance>
62     </interface>
63     <fqname>@1.0::ICryptoFactory/default</fqname>
64     <fqname>@1.0::IDrmFactory/default</fqname>
65 </hal>
66 ```
68 ## Devices launching with Android Pie
69 If you have a new device launched with Android Pie (no OTA), both of the
70 aforementioned snippets can be used. Besides, it is recommended to use the
71 new, clearer format:
73 ```xml
74 <hal format="hidl">
75     <name>android.hardware.drm</name>
76     <transport>hwbinder</transport>
77     <fqname>@1.0::ICryptoFactory/default</fqname>
78     <fqname>@1.0::IDrmFactory/default</fqname>
79     <fqname>@1.1::ICryptoFactory/clearkey</fqname>
80     <fqname>@1.1::IDrmFactory/clearkey</fqname>
81     <fqname>@1.1::ICryptoFactory/foo</fqname>
82     <fqname>@1.1::IDrmFactory/foo</fqname>
83 </hal>
84 ```