DRM, DRM

Android-DRM-HAL-Symbol

Dieses Dokument bietet einen Überblick über das DRM-Framework (Digital Rights Management) von Android und stellt die Schnittstellen vor, die ein DRM-Plugin implementieren muss. Dieses Dokument beschreibt keine Robustheitsregeln oder Konformitätsregeln, die von einem DRM-Schema definiert werden können.

Rahmen

Die Android-Plattform bietet ein erweiterbares DRM-Framework, mit dem Apps rechtegeschützte Inhalte gemäß den mit den Inhalten verbundenen Lizenzbeschränkungen verwalten können. Das DRM-Framework unterstützt viele DRM-Schemata; Welche DRM-Schemata ein Gerät unterstützt, ist Sache des Geräteherstellers. Das DRM-Framework bietet eine einheitliche Schnittstelle für Anwendungsentwickler und verbirgt die Komplexität von DRM-Vorgängen. Das DRM-Framework bietet einen konsistenten Betriebsmodus für geschützte und nicht geschützte Inhalte. DRM-Schemata können komplexe Nutzungsmodelle durch Lizenzmetadaten definieren. Das DRM-Framework stellt die Zuordnung zwischen DRM-Inhalt und Lizenz her und übernimmt die Rechteverwaltung. Dadurch kann der Mediaplayer von DRM-geschützten oder nicht geschützten Inhalten abstrahiert werden. Siehe MediaDrm für die Klasse zum Abrufen von Schlüsseln zum Entschlüsseln geschützter Medienstreams.

Android-DRM-HAL
Abbildung 1a. DRM-Hardware-Abstraktionsschicht vor Android 11
Android DRM HAL nach R
Abbildung 1b. DRM-Hardware-Abstraktionsschicht ab Android 11

Die Verfügbarkeit von reichhaltigen digitalen Inhalten ist für Benutzer auf Mobilgeräten wichtig. Um ihre Inhalte allgemein verfügbar zu machen, benötigen Android-Entwickler und Herausgeber digitaler Inhalte eine konsistente DRM-Implementierung, die im gesamten Android-Ökosystem unterstützt wird. Um diese digitalen Inhalte auf Android-Geräten verfügbar zu machen und sicherzustellen, dass auf allen Geräten mindestens ein einheitliches DRM verfügbar ist, bietet Google DRM ohne Lizenzgebühren auf kompatiblen Android-Geräten an. Das DRM-Plug-in ist in das Android-DRM-Framework integriert und kann hardwaregestützten Schutz verwenden, um Premium-Inhalte und Benutzeranmeldeinformationen zu sichern.

Der vom DRM-Plugin bereitgestellte Inhaltsschutz hängt von den Sicherheits- und Inhaltsschutzfunktionen der zugrunde liegenden Hardwareplattform ab. Die Hardwarefähigkeiten des Geräts sollten einen sicheren Hardwarestart umfassen, um eine Vertrauenskette für die Sicherheit und den Schutz von kryptografischen Schlüsseln einzurichten. Inhaltsschutzfähigkeiten des Geräts sollten den Schutz entschlüsselter Frames im Gerät und den Inhaltsschutz durch einen vertrauenswürdigen Ausgabeschutzmechanismus umfassen. Nicht alle Hardwareplattformen unterstützen alle oben genannten Sicherheits- und Inhaltsschutzfunktionen. Sicherheit wird nie an einer einzelnen Stelle im Stack implementiert, sondern beruht auf der Integration von Hardware, Software und Diensten. Die Kombination aus Hardware-Sicherheitsfunktionen, einem vertrauenswürdigen Boot-Mechanismus und einem isolierten sicheren Betriebssystem zur Handhabung von Sicherheitsfunktionen ist entscheidend für die Bereitstellung eines sicheren Geräts.

Die Architektur

Das DRM-Framework ist implementierungsunabhängig und abstrahiert die Details der spezifischen DRM-Schema-Implementierung in einem schemaspezifischen DRM-Plugin. Das DRM-Framework umfasst einfache APIs, um komplexe DRM-Vorgänge zu handhaben, Lizenzen zu erwerben, das Gerät bereitzustellen, DRM-Inhalt und seine Lizenz zuzuordnen und schließlich DRM-Inhalte zu entschlüsseln.

Das Android DRM-Framework ist in zwei Architekturschichten implementiert:

  • Eine DRM-Framework-API, die für Apps über das Android-Anwendungsframework verfügbar gemacht wird.
  • Ein natives Code-DRM-Framework, das eine Schnittstelle für DRM-Plugins (Agenten) bereitstellt, um die Rechteverwaltung und Entschlüsselung für verschiedene DRM-Schemata zu handhaben.
Android DRM-Framework
Abbildung 2a. DRM-Framework vor Android 11
Android DRM-Framework
Abbildung 2b. DRM-Framework ab Android 11

Weitere Einzelheiten finden Sie unter Android Media DRM und Android Media Crypto .

DRM-Plugins

Beim Systemstart scannt das DRM-Framework nach HAL-Instanzen/-Diensten (beschrieben in .rc Dateien) und Plug-ins werden über die HIDL-Registrierung erkannt. Der Medien-DRM-Server ( mediadrmserver ) erstellt sowohl CryptoHal als DrmHal Objekte. CryptoHal und DrmHal rufen dann die Plugins mit herstellerspezifischen Implementierungen auf.

Plugins sollten binderisierte HALs implementieren. Binderisierte HALs verwenden die HAL-Schnittstellendefinitionssprache (HIDL) , die es ermöglicht, das Framework zu ersetzen, ohne HALs neu erstellen zu müssen.

Plugins werden von Anbietern oder SOC-Herstellern erstellt und in einer /vendor -Partition auf dem Gerät abgelegt. Alle Geräte, die mit Android 8.0 oder höher starten, müssen gebundene HALs unterstützen, die in der HIDL-Sprache geschrieben sind.

Implementierung

So implementieren Sie neue DRM-Framework-APIs durch ein Plugin:

  1. Plugin-Dienst zu den Build-Dateien des Geräts hinzufügen.
  2. Aktualisieren Sie das Gerätemanifest.
  3. Fügen Sie SELinux-Berechtigungen hinzu.
  4. Erstellen Sie eine .rc -Datei unter /vendor .
  5. Implementieren Sie das Plugin.

APIs sind in jeder Version von IDrmPlugin.hal , ICryptoPlugin.hal , IDrmFactory.hal und ICryptoFactory.hal

PLATFORM_ROOT/hardware/interfaces/drm/VERSION/

Plugin-Dienst zu Geräte-Build-Dateien hinzufügen

Um beispielsweise Unterstützung für Schnittstelle 1.3 hinzuzufügen, muss die Datei VENDOR DEVICE /device.mk android.hardware.drm@1.3-service.* Pakete android.hardware.drm@1.3-service.* enthalten:

Die Versionen 1.0 bis 1.2 sind in R / Android 11 veraltet. Geräte, die auf R aktualisieren, dürfen weiterhin die Versionen 1.0 bis 1.2 ausführen. Auf neuen Geräten, die mit R gestartet werden, darf jedoch nur Version 1.3 ausgeführt werden.


  PRODUCT_PACKAGES += \
    android.hardware.drm@1.0-impl \
    android.hardware.drm@1.0-service \
    android.hardware.drm@1.3-service.clearkey \
    android.hardware.drm@1.3-service.widevine

Aktualisieren des Gerätemanifests

Die Datei vendor manifest.xml “ für das Gerät muss die folgenden Einträge enthalten:


  <hal format="hidl">
    <name>android.hardware.drm</name>
      <transport>hwbinder</transport>
      <fqname>@1.3::ICryptoFactory/clearkey</fqname>
      <fqname>@1.3::IDrmFactory/clearkey</fqname>
      <fqname>@1.3::ICryptoFactory/widevine</fqname>
      <fqname>@1.3::IDrmFactory/widevine</fqname>
  </hal>

Alternativ empfehlen wir die Verwendung von vintf_fragments.

