Android 14 より、オーディオ HAL インターフェースは安定版 AIDL を使って定義されます。パートナーと SoC ベンダーはオーディオ HAL を再実装して、AIDL インターフェースを利用できるようにすることが推奨されます。
libaudiohal
ライブラリの拡張により、AIDL HAL のフレームワーク サポートが追加されます。AIDL 実装では、オーディオ ポリシー構成の仕様は AIDL HAL に移行します。この変更により、オーディオ ポリシー マネージャー(APM)は設定をベンダー提供の XML ファイルから処理するのではなく、HAL から取得できるようになります。
オーディオ AIDL HAL API
このセクションでは、AIDL のコア、エフェクト、共通 HAL API について説明します。
カーネル ドライバを操作する新しいバージョンのオーディオ HAL を実装するときは、/hardware/interfaces/audio/aidl/default/
の AIDL API のデフォルト実装をリファレンスとして使用します。
AIDL のオーディオ HAL ディレクトリの構造については、オーディオ HAL README ファイルをご覧ください。
コア HAL
AIDL を使用したコア HAL の主要なインターフェースには次のものがあります。
IModule.aidl
は、API のエントリ ポイントです。- ストリームは単方向であり、AudioFlinger で 、
IStreamOut.aidl
とIStreamIn.aidl
を介して HAL との間でオーディオを送受信するために使用します。 ITelephony.aidl
ではテレフォニー機能固有の制御ができます。IBluetooth.aidl
では HIDL API のIPrimaryModule
にあった BT SCO と HFP 制御ができます。IConfig.aidl
はシステム全体の設定パラメータです。ISoundDose.aidl
は音響暴露をサポートします。詳しくは、音響暴露をご覧ください。- 開発中の最新バージョンのコア HAL API は
/hardware/interfaces/audio/aidl/android/hardware/audio/core/
にあります。 - 最新のリリース バージョンのコア HAL API は
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.core/
にあります。
エフェクト HAL
AIDL を使用したエフェクト HAL の主要なインターフェースには次のものがあります。
IFactory.aidl
は、API のエントリ ポイントです。Descriptor.aidl
にはエフェクト実装の機能や属性などのすべての情報が含まれます。Capability.aidl
は実行時に変更されないエフェクト機能を定義します。Parameter.aidl
はエフェクト インスタンスでサポートされるすべてのパラメータを定義します。IEffect.aidl
は特定のエフェクト インスタンスの設定と制御に使用されます。エフェクト固有の Parcelable はエフェクトに基づいて名前が付けられています。
開発中の最新バージョンのエフェクト HAL API は
/hardware/interfaces/audio/aidl/android/hardware/audio/effect/
にあります。最新のリリース バージョンのエフェクト HAL API は
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect
にあります。
詳しくは、オーディオ エフェクトをご覧ください。
共通 HAL
BT HAL、コアおよびエフェクト オーディオ HAL などのさまざまなオーディオ HAL で共有されるデータ構造とインターフェースは共通 HAL にあります。
開発中の最新バージョンの共有 AIDL HAL は
/hardware/interfaces/audio/aidl/android/hardware/audio/common/
にあります。最新のリリース バージョンの共通 HAL API は
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.common/current/android/hardware/audio/common/
にあります。
一般的な安定データ型
安定データ構造の定義は HAL とフレームワークの両方で使用されます。
開発中の最新バージョンの安定データタイプは
/system/hardware/interfaces/media/aidl/android/media/audio/common/
にあります。最新のリリース バージョンの安定データタイプは
/system/hardware/interfaces/media/aidl_api/android.media.audio.common.types/
にあります。
オーディオ AIDL HAL API をテストする
新しい VTS テストは AIDL インターフェースに対応しています。
セキュリティに影響を及ぼす可能性がある新しい HAL バージョンに変更はありません。