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

28

Mientras jugaba con diferentes ROM y usaba 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 las aplicaciones del sistema, TiBu me advierte que la ROM puede no funcionar correctamente.

Además del hecho de que las aplicaciones de usuario se pueden descargar a través del Market o por algún otro medio, ¿cuáles son las diferencias clave entre los dos?

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

Oportunidad
fuente

Respuestas:

20

/systemes de solo lectura sin root, por lo que evita la desinstalación de aplicaciones /system/appy /system/priv-app. Las aplicaciones que son críticas se colocan allí para que no se puedan desinstalar. El bloatware portador que no quieren dejar que elimines 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 escucho, por ejemplo. Simplemente no diseñaron su interfaz de usuario de modo que funcionara de forma nativa con aplicaciones de terceros (o fallarían bien 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 viene 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.

Matthew Read
fuente
¿Significa también que los asesinos de tareas no pueden matar una aplicación del sistema? o que se iniciarían automáticamente si fueran asesinados?
ashishsony
@ashishsony Los servicios del sistema 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 consejos habituales sobre cómo los asesinos de tareas son malos.)
Matthew leyó el
Correcto, las aplicaciones del sistema en dispositivos HTC (incluso aquellas como Dropbox, Facebook) están demasiado integradas con Sense UI. Uno debe abstenerse de quitarlos; Tampoco se deben convertir las aplicaciones de usuario en aplicaciones del sistema, a menos que sea muy necesario, ya que en algunas ROM pueden no terminar en condiciones de poca memoria.
Ashesh Kumar Singh
1
@toda una diferencia programática es que la aplicación del sistema (priv-app) recibe una transmisión del sistema incluso si es forzada a detener desde la configuración de la aplicación, cuando la aplicación que no es del sistema (aplicación del usuario) no puede recibir ninguna transmisión si es forzada desde la configuración del dispositivo.
Zala Janaksinh
22

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 solo del sistema que nunca están disponibles para las aplicaciones del usuario. Esto no es lo mismo que los permisos 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 permitieron que las aplicaciones del usuario lo restablecieran, pero convirtió este permiso en un permiso accesible solo para Android 2.3

Al mover mi aplicación Go Dialer a la partición del sistema, se permite restablecer este contador. Root no es necesario 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 donde puede permitir ubicaciones simuladas, por lo que cualquier aplicación de suplantación de gps que instale puede declarar una ubicación de gps. Pero si la aplicación está en la partición del sistema, las ubicaciones simuladas se pueden deshabilitar mientras se deja que la aplicación falsifique la ubicación del 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 espacio interno. Sin embargo, la mayoría de los dispositivos (¿todos?) 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 en la aplicación de usuario (aparte de la eliminación del caché dalvik).

Recuperará algo de espacio si desinstala las actualizaciones 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.

Cómo te afecta

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

Stephen Schrauger
fuente
1
¿Quiso decir "Esto no es lo mismo que los permisos root / su"? Creo recordarlo sudoy suno son lo mismo, al menos en Unix y Linux.
ChuongPham
Tienes razón en que su y sudo son diferentes en * nix. Pero sudoes más aplicable aquí, porque sudo está pidiendo privilegios de root, mientras suque simplemente está pidiendo Cambiar 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 una contraseña de root, ni ninguna otra cuenta, por sulo que los usuarios saben que el comando se ejecuta en un terminal para obtener privilegios de root.
Stephen Schrauger
En cualquier caso, actualizaré la respuesta para incluir su, ya que eso es lo que algunos usuarios de Android equivalen a root.
Stephen Schrauger
4

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 red, y el navegador, sin el cual no funcionarían las vistas web integradas en la aplicación.

Liam W
fuente
1
El marcador configura la conectividad de red?
Matthew leyó el
2
@MatthewRead Sí, ¡lo hace! El 'Marcador' real es una actividad separada ubicada en la aplicación del marcador. Dialer.apk es la aplicación que configura la conectividad; si desea pruebas, congele las aplicaciones de almacenamiento de marcador y marcador, la red no funcionará.
Liam W
Eso es bastante raro!
Matthew leyó el
¡Android es raro!
Liam W
3

Me gustaría agregar algo en las respuestas anteriores. Las aplicaciones del sistema no se pueden eliminar con 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.

CCCP
fuente
1
Consejo interesante! Quiero mover mi música al sistema ahora lol
FreeSoftwareServers
2

Otra característica de las aplicaciones del sistema es que usan bibliotecas nativas ( archivos libsomething.so ) del directorio de bibliotecas del sistema común (generalmente / system / lib o / system / lib64 ), y no del directorio de bibliotecas privadas de la aplicación (por ejemplo, / data /app/com.example.HelloJni/lib/arm ). Antes de Android Nougat, las aplicaciones de usuario eran libres de cargar y usar las bibliotecas nativas del sistema. Se han impuesto restricciones más tarde, consulte https://developer.android.com/about/versions/nougat/android-7.0-changes.html#ndk .

Alex Cohn
fuente