Kablosuz çerçevesinde üç farklı arayüzle temsil edilen üç Kablosuz HAL yüzeyi bulunur. Android 14 veya sonraki sürümlerin yüklü olduğu cihazlarda üç arayüzün tamamı kararlı Android Interface Definition Language (AIDL) paketleri olarak kullanılabilir. Bu arayüzler daha önce Donanım Arayüzü Tanımlama Dili (HIDL) kullanılarak tanımlanıyordu.
- Tedarikçi HAL'si: Android'e özgü komutlar için bir HAL yüzeyi. AIDL dosyaları
hardware/interfaces/wifi/aidliçinde yer alır. - İstemci HAL: wpa_supplicant için bir HAL yüzeyi. AIDL dosyaları
hardware/interfaces/wifi/supplicant/aidliçinde yer alır. - Hostapd HAL: hostapd için bir HAL yüzeyi. AIDL dosyaları
hardware/interfaces/wifi/hostapd/aidliçinde yer alır.
Tedarikçi HAL'si
Tedarikçi HAL'si, Android'e özel komutlar sağlar. Altyapı istasyonu (STA) ve Soft AP (SAP) modlarının çalışması için isteğe bağlıdır (gerekli değildir). Ancak Wi-Fi Aware ve Wi-Fi RTT hizmetleri için zorunludur.
Android 14 ve sonraki sürümlerde, Vendor HAL arayüzü AIDL kullanılarak tanımlanır. Android 13 ve önceki sürümlerde, Vendor HAL arayüzü HIDL kullanılarak tanımlanır.
Android, HIDL öncesinde (yani Android 8.0'dan önce) eski HAL adı verilen bir HAL mekanizması kullanıyordu. Android kaynak kodu, AIDL veya HIDL'nin varsayılan bir uygulamasını sağlar. Bu uygulamada, eski HAL'in üzerinde çalışan bir ara katman kullanılır.
Eski HAL üstbilgileri hardware/libhardware_legacy/include/hardware_legacy/ konumunda bulunur. Eski HAL tabanlı uygulama, AIDL için hardware/interfaces/wifi/aidl/default, HIDL için hardware/interfaces/wifi/1.x/default konumunda bulunur.
İstemci HAL'si
İstek Sahibi HAL, wpa_supplicant daemon'u için bir arayüz sağlar. Android 13'ten itibaren arayüz, HAL tanımı için AIDL'yi kullanır. Android 13'ten önceki sürümlerde, arayüzler ve tedarikçi bölümleri HIDL kullanır.
wpa_supplicant kaynak kodu external/wpa_supplicant_8/wpa_supplicant konumunda bulunur. Referans uygulama, aidl alt dizininde uygulanan bir AIDL arayüzü sağlar.
Hostapd HAL
Hostapd HAL, hostapd daemon'u için bir arayüz sağlar. Android 13'ten itibaren arayüz, HAL tanımı için AIDL'yi kullanır. Android 13'ten önceki sürümlerde, arayüzler ve tedarikçi bölümleri HIDL kullanır.
hostapd kaynak kodu external/wpa_supplicant_8/hostapd konumunda bulunur.
Referans uygulama, aidl alt dizininde uygulanan bir AIDL arayüzü sağlar.
Wi-Fi çoklu arayüz eşzamanlılığı
Farklı Android cihazlar, eşzamanlı olarak farklı kablosuz arayüzü kombinasyonlarını destekleyebilir. Desteklenen kombinasyonlar HAL'de tanımlanır ve çerçeveye sunulur. Spesifikasyon biçimi, AIDL Wi-Fi HAL için hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl, Wi-Fi HAL 1.6 için android/hardware/interfaces/wifi/1.6/IWifiChip.hal, Wi-Fi HAL 1.5 ve önceki sürümler için android/hardware/interfaces/wifi/1.0/IWifiChip.hal bölümünde tanımlanmıştır.
Android 14 ve sonraki sürümlerde kullanılabilen AIDL HAL ile Android 13'te kullanılabilen Wi-Fi HAL sürüm 1.6, köprülenmiş bir AP arayüzünün (çift bantlı eşzamanlı) açık bir kombinasyon öğesi olarak belirtilmesine olanak tanır.
Eşzamanlılık belirtme biçimi esnek ve geneldir. Çerçeve tarafından henüz desteklenmeyen kombinasyonları ifade edebilir. Belirli bir kombinasyonu yapılandırmak için WIFI_HAL_INTERFACE_COMBINATIONS derleme işaretini kullanın. Bu işaret, device/<oem>/<device>/BoardConfig-common.mk konumunda bulunuyor.
Örneğin, bir cihaz iki STA'yı ve NAN
(Wi-Fi Aware)
veya P2P
(Wi-Fi Direct)
türünde bir arayüzü (ancak ikisini birden değil) destekleyebilir. Bu, device/<oem>/<device>/BoardConfig-common.mk içinde şu şekilde ifade edilir:
WIFI_HAL_INTERFACE_COMBINATIONS := {{{STA}, 2}, {{NAN, P2P}, 1}}
Başka bir örnek ise tek bir AP ile STA'yı destekleyen veya başka arayüzü olmayan köprülenmiş bir AP'dir (çift bantlı eşzamanlı). Bu, şu şekilde gösterilir:
WIFI_HAL_INTERFACE_COMBINATIONS := {{{STA}, 1}, {{AP}, 1}}, {{{AP_BRIDGED}, 1}}
Alternatif olarak, referans HAL'de (eski) derleme işaretleriyle etkinleştirilebilen çeşitli kombinasyonlar için yapılandırmalar bulunur. Yapılandırma talimatları için aşağıdaki makaleleri inceleyin: