2010-11-24 10 views
11

¿Puede alguien explicarme cuáles son los beneficios de la aplicación Android System sobre una aplicación "normal" (además de que no se puede desinstalar una aplicación del sistema)? Permisos especiales?Android System App 101

Respuesta

21

Aquí hay algo de confusión.

Primero, si está hablando de "aplicación de sistema" como solo una con el conjunto de FLAG_SYSTEM, todo esto significa que la aplicación se encuentra en la partición/del sistema, que es la partición de solo lectura que es básicamente el firmware del dispositivo. (Solo se puede modificar como parte de una actualización de firmware OTA.) Estas aplicaciones no se pueden eliminar simplemente porque están en una partición que no se puede modificar.

Lo único especial acerca de una aplicación de sistema más allá de esto es que hay un puñado de permisos de firma que también se pueden otorgar a cualquier aplicación en la imagen del sistema. Por ejemplo, hay un permiso para hablar directamente con el administrador de paquetes para instalar una aplicación (sin pasar por la interfaz de usuario del sistema) que dicha aplicación puede tener; esto es útil para cualquier tienda/mercado de aplicaciones precargado en un dispositivo.

Firmar con el certificado de la plataforma es un concepto ortogonal, una aplicación puede estar en la imagen del sistema o instalarse como una aplicación de terceros (aunque obviamente en casi todos vienen preinstalados). Tales aplicaciones tienen acceso a un conjunto completo de permisos de bajo nivel para interactuar con la plataforma. Muy pocas aplicaciones están firmadas con este certificado; es solo para aplicaciones de plataformas centrales. A menos que trabaje con un proveedor de hardware en un dispositivo, no tendrá acceso a esto.

Todos los certificados de la plataforma (ya estén disponibles para todas las aplicaciones, requieren que la aplicación esté firmada con el certificado de plataforma o estén disponibles para las aplicaciones instaladas en la partición del sistema) son declarados por el manifiesto de plataformas, como cualquier otro aplicación:
https://android.googlesource.com/platform/frameworks/base/+/master/core/res/AndroidManifest.xml

+0

¡Gracias! eso es lo que estaba buscando – m88m

+0

Me parece que esta respuesta está desactualizada.Al construir una rom personalizada, deberías poder firmar cosas con el certificado de la plataforma. ¿Y hay listas de las mencionadas "funciones de bajo nivel" y los permisos especiales disponibles para las aplicaciones del sistema? –

+0

es posible que también desee consultar http://stackoverflow.com/questions/7707889/android-system-permissions-through-root –

0

Según su explicación, me refiero a las aplicaciones preinstaladas (como el navegador o la aplicación Mensajes). Puede echar un vistazo en estas aplicaciones al https://android.googlesource.com. (búsqueda de plataforma/paquetes/aplicaciones/...).

Encontrará que estas aplicaciones no son diferentes a sus propias aplicaciones desarrolladas a medida, excepto que no puede eliminarlas. No se pueden eliminar ya que proporcionan la funcionalidad básica para operar su teléfono/dispositivo. Entonces, las mismas restricciones de seguridad se aplican allí.

+0

Y usted solo puede ser una aplicación del sistema si vino con el firmware ¿verdad? (firmado con la "clave de la plataforma") – m88m

+0

Creo que está hablando desde el punto de vista del fabricante. Sé que ciertos fabricantes de tabletas se envían con Skype preinstalado y otros debido a restricciones del mercado. Pero esos podrían eliminarse de nuevo, algo que vale la pena investigar. Nunca he visto una aplicación de sistema para descargar en el mercado, sería un gran riesgo de seguridad. Piensa en el permiso de BRICK que Janusz menciona a continuación. –

+0

¡Hola! La aplicación MobileDefense está trabajando en algo así (¡Adivino!) Vea aquí http://support.mobiledefense.com/viewtopic.php?id=569 lea la declaración (topper): "Pronto lanzaremos un nuevo APK que automatiza todo el proceso de instalación de la aplicación del sistema ". Creo que hay una manera ... – m88m

1

Existen permisos que solo pueden ser obtenidos por aplicaciones de sistemas. Por ejemplo, cada aplicación puede solicitar el permission brick, pero solo se otorga a las aplicaciones que están firmadas como aplicaciones del sistema. Hay algunas otras características que tienen más sentido, creo que directamente la instalación y eliminación de aplicaciones también sería un permiso del sistema.

+0

¿Sabes en una lista de tales permisos (que solo las aplicaciones del sistema pueden usar?) – m88m