La funzionalità Wi-Fi Direct, nota anche come Wi-Fi P2P, consente ai dispositivi che la supportano di rilevarsi e connettersi direttamente utilizzando il protocollo Wi-Fi Direct senza accesso a internet o alla rete mobile. Questa funzionalità, basata sulla specifica Wi-Fi Direct della Wi-Fi Alliance (WFA) , consente la condivisione di dati ad alta velocità tra app e dispositivi attendibili che altrimenti non sono in rete.
Esempi e origine
Per utilizzare questa funzionalità, i produttori di dispositivi devono implementare le interfacce HAL del fornitore Wi-Fi e del supplicante.
In Android 13, l'interfaccia del supplicante utilizza AIDL per la definizione HAL. In Android 14 e versioni successive, l'interfaccia HAL del fornitore utilizza AIDL. In Android 12 e versioni precedenti, le interfacce HAL del supplicante e del fornitore sono definite utilizzando HIDL.
Per utilizzare la funzionalità Wi-Fi Direct sono necessarie le seguenti superfici HAL Wi-Fi:
hardware/interfaces/wifi/aidlohardware/interfaces/wifi/1.3o versioni successivehardware/interfaces/wifi/supplicant/aidlohardware/interfaces/wifi/supplicant/1.2o versioni successive
Implementazione
I produttori di dispositivi devono fornire supporto sia per il framework sia per HAL/firmware:
- Framework:
- Codice AOSP
- Attiva Wi-Fi Direct: richiede un flag di funzionalità
- Supporto HAL 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. In device.mk che si trova
in device/<oem>/<device>, modifica la variabile di ambiente PRODUCT_COPY_FILES per includere il supporto per la 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 dell'indirizzo MAC
Android richiede che l'indirizzo del dispositivo e l'indirizzo dell'interfaccia Wi-Fi Direct siano randomizzati. Devono essere diversi dal vero indirizzo MAC 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 è stato salvato alcun gruppo persistente; 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 del gruppo, deve essere randomizzato ogni volta che viene stabilita una connessione.
La randomizzazione dell'indirizzo MAC Wi-Fi Direct viene implementata in "wpa_supplicant" ed è controllata da due configurazioni, p2p_device_random_mac_addr e p2p_interface_random_mac_addr.
Per attivare questa funzionalità, i produttori di dispositivi devono:
- Implementare l'API
ISupplicantP2pIface::setMacRandomizationdel supplicante Wi-Fi. A seconda dell'interfaccia implementata, questa si trova in:hardware/interface/wifi/supplicant/1.2per HIDLhardware/interface/wifi/supplicant/aidlper AIDL
- Impostare
config_wifi_p2p_mac_randomization_supportedsu "true" in un overlay personalizzato del dispositivo.
Convalida
Android fornisce una serie di test delle unità, test della suite di test di compatibilità (CTS) e test dello strumento di verifica CTS per convalidare la funzionalità Wi-Fi Direct. Wi-Fi Direct può essere testato anche utilizzando la Vendor Test Suite (VTS).
Test delle unità
Verifica il pacchetto Wi-Fi Direct utilizzando i seguenti test.
Test del servizio:
atest com.android.server.wifi.p2pTest dell'amministratore:
atest android.net.wifi.p2pTest della suite di test di compatibilità (CTS)
Utilizza i test CTS per convalidare la funzionalità Wi-Fi Direct. CTS rileva quando la funzionalità è attivata e include automaticamente i test associati.
Per attivare i test CTS, esegui:
atest android.net.wifi.p2p.ctsTest dello strumento di verifica CTS
I test dello strumento di verifica CTS convalidano il comportamento di Wi-Fi Direct utilizzando due dispositivi: un dispositivo di test e un dispositivo funzionante. Per eseguire i test, apri lo strumento di verifica CTS e vai alla sezione intitolata Test Wi-Fi Direct.