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).