Unterstützung für konfigurierbare Audiorichtlinien in der AIDL HAL

Ab Android 16 unterstützt die AIDL Audio HAL-Schnittstelle die konfigurierbare Audio-Richtlinie (Configurable Audio Policy, CAP) vollständig.

Auf dieser Seite finden Sie die erforderlichen technischen Informationen, um Partner und SoC-Anbieter bei der Migration ihrer Audiokonfigurationen zu unterstützen.

Das Parameter-Framework

Die Implementierung des CAP basiert auf dem Intel Parameter Framework. Die CAP wurde in Android 6 eingeführt. Mit dem Parameter Framework (PfW) kann ein System anhand von Parametern beschrieben werden. Mithilfe einer XML-Konfigurationsdatei bindet PfW die Parameter mithilfe von Plug-ins an Aktionen und stellt Regeln zum Ändern der Parameter entsprechend den aktuellen Kriterien bereit.

Struktur von CAP in HIDL

In HIDL wurde die gesamte Konfiguration für die CAP in XML angegeben. Weitere Informationen finden Sie unter Parameter Framework und Konfiguration mit dem Parameter Framework. Mit XML-Dateien wurde Folgendes angegeben:

  • Beschreibung der Struktur der Parameter (d. h. Beschreibung der Audio-Domain für PfW)
  • Definitionen für Kriterien
  • Regeln für Routingstrategien (Auswahl von Ein- und Ausgabegeräten)
  • Spezifikation für Volumetabellen

Mit HIDL konnte das Android-Framework diese XML-Dateien direkt von der Anbieterpartition laden. Dies war zulässig, da für diese XML-Dateien ein XSD-Schema als Teil der HAL API definiert wurde. Für jede Hauptversion des HIDL-HAL gab es ein entsprechendes XSD-Schema. Für Hauptversionen war keine Abwärtskompatibilität erforderlich.

Struktur von CAP in AIDL

Mit der Umstellung auf AIDL müssen HAL-API-Releases abwärtskompatibel bleiben (in HIDL-Begriffen ist jedes Release des AIDL-HAL ein „Minor“-Update). XSD-Schemas können nicht mehr als Teil von HAL-APIs verwendet werden, da es keine etablierte Methode gibt, abwärtskompatible Aktualisierungen der Schemas zu definieren. Daher muss die Konfiguration, die zuvor in XML-Dateien definiert wurde, jetzt vom HAL über AIDL-APIs bereitgestellt werden. Dazu wird die Struktur der CAP-Konfiguration in AIDL konvertiert, ähnlich wie bei den XML-Dateien für die Audio-Richtlinienkonfiguration in AIDL Audio HAL für Android 15.

Datenstrukturen für die CAP werden zu Common stable data types hinzugefügt und umfassen die folgenden Parcelables:

Der Einstiegspunkt für die CAP-Konfiguration befindet sich in der Struktur AudioHalEngineConfig.CapSpecificConfig. Ein Diagramm der CAP-Datenstrukturen finden Sie in den Kommentaren in AudioHalCapConfiguration.aidl.

Die Standardimplementierung des AIDL-HAL enthält eine Hilfsklasse, die die AIDL-Parcelables basierend auf dem Inhalt der alten CAP-XML-Dateien ausfüllt, um die Migration für Partner zu vereinfachen.

Migrationsszenarien

Partner können die in diesem Abschnitt aufgeführten Optionen in Betracht ziehen, je nachdem, ob es sich um die erste Einführung eines Produkts handelt, das bisher nicht CAP verwendet hat, oder um die Migration eines bestehenden Produkts.

Neues Produkt

Bei einem neuen Produkt, bei dem CAP für die Implementierung von Audiorichtlinien verwendet wird, kann der OEM XML zum Speichern der CAP-Konfiguration auf der Anbieterseite verwenden.

Der Vorteil der Verwendung von XML besteht darin, dass es eine Reihe von Scripting-Tools gibt, die die Generierung der Konfiguration aus einer allgemeinen Beschreibung erleichtern.

Wenn der OEM sich entscheidet, XML zum Speichern der CAP-Konfiguration auf der Anbieterpartition zu verwenden, wird empfohlen, die Standardimplementierung des XML-Parsers zum Konvertieren der Konfiguration in AIDL zu verwenden.

Update für ein bestehendes Produkt

Wenn das Produkt bereits CAP verwendet und somit die XML-Konfiguration vorhanden ist, können Sie das vorhandene CAP mit der AIDL-Version des HAL weiter verwenden.

Die Namenskonvention für Produktstrategien unterscheidet sich in den HIDL- und AIDL-Versionen der CAP-Konfiguration. In HIDL wurden für die integrierten („Legacy“-)Strategien kurze Namen in Kleinbuchstaben wie media verwendet. In AIDL werden für integrierte Strategien Namen in Großbuchstaben mit dem Präfix STRATEGY_ verwendet, z. B. STRATEGY_MEDIA. Eine Liste der integrierten Strategien finden Sie unter CapProductStrategies.xml. In derselben Datei werden „vorab zugewiesene“ IDs für OEM-spezifische Strategien definiert, die dem Namensmuster vx_10xx mit Zahlen von 1000 bis 1039 folgen.

Legacy-Produkt

Wenn die Anbieterpartition des Produkts, das auf CAP basiert, nicht aktualisiert wird und HIDL weiterhin verwendet wird, können Sie die Systempartition auf Android 16 aktualisieren. Das Framework ist weiterhin mit der alten CAP-Konfiguration kompatibel.

Beispielimplementierung

Damit Partner CAP für ihre Plattformen implementieren können, enthält das AOSP ein Beispiel für die „Automotive“-Variante des virtuellen Cuttlefish-Geräts, das CAP mit AIDL-HAL verwendet. Die gerätespezifische Konfiguration befindet sich unter device/google/cuttlefish/shared/auto/audio/policy/engine mit dem lunch-Zielnamen aosp_cf_x86_64_auto. Die Datei Android.bp kann als Referenz zum Generieren des vollständigen Satzes von CAP-Anbieterdateien verwendet werden.