In Android 6 und höher wurde es Wi-Fi-Dienstanbietern und Paketanalysatoren untersagt, die werkseitige MAC-Adresse eines Geräts über den Wi-Fi-Stack aus Netzwerkanfragen abzurufen. Ab Android 10 gelten zusätzliche Einschränkungen, die den Zugriff auf Gerätekennungen (IDs) auf Apps mit der privilegierten Berechtigungsstufe beschränken. Dies schützt Geräte-IDs wie z
- Telefonie-IMEI-, MEID-, ESN- und IMSI-Nummern.
- Build-, SIM- oder USB-Seriennummern.
Wer kann auf Geräte-IDs zugreifen?
Geräte-IDs sind auf allen Android 10-Geräten eingeschränkt, auch wenn Apps auf Android 9 oder niedriger ausgerichtet sind. Auf Geräte-IDs kann zugegriffen werden
- Die Standard-SMS-App.
- Apps mit der Berechtigung
READ_PRIVILEGED_PHONE_STATE
in derManifest.permission
Klasse und der Zulassungsliste in der Dateiprivapp-permission.xml
. Diese müssen ebenfalls in daspriv-app
Verzeichnis geladen werden. - Apps mit Betreiberprivilegien, wie in UICC Carrier Privileges definiert.
- Ein Gerätebesitzer oder Profilbesitzer mit der in der
Manifest.permission
-Klasse gewährtenREAD_PHONE_STATE
Berechtigung. (Eine Zulassungsliste ist nicht erforderlich.)
Zugriff auf privilegierte Pakete
Ein Paket muss berechtigt sein, auf Geräte-IDs zuzugreifen. Es muss über die Berechtigung READ_PRIVILEGED_PHONE_STATE
in der Manifest.permission
Klasse verfügen und in der Datei privapp-permission.xml
auf der Zulassungsliste stehen. Informationen zum Zulassungsprozess finden Sie unter Zulassungsliste für privilegierte Berechtigungen .
Informationen zum Erhalten einer eindeutigen ID für ein nicht privilegiertes Paket finden Sie unter Häufige Anwendungsfälle und der entsprechende zu verwendende Bezeichner .
Eingeschränkte Geräte-IDs und zufällige MAC-Adressen
Um Geräte-IDs weiter einzuschränken, übertragen alle Geräte unter Android 10 standardmäßig zufällige MAC-Adressen sowohl für Tests als auch für zugehörige Anfragen und müssen für jede SSID eine andere zufällige MAC-Adresse haben. Verwenden Sie die werkseitige MAC-Adresse des Geräts nicht im Client-Modus, Soft Access Point (AP) oder Wi-Fi Direct-Anwendungsfällen. Es muss vor öffentlich zugänglichen APIs verborgen bleiben, bei denen es sich nicht um privilegierte Apps handelt. Privilegierte Apps, die die Rückgabe der werkseitigen MAC-Adresse erfordern, benötigen die Berechtigung LOCAL_MAC_ADDRESS
.
Benutzer haben die Möglichkeit, die standardmäßige zufällige MAC-Adresse beizubehalten, die jeder SSID zugewiesen ist. Die Option ist unter „Datenschutz“ unter „Einstellungen > Netzwerkdetails“ sichtbar. Informationen zum Erhalten einer zufälligen MAC-Adresse finden Sie unter Zufällige MAC-Adressen .
Apps, die Geräte-ID-APIs aufrufen
Apps, die Geräte-ID-APIs aufrufen, müssen die Anforderungen von Android 10 erfüllen. Andernfalls wird beim Versuch, auf Geräte-IDs zuzugreifen, Folgendes zurückgegeben:
- Apps für Android 10
- Von den Geräte-ID-APIs wird eine
SecurityException
ausgelöst. - Apps für Android 9 oder früher
- Wenn sie über die Berechtigung
READ_PHONE_STATE
verfügen, werden entweder einenull
oder Platzhalterdaten zurückgegeben. - Ist dies nicht der Fall, lösen die Geräte-ID-APIs eine
SecurityException
aus, die den Namen der aufgerufenen Methode und einen Hinweis darauf enthält, dass die aufrufende App die Anforderungen für den Zugriff auf die angeforderte ID nicht erfüllt.
Weitere Informationen zu unveränderlichen Geräte-IDs finden Sie unter Nicht zurücksetzbare Geräte-IDs und Best Practices für eindeutige Identifikatoren .
Testen
Es muss verhindert werden, dass Apps auf die Geräteseriennummer und ggf. IMEI/MEID, SIM-Seriennummer und Teilnehmer-ID zugreifen. Apps mit der Berechtigung zum Zugriff auf diese IDs müssen außerdem eines der Kriterien erfüllen, die unter „Wer kann auf Geräte-IDs zugreifen“ aufgeführt sind.