Moduł PermissionController Mainline zawiera polityki prywatności i interfejs użytkownika związane z przyznawaniem i zarządzaniem uprawnieniami (na przykład zasady i interfejs użytkownika do udzielania i zarządzania uprawnieniami).
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ślonego celu. Kontroluje następujące elementy:
- Przyznawanie uprawnień wykonawczych (w tym przyznawanie aplikacjom systemowym)
- Zarządzanie uprawnieniami w czasie wykonywania (w tym grupowanie uprawnień)
- Śledzenie wykorzystania uprawnień w czasie wykonywania
- Role
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.
W systemie Android 10 aplikacja Instalator pakietów jest podzielona na sekcje, aby umożliwić aktualizację logiki uprawnień. Jako aktualizowalny moduł Mainline, PermissionController:
- Współdziała z frameworkiem tylko przez stabilne @SystemApi (bez użycia @hide API).
- Obsługuje intencje związane z uprawnieniami z priorytetem > 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).
W Android9 kontrola uprawnień jest częścią com.android.packageinstaller
.
Automatyczne unieważnianie nieużywanych aplikacji
W systemie Android 11 moduł PermissionsController może automatycznie odwoływać uprawnienia środowiska uruchomieniowego 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
Format modułu PermissionController różni się w zależności od wersji.
W systemie Android 11 lub nowszym moduł PermissionController jest w formacie APEX i można go aktualizować. Nazwa pakietu to
com.google.android.permission
.W systemie Android 10 moduł PermissionController jest w formacie APK i nie można go aktualizować. Nazwa pakietu to
com.google.android.permissioncontroller
.
Granica modułu
W systemie Android 12 kod modułu Permission jest przenoszony 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) .