Wi-Fi Aware

Tujuan Wi-Fi Aware di Android 8.0 yang memungkinkan perangkat pendukung untuk menemukan, menghubungkan, dan rentang (ditambahkan di Android 9) satu sama lain secara langsung menggunakan protokol Wi-Fi Aware tanpa akses jaringan seluler atau internet. Ini yang dibuat berdasarkan Wi-Fi Alliance (WFA) Spesifikasi Wi-Fi Aware (versi 2.0, 3.0, 3.1 dan 4.0), memungkinkan berbagi data dengan throughput tinggi di antara perangkat dan aplikasi tepercaya yang berada di luar jaringan.

Contoh dan sumber

Untuk menggunakan fitur ini, produsen perangkat harus menerapkan HAL Vendor Wi-Fi. Di Android 14 dan yang lebih tinggi, antarmuka Vendor HAL didefinisikan menggunakan AIDL. Untuk Android 13 dan yang lebih lama, antarmuka Vendor HAL ditentukan menggunakan HIDL.

Ikuti antarmuka Wi-Fi untuk menggunakan fitur Wi-Fi Aware. Bergantung pada antarmuka yang diimplementasikan, hal ini dapat berupa:

  • AIDL: hardware/interfaces/wifi/aidl
  • HIDL: hardware/interfaces/wifi/1.2 atau yang lebih baru

Anda dapat merujuk ke Wi-Fi HAL lama untuk melihat korelasinya dengan Antarmuka AIDL dan HIDL: hardware/libhardware_legacy/+/main/include/hardware_legacy/wifi_nan.h.

Implementasi

Produsen perangkat harus memberikan dukungan framework dan HAL/firmware:

  • Kerangka kerja:
    • Kode AOSP
    • Aktifkan Aware: Memerlukan tombol fitur dan tanda build
  • Dukungan HAL Wi-Fi Aware (NAN) (yang menyiratkan dukungan firmware)

Untuk menerapkan fitur ini, produsen perangkat mengimplementasikan antarmuka Wi-Fi dan mengaktifkan dua tombol fitur:

  • Di BoardConfig.mk atau BoardConfig-common.mk yang berada di device/<oem>/<device>, tambahkan tanda berikut:

    WIFI_HIDL_FEATURE_AWARE := true
    
  • Di device.mk yang berada di device/<oem>/<device>, ubah Variabel lingkungan PRODUCT_COPY_FILES untuk menyertakan dukungan Wi-Fi Fitur Aware:

    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 mencakup jangkauan ke perangkat peer menggunakan protokol IEEE 802.11mc, yang juga dikenal sebagai Waktu Round Trip (RTT). Sub-fitur Wi-Fi Aware ini bersyarat pada perangkat yang mendukung fitur Wi-Fi RTT, yaitu memerlukan perangkat untuk mendukung Wi-Fi Aware dan Wi-Fi RTT. Untuk detail selengkapnya, lihat Wi-Fi RTT.

Jika tidak, semua yang diperlukan untuk fitur ini sudah disertakan dalam AOSP.

Flag WIFI_HIDL_FEATURE_AWARE akan diabaikan jika WIFI_HAL_INTERFACE_COMBINATIONS ditentukan. Untuk informasi selengkapnya, lihat Konkurensi multi-antarmuka Wi-Fi.

Pengacakan MAC

Android memerlukan alamat MAC penemuan Wi-Fi Aware (NMI) dan data antarmuka (NDP) untuk diacak dan tidak identik dengan alamat MAC yang sebenarnya perangkat. Alamat MAC harus:

  • Diacak setiap kali Wi-Fi Aware diaktifkan atau diaktifkan kembali.
  • Ketika Wi-Fi Aware diaktifkan, alamat MAC harus diacak secara teratur interval yang dikonfigurasi oleh Parameter NanConfigRequest.macAddressRandomizationIntervalSec. Ini dikonfigurasi oleh kerangka kerja secara {i>default<i} menjadi 30 menit.

Menangguhkan dan melanjutkan

Di Android 14 dan yang lebih tinggi, Wi-Fi Aware mendukung kemampuan aplikasi dengan hak istimewa untuk menangguhkan dan melanjutkan sesi penemuan aktif (termasuk semua jalur data yang terkait dengan sesi tersebut). Mendukung ini memungkinkan perangkat melanjutkan sesi penemuan lebih cepat dan menggunakan lebih sedikit daya karena sesi penemuan dapat ditangguhkan.

Jika perangkat mendukung kemampuan penangguhan dan melanjutkan ini, firmware akan ditangguhkan sesi Wi-Fi Aware ketika aplikasi dengan hak istimewa menangguhkan sesi penemuan. Saat sesi penemuan dalam status ditangguhkan, perangkat tidak mengirimkan atau menerima {i>frame<i} apa pun untuk sesi tersebut, termasuk setiap NDP aktif di mana sesi. Jika semua sesi penemuan ditangguhkan, perangkat itu tidak mengirimkan atau menerima frame Wi-Fi Aware.

Saat aplikasi dengan hak istimewa melanjutkan sesi penemuan yang ditangguhkan, framework mengembalikan sesi ke status sebelumnya, termasuk semua NDP terkait sesi. Melanjutkan sesi penemuan yang ditangguhkan lebih cepat daripada mengajukan Wi-Fi Aware dan membuat sesi penemuan baru.

Untuk mendukung kemampuan menangguhkan dan melanjutkan sesi penemuan, produsen harus memberikan dukungan HAL dan {i>firmware<i}. Untuk detailnya, lihat IWifiNanIface.java.

Produsen perangkat dapat menggunakan komunikasi out-of-band (misalnya, BLE) untuk menyinkronkan penangguhan dan melanjutkan di beberapa perangkat.

Validasi

Android menyediakan serangkaian pengujian unit, pengujian Compatibility Test Suite (CTS), dan Pengujian CTS Verifier untuk memvalidasi Wi-Fi Fitur Aware. Wi-Fi Aware juga dapat diuji menggunakan Vendor Test Suite (VTS).

Pengujian unit

Pengujian paket Wi-Fi Aware dijalankan menggunakan:

Pengujian layanan:

atest com.android.server.wifi.aware

Pengelola menguji:

atest android.net.wifi.aware

Pengujian Compatibility Test Suite (CTS)

Gunakan uji CTS untuk memvalidasi fitur Wi-Fi Aware. CTS mendeteksi saat fitur diaktifkan dan secara otomatis menyertakan pengujian terkait.

Uji CTS dapat dipicu menggunakan:

atest SingleDeviceTest

Uji Pemverifikasi CTS

Tes CTS Verifier memvalidasi perilaku Wi-Fi Aware menggunakan dua perangkat: tes dan perangkat baik yang dikenal. Untuk menjalankan pengujian, buka CTS Verifier dan buka bagian berjudul Tes Wi-Fi Aware.