El GMS Core tiene un montón de capacidades y no parece funcionar como una aplicación típica (como una aplicación que vive en la capa de 'Aplicaciones' que se muestra a continuación). Supondría que tendría más privilegios y podría vivir potencialmente en la capa del Marco de Android o en el mismo lugar que se mencionan las 'Bibliotecas Básicas'. Sin embargo, noté que se adjuntó un UID u0_a12
(no root
o system
) al proceso com.google.android.gms
, lo que indica que es una aplicación propiedad del usuario. ¿Alguien puede explicar esto un poco más?
Respuesta
¿Demasiados anuncios?Android reserva el rango de UID 10000 a 19999 para aplicaciones, ya sean de usuario, sistema o framework. u0_a12
no indica una aplicación de usuario propia, simplemente significa UID 10012
que puede ser asignado a cualquier aplicación. En Android, cada aplicación tiene asignado un UID único distinto de cero. Ninguna aplicación puede ejecutarse con privilegios de root, incluidas las aplicaciones del sistema.
El UID 0 (root) es el usuario privilegiado en el Control de Acceso Discrecional (DAC), pero hay que tener en cuenta que incluso un proceso con UID 0 puede no ser privilegiado o uno con UID distinto de cero puede ser privilegiado. Consulte las capacidades de Linux, especialmente las Capacidades Ambientales.
Sin embargo, el marco de Java de Android no depende directamente del DAC, sino que tiene su propio mecanismo de control de privilegios a través de permisos como Almacenamiento, Cámara, Internet, etc. Los permisos del Manifiesto tienen niveles de protección diferentes. Algunos se conceden sin preguntar al usuario, otros requieren la aprobación o denegación del usuario y otros están reservados solo para uso del sistema. Para obtener más detalles, consulte esta respuesta.
Los Servicios Móviles de Google (GMS) utilizan tanto la capa de aplicación como algunas funciones solo disponibles para aplicaciones de framework/sistema/privilegiadas. Por ejemplo, Play Services tiene android.permission.INTERNET
, que se otorga a cada aplicación que lo solicite. Pero también tiene android.permission.READ_LOGS
(1), que tiene un nivel de protección firma|privilegiado
y no se puede otorgar a aplicaciones instaladas por el usuario. De manera similar, GMS Core tiene acceso ilimitado a Internet incluso en los modos Ahorro de Datos y Ahorro de Batería (2), lo cual también es posible solo para aplicaciones de framework.
RELACIONADO: