Android-Berechtigungen bieten Kontrollfunktionen, die das Bewusstsein der Nutzer schärfen und den Zugriff einer App auf vertrauliche Daten einschränken. Das Konfigurieren von Berechtigungen unter Android 8.0 und niedriger umfasst das Zulassen von Apps auf der Whitelist. Andernfalls werden privilegierte Apps deaktiviert, auch wenn sie sich im Pfad priv-app
befinden. Auf Geräten mit Android 9 und höher wird ein Gerät, das versucht, Apps zu verwenden, die nicht ordnungsgemäß auf der Zulassungsliste stehen, nicht gestartet.
Mit Android 10 wurde das Konzept einer Rolle eingeführt, einem eindeutigen Namen im System, der mit bestimmten Anforderungen und Berechtigungen verknüpft ist. Weisen Sie Apps Rollen zu, um ihnen Berechtigungen für einen bestimmten Zweck zu gewähren, und konfigurieren Sie Standardrollen mithilfe von Plattformkonfigurationsressourcen.
Der verbesserte Schutz vor potenziell schädlichen Apps (PSAs) bietet folgende Vorteile:
- Transparenz in Bezug auf das Verhalten potenziell schädlicher Apps.
- Nutzer können das Verhalten von Apps steuern.
- Ermessen von App-Entwicklern bei der Verwendung privater Daten, die durch Berechtigungen geschützt sind
Paketinstallation und Berechtigung
In Android 9 und niedriger waren die Funktionen für die Paketinstallation und die Berechtigungsverwaltung im Paket PackageInstaller
(//packages/apps/PackageInstaller
) enthalten. In Android 10 und höher befindet sich die Berechtigungsverwaltung in einem separaten Paket, PermissionController
(//packages/apps/PermissionController
). Abbildung 1 zeigt, wo sich die beiden Pakete in Android 10 befinden.

Abbildung 1: Funktionen für die Paketinstallation und Berechtigungsverwaltung in Android 10
Zulassungslisten und Zugriff
Unter Android 6.0 und höher fordern Apps den Zugriff auf gefährliche Berechtigungen zur Laufzeit an. In Android 10 werden Laufzeitberechtigungen für die Aktivitätserkennung (Activity Recognition, AR) eingeführt, die den Nutzer auffordern, gefährliche Berechtigungen zu ändern oder zuzulassen.
Unter Android 8.0 mussten Sie privilegierte Apps explizit in die XML-Dateien der Systemkonfiguration im Verzeichnis /etc/permissions
aufnehmen.
In Android 9 und höher müssen privilegierte Berechtigungen auf die Zulassungsliste gesetzt werden, da das Gerät sonst nicht gestartet werden kann.
Um die Sichtbarkeit interner APIs einzuschränken und zu verhindern, dass Apps versehentlich auf Plattformbibliotheken zugreifen, wurden in Android 7.0 Namespaces für native Bibliotheken eingeführt. Dadurch werden Systembibliotheken von App-Bibliotheken getrennt und Gerätehersteller können eigene native Bibliotheken hinzufügen.
Ab Android 10 benötigen Apps sowohl Signaturberechtigungen als auch die Einwilligung des Nutzers, um auf den Bildschirminhalt eines Geräts zuzugreifen. Privilegierte Apps, die auf die Funktion zum Erfassen im Hintergrund angewiesen sind, z. B. zum Erstellen eines Screenshots, sollten stattdessen die Klasse MediaProjection verwenden.
Unter Android 15 müssen Sie Plattformsignaturberechtigungen, die von Nicht-System-Apps angefordert werden oder die durch Updates von System-Apps neu angefordert werden, explizit in den XML-Dateien der Systemkonfiguration im Verzeichnis /etc/permissions
auf die Zulassungsliste setzen.
Transparenz und Datenschutz
In Android 6.0 und höher ist die MAC-Adresse eines Geräts ab Werk vor dem Zugriff durch WLAN-Dienstanbieter und Paketanalysatoren geschützt. Zusätzliche Einschränkungen ab Android 10 verhindern, dass Apps auf die unveränderlichen Geräte-IDs zugreifen können, es sei denn, sie sind auf der Zulassungsliste für privilegierte Berechtigungen. Im Abschnitt Konnektivität finden Sie eine ähnliche Diskussion zu Geräte-IDs, da dies Auswirkungen auf Mobilfunkanbieter hat.
Unter Android 9 und niedriger treffen Nutzer dauerhafte Entscheidungen, wenn sie Apps den Standortzugriff gewähren. Ab Android 10 haben Nutzer mit der Funktion Standortberechtigungen mit drei Status drei Optionen, um Apps den Zugriff auf den Standort eines Geräts zu erlauben. Diese Berechtigungsanforderungen gelten für Apps in Android 10 unabhängig vom Ziel-SDK.
Berechtigungen für andere Transparenz- und Datenschutzfunktionen ab Android 10 konfigurieren
- Die Erinnerung
Standortzugriff im Hintergrund wird Nutzern angezeigt, wenn eine App im Hintergrund über die Berechtigung
ACCESS_FINE_LOCATION
auf den Standort ihres Geräts zugreift. - Auf Daten, die sich auf die Kontakthäufigkeit beziehen und von der Komponente „Contacts Provider“ verwaltet werden, wird anders zugegriffen: Apps können nicht in die Daten zur Kontakthäufigkeit in der Datenbank schreiben oder daraus lesen. Dies betrifft anruferbezogene APIs.
Optimierte Konfigurationen
Die Berechtigungskonfigurationen wurden für Android 6.0 und höher optimiert.
- Ambient-Funktionen für Dienste, die von
init
gestartet werden, speichern alle Aspekte der Dienstkonfiguration in einer einzigen.rc
-Datei. Wenn Sie Berechtigungen für Dienste festlegen, die nicht voninit
gestartet werden, konfigurieren Sie die Dateisystemberechtigungen stattdessen mitfs_config.c
. - Unter Android 7.x und niedriger wird der Mechanismus für Android-IDs (AIDs) erweitert. Dabei wird eine gerätespezifische
android_filesystem_config.h
-Datei verwendet, um Dateisystemfunktionen und/oder benutzerdefinierte AIDs des Geräteherstellers anzugeben. Android 8.0 und höher unterstützt eine neue Methode zum Erweitern der Dateisystemfunktionen. - In Android 8.0 wurde die Verarbeitung von USB-Befehlen aus gerätespezifischen
init
-Skripten (ein Ersatz für HAL-Ebenen) in einen nativen USB-Daemon verschoben. Die USB-HAL-Schnittstelle muss auf jedem Gerät implementiert werden, das mit Android 8.0 oder höher auf den Markt kommt.