Kablosuz ağ çerçevesi, üç farklı arayüzle temsil edilen üç kablosuz ağ HAL yüzeyine sahiptir. Android 14 veya sonraki sürümleri çalıştıran cihazlarda üç arayüzü de kararlı AIDL paketleri olarak kullanabilirsiniz. Bu arayüzler daha önce HIDL kullanılarak tanımlanıyordu.
- Tedarikçi HAL: Android'e özgü komutlar için bir HAL yüzeyi. AIDL dosyaları
hardware/interfaces/aidl
, HIDL dosyaları isehardware/interfaces/wifi/1.x
içindedir. - Supplicant HAL: wpa_supplicant için bir HAL yüzeyi. AIDL dosyaları
hardware/interfaces/supplicant/aidl
, HIDL dosyaları isehardware/interfaces/supplicant/1.x
içindedir. - Hostapd HAL: hostapd için bir HAL yüzeyi. AIDL dosyaları
hardware/interfaces/hostapd/aidl
ve HIDL dosyalarıhardware/interfaces/hostapd/1.x
içindedir.
Tedarikçi HAL
Tedarikçi HAL'si, Android'e özgü komutlar sağlar. Altyapı istasyonu (STA) ve yumuşak AP (SAP) modlarının çalışması isteğe bağlıdır (zorunlu değildir). Ancak Wi-Fi Aware ve Wi-Fi RTT hizmetleri için zorunludur.
Android 14 ve sonraki sürümlerde tedarikçi HAL arayüzü AIDL kullanılarak tanımlanır. Android 13 ve önceki sürümlerde tedarikçi HAL arayüzü HIDL kullanılarak tanımlanır.
HIDL öncesi (Android 8.0'dan önceki) Android, artık eski HAL olarak adlandırılan bir HAL mekanizması kullanıyordu. Android kaynak kodu şu anda eski HAL'in üzerinde çalışan bir dolgu kullanarak AIDL veya HIDL'nin varsayılan bir uygulamasını sağlar.
Eski HAL üstbilgileri hardware/libhardware_legacy/include/hardware_legacy/
içinde bulunur. Eski HAL tabanlı uygulama, AIDL için hardware/interfaces/wifi/aidl/default
ve HIDL için hardware/interfaces/wifi/1.x/default
adresinde bulunur.
İstemci HAL'i
İstemci HAL'i, 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'yi 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'si
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 firma bölümleri HIDL'yi kullanır.
hostapd kaynak kodu external/wpa_supplicant_8/hostapd
adresinde bulunur.
Referans uygulaması, aidl
alt dizininde uygulanan bir AIDL arayüzü sağlar.
Kablosuz ağda çoklu arayüz eşzamanlılığı
Farklı Android cihazlar, aynı anda farklı kablosuz arayüz kombinasyonlarını destekleyebilir. Desteklenen kombinasyonlar HAL'de tanımlanır ve çerçeveye sunulur. Spesifikasyon biçimi, AIDL kablosuz HAL için hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
, kablosuz HAL 1.6 için android/hardware/interfaces/wifi/1.6/IWifiChip.hal
ve kablosuz HAL 1.5 ve önceki sürümler için android/hardware/interfaces/wifi/1.0/IWifiChip.hal
olarak tanımlanır.
Android 14 ve sonraki sürümlerde kullanılabilen AIDL HAL ve Android 13'te kullanılabilen Wi-Fi HAL 1.6 sürümü, açık bir kombinasyon öğesi olarak köprülenmiş bir AP arayüzünü (çift bantlı eşzamanlı) belirtme olanağı ekler.
Eşzamanlılık spesifikasyonu biçimi esnek ve geneldir. Henüz çerçeve tarafından desteklenmeyen kombinasyonları ifade edebilir. Belirli bir kombinasyonu yapılandırmak için device/<oem>/<device>/BoardConfig-common.mk
bölümündeki WIFI_HAL_INTERFACE_COMBINATIONS
derleme işaretini kullanın.
Örneğin, bir cihaz iki STA'yı ve NAN (Wi-Fi Aware)
veya P2P
(Wi-Fi Direct) türünün bir arayüzünü (ikisini birden değil) destekleyebilir. Bu, device/<oem>/<device>/BoardConfig-common.mk
'te şu şekilde ifade edilir:
WIFI_HAL_INTERFACE_COMBINATIONS := {{{STA}, 2}, {{NAN, P2P}, 1}}
Tek bir AP'ye sahip bir STA'yı veya başka arayüzü olmayan köprülenmiş bir AP'yi (eşzamanlı çift bant) destekleyen bir cihaz da buna örnek verilebilir. Bu durum ş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 bkz: