PermissionController

El módulo de línea principal de PermissionController contiene políticas de privacidad y las IU relacionada con la concesión y administración de permisos (por ejemplo, las políticas y IU para otorgar y administrar permisos).

Información acerca de PermissionController

El módulo PermissionController controla la IU, la lógica y los roles relacionados con los permisos para permitir el acceso de las apps con fines específicos. Controla lo siguiente:

  • Otorgamiento de permisos de tiempo de ejecución (incluido el otorgamiento a apps del sistema)
  • Administración de permisos de tiempo de ejecución (incluida la agrupación de permisos)
  • Seguimiento del uso de permisos de tiempo de ejecución
  • Funciones

A partir de Android 12, el framework y el servidor del sistema clases para Role se trasladaron al módulo para que Role sea completamente modular.

En Android 10, la app de instalador de paquetes se divide en secciones para permitir que se actualice la lógica de permisos. Como módulo de línea principal actualizable, PermissionController:

  • Interactúa con el framework solo a través de una @SystemApi estable (sin uso de la API de @hide).
  • Controla intents relacionados con permisos con prioridad > 0.
  • Expone un mecanismo para permitir que los OEMs personalicen los temas.
  • Proporciona servicios a los que se pueden vincular el sistema y las aplicaciones, lo que incluye la administración de roles, la revocación de permisos y la información básica sobre los permisos (para Configuración).
  • Admite la revocación automática de apps sin usar (nueva en Android) 11).

En Android9, el control de permisos forma parte de com.android.packageinstaller

Revocación automática de apps sin usar

En Android 11, el módulo PermissionsController puede revocar automáticamente los permisos de tiempo de ejecución de las aplicaciones que no se han utilizado durante un un período extendido. Las apps que se orientan al SDK 30 o versiones posteriores tienen revocación automática habilitada de forma predeterminada, mientras que las apps que se orientan al SDK 29 o versiones anteriores tienen una revocación automática. inhabilitados de forma predeterminada. Cuando está habilitada, la revocación automática afecta a todos los tiempos de ejecución permisos, pero exime a todos los permisos otorgados previamente, incluidos los de política y permisos corregidos por el sistema y permisos otorgados de forma predeterminada o por rol. Para consulta Permisos de restablecimiento automático apps.

Formato del paquete

El formato del módulo PermissionController difiere entre las versiones.

  • En Android 11 o versiones posteriores, el módulo PermissionController está en Formato APEX y se puede actualizar. El nombre del paquete es com.google.android.permission.

  • En Android 10, el módulo PermissionController está en formato APK y no está actualizables. El nombre del paquete es com.google.android.permissioncontroller.

Límite del módulo

En Android 12, el permiso el código del módulo se transfirió de packages/apps/PermissionController (el proyecto platform/packages/apps/PackageInstaller) y frameworks/base/apex/permission (este es un subdirectorio de frameworks/base).

La nueva estructura de proyecto para packages/modules/Permission es la siguiente:

  • Archivos de frameworks/base/apex/permission
  • Archivos PermissionController de packages/apps/PermissionController

Los OEM pueden usar los comandos de muestra para transferir sus parches. de los directorios del proyecto original al directorio del proyecto nuevo.

Traslado de un parche desde 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

Cómo mover un parche desde packages/apps/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

Personalización

Los OEM pueden personalizar el tema de la IU de permisos (colores, márgenes, fuentes y de elementos de diseño) con superposiciones de recursos del tiempo de ejecución (RROS).