Ab Android 8.0 verwenden Android-Geräte randomisierte MAC-Adressen, wenn sie nach neuen Netzwerken suchen, während sie nicht mit einem Netzwerk verbunden sind. In Android 9 können Sie eine Entwickleroption aktivieren (standardmäßig deaktiviert), damit das Gerät beim Verbinden mit einem WLAN eine randomisierte MAC-Adresse verwendet.
In Android 10 ist die MAC-Randomisierung standardmäßig für den Clientmodus, SoftAp und Wi-Fi Direct aktiviert.
Durch die MAC-Randomisierung wird verhindert, dass Listener anhand von MAC-Adressen einen Verlauf der Geräteaktivitäten erstellen. So wird der Datenschutz für Nutzer verbessert.
Außerdem werden MAC-Adressen im Rahmen von Wi-Fi Aware und Wi-Fi RTT-Vorgängen randomisiert.
Weitere Informationen finden Sie unter MAC-Randomisierungsverhalten.
Implementierung
So implementieren Sie die MAC-Randomisierung auf Ihrem Gerät:
Arbeiten Sie mit einem WLAN-Chipanbieter zusammen, um die folgenden HAL-Methoden zu implementieren:
IWifiStaIface#setMacAddress: Konfiguriert die MAC-Adresse der Schnittstelle. Bei der Standardimplementierung wird die Schnittstelle heruntergefahren, die MAC-Adresse geändert und die Schnittstelle wieder hochgefahren.IWifiStaIface#getFactoryMacAddress: Ruft die werkseitige MAC-Adresse vonwlan0mit einemioctl-Aufruf ab.ISupplicantP2pIface#setMacRandomization: Aktiviert oder deaktiviert die P2P-MAC-Randomisierung im Supplicant.
Setzen Sie
config_wifi_connected_mac_randomization_supportedin den Einstellungenconfig.xmlauftrue. Dies kann in einem benutzerdefinierten Geräte Overlay erfolgen.- Mit diesem Flag wird gesteuert, ob die MAC-Randomisierung im Clientmodus aktiviert ist.
Setzen Sie
config_wifi_p2p_mac_randomization_supportedin den Einstellungenconfig.xmlauftrue. Dies kann in einem benutzerdefinierten Geräte Overlay erfolgen.- Mit diesem Flag wird gesteuert, ob die MAC-Randomisierung für Wi-Fi Direct aktiviert ist.
Testen Sie Ihre Implementierung mit den unter Validierung beschriebenen Methoden.
Die System-UI muss folgende Anforderungen erfüllen:
- Sie muss eine Option zum Aktivieren oder Deaktivieren der Randomisierung für jede SSID haben.
- Die MAC-Randomisierung muss für alle neu hinzugefügten Netzwerke standardmäßig aktiviert sein.
Verwenden Sie die Referenzimplementierung der Einstellungen-UI, um neue Eingabeaufforderungen zu implementieren.
Geräte mit Android 9 oder niedriger unterstützen möglicherweise keine WLAN-MAC-Randomisierung. Wenn Sie solche Geräte auf Android 10 aktualisieren, kann die WLAN-MAC-Randomisierung deaktiviert werden, indem Sie das Flag WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION in der Make-Datei des WLAN-Anbieters auf „true“ setzen.
Validierung
Führen Sie einen manuellen Test aus, um zu prüfen, ob die Funktion wie vorgesehen funktioniert:
- Prüfen Sie, ob die MAC-Randomisierung auf dem Gerät aktiviert ist. Dazu muss
config_wifi_connected_mac_randomization_supportedim Geräte-Overlay auftruegesetzt sein. - Verbinden Sie sich mit einem WLAN.
- Tippen Sie auf das Netzwerk, um zur Seite „Netzwerkdetails“ zu gelangen. Prüfen Sie, ob die MAC-Randomisierung aktiviert ist. Prüfen Sie, ob die angezeigte MAC-Adresse eine randomisierte MAC-Adresse ist, bei der das lokal generierte Bit auf 1 und das Multicast-Bit auf 0 gesetzt ist.
- Deaktivieren Sie die MAC-Randomisierung. Stellen Sie eine Verbindung zum selben Netzwerk her und prüfen Sie, ob die werkseitige MAC-Adresse verwendet wird.
- Löschen Sie das Netzwerk, indem Sie auf der Seite „Netzwerkdetails“ auf Vergessen tippen.
Stellen Sie eine Verbindung zum selben Netzwerk her und prüfen Sie, ob dieselbe randomisierte MAC-Adresse verwendet wird.
So testen Sie die MAC-Randomisierung auf einem Gerät mit einer Android-Version vor Android 10, das die MAC-Randomisierung unterstützt und auf Android 10 oder höher aktualisiert wird:
- Auf einem Gerät mit Android 9 oder niedriger muss mindestens ein gespeichertes Netzwerk vorhanden sein.
- Flashen Sie das Android 10-Systemimage.
- Prüfen Sie in der WLAN-Auswahl, ob die MAC-Randomisierung für alle gespeicherten Netzwerke deaktiviert ist.
- Aktivieren Sie die MAC-Randomisierung. Stellen Sie eine Verbindung zum selben Netzwerk her und prüfen Sie, ob die randomisierte MAC-Adresse verwendet wird.