Kontroler uprawnień

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