Lista de permisos de firma permitidos

Las apps firmadas por la plataforma son apps que comparten la misma firma (o son compatibles) con el paquete de plataforma (android). Una app firmada por la plataforma Una app del sistema (ubicada en una partición de imagen del sistema) o una app que no es del sistema Los permisos de firma de la plataforma son permisos definidos por el paquete de la plataforma que también tienen el nivel de protección signature. Las compilaciones depurables son compilaciones cuyo android.os.Build.isDebuggable() devuelve true, como userdebug o eng.

Históricamente, los fabricantes de dispositivos tenían poco control sobre qué plataforma Se pudieron otorgar permisos signature a apps firmadas por la plataforma que no son del sistema. A partir de Android 15, los fabricantes pueden otorgar permisos de firma de plataforma en los archivos XML de configuración del sistema en el directorio /etc/permissions. Si una app que no es del sistema y firmada por una plataforma no está se agregó a la lista de entidades permitidas de un permiso de firma de la plataforma, ese permiso como si la app no estuviera firmada por una plataforma en compilaciones no depurables.

Agregar una lista de entidades permitidas

Puedes enumerar las listas de entidades permitidas para las apps en un solo archivo en formato XML Archivos en formato XML ubicados en el directorio frameworks/base/etc/permissions:

  • /etc/permissions/signature-permissions-OEM_NAME.xml
  • /etc/permissions/signature-permissions-DEVICE_NAME.xml

No se aplica ninguna regla estricta a la organización del contenido. Los implementadores de dispositivos determinar la estructura del contenido, siempre y cuando las apps y sus permisos se agregan a la lista de entidades permitidas.

Cómo personalizar una lista de entidades permitidas

AOSP incluye una implementación de lista de entidades permitidas que puedes personalizar según sea necesario, similar al lista de entidades permitidas de permisos con privilegios. Por ejemplo:

<!--
  ~ This XML file declares which platform signature permissions to grant to
  ~ platform signed nonsystem apps.
  -->

<permissions>
    <signature-permissions package="com.android.example">
        <permission name="android.permission.READ_DEVICE_CONFIG"/>
        ...
    </signature-permissions>
    ...
</permissions>

Cómo buscar los permisos que faltan

Para encontrar los permisos faltantes, instala tu app firmada por la plataforma y, luego, inspecciona el dispositivo registros para el siguiente formato de mensajes de advertencia:

Signature permission {PERMISSION_NAME} for package {PACKAGE_NAME} ({PACKAGE_PATH}) not in signature permission allowlist

El sistema aún puede otorgar el permiso en compilaciones depurables, pero no en y no depurables, como user.