Framework Wi-Fi memiliki tiga platform HAL Wi-Fi yang diwakili oleh tiga antarmuka yang berbeda. Untuk perangkat yang menjalankan Android 14 atau yang lebih tinggi, ketiga antarmuka tersedia sebagai paket AIDL stabil. Antarmuka ini sebelumnya ditentukan menggunakan HIDL.
- HAL Vendor: Platform HAL untuk perintah khusus Android. File AIDL berada
di
hardware/interfaces/aidl
dan file HIDL berada dihardware/interfaces/wifi/1.x
. - Supplicant HAL: Platform HAL untuk wpa_supplicant. File AIDL berada di
hardware/interfaces/supplicant/aidl
dan file HIDL berada dihardware/interfaces/supplicant/1.x
. - Hostapd HAL: Platform HAL untuk hostapd. File AIDL berada di
hardware/interfaces/hostapd/aidl
dan file HIDL berada dihardware/interfaces/hostapd/1.x
.
HAL Vendor
Vendor HAL menyediakan perintah khusus Android. Hal ini bersifat opsional (tidak wajib) agar mode Station (STA) dan Soft AP (SAP) infrastruktur berfungsi. Namun, hal ini wajib untuk layanan Wi-Fi Aware dan Wi-Fi RTT.
Di Android 14 dan yang lebih baru, antarmuka HAL Vendor ditentukan menggunakan AIDL. Di Android 13 dan yang lebih rendah, antarmuka HAL Vendor ditentukan menggunakan HIDL.
Sebelum HIDL (yaitu sebelum Android 8.0), Android menggunakan mekanisme HAL yang sekarang disebut HAL lama. Kode sumber Android saat ini menyediakan implementasi default AIDL atau HIDL menggunakan shim yang berjalan di atas HAL lama.
Header HAL lama terletak di
hardware/libhardware_legacy/include/hardware_legacy/
. Implementasi berbasis HAL lama
berada di hardware/interfaces/wifi/aidl/default
untuk AIDL
dan hardware/interfaces/wifi/1.x/default
untuk HIDL.
HAL Supplicant
HAL Pemohon menyediakan antarmuka untuk daemon wpa_supplicant. Mulai Android 13, antarmuka menggunakan AIDL untuk definisi HAL. Untuk rilis sebelum Android 13, antarmuka dan partisi vendor menggunakan HIDL.
Kode sumber wpa_supplicant terletak di
external/wpa_supplicant_8/wpa_supplicant
. Penerapan referensi
menyediakan antarmuka AIDL, yang diimplementasikan dalam sub-direktori aidl
.
Hostapd HAL
Hostapd HAL menyediakan antarmuka untuk daemon hostapd. Mulai Android 13, antarmuka menggunakan AIDL untuk definisi HAL. Untuk rilis sebelum Android 13, antarmuka dan partisi vendor menggunakan HIDL.
Kode sumber hostapd terletak di external/wpa_supplicant_8/hostapd
.
Implementasi referensi menyediakan
antarmuka AIDL, yang diimplementasikan di subdirektori aidl
.
Serentak multi-antarmuka Wi-Fi
Perangkat Android yang berbeda dapat mendukung berbagai kombinasi antarmuka Wi-Fi
secara serentak. Kombinasi yang didukung ditentukan dalam HAL dan diekspos
ke framework. Format spesifikasi ditentukan di
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
untuk HAL Wi-Fi AIDL,
android/hardware/interfaces/wifi/1.6/IWifiChip.hal
untuk HAL Wi-Fi 1.6, dan
android/hardware/interfaces/wifi/1.0/IWifiChip.hal
untuk HAL Wi-Fi 1.5 dan
yang lebih rendah.
AIDL HAL, yang tersedia untuk Android 14 dan yang lebih tinggi, dan HAL Wi-Fi versi 1.6, yang tersedia di Android 13 menambahkan kemampuan untuk menentukan antarmuka AP yang dihubungkan (dual band simultan) sebagai item kombinasi eksplisit.
Format spesifikasi serentak bersifat fleksibel dan umum. Ini dapat mengekspresikan
kombinasi yang belum didukung oleh framework. Untuk mengonfigurasi
kombinasi tertentu, gunakan flag build
WIFI_HAL_INTERFACE_COMBINATIONS
yang terletak di device/<oem>/<device>/BoardConfig-common.mk
.
Misalnya, perangkat dapat mendukung dua STA dan satu antarmuka dari jenis NAN
(Wi-Fi Aware)
atau P2P
(Wi-Fi Direct)
(tetapi tidak keduanya). Hal ini dinyatakan dalam
device/<oem>/<device>/BoardConfig-common.mk
sebagai:
WIFI_HAL_INTERFACE_COMBINATIONS := {{{STA}, 2}, {{NAN, P2P}, 1}}
Contoh lainnya adalah perangkat yang mendukung STA dengan satu AP, atau AP yang di-bridge (dual band simultan) tanpa antarmuka lain. Hal ini direpresentasikan sebagai:
WIFI_HAL_INTERFACE_COMBINATIONS := {{{STA}, 1}, {{AP}, 1}}, {{{AP_BRIDGED}, 1}}
Atau, HAL referensi memiliki konfigurasi untuk beberapa kombinasi yang dapat diaktifkan dengan flag build (lama). Untuk petunjuk konfigurasi, lihat: