À partir d'Android 16, l'interface AIDL Audio HAL est entièrement compatible avec la configuration audio configurable (CAP, Configurable Audio Policy).
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 configuration audio configurable est basée sur le framework de paramètres Intel. La configuration audio configurable a été introduite dans Android 6. Le framework de paramètres (PfW, Parameter Framework) permet de décrire un système en termes de paramètres. À l'aide d'un fichier XML de configuration, le framework de paramètres 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 la configuration audio configurable dans HIDL
Dans HIDL, toute la configuration de la configuration audio configurable était spécifiée en XML. Pour en savoir plus, consultez Parameter Framework et Configuration à l'aide du framework de paramètres. Les fichiers XML étaient 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 framework de paramètres)
- Définitions des critères
- Règles pour les stratégies de routage (sélection des appareils d'entrée et de sortie)
- Spécification des tables 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 avait un schéma XSD correspondant. Les versions majeures ne nécessitaient pas de rétrocompatibilité.
Structure de la configuration audio configurable dans AIDL
Avec la transition vers AIDL, les versions de l'API HAL doivent rester rétrocompatibles (en termes HIDL, chaque version du HAL AIDL est une mise à jour "mineure"). Les schémas XSD ne peuvent plus être utilisés dans le cadre des API HAL, car il n'existe aucun moyen établi de définir des mises à jour rétrocompatibles des schémas. Par conséquent, la configuration précédemment définie dans les fichiers XML doit désormais être fournie par le HAL à l'aide des API AIDL. Pour faciliter cette opération, la structure de la configuration audio configurable 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 la configuration audio configurable sont ajoutées aux types de données stables courants et incluent les éléments Parcelable suivants :
AudioHalCapConfiguration.aidlAudioHalCapCriterionV2.aidlAudioHalCapDomain.aidlAudioHalCapParameter.aidlAudioHalCapRule.aidl
Le point d'entrée de la configuration audio configurable se trouve dans la
AudioHalEngineConfig.CapSpecificConfig
structure. Consultez les commentaires dans
AudioHalCapConfiguration.aidl
pour obtenir un schéma des structures de données de la configuration audio configurable.
L'implémentation par défaut du HAL AIDL contient une classe d'assistance qui remplit les éléments Parcelable AIDL en fonction du contenu des anciens fichiers XML de configuration audio configurable afin de 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 la configuration audio configurable auparavant ou de la migration d'un produit existant.
Nouveau produit
Pour un nouveau produit qui commence à utiliser la configuration audio configurable pour l'implémentation des règles audio, l'OEM peut choisir d'utiliser XML pour stocker la configuration audio configurable côté fournisseur.
L'avantage d'utiliser XML est qu'il existe un ensemble d'outils de scripting 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 audio configurable 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 pour un produit existant
Si le produit utilise déjà la configuration audio configurable et dispose donc de la configuration XML, vous pouvez continuer à utiliser la configuration audio configurable existante avec la version AIDL du HAL.
La convention d'attribution de noms pour les stratégies de produit diffère dans les versions HIDL et AIDL de la configuration audio configurable. Dans HIDL, les stratégies intégrées ("héritées")
utilisaient des noms courts en minuscules, comme media tandis que 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 nommage vx_10xx avec des nombres compris entre 1000 et 1039.
Ancien produit
Si le produit qui repose sur la configuration audio configurable 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 audio configurable.
Exemple d'implémentation
Pour aider les partenaires à implémenter la configuration audio configurable pour leurs plates-formes, l'AOSP propose un exemple de version "automobile" de l'appareil virtuel Cuttlefish qui utilise la configuration audio configurable 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 être utilisé comme référence pour générer l'ensemble complet des fichiers fournisseur de la configuration audio configurable.