Ab Android 8.0 verwenden Android-Geräte zufällige 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 Herstellen einer Verbindung zu einem WLAN eine zufällige MAC-Adresse verwendet.
In Android 10 ist die MAC-Randomisierung standardmäßig für den Clientmodus, SoftAp und Wi-Fi Direct aktiviert.
Die MAC-Randomisierung verhindert, dass Hörer MAC-Adressen verwenden, um einen Verlauf der Geräteaktivitäten zu erstellen, und erhöht so den Datenschutz für Nutzer.
Außerdem werden MAC-Adressen im Rahmen von Wi‑Fi Aware- und Wi‑Fi RTT-Vorgängen zufällig generiert.
Weitere Informationen finden Sie unter Verhalten bei der MAC-Randomisierung.
Implementierung
So implementieren Sie die MAC-Randomisierung auf Ihrem Gerät:
Wenden Sie sich an einen WLAN-Chipanbieter, 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 gestartet.IWifiStaIface#getFactoryMacAddress
: Ruft die MAC-Adresse der Fabrik vonwlan0
über einenioctl
-Aufruf ab.ISupplicantP2pIface#setMacRandomization
: Hiermit wird die P2P-MAC-Zufallsmixung im Supplicant aktiviert oder deaktiviert.
Lege in den Einstellungen
config.xml
config_wifi_connected_mac_randomization_supported
auftrue
fest. Das kann auch in einem benutzerdefinierten Overlay des Geräts erfolgen.- Mit diesem Flag wird gesteuert, ob die MAC-Randomisierung im Clientmodus aktiviert ist.
Lege in den Einstellungen
config.xml
config_wifi_p2p_mac_randomization_supported
auftrue
fest. Das kann auch in einem benutzerdefinierten Overlay des Geräts erfolgen.- Mit diesem Flag wird festgelegt, ob die MAC-Zufallsmix-Funktion von Wi‑Fi Direct aktiviert ist.
Testen Sie Ihre Implementierung mithilfe der Methoden, die unter Validierung beschrieben sind.
Die System-Benutzeroberfläche muss:
- Sie haben die Möglichkeit, die Randomisierung für jede SSID zu aktivieren oder zu deaktivieren.
- Die MAC-Randomisierung ist für alle neu hinzugefügten Netzwerke standardmäßig aktiviert.
Verwenden Sie die Referenzimplementierung der Einstellungen-Benutzeroberfläche, um neue Prompts zu implementieren.
Geräte mit Android 9 oder niedriger unterstützen die WLAN-MAC-Zufallsauswahl möglicherweise nicht. Wenn Sie solche Geräte auf Android 10 umstellen, können Sie die WLAN-MAC-Zufallsfunktion deaktivieren, indem Sie das Flag WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION
in der HAL-Make-Datei des WLAN-Anbieters auf „wahr“ setzen.
Zertifizierungsstufe
Führen Sie einen manuellen Test durch, um zu prüfen, ob die Funktion wie gewünscht funktioniert:
- Prüfen Sie, ob die MAC-Zufallsmix-Funktion auf dem Gerät aktiviert ist. Dazu muss im Geräte-Overlay
config_wifi_connected_mac_randomization_supported
auftrue
festgelegt sein. - Verbinde dich mit dem WLAN.
- Tippen Sie auf das Netzwerk, um die Seite mit den Netzwerkdetails aufzurufen. Prüfen Sie, ob die MAC-Zufallsmix-Funktion aktiviert ist. Prüfen Sie, ob die angezeigte MAC-Adresse eine zufällige MAC-Adresse ist, bei der das lokal generierte Bit auf 1 und das Multicast-Bit auf 0 gesetzt ist.
- Deaktivieren Sie die MAC-Zufallsmixung. Stellen Sie eine Verbindung zum selben Netzwerk her und prüfen Sie, ob die MAC-Adresse der Werkseinstellungen verwendet wird.
- Löschen Sie das Netzwerk, indem Sie auf der Seite „Netzwerkdetails“ auf Entfernen tippen.
Stellen Sie eine Verbindung zum selben Netzwerk her und prüfen Sie, ob dieselbe zufällige MAC-Adresse verwendet wird.
So testen Sie die MAC-Zufallsmix-Funktion auf einem Gerät, das älter als Android 10 ist (MAC-Zufallsmix wird unterstützt) und auf Android 10 oder höher aktualisiert wird:
- Sie haben mindestens ein gespeichertes Netzwerk auf einem Gerät mit Android 9 oder niedriger.
- Flashen Sie das Android 10-System-Image.
- Prüfen Sie in der WLAN-Auswahl, ob die MAC-Zufallsgenerierung für alle gespeicherten Netzwerke deaktiviert ist.
- Aktivieren Sie die MAC-Adressrandomisierung. Stellen Sie eine Verbindung zum selben Netzwerk her und prüfen Sie, ob die zufällige MAC-Adresse verwendet wird.