Android-Berechtigungen bieten Steuerelemente, die das Bewusstsein der Nutzer
schärfen und den Zugriff einer App auf vertrauliche Daten einschränken. Bei der Konfiguration von Berechtigungen unter Android 8.0 und niedriger
ist eine Zulassungsliste erforderlich. Ohne diese werden Apps mit
Sonderberechtigungen deaktiviert, auch wenn sie sich im Pfad priv-app
befinden. Unter Android 9 und höher kann ein Gerät, das versucht, Apps
zu verwenden, die nicht ordnungsgemäß auf der Zulassungsliste stehen, nicht
gestartet werden.
Mit Android 10 wurde das Konzept einer Rolle eingeführt. Eine Rolle ist ein eindeutiger Name 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 (PHAs) bietet folgende Vorteile:
- Transparenz in Bezug auf potenziell schädliches App-Verhalten
- Nutzerkontrolle über das App-Verhalten
- Ermessen der App-Entwickler bei der Verwendung privater Daten, die durch Berechtigungen geschützt sind
Paketinstallation und Berechtigung
Unter Android 9 und niedriger waren die Funktionen zur Steuerung der Paketinstallation und der Berechtigungen
im PaketPackageInstaller
(//packages/apps/PackageInstaller) enthalten. Unter Android 10 und höher befindet sich die Funktion zur Steuerung der Berechtigungen
in einem separaten Paket,PermissionController
(//packages/apps/PermissionController). Abbildung 1
ist dargestellt, wo sich die beiden Pakete unter Android 10 befinden.
Abbildung 1 : Funktionen zur Steuerung der Paketinstallation und der Berechtigungen unter Android 10
Zulassungslisten und Zugriff
Unter Android 6.0 und höher fordern Apps zur Laufzeit Zugriff auf gefährliche Berechtigungen an . Unter Android 10 werden Laufzeitberechtigungen für die Aktivitätserkennung hinzugefügt, die den Nutzer auffordern, gefährliche Berechtigungen zu ändern oder zuzulassen.
Unter Android 8.0 mussten Sie Apps mit Sonderberechtigungen explizit in den XML-Dateien der Systemkonfiguration im Verzeichnis /etc/permissions auf die Zulassungsliste setzen.
Unter Android 9 und höher müssen Berechtigungen mit Sonderberechtigungen auf die
Zulassungsliste
gesetzt werden, andernfalls kann das Gerät nicht gestartet werden.
Um die Sichtbarkeit interner APIs einzuschränken und zu verhindern, dass Apps versehentlich auf Plattformbibliotheken zugreifen, wurden mit 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 Zustimmung des Nutzers, um auf die Bildschirminhalte eines Geräts zuzugreifen. Apps mit Sonderberechtigungen, die auf die Funktion zur stillen Erfassung 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 oder durch Updates
von System-Apps neu angefordert werden, explizit
auf die Zulassungsliste setzen
in den XML-Dateien der Systemkonfiguration im /etc/permissions
Verzeichnis.
Transparenz und Datenschutz
Unter Android 6.0 und höher ist die MAC-Adresse eines Geräts 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, es sei denn, sie stehen auf der Zulassungsliste für Berechtigungen mit Sonderberechtigungen. Im Abschnitt Verbindungen finden Sie eine entsprechende Diskussion zu Geräte-IDs, da dies Auswirkungen auf Mobilfunkanbieter hat.
Unter Android 9 und niedriger treffen Nutzer dauerhafte Entscheidungen, wenn sie Apps Standortzugriff gewähren. Ab Android 10 bietet eine Funktion für Standortberechtigungen mit drei Statusoptionen Nutzern drei Möglichkeiten, Apps 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 Hintergrundzugriff auf den Standort zeigt Nutzern an, wenn eine App im Hintergrund mit der Berechtigung
ACCESS_FINE_LOCATIONauf den Standort ihres Geräts zugreift. - Auf Daten zur Kontaktnähe, die von der Komponente „Contacts Provider“ verwaltet werden, wird anders zugegriffen: Apps können keine Daten zur Kontaktnähe in die Datenbank schreiben oder daraus lesen. Dies wirkt sich auf APIs im Zusammenhang mit Anrufern aus.
Optimierte Konfigurationen
Die Berechtigungskonfigurationen wurden für Android 6.0 und höher optimiert.
- Umgebungs
funktionen für Dienste, die von
initgestartet werden, speichern alle Aspekte der Dienstkonfiguration in einer einzigen.rcDatei. Wenn Sie Funktionen für Dienste festlegen, die nicht voninitgestartet werden, konfigurieren Sie stattdessen Dateisystemfunktionen 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 von Dateisystemfunktionen. - Unter Android 8.0 wurde die Verarbeitung von USB-Befehlen aus gerätespezifischen
init-Skripts (ein Ersatz für HAL-Ebenen) in einen nativen USB-Daemon verlagert. Die USB-HAL Schnittstelle muss auf jedem Gerät implementiert werden, das unter Android 8.0 und höher gestartet wird.