Ab Android 8.0 verwenden Android-Geräte bei der Suche nach neuen Netzwerken zufällige MAC-Adressen, obwohl sie keinem Netzwerk zugeordnet sind. In Android 9 können Sie eine Entwickleroption aktivieren (sie ist standardmäßig deaktiviert), damit das Gerät beim Herstellen einer WLAN-Verbindung 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 angeordnet.
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. Durch die Standardimplementierung wird die Schnittstelle deaktiviert, die MAC-Adresse geändert und die Schnittstelle wieder aktiviert.IWifiStaIface#getFactoryMacAddress
: Ruft den Factory-MAC vonwlan0
mit einemioctl
-Aufruf ab.ISupplicantP2pIface#setMacRandomization
: Legt die P2P-MAC-Randomisierung im Supplicant fest.
Setze
config_wifi_connected_mac_randomization_supported
in den Einstellungenconfig.xml
auftrue
. Das ist in einem benutzerdefinierten Geräte-Overlay möglich.- Mit diesem Flag wird gesteuert, ob die MAC-Randomisierung im Clientmodus aktiviert ist.
Setze
config_wifi_p2p_mac_randomization_supported
in den Einstellungenconfig.xml
auftrue
. Das ist in einem benutzerdefinierten Geräte-Overlay möglich.- Mit diesem Flag wird gesteuert, ob die direkte Wi-Fi-MAC-Randomisierung aktiviert ist.
Testen Sie Ihre Implementierung mit den unter Validierung beschriebenen Methoden.
Die System-UI muss:
- Option zum Aktivieren oder Deaktivieren der Randomisierung für jede SSID
- Die MAC-Randomisierung ist für alle neu hinzugefügten Netzwerke standardmäßig aktiviert.
Verwenden Sie die Referenzimplementierung der Einstellungs-UI, um neue Prompts zu implementieren.
Geräte mit Android 9 oder niedriger unterstützen möglicherweise keine WLAN-MAC-Zufallsauswahl. Beim Upgrade solcher Geräte auf Android 10 kann die WLAN-MAC-Randomisierungsfunktion deaktiviert werden, indem das Flag WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION
in der HAL-Make-Datei des WLAN-Anbieters auf „true“ gesetzt wird.
Zertifizierungsstufe
Führen Sie einen manuellen Test aus, um zu prüfen, ob die Funktion wie beabsichtigt funktioniert:
- Prüfen Sie, ob die MAC-Randomisierung auf dem Gerät aktiviert ist. Prüfen Sie dazu, ob
config_wifi_connected_mac_randomization_supported
im Geräte-Overlay auftrue
gesetzt ist. - Du bist mit einem WLAN verbunden.
- Tippen Sie auf das Netzwerk, um die Seite mit den Netzwerkdetails aufzurufen. Prüfen Sie, ob die MAC-Randomisierung aktiviert ist. Überprü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 der Factory-MAC verwendet wird.
- Löschen Sie das Netzwerk, indem Sie auf der Seite mit den 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-Randomisierung auf einem Gerät mit einer älteren Version als Android 10, das MAC-Randomisierung unterstützt und auf Android 10 oder höher aktualisiert wird:
- Es muss mindestens ein gespeichertes Netzwerk auf einem Gerät mit Android 9 oder niedriger vorhanden sein.
- Sie können das Android 10-Systemimage blinken.
- 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 der zufällige MAC verwendet wird.