Moduł główny PermissionController zawiera zasady ochrony prywatności i interfejs użytkownika związany z przyznawaniem uprawnień i zarządzaniem nimi (np. zasady i interfejs użytkownika dotyczące przyznawania uprawnień i zarządzania nimi).
Informacje o PermissionController
Moduł PermissionController obsługuje interfejs, logikę i role związane z uprawnieniami, aby umożliwić aplikacjom dostęp do określonych celów. Kontroluje ona te elementy:
- 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 klasy platformy i serwera systemowego Role
są przenoszone do modułu, aby Role było w pełni modułowe.
W Androidzie 10 aplikacja Instalator pakietów jest podzielona na sekcje, aby można było aktualizować logikę uprawnień. Jako moduł magistrali, który można aktualizować, PermissionController:
- Współpracuje z platformą tylko za pomocą stabilnego interfejsu @SystemApi (bez używania interfejsu API @hide).
- Obsługuje intencje związane z uprawnieniami o priorytecie > 0.
- Udostępnia mechanizm umożliwiający producentom OEM dostosowywanie motywów.
- Świadczy usługi, z którymi system i aplikacje mogą się łączyć, w tym zarządzanie rolami, odwoływanie uprawnień i podstawowe informacje o uprawnieniach (na potrzeby Ustawień).
- Obsługuje automatyczne cofanie uprawnień nieużywanych aplikacji (nowość w Androidzie 11).
W Androidzie 9 kontrola uprawnień jest częścią com.android.packageinstaller.
Automatyczne usuwanie uprawnień nieużywanych aplikacji
W Androidzie 11 moduł PermissionsController może automatycznie cofać uprawnienia przyznane w czasie działania aplikacji, które nie były używane przez dłuższy czas. W przypadku aplikacji kierowanych na pakiet SDK 30 lub nowszy automatyczne cofanie uprawnień jest domyślnie włączone, a w przypadku aplikacji kierowanych na pakiet SDK 29 lub starszy jest domyślnie wyłączone. Gdy ta funkcja jest włączona, automatyczne cofanie uprawnień dotyczy wszystkich uprawnień środowiska wykonawczego, ale nie obejmuje uprawnień przyznanych wcześniej, w tym uprawnień ustalonych przez zasady i system oraz uprawnień przyznanych domyślnie lub przez rolę. 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.
W 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 Permission został przeniesiony z packages/apps/PermissionController (projekt platform/packages/apps/PackageInstaller) i frameworks/base/apex/permission (podkatalog projektu frameworks/base).
Nowa struktura projektu dla packages/modules/Permission jest taka:
- Pliki z:
frameworks/base/apex/permission - Pliki PermissionController z urządzenia
packages/apps/PermissionController
Producenci OEM mogą używać przykładowych poleceń, aby przenieść poprawki z pierwotnych katalogów projektów do nowego katalogu projektu.
Przenoszenie poprawki z katalogu 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 pakietów/aplikacji/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 elementy rysunkowe) za pomocą nakładek zasobów środowiska wykonawczego.