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

Commit 37e52fa8 authored by Robert Shih's avatar Robert Shih
Browse files

Add Drm 1.3

New API(s):
* IDrmFactory::getSupportedCryptoScheme

Bug: 139134043
Test: MediaDrmTest
Change-Id: Ibe8c7eabcbdd96618c7c336281582ff19f349de9
parent 8aa5e4a6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -155,7 +155,7 @@
    </hal>
    <hal format="hidl" optional="true">
        <name>android.hardware.drm</name>
        <version>1.0-2</version>
        <version>1.0-3</version>
        <interface>
            <name>ICryptoFactory</name>
            <regex-instance>.*</regex-instance>
+2 −0
Original line number Diff line number Diff line
@@ -593,6 +593,8 @@ c1aa508d00b66ed5feefea398fd5edf28fa651ac89773adad7dfda4e0a73a952 android.hardwar
9811f867def49b420d8c707f7e38d3bdd64f835244e1d2a5e9762ab9835672dc android.hardware.cas@1.2::ICasListener
f18695dd36ee205640b8326a17453858a7b4596653aaa6ef0016b0aef1bd4dac android.hardware.cas@1.2::IMediaCasService
4d85e814f94949dae4dc6cb82bbd7d6bb24ffafda6ddb2eac928d2a4fc2e21ce android.hardware.cas@1.2::types
66931c2506fbb5af61f20138cb05e0a09e7bf67d6964c231d27c648933bb33ec android.hardware.drm@1.3::ICryptoFactory
994d08ab27d613022c258a9ec48cece7adf2a305e92df5d76ef923e2c6665f64 android.hardware.drm@1.3::IDrmFactory
ce8dbe76eb9ee94b46ef98f725be992e760a5751073d4f4912484026541371f3 android.hardware.health@2.1::IHealth
26f04510a0b57aba5167c5c0a7c2f077c2acbb98b81902a072517829fd9fd67f android.hardware.health@2.1::IHealthInfoCallback
db47f4ceceb1f06c656f39caa70c557b0f8471ef59fd58611bea667ffca20101 android.hardware.health@2.1::types

drm/1.3/Android.bp

0 → 100644
+20 −0
Original line number Diff line number Diff line
// This file is autogenerated by hidl-gen -Landroidbp.

hidl_interface {
    name: "android.hardware.drm@1.3",
    root: "android.hardware",
    vndk: {
        enabled: true,
    },
    srcs: [
        "IDrmFactory.hal",
        "ICryptoFactory.hal",
    ],
    interfaces: [
        "android.hardware.drm@1.0",
        "android.hardware.drm@1.1",
        "android.hardware.drm@1.2",
        "android.hidl.base@1.0",
    ],
    gen_java: false,
}
+32 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2019 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package android.hardware.drm@1.3;

import @1.2::ICryptoFactory;

/**
 * ICryptoFactory is the main entry point for interacting with a vendor's
 * crypto HAL to create crypto plugins. Crypto plugins create crypto sessions
 * which are used by a codec to decrypt protected video content.
 *
 * The 1.3 factory must always create 1.2 ICryptoPlugin interfaces, which are
 * returned via the 1.0 createPlugin method.
 *
 * The ICryptoFactory hal is required because all top-level interfaces
 * have to be updated in a minor uprev.
 */
interface ICryptoFactory extends @1.2::ICryptoFactory {
};
+38 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2019 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package android.hardware.drm@1.3;

import @1.2::IDrmFactory;

/**
 * IDrmFactory is the main entry point for interacting with a vendor's
 * drm HAL to create drm plugin instances. A drm plugin instance
 * creates drm sessions which are used to obtain keys for a crypto
 * session so it can decrypt protected video content.
 *
 * The 1.3 factory must always create 1.2 IDrmPlugin interfaces, which are
 * returned via the 1.0 createPlugin method.
 */

interface IDrmFactory extends @1.2::IDrmFactory {
    /**
     * Return vector of uuids identifying crypto schemes supported by this HAL.
     *
     * @return schemes Vector of uuids for which isCryptoSchemeSupported is true;
     *                 each uuid can be used as input to createPlugin.
     */
    getSupportedCryptoSchemes() generates(vec<uint8_t[16]> schemes);
};