platform_hardware_interfaces/drm/1.1
Chih-Hung Hsieh ad1bf31b78 Add timed out test files to tidy_timeout_srcs
* Timed out runs do not show any warning messages.
* These test files cannot finish clang-tidy runs with
  the following settings:
    TIDY_TIMEOUT=90
    WITH_TIDY=1
    CLANG_ANALYZER_CHECKS=1
* When TIDY_TIMEOUT is set, in Android continuous builds,
  tidy_timeout_srcs files will not be compiled by clang-tidy.
  When developers build locally without TIDY_TIMEOUT,
  tidy_timeout_srcs files will be compiled.
* Some of these test modules may be split into smaller ones,
  or disable some time consuming checks, and then
  enable clang-tidy to run within limited time.

Bug: 201099167
Test: make droid tidy-hardware-interfaces_subset
Change-Id: I1de28f1572fff368f67eab512fffec9f2e5c2a9b
2022-02-18 17:25:41 -08:00
..
vts Add timed out test files to tidy_timeout_srcs 2022-02-18 17:25:41 -08:00
Android.bp [LSC] Add LOCAL_LICENSE_KINDS to hardware/interfaces 2021-02-21 20:36:55 -08:00
ICryptoFactory.hal Fix incorrect comment in ICryptoFactory.hal 2018-02-01 12:26:43 -08:00
IDrmFactory.hal Create drm 1.1 HAL 2018-01-21 16:06:49 -08:00
IDrmPlugin.hal Revert "Revert "Fix MediaDrm security level APIs"" 2018-02-11 18:58:21 +00:00
README.md DRM 1.1: Add VINTF doc 2018-10-25 16:50:06 -07:00
types.hal Add new secure stop methods 2018-01-29 14:27:29 -08:00

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>