Kontroler uprawnień

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