Wi-Fi Aware

Android 8.0'da eklenen Wi-Fi Aware özelliği, desteklenen cihazların internet veya hücresel ağ erişimi olmadan Wi-Fi Aware protokolünü kullanarak birbirlerini doğrudan bulmalarını, bağlanmalarını ve aralıklarını (Android 9'da eklendi) belirlemelerini sağlar. Wi-Fi Alliance (WFA) Wi-Fi Aware spesifikasyonuna (2.0, 3.0, 3.1 ve 4.0 sürümleri) dayalı bu özellik, ağ dışında olan güvenilir cihazlar ve uygulamalar arasında yüksek verimli verilerin kolayca paylaşılmasına olanak tanır.

Örnekler ve kaynak

Bu özelliği kullanmak için cihaz üreticilerinin Wi-Fi Vendor HAL'ı uygulaması gerekir. 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.

Wi-Fi Aware özelliğini kullanmak için Wi-Fi arayüzünü takip edin. Uygulanan arayüze bağlı olarak bu değer şunlardan biri olur:

  • AIDL: hardware/interfaces/wifi/aidl
  • HIDL: hardware/interfaces/wifi/1.2 veya sonraki sürümler

AIDL ve HIDL arayüzleriyle nasıl ilişkili olduğunu görmek için eski Wi-Fi HAL'e başvurabilirsiniz: hardware/libhardware_legacy/+/android16-release/include/hardware_legacy/wifi_nan.h.

Uygulama

Cihaz üreticilerinin hem çerçeve hem de HAL/firmware desteği sağlaması gerekir:

  • Framework:
    • AOSP kodu
    • Aware'i etkinleştirme: Hem özellik işareti hem de derleme işareti gerektirir.
  • Wi-Fi Aware (NAN) HAL desteği (donanım yazılımı desteği anlamına gelir)

Bu özelliği uygulamak için cihaz üreticileri Wi-Fi arayüzünü uygular ve iki özellik işaretini etkinleştirir:

  • BoardConfig.mk veya BoardConfig-common.mk içinde, device/<oem>/<device> konumunda aşağıdaki işareti ekleyin:

    WIFI_HIDL_FEATURE_AWARE := true
    
  • device/<oem>/<device> konumundaki device.mk içinde, Wi-Fi Aware özelliği desteğini içerecek şekilde PRODUCT_COPY_FILES ortam değişkenini değiştirin:

    PRODUCT_COPY_FILES +=
    frameworks/native/data/etc/android.hardware.wifi.aware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.aware.xml
    

Wi-Fi Aware, gidiş dönüş süresi (RTT) olarak da bilinen IEEE 802.11mc protokolü kullanılarak eş cihazlara mesafeyi ölçme özelliğini içerir. Wi-Fi Aware'in bu alt özelliği, cihazın Wi-Fi RTT özelliğini desteklemesine bağlıdır. Yani cihazın hem Wi-Fi Aware hem de Wi-Fi RTT'yi desteklemesi gerekir. Daha fazla bilgi için Wi-Fi RTT başlıklı makaleye göz atın.

Aksi takdirde, bu özellik için gereken her şey AOSP'ye dahildir.

WIFI_HAL_INTERFACE_COMBINATIONS işareti belirtilmişse WIFI_HIDL_FEATURE_AWARE işareti yoksayılır. Daha fazla bilgi için Wi-Fi çoklu arayüz eşzamanlılığı başlıklı makaleyi inceleyin.

MAC rastgele seçimi

Android, Wi-Fi Aware keşif (NMI) ve veri arayüzlerinin (NDP) MAC adresinin rastgele oluşturulmasını ve cihazın gerçek MAC adresiyle aynı olmamasını gerektirir. MAC adresleri şu şekilde olmalıdır:

  • Wi-Fi Aware etkinleştirildiğinde veya yeniden etkinleştirildiğinde rastgele hale getirilir.
  • Wi-Fi Aware etkinleştirildiğinde MAC adresi, NanConfigRequest.macAddressRandomizationIntervalSec parametresi tarafından yapılandırılan düzenli aralıklarla rastgele hale getirilmelidir. Bu, varsayılan olarak 30 dakika olacak şekilde çerçeve tarafından yapılandırılır.

Askıya alma ve devam ettirme

Android 14 ve sonraki sürümlerde Wi-Fi Aware, ayrıcalıklı uygulamaların etkin keşif oturumlarını (bu oturumlarla ilişkili tüm veri yolları dahil) askıya alıp devam ettirme özelliğini destekler. Bu özelliği desteklemek, cihazların keşif oturumlarına daha hızlı devam etmesini ve keşif oturumları askıya alınabildiğinden daha az güç kullanmasını sağlar.

Bir cihaz bu askıya alma ve devam ettirme özelliğini destekliyorsa ayrıcalıklı bir uygulama keşif oturumunu askıya aldığında donanım yazılımı Wi-Fi Aware oturumunu askıya alır. Keşif oturumu askıya alınmış durumdayken cihaz, oturumdaki etkin NDP'ler de dahil olmak üzere oturumla ilgili herhangi bir çerçeve iletmez veya almaz. Tüm keşif oturumları askıya alınırsa cihaz herhangi bir Wi-Fi Aware çerçevesi iletmez veya almaz.

Ayrıcalıklı bir uygulama, askıya alınmış bir keşif oturumunu sürdürdüğünde çerçeve, oturumu ilişkili tüm NDP oturumları da dahil olmak üzere önceki durumuna döndürür. Askıya alınmış bir keşif oturumunu sürdürmek, Wi-Fi Aware'i başlatıp yeni bir keşif oturumu oluşturmaktan daha hızlıdır.

Cihaz üreticileri, keşif oturumlarını askıya alma ve devam ettirme özelliğini desteklemek için HAL ve donanım yazılımı desteği sağlamalıdır. Ayrıntılı bilgi için IWifiNanIface.java başlıklı makaleyi inceleyin.

Cihaz üreticileri, birden fazla cihazda askıya alma ve devam ettirme işlemlerini senkronize etmek için bant dışı iletişimleri (ör. BLE) kullanabilir.

Doğrulama

Android, Wi-Fi Aware özelliğini doğrulamak için bir dizi birim testi, Uyumluluk Test Paketi (CTS) testi ve CTS Doğrulayıcı testi sağlar. Wi-Fi Aware, Vendor Test Suite (VTS) kullanılarak da test edilebilir.

Birim testleri

Wi-Fi Aware paket testleri şu şekilde yürütülür:

Hizmet testleri:

atest com.android.server.wifi.aware

Yönetici testleri:

atest android.net.wifi.aware

Compatibility Test Suite (CTS) testleri

Wi-Fi Aware özelliğini doğrulamak için CTS testlerini kullanın. CTS, özelliğin etkinleştirildiğini algıladığında ilişkili testleri otomatik olarak dahil eder.

CTS testleri şu yöntemlerle tetiklenebilir:

atest SingleDeviceTest

CTS Doğrulayıcı testleri

CTS Verifier testleri, bir test cihazı ve bilinen iyi bir cihaz kullanarak Wi-Fi Aware davranışını doğrular. Testleri çalıştırmak için CTS Verifier'ı açın ve Wi-Fi Aware Testleri başlıklı bölüme gidin.