Das PermissionController-Mainline-Modul enthält Datenschutzerklärungen und die Benutzeroberfläche zum Gewähren und Verwalten von Berechtigungen, z. B. Richtlinien und Benutzeroberfläche zum Gewähren und Verwalten von Berechtigungen).
Über PermissionController
Das PermissionController-Modul verarbeitet berechtigungsbezogene UI, Logik und Rollen um Apps für einen bestimmten Zweck Zugriff zu gewähren. Er steuert Folgendes:
- Gewährung von Laufzeitberechtigungen (einschließlich des Gewährens von System-Apps)
- Verwaltung von Laufzeitberechtigungen (einschließlich der Gruppierung von Berechtigungen)
- Nutzungs-Tracking der Laufzeitberechtigungen
- Rollen
Ab Android 12 werden das Framework und der Systemserver
Kurse für Role
werden in das Modul verschoben, damit Role
vollständig modular wird.
In Android 10: Paketinstallations-App ist in Abschnitte unterteilt, damit die Berechtigungslogik aktualisiert werden kann. Als aktualisierbares Mainline-Modul, PermissionController:
- Interagiert nur über eine stabile @SystemApi mit dem Framework (keine @hide-API-Nutzung).
- Verarbeitet berechtigungsbezogene Intents mit Priorität > 0.
- Stellt einen Mechanismus bereit, mit dem OEMs das Thema anpassen können.
- Stellt Dienste bereit, an die sich das System und die Anwendungen binden können, einschließlich Rollenverwaltung, Widerrufen von Berechtigungen und grundlegende Berechtigungsinformationen (für Einstellungen).
- Unterstützt die automatische Aufhebung nicht verwendeter Apps (neu in Android) 11).
In Android9 ist die Berechtigungssteuerung
com.android.packageinstaller
Automatische Aufhebung der Sperrung für nicht verwendete Apps
In Android 11 kann das PermissionsController-Modul Automatisch Laufzeitberechtigungen für Apps widerrufen, die für einen Zeitraum von über einen längeren Zeitraum verfügbar sind. Apps, die auf SDK 30 oder höher ausgerichtet sind, werden automatisch widerrufen aktiviert, bei Apps, die auf SDK 29 oder niedriger ausgerichtet sind, hingegen ist standardmäßig deaktiviert. Wenn diese Option aktiviert ist, wirkt sich der automatische Widerruf auf die gesamte Laufzeit aus Berechtigungen gewährt, schließt aber alle vorab gewährten Berechtigungen aus, einschließlich Richtlinien- und systemdefinierte Berechtigungen und Berechtigungen, die standardmäßig oder pro Rolle gewährt werden. Für Weitere Informationen zum automatischen Zurücksetzen von Berechtigungen Apps.
Paketformat
Das Format des PermissionController-Moduls unterscheidet sich je nach Veröffentlichung.
Ab Android 11 befindet sich das PermissionController-Modul APEX-Format und aktualisierbar ist. Der Paketname lautet
com.google.android.permission
.In Android 10 liegt das PermissionController-Modul im APK-Format vor und ist aktualisierbar sind. Der Paketname lautet
com.google.android.permissioncontroller
.
Modulgrenze
In Android 12 ist die Berechtigung
Modulcode wurde aus packages/apps/PermissionController
verschoben
(das Projekt platform/packages/apps/PackageInstaller
) und
frameworks/base/apex/permission
(dies ist ein Unterverzeichnis von
Projekt frameworks/base
).
Die neue Projektstruktur für packages/modules/Permission
sieht so aus:
- Dateien aus „
frameworks/base/apex/permission
“ - PermissionController-Dateien von
packages/apps/PermissionController
OEMs können die Beispielbefehle nutzen, um ihre Patches zu verschieben. aus den ursprünglichen Projektverzeichnissen in das neue Projektverzeichnis.
Patch aus Frameworks/base/apex/permission verschieben
root/frameworks/base/$ git format-patch -1 --relative=apex/permission commit --stdout > patch-file.txt
root/packages/modules/Permission$ git am -p2 patch-file.txt
Patch aus „packages/apps/PermissionController“ verschieben
root/packages/apps/PermissionController$ git format-patch -1 commit --stdout > patch-file.txt
root/packages/modules/Permission$ git am -p2 --directory=PermissionController patch-file.txt
Personalisierung
OEMs können das UI-Design für Berechtigungen (Farben, Ränder, Schriftarten und Drawables) mithilfe von Laufzeitressourcen-Overlays (RROS).