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 zufällige Generierung von MAC-Adressen standardmäßig für den Clientmodus, SoftAp und Wi‑Fi Direct aktiviert.
Durch die MAC-Adressen-Randomisierung wird verhindert, dass Zuhörer MAC-Adressen verwenden, um einen Verlauf der Geräteaktivitäten zu erstellen. Dadurch wird der Datenschutz für Nutzer erhöht.
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 zufällige Generierung von MAC-Adressen auf Ihrem Gerät:
Arbeiten Sie mit einem WLAN-Chiphersteller zusammen, um die folgenden HAL-Methoden zu implementieren:
IWifiStaIface#setMacAddress
: Konfiguriert die MAC-Adresse der Schnittstelle. Bei der Standardimplementierung wird die Schnittstelle deaktiviert, die MAC-Adresse geändert und die Schnittstelle wieder aktiviert.IWifiStaIface#getFactoryMacAddress
: Ruft die Factory-MAC vonwlan0
über einenioctl
-Aufruf ab.ISupplicantP2pIface#setMacRandomization
: Legt die P2P-MAC-Randomisierung im Supplicant auf „Ein“ oder „Aus“ fest.
Setze
config_wifi_connected_mac_randomization_supported
auftrue
in den Einstellungenconfig.xml
(dies kann in einem benutzerdefinierten Geräte-Overlay erfolgen).- Mit diesem Flag wird gesteuert, ob die MAC-Adressen-Randomisierung im Clientmodus aktiviert ist.
Setze
config_wifi_p2p_mac_randomization_supported
auftrue
in den Einstellungenconfig.xml
(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 haben die Möglichkeit, die Randomisierung für jede SSID zu aktivieren oder zu deaktivieren.
- MAC-Randomisierung ist standardmäßig für alle neu hinzugefügten Netzwerke aktiviert.
Verwenden Sie die Referenzimplementierung der Einstellungs-UI, um neue Aufforderungen zu implementieren.
Geräte mit Android 9 oder niedriger unterstützen möglicherweise keine zufälligen WLAN-MAC-Adressen. Wenn solche Geräte auf Android 10 aktualisiert werden, kann die Funktion zur zufälligen Generierung von WLAN-MAC-Adressen deaktiviert werden, indem das WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION
-Flag in der Make-Datei des WLAN-Anbieter-HAL auf „true“ gesetzt wird.
Zertifizierungsstufe
So führen Sie einen manuellen Test durch, um zu prüfen, ob die Funktion wie beabsichtigt funktioniert:
- Prüfen Sie, ob die MAC-Adress-Randomisierung auf dem Gerät aktiviert ist. Dazu muss im Geräte-Overlay
config_wifi_connected_mac_randomization_supported
auftrue
gesetzt sein. - Verbinde dich mit dem WLAN.
- Tippen Sie auf das Netzwerk, um die Seite „Netzwerkdetails“ aufzurufen. Prüfen Sie, ob die MAC-Adressen-Randomisierung 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.
- Deaktiviere die MAC-Adressrandomisierung. Stelle eine Verbindung zum selben Netzwerk her und prüfe, ob die werkseitige MAC-Adresse 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-Adressen-Randomisierung auf einem Gerät vor Android 10, das die MAC-Adressen-Randomisierung unterstützt und auf Android 10 oder höher aktualisiert wird:
- Auf einem Gerät mit Android 9 oder niedriger muss mindestens ein Netzwerk gespeichert sein.
- Flashen Sie das Android 10-Systemimage.
- Prüfen Sie in der WLAN-Auswahl, ob die zufällige Generierung von MAC-Adressen 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.