Kablosuz HAL

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 bu üç arayüzün tümü kararlı AIDL paketleri olarak kullanılabilir. 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ı ise hardware/interfaces/wifi/1.x içindedir.
  • Supplicant HAL: wpa_supplicant için bir HAL yüzeyi. AIDL dosyaları hardware/interfaces/supplicant/aidl, HIDL dosyaları ise hardware/interfaces/supplicant/1.x içindedir.
  • Hostapd HAL: hostapd için bir HAL yüzeyi. AIDL dosyaları hardware/interfaces/hostapd/aidl, HIDL dosyaları ise hardware/interfaces/hostapd/1.x içindedir.

Tedarikçi HAL

Satıcı HAL'i, Android'e özel 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.

Android, HIDL öncesi (Android 8.0'den önce) şu anda 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'si

Supplicant 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 firma bölümleri HIDL'yi kullanır.

wpa_supplicant kaynak kodu external/wpa_supplicant_8/wpa_supplicant adresinde 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 firma bölümleri HIDL'yi kullanır.

hostapd kaynak kodu external/wpa_supplicant_8/hostapd adresinde bulunur. Referans uygulama, 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ü, köprülenmiş bir AP arayüzünü (çift bant eşzamanlı) açık bir kombinasyon öğesi olarak belirtme olanağı sunar.

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 (Kablosuz Ağ Farkında) veya P2P (Kablosuz Ağ Doğrudan) türündeki bir arayüzü destekleyebilir (ancak ikisini birden desteklemez). 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, ş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: