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. Sebelumnya, antarmuka ini ditentukan menggunakan HIDL.
- HAL Vendor: Permukaan HAL untuk perintah khusus Android. File AIDL ada
di
hardware/interfaces/wifi/aidl
. - HAL supplicant: Permukaan HAL untuk wpa_supplicant. File AIDL berada di
hardware/interfaces/wifi/supplicant/aidl
. - HAL Hostapd: Permukaan HAL untuk hostapd. File AIDL berada di
hardware/interfaces/wifi/hostapd/aidl
.
HAL Vendor
HAL Vendor menyediakan perintah khusus Android. Hal ini bersifat opsional (tidak diperlukan) agar mode Station (STA) dan Soft AP (SAP) infrastruktur dapat berfungsi. Namun, izin ini wajib diberikan untuk layanan Wi-Fi Aware dan Wi-Fi RTT.
Di Android 14 dan yang lebih tinggi, antarmuka Vendor HAL ditentukan menggunakan AIDL. Di Android 13 dan yang lebih rendah, antarmuka HAL Vendor ditentukan menggunakan HIDL.
Android pra-HIDL (yaitu sebelum Android 8.0) menggunakan mekanisme HAL yang kini disebut HAL lama. Kode sumber Android saat ini menyediakan implementasi AIDL atau HIDL default menggunakan shim yang berjalan di atas HAL lama.
Header HAL lama berada di
hardware/libhardware_legacy/include/hardware_legacy/
. Implementasi berbasis HAL lama terletak di hardware/interfaces/wifi/aidl/default
untuk AIDL dan hardware/interfaces/wifi/1.x/default
untuk HIDL.
HAL Pemohon
Supplicant HAL menyediakan antarmuka untuk daemon wpa_supplicant. Mulai dari 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 di subdirektori aidl
.
HAL Hostapd
Hostapd HAL menyediakan antarmuka untuk daemon hostapd. Mulai dari 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 kombinasi antarmuka Wi-Fi yang berbeda secara bersamaan. Kombinasi yang didukung ditentukan dalam HAL dan diekspos ke framework. Format spesifikasi ditentukan dalam
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
untuk AIDL Wi-Fi HAL,
android/hardware/interfaces/wifi/1.6/IWifiChip.hal
untuk Wi-Fi HAL 1.6, dan
android/hardware/interfaces/wifi/1.0/IWifiChip.hal
untuk Wi-Fi HAL 1.5 dan
yang lebih rendah.
HAL AIDL, tersedia untuk Android 14 dan yang lebih tinggi, dan HAL Wi-Fi versi 1.6, tersedia di Android 13 menambahkan kemampuan untuk menentukan antarmuka AP yang di-bridge (dual band simultan) sebagai item kombinasi eksplisit.
Format spesifikasi serentak fleksibel dan generik. Hal ini dapat mengekspresikan kombinasi yang belum didukung oleh framework. Untuk mengonfigurasi kombinasi tertentu, gunakan tanda build WIFI_HAL_INTERFACE_COMBINATIONS
yang ada di device/<oem>/<device>/BoardConfig-common.mk
.
Misalnya, perangkat dapat mendukung dua STA dan satu antarmuka 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 lain adalah perangkat yang mendukung STA dengan satu AP, atau AP yang di-bridge (dual band simultan) tanpa antarmuka lain. Hal ini ditampilkan sebagai:
WIFI_HAL_INTERFACE_COMBINATIONS := {{{STA}, 1}, {{AP}, 1}}, {{{AP_BRIDGED}, 1}}
Atau, HAL referensi memiliki konfigurasi untuk beberapa kombinasi yang dapat diaktifkan dengan tanda build (lama). Untuk mengetahui petunjuk konfigurasi, lihat: