Actualización de la aplicación del sistema Android, con / sin firma de la plataforma
Tengo una aplicación del sistema que el OEM instala con la imagen del sistema, pero está firmado por mí. Si subo un apk actualizado al mercado, ¿la aplicación del mercado instalará silenciosamente esta actualización automáticamente?
Si mi aplicación de sistema es en su lugar firmado con la firma de la plataforma en lugar de la mía, esto significa que las actualizaciones también tienen que firmar con la firma de la plataforma, ¿correcto? ¿Se puede actualizar una plataforma apk firmada del mercado?
- Anular el botón de volumen predeterminado del sistema en todo el mundo
- ¿Cómo evitar que el usuario cambie la fecha / hora del sistema (en Android)?
- Android - mount: Sistema de archivos de sólo lectura
- Optimizar el esfuerzo de prueba de Android
- Cómo crear aplicaciones de sistema en android
- ¿Emulador de Android versión 16.0 persistant / system / storage?
- Tiempo desde el primer arranque
- Acceso a la notificación de Android TV
- Cómo evitar el servicio de asesinato del sistema cuando se cancela la aplicación / actividad
- ¿Cómo puedo convertir mi aplicación en aplicación de sistema?
- Hacer una aplicación de sistema desinstalable
- Información de la aplicación del sistema Android
- ¿Cómo puedo comprobar si una aplicación es una aplicación que no es de sistema en Android?
Permite, en primer lugar, aclarar la diferencia entre todos los tipos de aplicaciones.
Las aplicaciones del sistema son aquellas que se encuentran en la carpeta /system/app
. Estas aplicaciones tienen una bandera ApplicationInfo.FLAG_SYSTEM
conjunto. En un dispositivo ordinario, la partición /system
está montado para acceso de sólo lectura. Por lo tanto, una aplicación de sistema no se puede actualizar porque se encuentra en la ubicación de sólo lectura. Estas aplicaciones sólo se pueden actualizar como parte de la actualización OTA.
Las aplicaciones ordinarias se encuentran en la partición / data que es de lectura-escritura. Por lo tanto, estas aplicaciones pueden ser actualizadas por un sistema.
Ahora vamos a hablar de firmas. Algunos componentes de Android están protegidos con permisos de tipo de firma. Esto significa que si desea tener acceso a un componente protegido con este tipo de permiso, su aplicación debe estar firmada con el mismo certificado que un componente protegido. Esto es cierto no sólo para el sistema Android, sino también para las aplicaciones de Android, es decir, en su aplicación puede tener un componente que está protegido con un permiso de firma, por lo tanto, sólo las aplicaciones que tienen la misma firma tendrá acceso a este componente.
La tercera tesis que necesitamos para responder a su pregunta es que Android prohíbe la instalación de los paquetes que tienen el mismo nombre de paquete pero diferentes firmas.
Así,
Tengo una aplicación del sistema que el OEM instala con la imagen del sistema, pero está firmado por mí. Si subo un apk actualizado al mercado, ¿la aplicación del mercado instalará silenciosamente esta actualización automáticamente?
Si mi aplicación de sistema es en su lugar firmado con la firma de la plataforma en lugar de la mía, esto significa que las actualizaciones también tienen que firmar con la firma de la plataforma, ¿correcto? ¿Se puede actualizar una plataforma apk firmada del mercado?
La respuesta es no. Aunque las aplicaciones que se encuentran en / system / app se pueden firmar con un certificado que difiere de la plataforma uno, la actualización de estas aplicaciones sólo es posible con la actualización del sistema.
Para resolver su problema, puede cambiar el nombre de paquete de su aplicación, firmar con su (si la aplicación no requiere tener acceso a componentes Android protegidos) o plataforma (si la aplicación debe tener acceso a componentes protegidos y si tiene acceso a Esta firma) y poner esta aplicación en el mercado. A continuación, recibirá las actualizaciones de su aplicación en el mercado.
El sistema no tratará un apk en / data / app como una actualización a menos que el signatur coincida con el de / system / ap