Dukungan Kebijakan Audio yang dapat dikonfigurasi di AIDL HAL

Mulai Android 16, antarmuka AIDL Audio HAL sepenuhnya mendukung Configurable Audio Policy (CAP).

Halaman ini memberikan latar belakang teknis yang diperlukan untuk membantu partner dan vendor SoC dalam migrasi konfigurasi kebijakan audio mereka.

Framework Parameter

Implementasi CAP didasarkan pada Intel Parameter Framework. CAP diperkenalkan di Android 6. Parameter Framework (PfW) memungkinkan untuk mendeskripsikan sistem dalam hal parameter. Dengan menggunakan file XML konfigurasi, PfW mengikat parameter ke tindakan menggunakan plugin, dan memberikan aturan untuk mengubah parameter sesuai dengan kriteria saat ini.

Struktur CAP di HIDL

Di HIDL, semua konfigurasi untuk CAP ditentukan dalam XML. Lihat Parameter Framework, dan Konfigurasi menggunakan Parameter Framework untuk mengetahui informasi selengkapnya. File XML digunakan untuk menentukan hal berikut:

  • Deskripsi struktur parameter (yaitu, deskripsi domain audio untuk PfW)
  • Definisi kriteria
  • Aturan untuk strategi perutean (pemilihan perangkat input dan output)
  • Spesifikasi tabel volume

Dengan HIDL, framework Android dapat memuat file XML ini langsung dari partisi vendor. Hal ini diizinkan karena skema XSD ditentukan, sebagai bagian dari HAL API, untuk file XML ini. Setiap rilis utama HIDL HAL memiliki skema XSD yang sesuai. Rilis utama tidak memerlukan kompatibilitas mundur.

Struktur CAP di AIDL

Dengan transisi ke AIDL, rilis HAL API harus tetap kompatibel mundur (dalam istilah HIDL, setiap rilis HAL AIDL adalah update "kecil"). Skema XSD tidak dapat digunakan lagi sebagai bagian dari HAL API karena tidak ada cara yang ditetapkan untuk menentukan update yang kompatibel dengan versi lama pada skema. Oleh karena itu, konfigurasi yang sebelumnya ditentukan dalam file XML kini harus disediakan oleh HAL menggunakan AIDL API. Untuk memfasilitasi hal ini, struktur konfigurasi CAP dikonversi ke AIDL, mirip dengan XML Konfigurasi Kebijakan Audio di HAL Audio AIDL untuk Android 15.

Struktur data untuk CAP ditambahkan ke Jenis data stabil umum dan mencakup parcelable berikut:

Titik entri untuk konfigurasi CAP ada di struktur AudioHalEngineConfig.CapSpecificConfig. Lihat komentar di AudioHalCapConfiguration.aidl untuk melihat diagram struktur data CAP.

Implementasi default AIDL HAL berisi class helper yang mengisi parcelable AIDL berdasarkan konten file XML CAP lama untuk menyederhanakan migrasi bagi partner.

Skenario migrasi

Partner dapat mempertimbangkan opsi yang tercantum di bagian ini, berdasarkan apakah ini peluncuran pertama produk yang sebelumnya tidak menggunakan CAP, atau migrasi produk yang sudah ada.

Produk baru

Untuk produk baru yang mulai menggunakan CAP untuk penerapan kebijakan audio, OEM dapat memilih untuk menggunakan XML guna menyimpan konfigurasi CAP di sisi vendor.

Manfaat menggunakan XML adalah adanya serangkaian alat pembuatan skrip yang memfasilitasi pembuatan konfigurasi dari deskripsi tingkat tinggi.

Jika OEM memutuskan untuk menggunakan XML untuk menyimpan konfigurasi CAP di partisi vendor, sebaiknya gunakan penerapan default parser XML untuk mengonversi konfigurasi menjadi AIDL.

Pembaruan untuk produk yang ada

Jika produk sudah menggunakan CAP dan dengan demikian memiliki konfigurasi XML, Anda dapat terus menggunakan CAP yang ada dengan HAL versi AIDL.

Konvensi penamaan untuk strategi produk berbeda dalam konfigurasi CAP versi HIDL dan AIDL. Di HIDL, strategi bawaan ("lama") menggunakan nama pendek huruf kecil seperti media, sedangkan di AIDL, strategi bawaan menggunakan nama huruf besar semua yang diawali dengan STRATEGY_, misalnya STRATEGY_MEDIA. Lihat daftar strategi bawaan di CapProductStrategies.xml. File yang sama menentukan ID "dialokasikan sebelumnya" untuk strategi khusus OEM yang mengikuti pola penamaan vx_10xx dengan angka dari 1000 hingga 1039.

Produk lama

Jika produk yang mengandalkan CAP tidak mengupdate partisi vendornya dan tetap menggunakan HIDL, Anda dapat mengupdate partisi sistem ke Android 16. Framework tetap kompatibel dengan konfigurasi CAP lama.

Contoh penerapan

Untuk membantu partner menerapkan CAP untuk platform mereka, AOSP memiliki contoh varian "otomotif" dari perangkat virtual Cuttlefish yang menggunakan CAP dengan AIDL HAL. Konfigurasi khusus perangkat terletak di device/google/cuttlefish/shared/auto/audio/policy/engine, dengan nama target lunch aosp_cf_x86_64_auto. File Android.bp dapat digunakan sebagai referensi untuk membuat kumpulan lengkap file vendor CAP.