Wi-Fi Direct

La funzionalità Wi-Fi Direct, nota anche come Wi-Fi P2P, consente ai dispositivi che supportano il rilevamento e la connessione tra loro direttamente tramite il protocollo Wi-Fi Direct, senza accesso a internet o alla rete cellulare. Questa funzionalità, basata sulla specifica Wi-Fi Direct di Wi-Fi Alliance (WFA), consente la condivisione di dati ad alta velocità effettiva tra app e dispositivi attendibili che altrimenti si trovano al di fuori della rete.

Esempi e fonte

Per utilizzare questa funzionalità, i produttori di dispositivi devono implementare le interfacce Wi-Fi Vendor e Supplicant HAL.

In Android 13, l'interfaccia Supplicant utilizza AIDL per la definizione dell'HAL. In Android 14 e versioni successive, l'interfaccia HAL del fornitore utilizza AIDL. In Android 12 e versioni precedenti, le interfacce Supplicant e Vendor HAL vengono definite utilizzando HIDL.

Per utilizzare la funzionalità Wi-Fi Direct sono necessarie le seguenti piattaforme HAL Wi-Fi:

  • hardware/interfaces/wifi/aidl o hardware/interfaces/wifi/1.3 o successiva
  • hardware/interfaces/wifi/supplicant/aidl o hardware/interfaces/wifi/supplicant/1.2 o successiva

Implementazione

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

  • Framework:
    • Codice AOSP
    • Attiva Wi-Fi Direct: richiede un flag di funzionalità
  • Supporto dell'HAL per Wi-Fi Direct (P2P), che implica il supporto del firmware

Per implementare questa funzionalità, i produttori di dispositivi implementano le interfacce Wi-Fi HIDL o AIDL e attivano il flag funzionalità per Wi-Fi Direct. Nella sezione device.mk situata in device/<oem>/<device>, modifica la variabile di ambiente PRODUCT_COPY_FILES per includere il supporto della funzionalità Wi-Fi Direct:

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

Tutti gli altri requisiti per il supporto di Wi-Fi Direct sono inclusi in AOSP.

Randomizzazione MAC

Android richiede che l'indirizzo del dispositivo e l'indirizzo di interfaccia di Wi-Fi Direct siano casuali. Questi indirizzi devono essere diversi dall'indirizzo MAC reale del dispositivo e devono soddisfare i seguenti requisiti:

  • L'indirizzo del dispositivo Wi-Fi Direct deve essere randomizzato al momento della creazione dell'interfaccia se non è presente alcun gruppo permanente salvato; in caso contrario, l'indirizzo del dispositivo deve continuare a utilizzare l'ultimo indirizzo MAC generato.
  • L'indirizzo dell'interfaccia Wi-Fi Direct, noto anche come indirizzo di gruppo, deve essere randomizzato ogni volta che viene stabilita una connessione.

La randomizzazione degli indirizzi MAC Wi-Fi Direct è implementata in "wpa_supplicant" e controllata da due configurazioni, p2p_device_random_mac_addr e p2p_interface_random_mac_addr.

Per attivare questa funzionalità, i produttori di dispositivi devono:

  • Implementa l'API Wi-Fi Supplicant ISupplicantP2pIface::setMacRandomization. A seconda dell'interfaccia implementata, si tratta di:
    • hardware/interface/wifi/supplicant/1.2 per HIDL
    • hardware/interface/wifi/supplicant/aidl per AIDL
  • Imposta config_wifi_p2p_mac_randomization_supported su "true" in un overlay personalizzato del dispositivo.

Convalida

Android fornisce una serie di test delle unità, test del Test Suite di compatibilità (CTS) e test CTS Verifier per convalidare la funzionalità Wi-Fi Direct. Wi-Fi Direct può essere testato anche utilizzando la suite di test del fornitore (VTS).

Test delle unità

Verifica il pacchetto di Wi-Fi Direct svolgendo i seguenti test.

Test di servizio:

atest com.android.server.wifi.p2p

Test del gestore:

atest android.net.wifi.p2p

Test della Compatibility Test Suite (CTS)

Utilizza i test CTS per convalidare la funzionalità di Wi-Fi Direct. Il CTS rileva quando la funzionalità è abilitata e include automaticamente i test associati.

Per attivare i test CTS, esegui:

% atest android.net.wifi.p2p.cts

Test di verifica CTS

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