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
.