Lista de entidades permitidas de UID compartidos firmados por la plataforma

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}