In Android 6 und höher wurden Wi-Fi-Dienstanbieter und Paketanalysatoren daran gehindert, die Werks-MAC-Adresse eines Geräts über den Wi-Fi-Stapel von 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 abzielen. Auf Geräte-IDs kann zugegriffen werden
- Die Standard-SMS-App.
- Apps mit sowohl der
READ_PRIVILEGED_PHONE_STATE
-Berechtigung in derManifest.permission
-Klasse als auch einer Zulassungsliste in derprivapp-permission.xml
Datei. Diese müssen ebenfalls in das Verzeichnispriv-app
geladen werden. - Apps mit Beförderungsberechtigungen, wie in den UICC-Beförderungsberechtigungen definiert.
- Ein Gerätebesitzer oder Profilbesitzer mit der Berechtigung
READ_PHONE_STATE
, die in der KlasseManifest.permission
erteilt wurde. (Zulassung auf der Zulassungsliste ist nicht erforderlich.)
Zugriff auf privilegierte Pakete
Ein Paket muss privilegiert sein, um auf Geräte-IDs zugreifen zu können. Es muss über die Berechtigung READ_PRIVILEGED_PHONE_STATE
in der Klasse Manifest.permission
verfügen und in der Datei privapp-permission.xml
sein. Informationen zum Whitelist-Prozess finden Sie unter Privileged Permission Whitelisting .
Informationen zum Abrufen einer eindeutigen ID für ein nicht privilegiertes Paket finden Sie unter Häufige Anwendungsfälle und die entsprechende zu verwendende Kennung .
Eingeschränkte Geräte-IDs und randomisierte MAC-Adressen
Um die Geräte-IDs weiter einzuschränken, übertragen alle Geräte unter Android 10 standardmäßig randomisierte MAC-Adressen sowohl für Sondierungs- als auch für zugehörige Anfragen und müssen für jede SSID eine andere randomisierte MAC-Adresse haben. Verwenden Sie die werkseitige MAC-Adresse des Geräts nicht im Clientmodus, Soft Access Point (AP) oder Wi-Fi Direct-Anwendungsfällen. Es muss vor öffentlich zugänglichen APIs verborgen bleiben, die keine privilegierten Apps sind. Privilegierte Apps, die die Rückgabe der werkseitigen MAC-Adresse erfordern, müssen über die Berechtigung LOCAL_MAC_ADDRESS
verfügen.
Benutzer haben die Möglichkeit, die randomisierte Standard -MAC-Adresse beizubehalten, die jeder SSID zugewiesen ist. Die Option ist unter Datenschutz in Einstellungen > Netzwerkdetails sichtbar. Informationen zum Erhalt einer randomisierten MAC-Adresse finden Sie unter Randomisierte 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
- Eine
SecurityException
wird von den Geräte-ID-APIs ausgelöst. - Apps für Android 9 oder früher
- Wenn sie über die
READ_PHONE_STATE
verfügen, werden entweder einenull
oder Platzhalterdaten zurückgegeben. - Wenn dies nicht der Fall ist, 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ätekennungen und Best Practices für eindeutige Kennungen .
Testen
Apps müssen daran gehindert werden, auf die Geräteseriennummer und ggf. IMEI / MEID, SIM-Seriennummer und Teilnehmer-ID zuzugreifen. Apps mit der Berechtigung zum Zugriff auf diese IDs müssen außerdem eines der unter Wer kann auf Geräte-IDs zugreifen aufgeführten Kriterien erfüllen?