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 dotyczące 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 umożliwić dostęp aplikacjom do określonych celów. 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 aplikacji (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 przez dłuższy czas. Aplikacje kierowane na pakiet SDK 30 lub nowszy mają domyślnie włączoną automatyczną rezygnację, a aplikacje kierowane na pakiet SDK 29 lub starszy mają domyślnie wyłączoną automatyczną rezygnację. 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 w projekcie 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 pierwotnych katalogów projektu do nowego katalogu 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 katalogu 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 rysunki) za pomocą nakładek zasobów środowiska wykonawczego (RROS).