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 üç 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ı 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 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: