Kablosuz HAL

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 Arayüz Tanımlama Dili (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

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.

İstek Gönderen HAL

İstemci HAL, wpa_supplicant arka plan programı 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 arka plan programı 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 uygulaması, 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 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, Kablosuz HAL 1.5 ve önceki sürümler için android/hardware/interfaces/wifi/1.0/IWifiChip.hal bölümünde tanımlanır.

Android 14 ve sonraki sürümlerde kullanılabilen AIDL HAL ve 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 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 Kablosuz Doğrudan Bağlantı (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 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 aşağıdaki makaleleri inceleyin: