Implementa la randomizzazione degli indirizzi MAC

A partire da Android 8.0, i dispositivi Android usano indirizzi MAC casuali durante il probe di nuove reti non 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 degli indirizzi MAC è abilitata per impostazione predefinita in modalità client, SoftAp e Wi-Fi Direct.

La randomizzazione MAC impedisce ai listener di utilizzare gli indirizzi MAC per creare una cronologia delle attività del dispositivo, aumentando così la privacy degli utenti.

Inoltre, gli indirizzi MAC vengono randomizzati nell'ambito delle operazioni Wi-Fi Aware e RTT Wi-Fi.

Per ulteriori informazioni, consulta la pagina Comportamento di randomizzazione dell'MAC.

Implementazione

Per implementare la randomizzazione degli indirizzi 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 riduce l'interfaccia, modifica l'indirizzo MAC e riattiva l'interfaccia.
    • IWifiStaIface#getFactoryMacAddress: ottiene l'indirizzo MAC di fabbrica di wlan0 tramite una chiamata ioctl.
    • ISupplicantP2pIface#setMacRandomization: attiva/disattiva la randomizzazione degli indirizzi MAC P2P nel richiedente.
  2. Imposta config_wifi_connected_mac_randomization_supported su true nelle Impostazioni config.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.
  3. Imposta config_wifi_p2p_mac_randomization_supported su true nelle Impostazioni config.xml (questa operazione può essere eseguita in un overlay personalizzato del dispositivo).

    • Questo flag viene utilizzato per controllare se la randomizzazione degli indirizzi MAC Wi-Fi Direct è abilitata.
  4. Testa l'implementazione utilizzando i metodi descritti in Convalida.

L'UI di sistema deve:

  • Puoi attivare o disattivare la randomizzazione per ogni SSID.
  • Hanno la randomizzazione degli indirizzi MAC abilitata per impostazione predefinita per tutte le reti appena aggiunte.

Utilizza l'implementazione di riferimento della UI delle impostazioni per implementare nuovi prompt.

I dispositivi con Android 9 o versioni precedenti potrebbero non supportare la randomizzazione degli indirizzi MAC Wi-Fi. Quando si esegue l'upgrade di questi dispositivi ad Android 10, la funzionalità di randomizzazione degli indirizzi MAC Wi-Fi può essere disattivata impostando il flag WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION su true nel file di creazione dell'HAL del fornitore di Wi-Fi.

Convalida

Per verificare che la funzionalità funzioni come previsto, esegui 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. Connetterti a una rete Wi-Fi.
  3. Tocca la rete per passare alla pagina Dettagli rete. Verifica che la randomizzazione di MAC sia attiva. Verifica che l'indirizzo MAC visualizzato sia un MAC casuale con il bit generato localmente impostato su 1 e il bit multicast impostato su 0.
  4. Disattiva la randomizzazione degli indirizzi MAC. Connettiti alla stessa rete e verifica che sia in uso l'MAC di fabbrica.
  5. Elimina la rete toccando Elimina nella pagina Dettagli rete.
  6. Collegati alla stessa rete e verifica che venga utilizzato lo stesso indirizzo MAC randomizzato.

Per testare la randomizzazione degli indirizzi MAC su un dispositivo precedente ad Android 10 (in grado di supportare la randomizzazione degli indirizzi MAC) con Android 10 o versioni successive:

  1. Avere almeno una rete salvata su un dispositivo con Android 9 o versioni precedenti.
  2. Esegui il flashing dell'immagine di sistema Android 10.
  3. Nel selettore Wi-Fi, verifica che la randomizzazione dell'indirizzo MAC sia disattivata per tutte le reti salvate.
  4. Attiva la randomizzazione degli indirizzi MAC. Collegati alla stessa rete e verifica che l'indirizzo MAC randomizzato venga usato.