Hinzufügen von SELinux-Berechtigungen

  1. Zu VENDOR DEVICE /sepolicy/vendor/file.te
    type mediadrm_vendor_data_file, file_type, data_file_type;
  2. Zu VENDOR DEVICE /sepolicy/vendor/file_contexts

    Wir empfehlen die Verwendung regulärer Ausdrücke zur Angabe der Versionsnummern, um Aktualisierungen für neue Versionen zu vermeiden, zum Beispiel:

    /vendor/bin/hw/android\.hardware\.drm@\[0-9]+\.[0-9]+-service\.clearkey
          u:object_r:hal_drm_clearkey_exec:s0
    /data/vendor/mediadrm(/.*)? u:object_r:mediadrm_vendor_data_file:s0

    Aktualisieren Sie alternativ die Versionsnummern wie unten gezeigt.

    /vendor/bin/hw/android\.hardware\.drm@1\.3-service\.clearkey
          u:object_r:hal_drm_clearkey_exec:s0
    /data/vendor/mediadrm(/.*)? u:object_r:mediadrm_vendor_data_file:s0
  3. Zu device/sepolicy/vendor/hal_drm_clearkey.te
    allow hal_drm_clearkey mediadrm_vendor_data_file:dir create_dir_perms;
        allow hal_drm_clearkey mediadrm_vendor_data_file:file create_file_perms;
        

Erstellen einer .rc-Datei unter /vendor

Die .rc -Datei gibt die Aktionen an, die ausgeführt werden sollen, wenn ein Dienst gestartet wird.

Weitere Informationen finden Sie unter Android-Init-Sprache .

Implementierung des Plugins

  1. Implementieren Sie den Einstiegspunkt main() in service.cpp des Plugin-Dienstes.
  2. Implementieren ICryptoPlugin , IDrmPlugin , ICryptoFactory und IDrmFactory .
  3. Implementieren Sie die neuen APIs im Plugin.

Details zum DRM-Plugin

Anbieter von DRM-Plug-ins implementieren DrmFactory , CryptoFactory und DRM-Plug-ins.

DrmFactory

Die DrmHal -Klasse sucht nach registrierten DRM-Plugin-Diensten und erstellt entsprechende Plugins, die ein bestimmtes Kryptoschema über die DrmFactory -Klasse unterstützen.

IDrmFactory ist der Haupteinstiegspunkt für die Interaktion mit der drm-HAL eines Anbieters über die createPlugin-API. Die createPlugin-API wird verwendet, um IDrmPlugin-Instanzen zu erstellen. Die 1.3 IDrmFactory muss immer 1.2 IDrmPlugin-Schnittstellen erstellen, die über die 1.0 createPlugin-Methode zurückgegeben werden.

Return<void> getSupportedCryptoSchemes(getSupportedCryptoSchemes_cb _hidl_cb);

GetSupportedCryptoSchemes ist neu in 1.3 IDrmFactory und gibt eine Liste der unterstützten Kryptoschemata für die HIDL-drm-HAL-Instanz zurück.

Return<bool> isCryptoSchemeSupported(const hidl_array<uint8_t, 16>uuid);

Bestimmt, ob die Plug-in-Factory DRM-Plug-ins erstellen kann, die ein bestimmtes Kryptoschema unterstützen, das durch eine UUID angegeben wird.

Return<bool> isContentTypeSupported(const hidl_string &mimeType);

Bestimmt, ob die Plug-in-Factory DRM-Plug-ins erstellen kann, die ein bestimmtes Mediencontainerformat unterstützen, das durch mimeType angegeben wird.

Return<void> createPlugin(const hidl_array<uint8_t, 16>uuid,
        const hidl_string& appPackageName, createPlugin_cb _hidl_cb);

Erstellt ein DRM-Plug-in für das durch UUID angegebene Kryptoschema.

CryptoFactory

Die CryptoHal -Klasse sucht nach registrierten DRM-Plugin-Diensten und erstellt entsprechende Plugins, die ein bestimmtes Kryptoschema über die CryptoFactory -Klasse unterstützen.

Return<bool> isCryptoSchemeSupported(const hidl_array<uint8_t, 16>uuid);

Bestimmt, ob die Crypto Factory Krypto-Plugins erstellen kann, die ein bestimmtes Kryptoschema unterstützen, das durch eine UUID angegeben wird.

Return<void> createPlugin(const hidl_array<uint8_t, 16>uuid,
        const hidl_vec<uint8_t>initData, createPlugin_cb _hidl_cb)

Bestimmt, ob die Plug-in-Factory Krypto-Plug-ins erstellen kann, die ein bestimmtes Krypto-Schema unterstützen, das durch eine UUID angegeben wird.

DRM-Plugin

Die APIs sind in hardware/interfaces/drm/ VERSION /IDrmPlugin.hal . Die entsprechende Datei IDrmPlugin.h ist nach dem Build in out/Soong zu finden. , Android-DRM-HAL-Symbol

