Kontroler uprawnień

Moduł Mainline w module PermissionController zawiera polityki prywatności i interfejs użytkownika związane z przyznawaniem uprawnień i zarządzaniem nimi (np. polityki i interfejs użytkownika do przyznawania uprawnień i zarządzania nimi).

Informacje o elemencie PermissionController

Moduł PermissionController obsługuje interfejs użytkownika, logikę i role związane z uprawnieniami, aby zezwolić aplikacjom na dostęp do określonych zadań. Ustawienia te kontrolują:

  • przyznawanie uprawnień w czasie działania aplikacji (w tym przyznawanie uprawnień aplikacjom systemowym);
  • zarządzanie uprawnieniami w czasie działania aplikacji (w tym grupowanie uprawnień);
  • Śledzenie wykorzystania uprawnień w czasie działania aplikacji
  • Role

Od Androida 12 platforma i klasy serwera systemu dla Role są przenoszone do modułu, dzięki czemu Role jest całkowicie modułowy.

W Androidzie 10 aplikacja Instalator pakietów jest podzielona na sekcje, aby umożliwić aktualizację logiki uprawnień. Jako moduł magistrali, który można aktualizować, kontroler uprawnień:

  • Interakcja z ramówką tylko za pomocą stabilnego interfejsu @SystemApi (bez użycia interfejsu @hide API).
  • Obsługuje intencje związane z uprawnieniami z priorytetem > 0.
  • Udostępnia mechanizm umożliwiający producentom urządzeń dostosowania motywów.
  • Zapewnia usługi, z których mogą korzystać system i aplikacje, w tym zarządzanie rolami, odwoływanie uprawnień i podstawowe informacje o uprawnieniach (w ustawieniach).
  • Obsługuje automatyczne odbieranie uprawnień nieużywanym aplikacjom (nowość w Androidzie 11).

W Androidzie9 kontrola uprawnień jest elementem com.android.packageinstaller.

Automatyczne odbieranie uprawnień nieużywanym aplikacjom

W Androidzie 11 moduł PermissionsController może automatycznie anulować uprawnienia czasu działania aplikacji, które nie były używane przez dłuższy czas. Aplikacje kierowane na pakiet SDK 30 lub nowszy mają automatyczne odwoływanie włączone domyślnie, a aplikacje kierowane na pakiet SDK 29 lub starszy mają automatyczne odwoływanie wyłączone domyślnie. Gdy ta opcja jest włączona, automatyczne odwoływanie dotyczy wszystkich uprawnień w czasie wykonywania, ale nie dotyczy uprawnień przyznanych wcześniej, w tym uprawnień ustalonych przez zasady lub system oraz uprawnień przyznanych domyślnie lub na podstawie roli. Więcej informacji znajdziesz w artykule Automatyczne resetowanie uprawnień nieużywanych aplikacji.

Format pakietu

Format modułu PermissionController różni się w zależności od wersji.

  • Na Androidzie 11 lub nowszym moduł PermissionController jest w formacie APEX i można go aktualizować. Nazwa pakietu to com.google.android.permission.

  • W Androidzie 10 moduł PermissionController ma format APK i nie można go aktualizować. Nazwa pakietu to com.google.android.permissioncontroller.

Granica modułu

W Androidzie 12 kod modułu uprawnień został przeniesiony z packages/apps/PermissionController (projekt platform/packages/apps/PackageInstaller) i frameworks/base/apex/permission (podkatalog projektu frameworks/base).

Nowa struktura projektu packages/modules/Permission wygląda tak:

  • Pliki z: frameworks/base/apex/permission
  • Pliki PermissionController z urządzenia packages/apps/PermissionController

Producenci OEM mogą używać przykładowych poleceń, aby przenieść swoje poprawki z katalogów pierwotnych projektów do katalogu nowego projektu.

Przenoszenie poprawki z katalogów 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

Przenoszenie poprawki z package/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

Dostosowywanie

Producenci urządzeń mogą dostosowywać motyw interfejsu uprawnień (kolory, marginesy, czcionki i zasoby rysunków) za pomocą nakładek zasobów środowiska wykonawczego (RROS).