Dukungan Kebijakan Audio yang dapat dikonfigurasi di AIDL HAL

Mulai Android 16, antarmuka AIDL Audio HAL sepenuhnya mendukung Kebijakan Audio yang Dapat Dikonfigurasi (CAP).

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

Framework Parameter

Implementasi CAP didasarkan pada Framework Parameter Intel. CAP diperkenalkan di Android 6. Framework Parameter (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 Framework Parameter, dan Konfigurasi menggunakan Framework Parameter untuk mengetahui informasi selengkapnya. File XML digunakan untuk menentukan hal berikut:

  • Deskripsi struktur parameter (yaitu, deskripsi domain audio untuk PfW)
  • Definisi untuk kriteria
  • Aturan untuk strategi pemilihan rute (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 dengan versi sebelumnya (dalam istilah HIDL, setiap rilis AIDL HAL adalah update "minor"). 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 ke 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 menjadi AIDL, mirip dengan XML Konfigurasi Kebijakan Audio di AIDL Audio HAL untuk Android 15.

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

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

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

Skenario migrasi

Partner dapat mempertimbangkan opsi seperti 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 implementasi kebijakan audio, OEM dapat memilih untuk menggunakan XML untuk 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 implementasi default parser XML untuk mengonversi konfigurasi menjadi AIDL.

Pembaruan untuk produk yang ada

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

Konvensi penamaan untuk strategi produk berbeda dalam versi HIDL dan AIDL konfigurasi CAP. Di HIDL, strategi bawaan ("lama") menggunakan nama pendek huruf kecil seperti media, sedangkan di AIDL, strategi bawaan menggunakan nama huruf besar yang diawali dengan STRATEGY_, misalnya STRATEGY_MEDIA. Lihat daftar strategi bawaan di CapProductStrategies.xml. File yang sama menentukan ID "pra-dialokasikan" 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 ini tetap kompatibel dengan konfigurasi CAP lama.

Contoh penerapan

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