Implementazione della randomizzazione MAC

A partire da Android 8.0, i dispositivi Android utilizzano indirizzi MAC casuali durante la ricerca di nuove reti mentre non sono attualmente associati a una rete. In Android 9, puoi abilitare un'opzione sviluppatore (è disabilitata per impostazione predefinita) per fare in modo che il dispositivo utilizzi un indirizzo MAC casuale quando si connette a una rete Wi-Fi.

In Android 10, la randomizzazione MAC è abilitata per impostazione predefinita per la modalità client, SoftAp e Wi-Fi Direct.

La randomizzazione MAC impedisce agli ascoltatori di utilizzare gli indirizzi MAC per creare una cronologia dell'attività del dispositivo, aumentando così la privacy dell'utente.

Inoltre, gli indirizzi MAC vengono randomizzati come parte delle operazioni Wi-Fi Aware e Wi-Fi RTT .

Per ulteriori informazioni, consulta Comportamento di randomizzazione MAC .

Implementazione

Per implementare la randomizzazione MAC sul tuo dispositivo:

  1. 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 ripristina l'interfaccia.
    • IWifiStaIface#getFactoryMacAddress : ottiene il MAC di fabbrica di wlan0 utilizzando una chiamata ioctl .
    • ISupplicantP2pIface#setMacRandomization : attiva/disattiva la randomizzazione MAC P2P nel richiedente.
  2. Imposta config_wifi_connected_mac_randomization_supported su true nel file config.xml Impostazioni (questo può essere fatto in un overlay personalizzato del dispositivo).

    • Questo flag viene utilizzato per controllare se la randomizzazione MAC in modalità client è abilitata.
  3. Imposta config_wifi_p2p_mac_randomization_supported su true nel file config.xml Impostazioni (questo può essere fatto in un overlay personalizzato del dispositivo).

    • Questo flag viene utilizzato per controllare se la randomizzazione MAC Wi-Fi Direct è abilitata.
  4. Testa la tua implementazione utilizzando i metodi descritti in Validazione .

L'interfaccia utente del sistema deve:

  • Avere un'opzione per abilitare o disabilitare la randomizzazione per ciascun SSID.
  • Avere la randomizzazione MAC abilitata per impostazione predefinita per tutte le reti appena aggiunte.

Utilizza l' implementazione di riferimento dell'interfaccia utente delle Impostazioni per implementare nuove richieste.

I dispositivi con Android 9 o versioni precedenti potrebbero non supportare la randomizzazione MAC Wi-Fi. Quando si aggiornano tali dispositivi ad Android 10, la funzione di randomizzazione MAC Wi-Fi può essere disabilitata impostando il flag WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION su true nel file make HAL del fornitore Wi-Fi.

Validazione

Per verificare che la funzionalità funzioni come previsto, esegui sia un test di integrazione (ACTS) che un test manuale.

Per eseguire un test di integrazione, utilizzare il file ACTS, WifiMacRandomizationTest.py , situato in tools/test/connectivity/acts_tests/tests/google/wifi , per verificare che il dispositivo utilizzi l'indirizzo MAC randomizzato e memorizzi correttamente l'indirizzo MAC randomizzato per ciascuno rete.

Per eseguire un test manuale:

  1. Verifica che la randomizzazione MAC sia abilitata sul dispositivo controllando che config_wifi_connected_mac_randomization_supported sia impostato su true nell'overlay del dispositivo.
  2. Connettersi a una rete Wi-Fi.
  3. Tocca la rete per andare alla pagina dei dettagli della rete. Verificare che la randomizzazione MAC sia attivata. Verificare che l'indirizzo MAC visualizzato sia un MAC randomizzato, con il bit generato localmente impostato su 1 e il bit multicast impostato su 0.
  4. Disattiva la randomizzazione MAC. Connettersi alla stessa rete e verificare che venga utilizzato il MAC di fabbrica.
  5. Elimina la rete toccando Dimentica nella pagina dei dettagli della rete.
  6. Connettersi alla stessa rete e verificare 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'aggiornamento ad Android 10 o versioni successive:

  1. Avere almeno una rete salvata su un dispositivo con Android 9 o versioni precedenti.
  2. Flash l'immagine del sistema Android 10.
  3. Nel selettore Wi-Fi, verifica che la randomizzazione MAC sia disattivata per tutte le reti salvate.
  4. Attiva la randomizzazione MAC. Connettersi alla stessa rete e verificare che venga utilizzato il MAC randomizzato.