Dieses Dokument bietet einen Überblick über das DRM-Framework (Digital Rights Management) von Android und stellt die Schnittstellen vor, die ein DRM-Plugin implementieren muss. Dieses Dokument beschreibt keine Robustheitsregeln oder Konformitätsregeln, die von einem DRM-Schema definiert werden können.

Rahmen

Die Android-Plattform bietet ein erweiterbares DRM-Framework, mit dem Apps rechtegeschützte Inhalte gemäß den mit den Inhalten verbundenen Lizenzbeschränkungen verwalten können. Das DRM-Framework unterstützt viele DRM-Schemata; Welche DRM-Schemata ein Gerät unterstützt, ist Sache des Geräteherstellers. Das DRM-Framework bietet eine einheitliche Schnittstelle für Anwendungsentwickler und verbirgt die Komplexität von DRM-Vorgängen. Das DRM-Framework bietet einen konsistenten Betriebsmodus für geschützte und nicht geschützte Inhalte. DRM-Schemata können komplexe Nutzungsmodelle durch Lizenzmetadaten definieren. Das DRM-Framework stellt die Zuordnung zwischen DRM-Inhalt und Lizenz her und übernimmt die Rechteverwaltung. Dadurch kann der Mediaplayer von DRM-geschützten oder nicht geschützten Inhalten abstrahiert werden. Siehe MediaDrm für die Klasse zum Abrufen von Schlüsseln zum Entschlüsseln geschützter Medienstreams.

Android-DRM-HAL
Abbildung 1a. DRM-Hardware-Abstraktionsschicht vor Android 11
Android DRM HAL nach R
Abbildung 1b. DRM-Hardware-Abstraktionsschicht ab Android 11

Die Verfügbarkeit von reichhaltigen digitalen Inhalten ist für Benutzer auf Mobilgeräten wichtig. Um ihre Inhalte allgemein verfügbar zu machen, benötigen Android-Entwickler und Herausgeber digitaler Inhalte eine konsistente DRM-Implementierung, die im gesamten Android-Ökosystem unterstützt wird. Um diese digitalen Inhalte auf Android-Geräten verfügbar zu machen und sicherzustellen, dass auf allen Geräten mindestens ein einheitliches DRM verfügbar ist, bietet Google DRM ohne Lizenzgebühren auf kompatiblen Android-Geräten an. Das DRM-Plug-in ist in das Android-DRM-Framework integriert und kann hardwaregestützten Schutz verwenden, um Premium-Inhalte und Benutzeranmeldeinformationen zu sichern.

Der vom DRM-Plugin bereitgestellte Inhaltsschutz hängt von den Sicherheits- und Inhaltsschutzfunktionen der zugrunde liegenden Hardwareplattform ab. Die Hardwarefähigkeiten des Geräts sollten einen sicheren Hardwarestart umfassen, um eine Vertrauenskette für die Sicherheit und den Schutz von kryptografischen Schlüsseln einzurichten. Inhaltsschutzfähigkeiten des Geräts sollten den Schutz entschlüsselter Frames im Gerät und den Inhaltsschutz durch einen vertrauenswürdigen Ausgabeschutzmechanismus umfassen. Nicht alle Hardwareplattformen unterstützen alle oben genannten Sicherheits- und Inhaltsschutzfunktionen. Sicherheit wird nie an einer einzelnen Stelle im Stack implementiert, sondern beruht auf der Integration von Hardware, Software und Diensten. Die Kombination aus Hardware-Sicherheitsfunktionen, einem vertrauenswürdigen Boot-Mechanismus und einem isolierten sicheren Betriebssystem zur Handhabung von Sicherheitsfunktionen ist entscheidend für die Bereitstellung eines sicheren Geräts.

Die Architektur

Das DRM-Framework ist implementierungsunabhängig und abstrahiert die Details der spezifischen DRM-Schema-Implementierung in einem schemaspezifischen DRM-Plugin. Das DRM-Framework umfasst einfache APIs, um komplexe DRM-Vorgänge zu handhaben, Lizenzen zu erwerben, das Gerät bereitzustellen, DRM-Inhalt und seine Lizenz zuzuordnen und schließlich DRM-Inhalte zu entschlüsseln.

