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