1# VINTF Device Manifest 2 3In Android Pie, an `<fqname>` tag was introduced to be able to express multiple 4different versions of the same HAL in VINTF manifests (for DRM) 5in device manifest. For devices launching with previous versions of Android and 6upgrading to Android Pie, the device manifest must not use `<fqname>` to 7satisfy requirements for non-optional HALs, because older version of `libvintf` 8do not recognize it, causing errors during OTA update. 9 10Assuming that the HAL provides `@1.0::I*/default`, 11`@1.1::I*/clearkey` and `@1.1::I*/foo` instances: 12 13## Devices upgrading to Android Pie 14 15### `target-level=1` or `target-level=2` 16 17FCM (framework compatibility matrix) version 2 (released in Android Oreo MR1) 18requires 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: 20 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``` 40 41### `target-level=3` 42 43FCM (framework compatibility matrix) version 3 (released in Android Pie) 44requires DRM 1.1. If the new device manifest has Target FCM Version (i.e. 45`target-level`) 3, it should use the following snippet: 46 47 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``` 67 68## Devices launching with Android Pie 69If you have a new device launched with Android Pie (no OTA), both of the 70aforementioned snippets can be used. Besides, it is recommended to use the 71new, clearer format: 72 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``` 85