Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Controlador de permisos

El módulo PermissionController habilita políticas de privacidad y elementos de la interfaz de usuario actualizables (por ejemplo, las políticas y la interfaz de usuario en torno a la concesión y administración de permisos).

A partir de Android 12, las clases de servidores del marco y del sistema para el Role se trasladan al módulo para que el Role sea ​​completamente modular.

Acerca de PermissionController

El APK com.google.android.permissioncontroller maneja la interfaz de usuario, la lógica y las funciones relacionadas con los permisos para permitir el acceso de las aplicaciones para fines específicos. Controla lo siguiente:

  • Otorgamiento de permisos de tiempo de ejecución (incluido el otorgamiento a aplicaciones del sistema)

  • Gestión de permisos de tiempo de ejecución (incluida la agrupación de permisos)

  • Seguimiento del uso de permisos de tiempo de ejecución

  • roles

En Android 9, dichos permisos formaban parte de com.google.android.packageinstaller . En Android 10, la aplicación Package Installer se divide en secciones para permitir que se actualice la lógica de permisos. Como módulo Mainline actualizable, PermissionController:

  • Interactúa con el marco solo a través @SystemApi estable (sin uso de API @hide ).

  • Maneja las intenciones relacionadas con permisos con una prioridad superior a 0.

  • Expone un mecanismo para permitir que los OEM personalicen temas.

  • Proporciona servicios a los que se pueden vincular el sistema y las aplicaciones, incluida la gestión de roles, la revocación de permisos y la información básica de permisos (para Configuración).

  • Admite la revocación automática de aplicaciones no utilizadas (nuevo en Android 11).

Revocación automática para aplicaciones no utilizadas

En Android 11, el módulo PermissionsController puede revocar automáticamente los permisos de tiempo de ejecución para las aplicaciones que no se han utilizado durante un período prolongado. Las aplicaciones que tienen como objetivo el SDK 30 o superior tienen la revocación automática habilitada de forma predeterminada, mientras que las aplicaciones que tienen como objetivo el SDK 29 o inferior tienen la revocación automática desactivada de forma predeterminada. Cuando está habilitada, la revocación automática afecta a todos los permisos de tiempo de ejecución, pero excluye todos los permisos otorgados previamente, incluidos los permisos fijados por políticas y sistemas y los permisos otorgados de forma predeterminada o por rol. Para obtener más información, consulte Permisos de restablecimiento automático de aplicaciones no utilizadas .

formato de paquete

El módulo PermissionController se entrega como un archivo APK.

Límite del módulo

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

La nueva estructura del 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 ayudar a mover sus parches desde los directorios del proyecto original al nuevo directorio del proyecto.

Mover 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

Mover un parche desde paquetes/aplicaciones/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 interfaz de usuario de permisos (colores, márgenes, fuentes y elementos de diseño) utilizando superposiciones de recursos de tiempo de ejecución (RROS) .