Kontroler uprawnień

Moduł PermissionController Mainline zawiera polityki prywatności oraz interfejs użytkownika związany z nadawaniem i zarządzaniem uprawnieniami (na przykład zasady i interfejs użytkownika dotyczący nadawania 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 w określonym celu. Kontroluje następujące elementy:

  • Udzielanie 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 systemu Android 12, klasy serwerów frameworkowych i systemowych dla Role zostały przeniesione do modułu, dzięki czemu Role jest 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:

  • Interakcja z frameworkiem odbywa się wyłącznie za pośrednictwem stabilnego @SystemApi (bez użycia API @hide).
  • 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żna powiązać system i aplikacje, w tym zarządzanie rolami, cofanie uprawnień i podstawowe informacje o uprawnieniach (w przypadku Ustawień).
  • Obsługuje automatyczne unieważnianie nieużywanych aplikacji (nowość w Androidzie 11).

W systemie Android9 kontrola uprawnień jest częścią com.android.packageinstaller .

Automatyczne unieważnianie nieużywanych aplikacji

W systemie Android 11 moduł PermissionsController może automatycznie odbierać uprawnienia wykonawcze aplikacjom, które nie były używane przez dłuższy czas. W przypadku aplikacji przeznaczonych dla pakietu SDK 30 lub nowszego funkcja automatycznego unieważniania jest domyślnie włączona , natomiast w przypadku aplikacji przeznaczonych dla pakietu SDK 29 lub nowszego funkcja automatycznego unieważniania jest domyślnie wyłączona . Po włączeniu automatyczne unieważnianie wpływa na wszystkie uprawnienia środowiska wykonawczego, ale wyklucza wszystkie wstępnie przyznane uprawnienia, w tym uprawnienia ustalone przez zasady i system oraz uprawnienia przyznane domyślnie lub przez rolę. Aby uzyskać szczegółowe informacje, zobacz Automatyczne resetowanie uprawnień 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 ma format APEX i można go aktualizować. Nazwa pakietu to com.google.android.permission .

  • W systemie Android 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 Permission został przeniesiony z packages/apps/PermissionController (projekt platform/packages/apps/PackageInstaller ) i frameworks/base/apex/permission (jest to podkatalog 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ą skorzystać z przykładowych poleceń, aby pomóc w przenoszeniu poprawek z oryginalnych katalogów projektu do nowego katalogu projektu.

Przenieś łatkę z 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

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ą dostosować motyw interfejsu użytkownika (kolory, marginesy, czcionki i elementy rysunkowe) przy użyciu nakładek zasobów środowiska wykonawczego (RROS) .