Das Modul „PermissionController Mainline“ enthält Datenschutzrichtlinien und die Benutzeroberfläche für die Gewährung und Verwaltung von Berechtigungen (z. B. die Richtlinien und die Benutzeroberfläche für die Gewährung und Verwaltung von Berechtigungen).
Über PermissionController
Das PermissionController-Modul verarbeitet berechtigungsbezogene Benutzeroberflächen, Logik und Rollen, um Apps für bestimmte Zwecke Zugriff zu gewähren. Es steuert Folgendes:
- Gewährung von Laufzeitberechtigungen (einschließlich Gewährung für System-Apps)
- Laufzeit-Berechtigungsverwaltung (einschließlich Gruppierung von Berechtigungen)
- Verfolgung 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, um die Aktualisierung der Berechtigungslogik zu ermöglichen. Als aktualisierbares Mainline-Modul bietet PermissionController Folgendes:
- Interagiert mit dem Framework nur über stabile @SystemApi (keine Verwendung der @hide-API).
- Behandelt berechtigungsbezogene Absichten mit einer Priorität > 0.
- Stellt einen Mechanismus bereit, mit dem OEMs das Theme anpassen können.
- Stellt Dienste bereit, an die sich das System und Anwendungen binden können, einschließlich Rollenverwaltung, Berechtigungswiderruf und grundlegende Berechtigungsinformationen (für Einstellungen).
- Unterstützt den automatischen Widerruf für nicht verwendete Apps (neu in Android 11).
In Android9 ist die Berechtigungskontrolle Teil von com.android.packageinstaller
.
Automatischer Widerruf 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 der automatische Widerruf standardmäßig aktiviert , während bei Apps, die auf SDK 29 oder niedriger abzielen, der automatische Widerruf standardmäßig deaktiviert ist. Wenn die Funktion „Auto-Revoke“ aktiviert ist, wirkt sie sich auf alle Laufzeitberechtigungen aus, schließt jedoch alle vorab erteilten Berechtigungen aus, einschließlich richtlinien- und systemfester Berechtigungen und standardmäßig oder rollenweise gewährter Berechtigungen. Einzelheiten finden Sie unter Berechtigungen zum automatischen Zurücksetzen nicht verwendeter Apps .
Paketformat
Das Format des PermissionController-Moduls unterscheidet sich zwischen den Versionen.
In Android 11 oder höher liegt das PermissionController-Modul im APEX- Format vor und ist aktualisierbar. Der Paketname lautet
com.google.android.permission
.In Android 10 liegt das PermissionController-Modul im APK-Format vor und ist nicht aktualisierbar. Der Paketname lautet
com.google.android.permissioncontroller
.
Modulgrenze
In Android 12 wird der Permission-Modulcode aus packages/apps/PermissionController
(dem Projekt platform/packages/apps/PackageInstaller
) und frameworks/base/apex/permission
(dies ist ein Unterverzeichnis des Projekts frameworks/base
“) verschoben.
Die neue Projektstruktur für packages/modules/Permission
lautet wie folgt:
- Dateien aus
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 aus „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 packets/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 Zeichenelemente) mithilfe von Runtime Resource Overlays (RROS) anpassen.