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

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

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

Le framework de paramètres

L'implémentation du CAP est basée sur le framework 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. À l'aide d'un fichier XML de configuration, le 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 de la CAP était spécifiée au format XML. Pour en savoir plus, consultez Framework de paramètres et Configuration à l'aide du framework de paramètres. Les 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 la PfW)
  • Définitions des critères
  • Règles concernant les stratégies de routage (sélection des appareils d'entrée et de sortie)
  • Spécification des tables de volumes

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

Structure de CAP dans AIDL

Avec la transition vers AIDL, les versions de l'API HAL doivent rester rétrocompatibles (en termes de HIDL, chaque version de l'HAL AIDL est une mise à jour "mineure"). Les schémas XSD ne peuvent plus être utilisés dans les 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 des fichiers XML doit désormais être fournie par le HAL à l'aide des API AIDL. Pour faciliter cette tâche, la structure de la configuration CAP est convertie en AIDL, semblable aux fichiers XML de configuration des règles audio dans le HAL audio AIDL pour Android 15.

Les structures de données pour le CAP sont ajoutées aux types de données stables courants et incluent les parcelables 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 diagramme des structures de données CAP.

L'implémentation par défaut de l'HAL AIDL contient une classe d'assistance qui remplit les éléments parcellables AIDL en fonction du contenu des anciens fichiers XML CAP 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 auparavant la fonctionnalité CAP 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 le 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 le format XML pour stocker la configuration CAP dans 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 du 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 tels que 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 à l'OEM qui suivent le modèle de dénomination de vx_10xx avec des numéros allant de 1000 à 1039.

Ancien produit

Si le produit qui s'appuie sur CAP ne met pas à jour sa partition du 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 version "automobile" de l'appareil virtuel Cuttlefish, qui utilise CAP avec HAL AIDL. 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 du fournisseur CAP.