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 UIDs compartidos firmados por la plataforma son UIDs compartidos (android:sharedUserId
) que
contienen apps firmadas por la plataforma. Las compilaciones depurables son aquellas cuyo
android.os.Build.isDebuggable()
muestra true
, como userdebug
o eng
.
compilaciones.
Históricamente, los fabricantes de dispositivos tenían poco control sobre qué plataformas firmaban
las apps que no son del sistema podrían unirse
a un UID compartido y firmado por la plataforma. Primeros pasos en Android
15, los fabricantes pueden permitir explícitamente
que las apps que no son del sistema se unan a los UID compartidos firmados por la plataforma en la configuración del sistema
Archivos en formato XML del directorio /etc/permissions
Si una plataforma no autorizada
La app no se agrega a la lista de entidades permitidas de un UID compartido firmado por la plataforma.
todavía intenta unirse al UID compartido firmado por la plataforma (con android:sharedUserId
en su manifiesto), no se podrá instalar en compilaciones no depurables.
Agregar una lista de entidades permitidas
Puedes enumerar las listas de apps permitidas en un solo archivo en formato XML o en varios archivos en formato XML.
similares a
frameworks/base/data/etc/package-shareduid-allowlist.xml
:
<!--
This XML defines an allowlist for packages that want to join a particular shared-uid.
If a non-system package that is signed with platform signature, is trying to join a particular
shared-uid, and not in this list, the installation will fail.
- The "package" XML attribute refers to the app's package name.
- The "shareduid" XML attribute refers to the shared uid name.
-->
<config>
<allow-package-shareduid package="android.test.settings" shareduid="android.uid.system" />
</config>
Encontrar la lista de entidades permitidas faltante
Para encontrar una entrada faltante de la lista de entidades permitidas, intenta instalar un dispositivo que no sea del sistema y firmado por la plataforma app en una compilación no depurable y comprueba si aún se puede instalar. Si no es así, puede inspeccionar los registros del dispositivo en busca del siguiente formato de mensajes de advertencia:
Non-preload app {PACKAGE_NAME} signed with platform signature and joining shared uid: {SHARED_UID_NAME}