PermissionController

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

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 .