Das Mainline-Modul „PermissionController“ enthält die Datenschutzerklärung und die Benutzeroberfläche für die Erteilung und Verwaltung von Berechtigungen (z. B. die Richtlinien und die Benutzeroberfläche für die Erteilung und Verwaltung von Berechtigungen).
PermissionController
Das Modul „PermissionController“ verarbeitet berechtigungsbezogene Benutzeroberflächen, Logik und Rollen, um Apps Zugriff für einen bestimmten Zweck zu gewähren. Sie 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.
Unter Android 10 ist die App „Paketmanager“ 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.
- Bietet OEMs einen Mechanismus zum Anpassen der Themen.
- Stellt Dienste bereit, an die sich das System und die Anwendungen binden können, einschließlich Rollenverwaltung, Widerruf von Berechtigungen und grundlegende Berechtigungsinformationen (für Einstellungen).
- Unterstützt die automatische Aufhebung nicht verwendeter Apps (neu in Android) 11).
Unter Android 9 ist die Berechtigungssteuerung Teil von com.android.packageinstaller
.
Automatische Aufhebung der Sperrung für nicht verwendete Apps
In Android 11 kann das PermissionsController-Modul Laufzeitberechtigungen für Apps, die seit einer bestimmten Anzahl von Tagen nicht verwendet wurden, automatisch widerrufen. ü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 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. Weitere Informationen finden Sie unter Berechtigungen von nicht verwendeten Apps automatisch zurücksetzen.
Paketformat
Das Format des PermissionController-Moduls unterscheidet sich zwischen den Releases.
Ab Android 11 befindet sich das PermissionController-Modul APEX-Format und aktualisierbar ist. Der Paketname lautet
com.google.android.permission
.Unter 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 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 verwenden, um ihre Patches aus den ursprünglichen Projektverzeichnissen in das neue Projektverzeichnis zu verschieben.
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 von „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).