La funzionalità Wi-Fi Direct , nota anche come Wi-Fi P2P, consente ai dispositivi di supporto di rilevarsi e connettersi tra loro direttamente utilizzando il protocollo Wi-Fi Direct senza accesso a Internet o alla rete cellulare. Questa funzionalità, basata sulla specifica Wi-Fi Direct della Wi-Fi Alliance (WFA), consente la condivisione di dati ad alto rendimento tra dispositivi e app affidabili che altrimenti sarebbero fuori rete.
Esempi e fonte
Per utilizzare questa funzionalità, i produttori di dispositivi devono implementare le interfacce HAL Wi-Fi Vendor e Supplicant.
In Android 13, l'interfaccia Supplicant 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 richiedente e del fornitore vengono definite utilizzando HIDL.
Per utilizzare la funzionalità Wi-Fi Direct sono necessarie le seguenti superfici HAL Wi-Fi:
-
hardware/interfaces/wifi/aidl
o,hardware/interfaces/wifi/1.3
o superiore -
hardware/interfaces/wifi/supplicant/aidl
o,hardware/interfaces/wifi/supplicant/1.2
o superiore
Implementazione
I produttori di dispositivi devono fornire sia il supporto framework che HAL/firmware:
- Struttura:
- Codice AOSP
- Abilita 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 abilitano il flag di funzionalità per Wi-Fi Direct. In device.mk
situato in device/<oem>/<device>
, modificare 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 supportare Wi-FI Direct sono inclusi in AOSP.
Randomizzazione MAC
Android richiede che l' indirizzo del dispositivo Wi-Fi Direct e l'indirizzo dell'interfaccia siano casuali. Devono essere diversi dal vero indirizzo MAC del dispositivo e devono soddisfare i seguenti requisiti:
- L'indirizzo del dispositivo Wi-Fi Direct deve essere casuale al momento della creazione dell'interfaccia se non è stato salvato alcun gruppo persistente; altrimenti l'indirizzo del dispositivo deve continuare ad utilizzare l'ultimo indirizzo MAC generato.
- L'indirizzo dell'interfaccia Wi-Fi Direct, noto anche come indirizzo di gruppo, deve essere casuale ogni volta che viene stabilita una connessione.
La randomizzazione 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 abilitare questa funzionalità, i produttori di dispositivi devono:
- Implementa l'API Wi-Fi Supplicant
ISupplicantP2pIface::setMacRandomization
. A seconda dell'interfaccia implementata, questo è in:-
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.
Validazione
Android fornisce una serie di test unitari, test di integrazione (Android Connectivity Test Suite o ACTS), test di compatibilità Test Suite (CTS) e test CTS Verifier per convalidare la funzionalità Wi-Fi Direct. Wi-Fi Direct può essere testato anche utilizzando Vendor Test Suite (VTS) .
Test unitari
Verifica il pacchetto Wi-Fi Direct utilizzando i seguenti test.
Test di servizio:
atest com.android.server.wifi.p2p
Prove dirigenziali:
atest android.net.wifi.p2p
Test di integrazione (ACTS)
La suite di test ACTS Wi-FI Direct, situata in tools/test/connectivity/acts_tests/tests/google/wifi/p2p
, implementa test funzionali di Wi-Fi Direct.
Test della Compatibility Test Suite (CTS).
Utilizza i test CTS per convalidare la funzionalità Wi-Fi Direct. CTS rileva quando la funzionalità è abilitata e include automaticamente i test associati.
Per attivare i test CTS, eseguire:
% atest android.net.wifi.p2p.cts
Test di verifica CTS
I test CTS Verifier convalidano il comportamento Wi-Fi Direct utilizzando due dispositivi: un dispositivo di prova e un dispositivo sicuramente funzionante . Per eseguire i test, apri CTS Verifier e vai alla sezione intitolata Test Wi-Fi Direct.