PermissionController

Moduł Mainline w module PermissionController zawiera zasady prywatności i interfejs użytkownika (UI) związane z przyznawaniem uprawnień i zarządzaniem nimi (np. zasady 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ń. Dotyczy ona tych elementów:

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

Od Androida 12 klasy frameworku i serwera systemu Role są przenoszone do modułu, aby Role stało się w pełni modułowe.

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 ramką 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 Androidzie 9 kontrola uprawnień jest częścią com.android.packageinstaller.

Automatyczne odbieranie uprawnień nieużywanym aplikacjom

W Androidzie 11 moduł PermissionsController może automatycznie cofać uprawnienia czasu działania aplikacji, których nie używano od dłuższego czasu. Aplikacje kierowane na pakiet SDK 30 lub nowszy mają domyślnie włączoną opcję automatycznego odwoływania, a aplikacje kierowane na pakiet SDK 29 lub starszy mają domyślnie wyłączoną opcję automatycznego odwoływania. 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 jest w formacie 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:

  • 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 packages/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 OEM mogą dostosowywać motyw interfejsu uprawnień (kolory, marginesy, czcionki i zasobów do rysowania) za pomocą nakładek zasobów środowiska wykonawczego (RROS).