Das PermissionController Mainline-Modul enthält Datenschutzrichtlinien und die Benutzeroberfläche für das Gewähren und Verwalten von Berechtigungen (z. B. die Richtlinien und die Benutzeroberfläche für das Gewähren und Verwalten von Berechtigungen).
Über PermissionController
Das PermissionController-Modul verarbeitet die berechtigungsbezogene Benutzeroberfläche, Logik und Rollen, um den Zugriff für Apps für bestimmte Zwecke zu ermöglichen. Es steuert Folgendes:
- Erteilung von Laufzeitberechtigungen (einschließlich Erteilung von System-Apps)
- Laufzeit-Berechtigungsverwaltung (einschließlich Gruppierung von Berechtigungen)
- Nachverfolgung der Laufzeitberechtigungsnutzung
- Rollen
Ab Android 12 werden die Framework- und Systemserverklassen für Role
in das Modul verschoben, um Role
vollständig modular zu gestalten.
In Android 10 ist die Package Installer-App in Abschnitte unterteilt, damit die Berechtigungslogik aktualisiert werden kann. Als aktualisierbares Mainline-Modul, PermissionController:
- Interagiert mit dem Framework nur über die stabile @SystemApi (keine Verwendung der @hide-API).
- Behandelt berechtigungsbezogene Absichten mit Priorität > 0.
- Stellt einen Mechanismus bereit, mit dem OEMs die Gestaltung anpassen können.
- Stellt Dienste bereit, an die sich das System und Anwendungen binden können, einschließlich Rollenverwaltung, Widerruf von Berechtigungen und grundlegende Informationen zu Berechtigungen (für Einstellungen).
- Unterstützt automatisches Widerrufen für ungenutzte Apps (neu in Android 11).
In Android9 ist die Berechtigungssteuerung Teil von com.android.packageinstaller
.
Automatisches Widerrufen für ungenutzte Apps
In Android 11 kann das PermissionsController-Modul automatisch Laufzeitberechtigungen für Apps widerrufen, die über einen längeren Zeitraum nicht verwendet wurden. Bei Apps, die auf SDK 30 oder höher abzielen, ist das automatische Widerrufen standardmäßig aktiviert, während bei Apps, die auf SDK 29 oder niedriger abzielen, das automatische Widerrufen standardmäßig deaktiviert ist. Wenn diese Option aktiviert ist, wirkt sich das automatische Widerrufen auf alle Laufzeitberechtigungen aus, schließt jedoch alle vorab gewährten Berechtigungen aus, einschließlich richtlinien- und systemfixierter Berechtigungen und Berechtigungen, die standardmäßig oder durch Rolle gewährt werden. Einzelheiten finden Sie unter Automatisches Zurücksetzen von Berechtigungen von nicht verwendeten Apps .
Paketformat
Das Format des PermissionController-Moduls unterscheidet sich zwischen den Releases.
In Android 11 oder höher ist das PermissionController-Modul im APEX -Format und aktualisierbar. Der Paketname lautet
com.google.android.permission
.In Android 10 ist das PermissionController-Modul im APK-Format und kann nicht aktualisiert werden. Der Paketname lautet
com.google.android.permissioncontroller
.
Modulgrenze
In Android 12 wird der Code des Berechtigungsmoduls von packages/apps/PermissionController
(das platform/packages/apps/PackageInstaller
Projekt) und frameworks/base/apex/permission
(dies ist ein Unterverzeichnis des frameworks/base
-Projekts) verschoben.
Die neue Projektstruktur für packages/modules/Permission
wie folgt aus:
- Dateien von
frameworks/base/apex/permission
- PermissionController-Dateien aus
packages/apps/PermissionController
OEMs können die Beispielbefehle verwenden, um ihre Patches aus den ursprünglichen Projektverzeichnissen in das neue Projektverzeichnis zu verschieben.
Verschieben Sie einen Patch von frameworks/base/apex/permission
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
Verschieben Sie einen Patch aus Paketen/Apps/PermissionController
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
Anpassung
OEMs können das Berechtigungs-UI-Design (Farben, Ränder, Schriftarten und Drawables) mithilfe von Runtime Resource Overlays (RROS) anpassen .