Das Android DRM-Framework ist in zwei Architekturschichten implementiert:

  • Eine DRM-Framework-API, die für Apps über das Android-Anwendungsframework verfügbar gemacht wird.
  • Ein natives Code-DRM-Framework, das eine Schnittstelle für DRM-Plugins (Agenten) bereitstellt, um die Rechteverwaltung und Entschlüsselung für verschiedene DRM-Schemata zu handhaben.
Android DRM-Framework
Abbildung 2a. DRM-Framework vor Android 11
Android DRM-Framework
Abbildung 2b. DRM-Framework ab Android 11

Weitere Einzelheiten finden Sie unter Android Media DRM und Android Media Crypto .

DRM-Plugins

Beim Systemstart scannt das DRM-Framework nach HAL-Instanzen/-Diensten (beschrieben in .rc Dateien) und Plug-ins werden über die HIDL-Registrierung erkannt. Der Medien-DRM-Server ( mediadrmserver ) erstellt sowohl CryptoHal als DrmHal Objekte. CryptoHal und DrmHal rufen dann die Plugins mit herstellerspezifischen Implementierungen auf.

Plugins sollten binderisierte HALs implementieren. Binderisierte HALs verwenden die HAL-Schnittstellendefinitionssprache (HIDL) , die es ermöglicht, das Framework zu ersetzen, ohne HALs neu erstellen zu müssen.

Plugins werden von Anbietern oder SOC-Herstellern erstellt und in einer /vendor -Partition auf dem Gerät abgelegt. Alle Geräte, die mit Android 8.0 oder höher starten, müssen gebundene HALs unterstützen, die in der HIDL-Sprache geschrieben sind.

Implementierung

So implementieren Sie neue DRM-Framework-APIs durch ein Plugin:

  1. Plugin-Dienst zu den Build-Dateien des Geräts hinzufügen.
  2. Aktualisieren Sie das Gerätemanifest.
  3. Fügen Sie SELinux-Berechtigungen hinzu.
  4. Erstellen Sie eine .rc -Datei unter /vendor .
  5. Implementieren Sie das Plugin.

APIs sind in jeder Version von IDrmPlugin.hal , ICryptoPlugin.hal , IDrmFactory.hal und ICryptoFactory.hal

PLATFORM_ROOT/hardware/interfaces/drm/VERSION/

Plugin-Dienst zu Geräte-Build-Dateien hinzufügen

Um beispielsweise Unterstützung für Schnittstelle 1.3 hinzuzufügen, muss die Datei VENDOR DEVICE /device.mk android.hardware.drm@1.3-service.* Pakete android.hardware.drm@1.3-service.* enthalten:

Die Versionen 1.0 bis 1.2 sind in R / Android 11 veraltet. Geräte, die auf R aktualisieren, dürfen weiterhin die Versionen 1.0 bis 1.2 ausführen. Auf neuen Geräten, die mit R gestartet werden, darf jedoch nur Version 1.3 ausgeführt werden.


  PRODUCT_PACKAGES += \
    android.hardware.drm@1.0-impl \
    android.hardware.drm@1.0-service \
    android.hardware.drm@1.3-service.clearkey \
    android.hardware.drm@1.3-service.widevine

Aktualisieren des Gerätemanifests

Die Datei vendor manifest.xml “ für das Gerät muss die folgenden Einträge enthalten:


  <hal format="hidl">
    <name>android.hardware.drm</name>
      <transport>hwbinder</transport>
      <fqname>@1.3::ICryptoFactory/clearkey</fqname>
      <fqname>@1.3::IDrmFactory/clearkey</fqname>
      <fqname>@1.3::ICryptoFactory/widevine</fqname>
      <fqname>@1.3::IDrmFactory/widevine</fqname>
  </hal>

Alternativ empfehlen wir die Verwendung von vintf_fragments.

Hinzufügen von SELinux-Berechtigungen

  1. Zu VENDOR DEVICE /sepolicy/vendor/file.te
    type mediadrm_vendor_data_file, file_type, data_file_type;
  2. Zu VENDOR DEVICE /sepolicy/vendor/file_contexts

    Wir empfehlen die Verwendung regulärer Ausdrücke zur Angabe der Versionsnummern, um Aktualisierungen für neue Versionen zu vermeiden, zum Beispiel:

    /vendor/bin/hw/android\.hardware\.drm@\[0-9]+\.[0-9]+-service\.clearkey
          u:object_r:hal_drm_clearkey_exec:s0
    /data/vendor/mediadrm(/.*)? u:object_r:mediadrm_vendor_data_file:s0

    Aktualisieren Sie alternativ die Versionsnummern wie unten gezeigt.

    /vendor/bin/hw/android\.hardware\.drm@1\.3-service\.clearkey
          u:object_r:hal_drm_clearkey_exec:s0
    /data/vendor/mediadrm(/.*)? u:object_r:mediadrm_vendor_data_file:s0
  3. Zu device/sepolicy/vendor/hal_drm_clearkey.te
    allow hal_drm_clearkey mediadrm_vendor_data_file:dir create_dir_perms;
        allow hal_drm_clearkey mediadrm_vendor_data_file:file create_file_perms;
        

Erstellen einer .rc-Datei unter /vendor

Die .rc -Datei gibt die Aktionen an, die ausgeführt werden sollen, wenn ein Dienst gestartet wird.

Weitere Informationen finden Sie unter Android-Init-Sprache .

Implementierung des Plugins

  1. Implementieren Sie den Einstiegspunkt main() in service.cpp des Plugin-Dienstes.
  2. Implementieren ICryptoPlugin , IDrmPlugin , ICryptoFactory und IDrmFactory .
  3. Implementieren Sie die neuen APIs im Plugin.

Details zum DRM-Plugin

Anbieter von DRM-Plug-ins implementieren DrmFactory , CryptoFactory und DRM-Plug-ins.

DrmFactory

Die DrmHal -Klasse sucht nach registrierten DRM-Plugin-Diensten und erstellt entsprechende Plugins, die ein bestimmtes Kryptoschema über die DrmFactory -Klasse unterstützen.

IDrmFactory ist der Haupteinstiegspunkt für die Interaktion mit der drm-HAL eines Anbieters über die createPlugin-API. Die createPlugin-API wird verwendet, um IDrmPlugin-Instanzen zu erstellen. Die 1.3 IDrmFactory muss immer 1.2 IDrmPlugin-Schnittstellen erstellen, die über die 1.0 createPlugin-Methode zurückgegeben werden.

Return<void> getSupportedCryptoSchemes(getSupportedCryptoSchemes_cb _hidl_cb);

GetSupportedCryptoSchemes ist neu in 1.3 IDrmFactory und gibt eine Liste der unterstützten Kryptoschemata für die HIDL-drm-HAL-Instanz zurück.

Return<bool> isCryptoSchemeSupported(const hidl_array<uint8_t, 16>uuid);

Bestimmt, ob die Plug-in-Factory DRM-Plug-ins erstellen kann, die ein bestimmtes Kryptoschema unterstützen, das durch eine UUID angegeben wird.

Return<bool> isContentTypeSupported(const hidl_string &mimeType);

Bestimmt, ob die Plug-in-Factory DRM-Plug-ins erstellen kann, die ein bestimmtes Mediencontainerformat unterstützen, das durch mimeType angegeben wird.

Return<void> createPlugin(const hidl_array<uint8_t, 16>uuid,
        const hidl_string& appPackageName, createPlugin_cb _hidl_cb);

Erstellt ein DRM-Plug-in für das durch UUID angegebene Kryptoschema.

CryptoFactory

Die CryptoHal -Klasse sucht nach registrierten DRM-Plugin-Diensten und erstellt entsprechende Plugins, die ein bestimmtes Kryptoschema über die CryptoFactory -Klasse unterstützen.

Return<bool> isCryptoSchemeSupported(const hidl_array<uint8_t, 16>uuid);

Bestimmt, ob die Crypto Factory Krypto-Plugins erstellen kann, die ein bestimmtes Kryptoschema unterstützen, das durch eine UUID angegeben wird.

Return<void> createPlugin(const hidl_array<uint8_t, 16>uuid,
        const hidl_vec<uint8_t>initData, createPlugin_cb _hidl_cb)

Bestimmt, ob die Plug-in-Factory Krypto-Plug-ins erstellen kann, die ein bestimmtes Krypto-Schema unterstützen, das durch eine UUID angegeben wird.

DRM-Plugin

Die APIs sind in hardware/interfaces/drm/ VERSION /IDrmPlugin.hal . Die entsprechende Datei IDrmPlugin.h ist nach dem Build in out/Soong zu finden.