Wi-Fi Aware

Fitur Wi-Fi Aware yang ditambahkan di Android 8.0 memungkinkan perangkat pendukung menemukan, terhubung, dan menjangkau (ditambahkan di Android 9) satu sama lain secara langsung menggunakan protokol Wi-Fi Aware tanpa akses internet atau jaringan seluler. Fitur ini, yang dibuat berdasarkan spesifikasi Wi-Fi Aware Wi-Fi Alliance (WFA) (versi 2.0, 3.0, 3.1, dan 4.0), memungkinkan berbagi data throughput tinggi dengan mudah 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 HAL Vendor ditentukan menggunakan AIDL. Untuk Android 13 dan yang lebih lama, antarmuka HAL Vendor 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 menyediakan dukungan framework dan HAL/firmware:

  • Framework:
    • Kode AOSP
    • Mengaktifkan Aware: Memerlukan flag fitur dan flag build
  • Dukungan HAL Wi-Fi Aware (NAN) (yang menyiratkan dukungan firmware)

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

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

    WIFI_HIDL_FEATURE_AWARE := true
    
  • Di device.mk yang terletak di device/<oem>/<device>, ubah variabel lingkungan PRODUCT_COPY_FILES untuk menyertakan dukungan bagi fitur Wi-Fi 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 pengukuran jarak ke perangkat peer menggunakan protokol IEEE 802.11mc, juga dikenal sebagai Round Trip Time (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 mengetahui detail selengkapnya, baca Wi-Fi RTT.

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

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

Pengacakan MAC

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

  • Diacak setiap kali Wi-Fi Aware diaktifkan atau diaktifkan kembali.
  • Jika Wi-Fi Aware diaktifkan, alamat MAC harus diacak pada interval reguler yang dikonfigurasi oleh parameter NanConfigRequest.macAddressRandomizationIntervalSec. Secara default, waktu ini dikonfigurasi oleh framework 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). Dengan mendukung kemampuan ini, perangkat dapat melanjutkan sesi penemuan dengan lebih cepat dan menggunakan lebih sedikit daya karena sesi penemuan dapat ditangguhkan.

Jika perangkat mendukung kemampuan penangguhan dan melanjutkan ini, firmware akan menangguhkan sesi Wi-Fi Aware saat aplikasi dengan hak istimewa menangguhkan sesi penemuan. Saat sesi penemuan dalam status ditangguhkan, perangkat tidak mengirimkan atau menerima frame apa pun untuk sesi tersebut, termasuk NDP aktif dalam sesi tersebut. Jika semua sesi penemuan ditangguhkan, perangkat tidak akan mengirimkan atau menerima frame Wi-Fi Aware apa pun.

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

Untuk mendukung kemampuan menangguhkan dan melanjutkan sesi penemuan, produsen perangkat harus memberikan dukungan HAL dan firmware. 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 fitur Wi-Fi 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

Pengujian pengelola:

atest android.net.wifi.aware

Pengujian Compatibility Test Suite (CTS)

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

Pengujian CTS dapat dipicu menggunakan:

atest SingleDeviceTest

Pengujian CTS Verifier

Pengujian CTS Verifier memvalidasi perilaku Wi-Fi Aware menggunakan dua perangkat: perangkat pengujian dan perangkat known good. Untuk menjalankan pengujian, buka CTS Verifier dan buka bagian berjudul Wi-Fi Aware Tests.