Moduł PermissionController umożliwia aktualizowalne polityki prywatności i elementy interfejsu użytkownika (na przykład zasady i interfejs użytkownika dotyczące przyznawania i zarządzania uprawnieniami).
Począwszy od Androida 12, ramy i klasy serwerów systemowych dla Role
są przenoszone do modułu, aby Role
była całkowicie modułowa.
Informacje o kontrolerze uprawnień
Pakiet APK com.google.android.permissioncontroller
obsługuje interfejs użytkownika, logikę i role związane z uprawnieniami, aby umożliwić dostęp aplikacjom w określonym celu. Kontroluje następujące elementy:
Nadawanie uprawnień w czasie wykonywania (w tym nadawanie aplikacjom systemowym)
Zarządzanie uprawnieniami w czasie wykonywania (w tym grupowanie uprawnień)
Śledzenie wykorzystania uprawnień w czasie wykonywania
Role
W Androidzie 9 takie uprawnienia były częścią com.google.android.packageinstaller
. W systemie Android 10 aplikacja Package Installer jest podzielona na sekcje, aby umożliwić aktualizację logiki uprawnień. Jako aktualizowalny moduł Mainline, PermissionController:
Współdziała z frameworkiem tylko poprzez stabilne
@SystemApi
(bez użycia@hide
API).Obsługuje intencje związane z uprawnieniami z priorytetem powyżej 0.
Udostępnia mechanizm umożliwiający producentom OEM dostosowywanie motywów.
Zapewnia usługi, z którymi może się powiązać system i aplikacje, w tym zarządzanie rolami, cofanie uprawnień i podstawowe informacje o uprawnieniach (dla Ustawień).
Obsługuje automatyczne wycofywanie nieużywanych aplikacji (nowość w systemie Android 11).
Automatyczne unieważnianie nieużywanych aplikacji
W systemie Android 11 moduł PermissionsController może automatycznie cofać uprawnienia czasu wykonywania dla aplikacji, które nie były używane przez dłuższy czas. Aplikacje kierowane na pakiet SDK 30 lub nowszy mają domyślnie włączone automatyczne unieważnianie, natomiast aplikacje kierowane na pakiet SDK 29 lub niższy mają domyślnie wyłączone automatyczne unieważnianie. Po włączeniu automatyczne odwoływanie wpływa na wszystkie uprawnienia w czasie wykonywania, ale wyklucza wszystkie wstępnie przyznane uprawnienia, w tym uprawnienia ustalone przez zasady i system oraz uprawnienia przyznane domyślnie lub według roli. Aby uzyskać szczegółowe informacje, zobacz Uprawnienia automatycznego resetowania nieużywanych aplikacji .
Format pakietu
Moduł PermissionController jest dostarczany jako plik APK.
Granica modułu
W systemie Android 12 kod modułu Permission jest przeniesiony z packages/apps/PermissionController
(projekt platform/packages/apps/PackageInstaller
) i frameworks/base/apex/permission
(jest to podkatalog projektu frameworks/base
).
Nowa struktura projektu dla packages/modules/Permission
wygląda następująco:
- Pliki z
frameworks/base/apex/permission
- Pliki PermissionController z
packages/apps/PermissionController
Producenci OEM mogą użyć przykładowych poleceń, aby przenieść swoje poprawki z oryginalnych katalogów projektu do nowego katalogu projektu.
Przenieś łatkę z frameworków/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
Przenieś łatkę 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 użytkownika uprawnień (kolory, marginesy, czcionki i elementy do rysowania) przy użyciu nakładek zasobów środowiska uruchomieniowego (RROS) .