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 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 :

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.