PermissionController

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).