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 kontrolerze uprawnień

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

  • Przyznawanie uprawnień czasu działania (w tym przyznawanie aplikacji systemowych)
  • Zarządzanie uprawnieniami środowiska wykonawczego (w tym grupowanie uprawnień)
  • Śledzenie wykorzystania uprawnień w czasie działania
  • Role

Począwszy od Androida 12 platforma i serwer systemu zajęcia na zajęciach Role są przenoszone do modułu, dzięki czemu moduł Role jest całkowicie modułowy.

W Androidzie 10 aplikacja Instalator pakietów jest podzielona na sekcje, aby umożliwić aktualizację logiki uprawnień. Jako możliwy do aktualizacji moduł Mainline, PermissionController:

  • Interakcja z platformą tylko przez stabilną metodę @SystemApi (bez użycia interfejsu API @hide).
  • Obsługuje intencje związane z uprawnieniami z priorytetem > 0.
  • Udostępnia mechanizm umożliwiający producentom urządzeń dostosowania motywów.
  • Udostępnia usługi, z którymi można powiązać system i aplikacje, w tym zarządzanie rolami, odbieranie uprawnień i podstawowe informacje o uprawnieniach (na Ustawienia).
  • Obsługuje automatyczne odnawianie nieużywanych aplikacji (nowość w Androidzie) 11).

W Androidzie9 kontrola uprawnień jest częścią com.android.packageinstaller

Automatycznie anuluj w przypadku nieużywanych aplikacji

W Androidzie 11 moduł PermissionsController może automatycznie unieważniaj uprawnienia czasu działania w przypadku aplikacji, które nie były używane przez 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 które można zmienić. 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 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

OEM może dostosować motyw interfejsu uprawnień (kolory, marginesy, czcionki obiektów rysowalnych) za pomocą nakładek zasobów środowiska wykonawczego (RROS).