Consapevole del Wi-Fi

La Consapevolezza del Wi-Fi aggiunta ad Android 8.0 consente ai dispositivi che supportano il rilevamento, la connessione e intervallo (aggiunto in Android 9) direttamente usando il protocollo Wi-Fi Aware senza accesso a internet o alla rete cellulare. Questo funzionalità, basata su Wi-Fi Alliance (WFA) Specifiche Wi-Fi Aware (versioni 2.0, 3.0, 3.1 e 4.0), consente una facile condivisione dei dati ad alta velocità effettiva tra dispositivi e app attendibili altrimenti fuori rete.

Esempi e fonte

Per utilizzare questa funzionalità, i produttori di dispositivi devono implementare l'HAL del fornitore di Wi-Fi. In Android 14 e versioni successive, l'interfaccia Vendor HAL è definita tramite AIDL. Per Android 13 e versioni precedenti: l'interfaccia Vendor HAL viene definita tramite HIDL.

Segui l'interfaccia Wi-Fi per utilizzare la funzionalità Wi-Fi Aware. A seconda dell'interfaccia implementata, si può procedere in uno dei seguenti modi:

  • AIDL: hardware/interfaces/wifi/aidl
  • HIDL: hardware/interfaces/wifi/1.2 o versioni successive

Puoi fare riferimento alla versione precedente dell'HAL Wi-Fi per vedere come è correlata al Interfacce AIDL e HIDL: hardware/libhardware_legacy/+/main/include/hardware_legacy/wifi_nan.h.

Implementazione

I produttori di dispositivi devono fornire supporto sia per il framework che per l'HAL/firmware:

  • Framework:
    • Codice AOSP
    • Abilita Aware: richiede sia un flag di funzionalità che un flag di build
  • Supporto dell'HAL per Wi-Fi Aware (NAN), che implica il supporto del firmware

Per implementare questa funzionalità, i produttori di dispositivi implementano l'interfaccia Wi-Fi e attivare due flag di funzionalità:

  • A BoardConfig.mk o BoardConfig-common.mk in località device/<oem>/<device>, aggiungi il seguente flag:

    WIFI_HIDL_FEATURE_AWARE := true
    
  • Modifica il valore nella colonna device.mk situata in device/<oem>/<device> PRODUCT_COPY_FILES per includere il supporto del Wi-Fi Funzionalità Aware:

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

Il Wi-Fi Aware include il rilevamento di dispositivi peer che utilizzano il protocollo IEEE 802.11mc, noto anche come tempo di round trip (RTT, Round Trip Time). Questa funzionalità secondaria di Wi-Fi Aware è a condizione che il dispositivo supporti la funzionalità Wi-Fi RTT, ovvero richiede il dispositivo per supportare sia Wi-Fi Aware che Wi-Fi RTT. Per ulteriori dettagli, vedi RTT Wi-Fi.

In caso contrario, tutto ciò che serve per questa funzionalità è incluso in AOSP.

Il flag WIFI_HIDL_FEATURE_AWARE viene ignorato se WIFI_HAL_INTERFACE_COMBINATIONS è specificato. Per ulteriori informazioni, vedi Contemporaneità multi-interfaccia Wi-Fi.

Randomizzazione MAC

Android richiede l'indirizzo MAC del rilevamento e dei dati Wi-Fi Aware (NDP) randomizzate e non identiche al vero indirizzo MAC del dispositivo. Gli indirizzi MAC devono essere:

  • Randomizzato ogni volta che la funzionalità Wi-Fi Aware viene attivata o riabilitata.
  • Quando il Wi-Fi Aware è abilitato, l'indirizzo MAC deve essere randomizzato a intervalli regolari dell'intervallo configurato Parametro NanConfigRequest.macAddressRandomizationIntervalSec. Questo configurato dal framework è di 30 minuti per impostazione predefinita.

Sospendi e riprendi

In Android 14 e versioni successive, Wi-Fi Aware supporta la possibilità per le app con privilegi di sospendere e riprendere le sessioni di rilevamento attive (inclusi tutti i percorsi dati associati a queste sessioni). Supporto di consente ai dispositivi di riprendere le sessioni di rilevamento più velocemente e consumare meno energia, le sessioni di rilevamento possono essere sospese.

Se un dispositivo supporta questa funzionalità di sospensione e ripristino, il firmware viene sospeso la sessione Wi-Fi Aware quando un'app con privilegi sospende la sessione di rilevamento. Quando una sessione di rilevamento è in stato sospeso, il dispositivo non trasmette o ricevere frame per quella sessione, inclusi eventuali NDP attivi durante la sessione. Se tutte le sessioni di rilevamento sono sospese, il dispositivo non trasmette o ricevere frame sensibili al Wi-Fi.

Quando un'app con privilegi riprende una sessione di rilevamento sospesa, il framework restituisce la sessione allo stato precedente, inclusi tutti gli NDP associati sessioni. Ripristinare una sessione di rilevamento sospesa è più veloce che richiamare Wi-Fi Aware e creazione di una nuova sessione di rilevamento.

Per consentire la sospensione e la ripresa delle sessioni di rilevamento, il dispositivo i produttori devono fornire il supporto per HAL e firmware. Per maggiori dettagli, vedi IWifiNanIface.java

I produttori di dispositivi possono utilizzare le comunicazioni fuori banda (ad esempio BLE) per sincronizzare sospensione e ripristino su più dispositivi.

Convalida

Android offre una serie di test delle unità, test della Compatibility Test Suite (CTS) e CTS Verifier esegue i test per convalidare la rete Wi-Fi. Funzionalità Aware. Il Wi-Fi Aware può essere testato anche utilizzando Suite di prova del fornitore (VTS).

Test delle unità

I test del pacchetto Wi-Fi Aware vengono eseguiti utilizzando:

Test di servizio:

atest com.android.server.wifi.aware

Test del gestore:

atest android.net.wifi.aware

Test della Compatibility Test Suite (CTS)

Utilizzare i test CTS per convalidare la funzionalità Wi-Fi Aware. Il CTS rileva quando la funzionalità è attivata e include automaticamente i test associati.

I test CTS possono essere attivati utilizzando:

atest SingleDeviceTest

Test di verifica CTS

I test di CTS Verifier convalidano il comportamento di Wi-Fi Aware utilizzando due dispositivi: un test e un dispositivo riconoscibile. Per eseguire i test, apri CTS Verifier e vai alla sezione Test Wi-Fi Aware.