Ab dem 27. März 2025 empfehlen wir, android-latest-release
anstelle von aosp-main
zu verwenden, um AOSP zu erstellen und Beiträge dazu zu leisten. Weitere Informationen finden Sie unter Änderungen am AOSP.
Unveränderliche Geräte-IDs
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Unter Android 6 und höher ist es WLAN-Dienstanbietern und Paketanalysatoren nicht mehr möglich, die MAC-Adresse des Geräts aus der Fabrik über den WLAN-Stack aus Netzwerkanfragen abzurufen. Seit Android 10 gelten zusätzliche Einschränkungen, die den Zugriff auf Geräte-IDs auf Apps mit der
Berechtigungsstufe „Bevorrechtigt“ beschränken. Dadurch werden Geräte-IDs wie
- 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 Folgendes zugreifen:
Zugriff auf Pakete mit erhöhten Berechtigungen
Ein Paket muss Berechtigungen für den Zugriff auf Geräte-IDs haben. Es muss die Berechtigung
READ_PRIVILEGED_PHONE_STATE
in der Klasse Manifest.permission
haben und in der Datei privapp-permission.xml
auf die Zulassungsliste gesetzt sein. Informationen zum Zulassungsprozess finden Sie unter Zulassungsliste für Berechtigungen mit erhöhten Berechtigungen.
Informationen zum Abrufen einer eindeutigen ID für ein nicht privilegiertes Paket finden Sie unter
Häufige Anwendungsfälle und die richtige Kennung.
Eingeschränkten Geräte-IDs und zufällige MAC-Adressen
Um Geräte-IDs weiter einzuschränken, senden alle Geräte mit Android 10 standardmäßig zufällige MAC-Adressen sowohl für Probe- als auch für zugehörige Anfragen. Außerdem muss für jede SSID eine andere zufällige MAC-Adresse verwendet werden. Verwenden Sie die MAC-Adresse der Werkseinstellungen des Geräts nicht im Clientmodus, als Soft-Zugangspunkt (AP) oder für Wi‑Fi Direct-Anwendungsfälle. Sie darf nicht für öffentlich zugängliche APIs sichtbar sein, die keine privilegierten Apps sind. Für privilegierte Apps, für die die MAC-Adresse des Werks zurückgegeben werden muss, ist die Berechtigung LOCAL_MAC_ADDRESS
erforderlich.
Nutzer können die standardmäßige zufällige MAC-Adresse beibehalten, die jeder SSID zugewiesen ist.
Die Option ist unter Datenschutz in den Einstellungen > Netzwerkdetails zu sehen. Informationen zum Abrufen einer zufälligen MAC-Adresse finden Sie unter
Zufällige MAC-Adressen.
Abbildung 1: Die MAC-Adresse wird unter „Datenschutz“ in den Netzwerkdetails als zufällig angezeigt.
Apps, die APIs für Geräte-IDs aufrufen
Apps, die Geräte-ID-APIs aufrufen, müssen die Anforderungen von Android 10 erfüllen. Andernfalls wird beim Zugriff auf Geräte-IDs Folgendes zurückgegeben:
- Apps, die auf Android 10 ausgerichtet sind
- Apps, die auf Android 9 oder niedriger ausgerichtet sind
- Wenn der Nutzer die Berechtigung
READ_PHONE_STATE
hat, wird entweder eine null
-Antwort oder Platzhalterdaten zurückgegeben.
- Andernfalls werfen die Geräte-ID-APIs
SecurityException
, 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 Kennungen.
Testen
Apps dürfen nicht auf die Seriennummer des Geräts und gegebenenfalls auf die IMEI oder MEID, die SIM-Seriennummer und die Abonnenten-ID zugreifen. Apps mit 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.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-27 (UTC)."],[],[],null,["# Immutable device IDs\n\nIn Android 6 and higher, Wi-Fi service providers and packet analyzers have\nbeen restricted from retrieving a device's factory MAC address through the\nWi-Fi stack from network requests. Starting in Android 10, additional restrictions are in place that limit access to device\nidentifiers (IDs) to apps with the [privileged](/docs/core/permissions/perms-allowlist)[permission\nlevel](https://developer.android.com/reference/android/R.attr.html#protectionLevel). This protects device IDs such as\n\n- telephony IMEI, MEID, ESN, and IMSI numbers.\n- build, SIM, or USB serial numbers.\n\n### Who can access device IDs\n\nDevice IDs are restricted on all Android 10\ndevices, even if apps target Android 9 or lower. Device IDs can be accessed by:\n\n- The default SMS app.\n- Apps with both [READ_PRIVILEGED_PHONE_STATE](/docs/core/permissions/perms-allowlist#customizing-allowlists) permission in the `\n `[Manifest.permission](https://developer.android.com/reference/android/Manifest.permission) class, and allowlisting in the `privapp-permission.xml` file. These must also be loaded in the `priv-app` directory.\n- Apps with carrier privileges as defined in [UICC Carrier\n Privileges](/docs/core/connect/uicc).\n- A device owner or profile owner with [READ_PHONE_STATE](https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE) permission granted in the [Manifest.permission](https://developer.android.com/reference/android/Manifest.permission) class. (Allowlisting isn't required.)\n\n#### Privileged packages access\n\nA package must be privileged to access device IDs. It must have\n[READ_PRIVILEGED_PHONE_STATE](/docs/core/permissions/perms-allowlist#customizing-allowlists) permission in the\n`Manifest.permission` class, and be allowlisted in the\n`privapp-permission.xml` file. For information on the allowlist\nprocess, see [Privileged\nPermission Allowlisting](/docs/core/permissions/perms-allowlist).\n\nFor information on getting a unique ID for a *nonprivileged* package,\nrefer to [Common use cases and the appropriate identifier to use](https://developer.android.com/training/articles/user-data-ids#common-use-cases).\n\n#### Restricted device IDs and randomized MAC addresses\n\nTo further restrict device IDs, all devices on Android 10 transmit randomized MAC addresses by default for both\nprobe and associated requests, and must have a different randomized MAC address\nfor each SSID. Don't use the device factory MAC address in client mode, soft\naccess point (AP), or Wi-Fi Direct use cases. It must remain hidden from\npublicly accessible APIs that aren't privileged apps. Privileged apps that\nrequire the factory MAC address to be returned are required to have\n`LOCAL_MAC_ADDRESS` permission.\n\nUsers have the option to keep the *default randomized* MAC address that's assigned to each SSID.\nThe option is viewable under **Privacy** in\n**Settings** \\\u003e **Network details** . To learn about\nobtaining a randomized MAC address see [Randomized MAC addresses](https://developer.android.com/about/versions/10/privacy/changes#data-ids).\n\n**Figure 1.**MAC address shows as randomized under Privacy in Network details.\n\n#### Apps that invoke device ID APIs\n\nApps that invoke device ID APIs must meet the Android 10 requirements. Otherwise, when they try to access\ndevice IDs the following is returned:\n\n- Apps targeting Android 10\n - [SecurityException](https://developer.android.com/reference/java/lang/SecurityException) is thrown from the device ID APIs.\n- Apps targeting Android 9 or earlier\n - If they have the [READ_PHONE_STATE](https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_STATE) permission, either a `null` response or placeholder data is returned.\n - If they don't, the device ID APIs throw [SecurityException](https://developer.android.com/reference/java/lang/SecurityException) that contains the name of the method called, and an indication that the calling app doesn't meet the requirements to access the requested ID.\n\nFor more on immutable device IDs see [Nonresettable\ndevice identifiers](https://developer.android.com/about/versions/10/privacy/changes#data-ids) and [best practices\nfor unique identifiers](https://developer.android.com/training/articles/user-data-ids).\n\n### Testing\n\nApps *must* be prevented from accessing the device serial number and,\nwhere applicable, IMEI or MEID, SIM serial number, and subscriber ID. Apps with\npermission to access these IDs must also meet one of the criteria listed under\n[Who can access device IDs](#who-access)."]]