Android-Berechtigungen bieten Einstellungen, die die Nutzeraufmerksamkeit erhöhen und den Zugriff einer App auf vertrauliche Daten einschränken. Die Konfiguration von Berechtigungen unter Android 8.0 und niedriger umfasst eine Zulassungsliste, ohne die privilegierte Apps deaktiviert werden, auch wenn sie sich im Pfad priv-app
befinden. Unter Android 9 und höher wird ein Gerät nicht gestartet, das versucht, Apps zu verwenden, die nicht ordnungsgemäß auf der Zulassungsliste stehen.
Mit Android 10 wurde das Konzept der Rolle eingeführt, ein eindeutiger Name innerhalb des Systems, 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.
Durch den verbesserten Schutz vor potenziell schädlichen Apps (Potentially Harmful Applications, PHAs) werden folgende Aspekte optimiert:
- Transparenz bei potenziell schädlichem App-Verhalten
- Nutzer können das App-Verhalten steuern.
- Die Verwendung von privaten Daten, die durch Berechtigungen geschützt sind, liegt im Ermessen der App-Entwickler.
Paketinstallation und Berechtigung
In Android 9 und niedriger waren die Funktionen für die Paketinstallation und die Berechtigungssteuerung im Paket PackageInstaller
(//packages/apps/PackageInstaller
) enthalten. Unter Android 10 und höher befindet sich die Funktion für die Berechtigungssteuerung in einem separaten Paket, PermissionController
(//packages/apps/PermissionController
). Abbildung 1 zeigt, wo sich die beiden Pakete in Android 10 befinden.
Abbildung 1: Funktionen zur Paketinstallation und Berechtigungssteuerung 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 gibt es Laufzeitberechtigungen für die Aktivitätserkennung, die den Nutzer auffordern, gefährliche Berechtigungen zu ändern oder zuzulassen.
Unter Android 8.0 mussten Sie Berechtigte Apps in den XML-Dateien der Systemkonfiguration im Verzeichnis /etc/permissions
explizit auf die Zulassungsliste setzen.
Unter Android 9 und höher müssen Berechtigungen mit erhöhten Zugriffsrechten 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. So 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 Nutzereinwilligung, um auf den Bildschirminhalt eines Geräts zuzugreifen. Berechtigte Apps, die die Funktion zum Stummschalten von Aufnahmen nutzen, z. B. für Screenshots, sollten stattdessen die Klasse MediaProjection verwenden.
Unter Android 15 müssen Sie Berechtigungen für Plattformsignaturen, die von nicht systeminternen Apps oder neu durch Updates für systeminterne Apps angefordert werden, in den XML-Dateien der Systemkonfiguration im Verzeichnis /etc/permissions
ausdrücklich auf die Zulassungsliste setzen.
Transparenz und Datenschutz
Unter Android 6.0 und höher ist die MAC-Adresse der Werkseinstellungen eines Geräts vor dem Zugriff durch WLAN-Dienstanbieter und Paketanalysatoren geschützt. Zusätzliche Einschränkungen ab Android 10 beschränken den Zugriff von Apps auf die unveränderlichen Geräte-IDs, es sei denn, sie sind auf der Zulassungsliste für Berechtigungen mit erhöhten Zugriffsrechten. Im Abschnitt Konnektivität finden Sie weitere Informationen zu Geräte-IDs, da sich diese auf Mobilfunkanbieter auswirken.
Unter Android 9 und niedriger können Nutzer dauerhaft festlegen, ob sie Apps Standortzugriff gewähren möchten. Ab Android 10 gibt es eine Funktion für Berechtigungen zur Standortermittlung in drei Bundesstaaten, die Nutzern drei Möglichkeiten bietet, einer App Zugriff auf den Standort eines Geräts zu gewähren. Diese Berechtigungsanforderungen gelten für Apps unter Android 10 unabhängig vom Ziel-SDK.
Berechtigungen für andere Transparenz- und Datenschutzfunktionen ab Android 10 konfigurieren
- Die
Erinnerung für den Standortzugriff im Hintergrund zeigt Nutzern an, wenn eine App im Hintergrund mit der Berechtigung
ACCESS_FINE_LOCATION
auf ihren Gerätestandort zugreift. - Auf Daten zu Kontaktaffinitäten, die von der Kontaktanbieterkomponente verwaltet werden, wird anders zugegriffen: Apps können die Daten zu Kontaktaffinitäten in der Datenbank nicht lesen oder darauf schreiben. Das betrifft APIs, die sich auf den Anrufer beziehen.
Optimierte Konfigurationen
Die Berechtigungskonfigurationen wurden für Android 6.0 und höher optimiert.
- Mit Umgebungsfunktionen für Dienste, die von
init
gestartet werden, werden alle Aspekte der Dienstkonfiguration in einer einzigen.rc
-Datei gespeichert. Wenn Sie Funktionen für Dienste festlegen, die nicht mitinit
gestartet wurden, konfigurieren Sie die Dateisystemfunktionen stattdessen mitfs_config.c
. - Android 7.x und niedriger erweitern den Mechanismus für Android-IDs (AIDs) mit einer gerätespezifischen
android_filesystem_config.h
-Datei, in der Dateisystemfunktionen und/oder benutzerdefinierte AIDs des Geräteherstellers angegeben werden. Android 8.0 und höher unterstützen eine neue Methode zum Erweitern der Dateisystemfunktionen. - Unter Android 8.0 werden USB-Befehle nicht mehr über gerätespezifische
init
-Scripts (eine Ersatzschicht für HAL) verarbeitet, sondern über einen nativen USB-Daemon. Die USB-HAL-Schnittstelle muss auf jedem Gerät implementiert werden, das mit Android 8.0 oder höher gestartet wird.