Android-Berechtigungen

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.

Trennung der Funktionen für die Paketinstallation und die Berechtigungssteuerung für System-Apps und für von Nutzern installierte Apps

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

Optimierte Konfigurationen

Die Berechtigungskonfigurationen wurden für Android 6.0 und höher optimiert.

  • Umgebungs funktionen für Dienste, die von init gestartet werden, speichern alle Aspekte der Dienstkonfiguration in einer einzigen .rc Datei. Wenn Sie Funktionen für Dienste festlegen, die nicht von init gestartet werden, konfigurieren Sie stattdessen Dateisystemfunktionen mit fs_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.