A partire da Android 8.0, i dispositivi Android utilizzano indirizzi MAC casuali quando cercano nuove reti se non sono associati a una rete. In Android 9, puoi attivare un'opzione sviluppatore (disattivata per impostazione predefinita) per fare in modo che il dispositivo utilizzi un indirizzo MAC casuale durante la connessione a una rete Wi-Fi.
In Android 10, la randomizzazione MAC è attiva per impostazione predefinita per la modalità client, SoftAP e Wi-Fi Direct.
La randomizzazione dell'indirizzo MAC impedisce agli ascoltatori di utilizzare gli indirizzi MAC per creare una cronologia dell'attività del dispositivo, aumentando così la privacy degli utenti.
Inoltre, gli indirizzi MAC vengono scelti in modo casuale nell'ambito delle operazioni Wi-Fi Aware e Wi-Fi RTT.
Per ulteriori informazioni, consulta Comportamento di randomizzazione dell'indirizzo MAC.
Implementazione
Per implementare la randomizzazione degli indirizzi MAC sul tuo dispositivo:
Collabora con un fornitore di chip Wi-Fi per implementare i seguenti metodi HAL:
IWifiStaIface#setMacAddress
: configura l'indirizzo MAC dell'interfaccia. L'implementazione predefinita disattiva l'interfaccia, modifica l'indirizzo MAC e riattiva l'interfaccia.IWifiStaIface#getFactoryMacAddress
: recupera l'indirizzo MAC di fabbrica diwlan0
utilizzando una chiamataioctl
.ISupplicantP2pIface#setMacRandomization
: imposta la randomizzazione dell'indirizzo MAC P2P su/off nel supplicant.
Imposta
config_wifi_connected_mac_randomization_supported
sutrue
nelle Impostazioniconfig.xml
(questa operazione può essere eseguita in un overlay personalizzato del dispositivo).- Questo flag viene utilizzato per controllare se la randomizzazione MAC in modalità client è abilitata.
Imposta
config_wifi_p2p_mac_randomization_supported
sutrue
nelle Impostazioniconfig.xml
(questa operazione può essere eseguita in un overlay personalizzato del dispositivo).- Questo flag viene utilizzato per controllare se la randomizzazione dell'indirizzo MAC Wi-Fi Direct è attivata.
Testa l'implementazione utilizzando i metodi descritti in Convalida.
L'interfaccia utente di sistema deve:
- Puoi attivare o disattivare la randomizzazione per ogni SSID.
- La generazione di MAC casuali è attiva per impostazione predefinita per tutte le reti appena aggiunte.
Utilizza la implementazione di riferimento dell'interfaccia utente delle impostazioni per implementare nuovi prompt.
I dispositivi con Android 9 o versioni precedenti potrebbero non supportare la randomizzazione dell'indirizzo MAC Wi-Fi. Durante l'upgrade di questi dispositivi ad Android 10, la funzionalità di randomizzazione dell'indirizzo MAC Wi-Fi può essere disattivata impostando il flag WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION
su true nel file make HAL del fornitore Wi-Fi.
Convalida
Per verificare che la funzionalità funzioni come previsto, esegui un test manuale:
- Verifica che l'assegnazione casuale dell'indirizzo MAC sia attivata sul dispositivo controllando che
config_wifi_connected_mac_randomization_supported
sia impostato sutrue
nell'overlay del dispositivo. - Connettiti a una rete Wi-Fi.
- Tocca la rete per andare alla pagina dei dettagli della rete. Verifica che l'attribuzione MAC randomizzata sia attiva. Verifica che l'indirizzo MAC visualizzato sia un MAC randomizzato, con il bit generato localmente impostato su 1 e il bit multicast impostato su 0.
- Disattiva la randomizzazione degli indirizzi MAC. Connettiti alla stessa rete e verifica che sia in uso l'MAC di fabbrica.
- Elimina la rete toccando Rimuovi nella pagina Dettagli rete.
Connettiti alla stessa rete e verifica che venga utilizzato lo stesso indirizzo MAC randomizzato.
Per testare la randomizzazione MAC su un dispositivo precedente ad Android 10 (in grado di supportare la randomizzazione MAC) che esegue l'upgrade ad Android 10 o versioni successive:
- Avere almeno una rete salvata su un dispositivo con Android 9 o versioni precedenti.
- Esegui il flashing dell'immagine di sistema Android 10.
- Nel selettore Wi-Fi, verifica che la randomizzazione dell'indirizzo MAC sia disattivata per tutte le reti salvate.
- Attiva la randomizzazione MAC. Connettiti alla stessa rete e verifica che venga utilizzato l'indirizzo MAC randomizzato.