Wi-Fi Aware

Android 8.0'de eklenen Kablosuz Ağ Farkında özelliği, desteklenen cihazların internet veya hücresel ağ erişimi olmadan doğrudan kablosuz ağ farkında protokolünü kullanarak birbirlerini keşfetmelerini, bağlamalarını ve kapsama alanını (Android 9'da eklendi) belirlemelerini sağlar. Wi-Fi Alliance (WFA) Wi-Fi Aware spesifikasyonu (2.0, 3.0, 3.1 ve 4.0 sürümleri) temel alınarak geliştirilen bu özellik, ağ dışında olan güvenilir cihazlar ve uygulamalar arasında yüksek bant genişliğine sahip verilerin kolayca paylaşılmasına olanak tanır.

Örnekler ve kaynak

Bu özelliği kullanmak için cihaz üreticilerinin kablosuz ağ tedarikçisi HAL'i uygulaması gerekir. 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.

Wi-Fi Aware özelliğini kullanmak için kablosuz ağ arayüzünü takip edin. Hangi arayüzün uygulandığına bağlı olarak bu değer:

  • 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 kablosuz ağ HAL'ine bakabilirsiniz: hardware/libhardware_legacy/+/main/include/hardware_legacy/wifi_nan.h.

Uygulama

Cihaz üreticilerinin hem çerçeve hem de HAL/donanım yazılımı desteği sağlaması gerekir:

  • Çerçeve:
    • AOSP kodu
    • Aware'i Etkinleştir: Hem özellik bayrağı hem de derleme bayrağı gerektirir
  • Wi-Fi Aware (NAN) HAL desteği (donanım yazılımı desteğini ima eder)

Cihaz üreticileri bu özelliği uygulamak için kablosuz arayüzünü uygular ve iki özellik işaretini etkinleştirir:

  • device/<oem>/<device> bölümündeki BoardConfig.mk veya BoardConfig-common.mk alanına aşağıdaki işareti ekleyin:

    WIFI_HIDL_FEATURE_AWARE := true
    
  • device/<oem>/<device> konumundaki device.mk dosyasında, PRODUCT_COPY_FILES ortam değişkenini Wi-FiAware özelliğini destekleyecek şekilde 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ünü kullanarak eş cihazlara menzil belirleme özelliğini içerir. Kablosuz Ağ Farkındalığı'nın bu alt özelliği, cihazın kablosuz ağ RTT özelliğini desteklemesine bağlıdır. Yani cihazın hem kablosuz ağ farkındalığını hem de kablosuz ağ RTT'yi desteklemesi gerekir. Daha fazla bilgi için Kablosuz RTT bölümüne bakı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 Kablosuz çoklu arayüz eşzamanlılığı başlıklı makaleyi inceleyin.

MAC rastgele hale getirme

Android, Wi-Fi Aware keşfinin (NMI) ve veri arayüzlerinin (NDP'ler) MAC adresinin rastgele olmasını ve cihazın gerçek MAC adresiyle aynı olmaması gerektiğini belirtir. MAC adresleri şöyle olmalıdır:

  • Kablosuz Ağ Farkındalığı etkinleştirildiğinde veya yeniden etkinleştirildiğinde rastgele ayarlanır.
  • Wi-Fi Aware etkinleştirildiğinde MAC adresi, NanConfigRequest.macAddressRandomizationIntervalSec parametresi tarafından yapılandırılan düzenli bir aralıkta rastgele oluşturulmalıdır. Bu değer, varsayılan olarak çerçeve tarafından 30 dakika olarak yapılandırılır.

Askıya alma ve devam ettirme

Android 14 ve sonraki sürümlerde kablosuz bağlantı bilinirliği, ayrıcalıklı uygulamaların etkin keşif oturumlarını (bu oturumlarla ilişkili tüm veri yolları dahil) askıya alma ve devam ettirme özelliğini destekler. Bu özelliğin desteklenmesi, keşif oturumlarının askıya alınabilmesi sayesinde cihazların keşif oturumlarını daha hızlı devam ettirmesine ve daha az güç kullanmasına olanak tanır.

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ı, kablosuz ağ farkındalık oturumunu askıya alır. Keşif oturumu askıya alınmış durumdayken cihaz, bu oturumdaki etkin NDP'ler de dahil olmak üzere bu oturum için herhangi bir kare iletmez veya almaz. Tüm keşif oturumları askıya alınırsa cihaz herhangi bir kablosuz bağlantı bilinir çerçevesi iletmez veya almaz.

Ayrıcalıklı bir uygulama askıya alınmış bir keşif oturumunu devam ettirdiğinde çerçeve, ilişkili tüm NDP oturumları da dahil olmak üzere oturumu önceki durumuna döndürür. Askıya alınmış bir keşif oturumunu devam ettirmek, kablosuz ağ farkındalığı özelliğini açıp yeni bir keşif oturumu oluşturmaktan daha hızlıdır.

Keşif oturumlarını duraklatma ve devam ettirme özelliğini desteklemek için cihaz üreticilerinin HAL ve donanım yazılımı desteği sağlaması gerekir. 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şimi (ör. BLE) kullanabilir.

Doğrulama

Android, Wi-FiAware ö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, Tedarikçi Test Paketi (VTS) kullanılarak da test edilebilir.

Birim testleri

Wi-Fi Aware paket testleri şunlar kullanılarak yürütülür:

Hizmet testleri:

atest com.android.server.wifi.aware

Yönetici tarafından test edilir:

atest android.net.wifi.aware

Compatibility Test Suite (CTS) testleri

Kablosuz Ağ Farkındalığı özelliğini doğrulamak için CTS testlerini kullanın. CTS, özelliğin etkinleştirilmesini algılar ve ilişkili testleri otomatik olarak içerir.

CTS testleri aşağıdakiler kullanılarak tetiklenebilir:

atest SingleDeviceTest

CTS Doğrulayıcı testleri

CTS Doğrulayıcı testleri, iki cihaz kullanarak kablosuz ağ farkındalığı davranışını doğrular: bir test cihazı ve iyi bilinen bir cihaz. Testleri çalıştırmak için CTS Doğrulayıcı'yı açın ve Wi-Fi Aware Testleri başlıklı bölüme gidin.