Compatibilité avec les règles audio configurables dans l'HAL AIDL

À partir d'Android 16, l'interface AIDL Audio HAL est entièrement compatible avec la stratégie audio configurable (CAP).

Cette page fournit les informations techniques nécessaires pour aider les partenaires et les fournisseurs de SoC à migrer leurs configurations de règles audio.

Framework de paramètres

L'implémentation de la CAP est basée sur le cadre de paramètres Intel. Le CAP a été introduit dans Android 6. Le framework de paramètres (PfW) permet de décrire un système en termes de paramètres. En utilisant un fichier XML de configuration, PfW lie les paramètres aux actions à l'aide de plug-ins et fournit des règles pour modifier les paramètres en fonction des critères actuels.

Structure de CAP dans HIDL

Dans HIDL, toute la configuration du CAP était spécifiée en XML. Pour en savoir plus, consultez Framework de paramètres et Configuration à l'aide du framework de paramètres. Des fichiers XML ont été utilisés pour spécifier les éléments suivants :

  • Description de la structure des paramètres (c'est-à-dire la description du domaine audio pour le PfW)
  • Définitions des critères
  • Règles pour les stratégies de routage (sélection des périphériques d'entrée et de sortie)
  • Spécifications des tableaux de volume

Avec HIDL, le framework Android pouvait charger ces fichiers XML directement à partir de la partition du fournisseur. Cela était autorisé, car un schéma XSD était défini, dans le cadre de l'API HAL, pour ces fichiers XML. Chaque version majeure du HAL HIDL disposait d'un schéma XSD correspondant. Les versions majeures n'étaient pas rétrocompatibles.

Structure du CAP dans AIDL

Avec la transition vers AIDL, les versions de l'API HAL doivent rester rétrocompatibles (en termes HIDL, chaque version de l'AIDL HAL est une mise à jour "mineure"). Les schémas XSD ne peuvent plus être utilisés dans les API HAL, car il n'existe pas de méthode établie pour définir des mises à jour rétrocompatibles des schémas. Par conséquent, la configuration qui était auparavant définie dans des fichiers XML doit désormais être fournie par la HAL à l'aide des API AIDL. Pour faciliter cela, la structure de la configuration CAP est convertie en AIDL, comme les fichiers XML de configuration des règles audio dans AIDL Audio HAL pour Android 15.

Les structures de données pour le CAP sont ajoutées aux types de données stables courants et incluent les éléments Parcelable suivants :

Le point d'entrée de la configuration CAP se trouve dans la structure AudioHalEngineConfig.CapSpecificConfig. Consultez les commentaires dans AudioHalCapConfiguration.aidl pour obtenir un schéma des structures de données CAP.

L'implémentation par défaut de la HAL AIDL contient une classe d'assistance qui remplit les éléments AIDL en fonction du contenu des anciens fichiers XML CAP pour simplifier la migration pour les partenaires.

Scénarios de migration

Les partenaires peuvent envisager les options listées dans cette section, selon qu'il s'agit du premier lancement d'un produit qui n'utilisait pas CAP auparavant ou de la migration d'un produit existant.

Nouveau produit

Pour un nouveau produit qui commence à utiliser CAP pour l'implémentation de règles audio, l'OEM peut choisir d'utiliser XML pour stocker la configuration CAP côté fournisseur.

L'avantage d'utiliser XML est qu'il existe un ensemble d'outils de script qui facilitent la génération de la configuration à partir d'une description de haut niveau.

Si l'OEM décide d'utiliser XML pour stocker la configuration CAP sur la partition du fournisseur, il est recommandé d'utiliser l'implémentation par défaut de l'analyseur XML pour convertir la configuration en AIDL.

Mise à jour d'un produit existant

Si le produit utilise déjà CAP et dispose donc de la configuration XML, vous pouvez continuer à utiliser le CAP existant avec la version AIDL de HAL.

La convention d'attribution de noms pour les stratégies de produits diffère dans les versions HIDL et AIDL de la configuration CAP. Dans HIDL, les stratégies intégrées ("anciennes") utilisaient des noms courts en minuscules, comme media. Dans AIDL, les stratégies intégrées utilisent des noms en majuscules précédés de STRATEGY_, par exemple STRATEGY_MEDIA. Consultez la liste des stratégies intégrées dans CapProductStrategies.xml. Le même fichier définit des ID "préalloués" pour les stratégies spécifiques aux OEM qui suivent le modèle de dénomination vx_10xx avec des nombres allant de 1000 à 1039.

Ancien produit

Si le produit qui repose sur CAP ne met pas à jour sa partition fournisseur et reste sur HIDL, vous pouvez mettre à jour la partition système vers Android 16. Le framework reste compatible avec l'ancienne configuration CAP.

Exemple d'implémentation

Pour aider les partenaires à implémenter CAP pour leurs plates-formes, l'AOSP propose un exemple de variante "automobile" de l'appareil virtuel Cuttlefish qui utilise CAP avec AIDL HAL. La configuration spécifique à l'appareil se trouve dans device/google/cuttlefish/shared/auto/audio/policy/engine, avec le nom de cible lunch de aosp_cf_x86_64_auto. Le fichier Android.bp peut servir de référence pour générer l'ensemble complet des fichiers de fournisseurs CAP.