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ı AIDL paketleri olarak kullanılabilir. Bu arayüzler daha önce HIDL kullanılarak tanımlanıyordu.
- Sağlayıcı HAL'si: Android'e özgü komutlar için bir HAL yüzeyi. AIDL dosyaları
hardware/interfaces/wifi/aidl
içinde yer alır. - İstek sahibi HAL: wpa_supplicant için bir HAL yüzeyi. AIDL dosyaları
hardware/interfaces/wifi/supplicant/aidl
içinde yer alır. - Hostapd HAL: hostapd için bir HAL yüzeyi. AIDL dosyaları
hardware/interfaces/wifi/hostapd/aidl
iç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.
HIDL öncesi (yani Android 8.0'dan önce) Android'de, artık eski HAL olarak adlandırılan bir HAL mekanizması kullanılıyordu. Android kaynak kodu şu anda eski HAL üzerinde çalışan bir ara katman kullanılarak AIDL veya HIDL'nin varsayılan bir uygulamasını sağlar.
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.
İstek Sahibi HAL
İ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ü (çift bantlı eşzamanlı) açık bir kombinasyon öğesi olarak belirtme olanağı sunar.
Eşzamanlılık spesifikasyonu 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
build işaretini kullanın. Bu işaret device/<oem>/<device>/BoardConfig-common.mk
içinde yer alır.
Ö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: