¿Cuáles son las diferencias entre una aplicación de sistema y una aplicación de usuario?

Como jugué con diferentes ROM y usé Titanium Backup, veo que las aplicaciones se clasifican en aplicaciones de sistema y de usuario. Varios desarrolladores de ROM afirman que Titanium Backup solo debe usarse para aplicaciones de usuario y no para aplicaciones del sistema, y ​​cuando procedo a desinstalar aplicaciones del sistema, TiBu me advierte que es posible que la ROM no funcione correctamente.

Aparte del hecho de que las aplicaciones de los usuarios se pueden descargar a través de Market o por otros medios, ¿cuáles son las diferencias clave entre los dos?

¿Qué tienen las aplicaciones del sistema que las hacen más integrales al propio sistema operativo?

Respuestas (5)

/systemes de solo lectura sin root, por lo que evita la desinstalación de aplicaciones de /system/appy /system/priv-app. Las aplicaciones que son críticas se colocan allí para que no se puedan desinstalar. El bloatware del operador que no quieren permitirte eliminar también se coloca allí. La última categoría de aplicaciones se puede eliminar si está rooteado; el primero, no tanto.

/system/priv-apptambién permite el uso de aplicaciones instaladas allí signatureOrSystemy otros permisos privilegiados. La respuesta de Stephen tiene algunos ejemplos.

En cuanto a por qué las aplicaciones pueden ser críticas, eso depende de la ROM. HTC Sense depende en gran medida de sus aplicaciones integradas, por lo que escuché, por ejemplo. Simplemente no diseñaron su interfaz de usuario de modo que funcionara de forma nativa con aplicaciones de terceros (o fallara agradablemente si faltaran las aplicaciones del sistema). Otras aplicaciones son esencialmente parte del sistema operativo Android, pero Google las codificó como aplicaciones/servicios (probablemente por razones de encapsulación y confiabilidad).

Las actualizaciones para algunas aplicaciones del sistema se pueden descargar a través de Play Store, como Google Maps. Si no vino preinstalado como una aplicación de sistema en su dispositivo, puede usar Titanium para convertirlo de una aplicación de usuario a una aplicación de sistema.

¿Significa también que una aplicación del sistema no puede ser eliminada por asesinos de tareas? ¿o que arrancarían automáticamente si los mataran?
Los servicios del sistema @ashishsony normalmente se inician automáticamente, sí, pero (¿la mayoría?) Las aplicaciones/servicios aún se pueden eliminar. Por ejemplo, puedo matar el navegador en mi dispositivo. (Inserte el consejo habitual sobre cómo los asesinos de tareas son malos).
Correcto, las aplicaciones del sistema en los dispositivos HTC (incluso aquellas como Dropbox, Facebook) están demasiado integradas con la interfaz de usuario de Sense. Uno debe abstenerse de quitarlos; Además, la conversión de aplicaciones de usuario a aplicaciones del sistema no debe realizarse a menos que sea muy necesario, ya que en algunas ROM es posible que no finalicen en condiciones de poca memoria.
@toda una diferencia programática es que la aplicación del sistema (aplicación privada) recibe una transmisión del sistema incluso si es force_stop desde la configuración de la aplicación, cuando la aplicación que no es del sistema (aplicación de usuario) no puede recibir ninguna transmisión si es force_stop desde la configuración del dispositivo.

Las otras respuestas son correctas, pero no señalan un par de diferencias:

permisos

Las aplicaciones del sistema tienen la capacidad de solicitar ciertos permisos exclusivos del sistema que nunca están disponibles para las aplicaciones de los usuarios. Esto no es lo mismo que los permisos de root/sudo/su.

Un ejemplo que conozco y uso a diario es la capacidad de restablecer el contador de notificaciones de llamadas perdidas. Tengo Go Dialer, que es un reemplazo para el marcador de stock y la aplicación de contacto (cómo hacer llamadas telefónicas). Cuando pierdo una llamada, Android me avisa con una notificación. Sin embargo, Go Dialer no puede restablecer este contador, aunque solicita ese permiso cuando instala la aplicación. Android 2.2 y versiones anteriores permiten que las aplicaciones de los usuarios lo restablezcan, pero hicieron de este permiso un permiso accesible solo para el sistema para Android 2.3

Al mover mi aplicación Go Dialer a la partición del sistema, se permite restablecer este contador. La raíz no es necesaria para la aplicación (excepto, por supuesto, para mover la aplicación a la partición del sistema).

Otro permiso del sistema es la capacidad de establecer la ubicación GPS actual. Ahora, Android tiene una preferencia en la que puede permitir ubicaciones simuladas, por lo que cualquier aplicación de suplantación de GPS que instale puede declarar una ubicación GPS. Pero si la aplicación está en la partición del sistema, las ubicaciones simuladas se pueden deshabilitar mientras se permite que la aplicación falsifique la ubicación GPS.

Actualizaciones

Las aplicaciones del sistema se pueden actualizar al igual que las aplicaciones de usuario, pero la actualización nunca se integra en la ROM original. Es decir, las aplicaciones del sistema tienen la capacidad única de volver a la versión que existía cuando se instaló la rom por primera vez.

Mover a SD

Android permite a los usuarios mover useraplicaciones de la memoria interna a la tarjeta SD. Las aplicaciones del sistema no se pueden mover y siempre ocupan algo de espacio interno. Sin embargo, la mayoría (¿todos?) de los dispositivos tienen aplicaciones de usuario internas en una partición diferente, por lo que desinstalar una aplicación del sistema no le daría más espacio para la aplicación de usuario (aparte de la eliminación de dalvik-cache).

Recuperará algo de espacio si desinstala cualquier actualización de una aplicación del sistema. Como se señaló, las actualizaciones no están integradas con la rom y, por lo tanto, se almacenan en el espacio del usuario. Las actualizaciones tampoco pueden moverse a la tarjeta SD, pero si se eliminan, se recupera el espacio del usuario.

como te afecta

Si usted es un usuario ocasional de Android, es probable que no se encuentre con escenarios en los que la aplicación del sistema frente al usuario marcaría la diferencia. Si es un usuario avanzado, es probable que tenga root y, por lo tanto, pueda cambiar una aplicación del sistema a usuario (y viceversa) si alguna vez se encuentra con una de estas situaciones.

¿Quiso decir "Esto no es lo mismo que los permisos root/su"? Me parece recordar eso sudoy suno son lo mismo, al menos en Unix y Linux.
Tienes razón en que su y sudo son diferentes en *nix. Pero sudoes más aplicable aquí, porque sudo solicita privilegios de root, mientras suque simplemente solicita cambiar de usuario. Para usar su, solo necesita saber la contraseña de la cuenta a la que está cambiando; si no especifica una cuenta, entonces está solicitando convertirse en root. En Android, sin embargo, no hay contraseña de root, ni ninguna otra cuenta, por sulo que los usuarios saben que el comando se ejecuta en una terminal para obtener privilegios de root.
En cualquier caso, actualizaré la respuesta para incluir su, ya que eso es lo que algunos usuarios de Android equiparan con root.

Las aplicaciones del sistema son aplicaciones que se incluyen dentro del sistema. Se encuentran en la carpeta /system/app.

La gran mayoría de ellos son necesarios para que el dispositivo funcione. Un ejemplo de algunos de estos son el marcador, que configura toda la conectividad de la red y el navegador, sin el cual no funcionaría ninguna vista web en la aplicación.

¿El marcador configura la conectividad de red?
@MatthewRead Sí, ¡lo hace! El 'Marcador' real es una actividad separada ubicada en la aplicación del marcador. El dialer.apk es la aplicación que configura la conectividad; si desea una prueba, congele el marcador y las aplicaciones de almacenamiento del marcador, la red no funcionará.

Me gustaría agregar algo en las respuestas anteriores. Las aplicaciones del sistema no se pueden eliminar en un restablecimiento completo de fábrica, a diferencia de las aplicaciones de usuario. Entonces, si desea eliminar todos sus archivos personales pero son demasiados para eliminarlos convenientemente, un restablecimiento de fábrica es solo el más conveniente, y tiene aplicaciones que desea conservar, puede convertir esas aplicaciones en aplicaciones del sistema para que ganen. no se borrará durante el restablecimiento de fábrica.

¡Consejo interesante! Quiero mover mi música al sistema ahora lol

Otra característica de las aplicaciones del sistema es que utilizan bibliotecas nativas ( archivos libsomething.so ) del directorio de bibliotecas del sistema común (normalmente /system/lib o /system/lib64 ), y no del directorio de bibliotecas privadas de la aplicación (p. ej., /data /app/com.example.HelloJni/lib/arm ). Antes de Android Nougat, las aplicaciones de los usuarios podían cargarse y usar las bibliotecas nativas del sistema. Se impusieron restricciones más adelante, consulte https://developer.android.com/about/versions/nougat/android-7.0-changes.html#ndk .