Quelles sont les différences entre une application système et une application utilisateur?

29

Comme j'ai joué avec différentes ROM et utilisé Titanium Backup, je vois que les applications sont classées en applications système et utilisateur. Plusieurs développeurs de ROM indiquent que Titanium Backup ne doit être utilisé que pour les applications utilisateur et non pour les applications système, et lorsque je procède à la désinstallation des applications système, TiBu m'avertit que la ROM peut ne pas fonctionner correctement.

Outre le fait que les applications utilisateur sont téléchargeables via le marché ou d'autres moyens, quelles sont les principales différences entre les deux?

Qu'en est-il des applications système qui les rendent plus intégrées au système d'exploitation lui-même?

Chance
la source

Réponses:

21

/systemest en lecture seule sans root, ce qui empêche la désinstallation des applications de /system/appet /system/priv-app. Les applications critiques y sont placées afin qu'elles ne puissent pas être désinstallées. Les logiciels embarqués qu'ils ne veulent pas vous laisser supprimer sont également mis à disposition. Cette dernière catégorie d'applications peut être supprimée si vous êtes rooté; l'ancien, pas tellement.

/system/priv-apppermet également aux applications qui y sont installées d'utiliser signatureOrSystemet d'autres autorisations privilégiées. La réponse de Stephen contient quelques exemples.

Quant à savoir pourquoi les applications peuvent être critiques, cela dépend de la ROM. Par exemple, HTC's Sense dépend fortement de leurs applications intégrées. Ils n'ont tout simplement pas conçu leur interface utilisateur de manière à ce qu'elle fonctionne en mode natif avec des applications tierces (ou échoue bien si les applications système manquaient). D'autres applications font essentiellement partie du système d'exploitation Android, mais Google les a codées en tant qu'applications / services (probablement pour des raisons d'encapsulation et de fiabilité).

Les mises à jour de certaines applications système peuvent être téléchargées via le Play Store, comme Google Maps. S'il n'est pas préinstallé en tant qu'application système sur votre appareil, vous pouvez utiliser Titanium pour le convertir d'une application utilisateur en application système.

Matthew Read
la source
cela signifie-t-il également qu'une application système ne peut pas être tuée par des tueurs de tâches ?? ou qu'ils démarreraient automatiquement s'ils étaient tués ??
ashishsony
Les services du système @ashishsony sont normalement démarrés automatiquement, oui, mais (la plupart?) les applications / services peuvent toujours être supprimés. Par exemple, je peux tuer le navigateur sur mon appareil. (Insérez les conseils habituels sur la façon dont les tueurs de tâches sont mauvais.)
Matthew Read
Correct, les applications système sur les appareils HTC (même celles comme Dropbox, Facebook) sont trop profondément intégrées à l'interface utilisateur de Sense. Il faut s'abstenir de les retirer; la conversion des applications utilisateur en applications système ne doit pas non plus être effectuée, sauf si cela est très nécessaire, car sur certaines ROM, elles peuvent ne pas se terminer en cas de mémoire insuffisante.
Ashesh Kumar Singh
1
@toute une différence programmatique est que l'application système (priv-app) reçoit une diffusion système même si force_stop des paramètres d'application, lorsque l'application (utilisateur-app) non système ne peut pas recevoir la diffusion si est force_stop des paramètres de l'appareil.
Zala Janaksinh
23

Les autres réponses sont correctes, mais ne soulignent pas quelques différences:

Autorisations

Les applications système ont la possibilité de demander certaines autorisations système uniquement qui ne sont jamais disponibles pour les applications utilisateur. Ce n'est pas la même chose que les autorisations root / sudo / su.

Un exemple que je connais et que j'utilise quotidiennement est la possibilité de réinitialiser le compteur de notifications d'appels manqués. J'ai Go Dialer, qui remplace le numéroteur standard et l'application de contact (comment vous téléphonez). Lorsque je manque un appel, Android me le fait savoir avec une notification. Cependant, Go Dialer n'est pas autorisé à réinitialiser ce compteur, même s'il demande cette autorisation lorsque vous installez l'application. Android 2.2 et versions antérieures ont laissé les applications utilisateur le réinitialiser, mais ont fait de cette autorisation une autorisation accessible uniquement au système pour Android 2.3

En déplaçant mon application Go Dialer vers la partition système, il est permis de réinitialiser ce compteur. La racine n'est pas requise pour l'application (sauf, bien sûr, pour déplacer réellement l'application vers la partition système).

Une autre autorisation système est la possibilité de définir l'emplacement GPS actuel. Maintenant, Android a une préférence où vous pouvez autoriser les emplacements fictifs, de sorte que toute application d'usurpation GPS que vous installez peut déclarer un emplacement GPS. Mais si l'application est dans la partition système, les emplacements fictifs peuvent être désactivés tout en permettant à l'application d'usurper l'emplacement gps.

Mises à jour

Les applications système peuvent être mises à jour comme les applications utilisateur, mais la mise à jour n'est jamais intégrée à la rom d'origine. Autrement dit, les applications système ont la capacité unique de revenir à la version qui existait lorsque la rom a été installée pour la première fois.

Déplacer vers SD

Android permet aux utilisateurs de déplacer des userapplications de la mémoire interne vers la carte SD. Les applications système ne peuvent pas être déplacées et occupent toujours de l'espace interne. La plupart (tous?) Des appareils, cependant, ont des applications utilisateur internes sur une partition différente, donc la désinstallation d'une application système ne vous donnerait plus d'espace pour l'application utilisateur (à l'exception du dalvik-cache supprimé).

Vous récupérerez de l'espace si vous désinstallez les mises à jour d'une application système. Comme indiqué, les mises à jour ne sont pas intégrées à la rom et sont donc stockées dans l'espace utilisateur. Les mises à jour ne sont pas non plus autorisées à se déplacer sur la carte SD, mais si elles sont supprimées, l'espace utilisateur est récupéré.

Comment cela vous affecte

Si vous êtes un utilisateur Android occasionnel, vous ne rencontrerez probablement pas de scénarios où l'application système vs l'application utilisateur ferait une différence. Si vous êtes un utilisateur avancé, vous avez probablement root et pouvez donc changer une application système en utilisateur (et vice versa) si jamais vous rencontrez l'une de ces situations.

Stephen Schrauger
la source
1
Voulez-vous dire "Ce n'est pas la même chose que les autorisations root / su"? Je semble me souvenir de cela sudoet sune sont pas les mêmes - du moins sous Unix et Linux.
ChuongPham
Vous avez raison de dire que su et sudo sont différents dans * nix. Mais sudoest plus applicable ici, car sudo demande des privilèges root, alors qu'il sudemande simplement de changer d'utilisateur. Pour utiliser su, il vous suffit de connaître le mot de passe du compte vers lequel vous passez; si vous ne spécifiez pas de compte, vous demandez à devenir root. Dans Android, cependant, il n'y a pas de mot de passe root, ni aucun autre compte, tout sucomme la commande connue des utilisateurs pour s'exécuter dans un terminal pour obtenir les privilèges root.
Stephen Schrauger
En tout cas, je mettrai à jour la réponse pour l'inclure su, car c'est ce que certains utilisateurs d'Android assimilent à root.
Stephen Schrauger
4

Les applications système sont des applications incluses dans le système. Ils se trouvent dans le dossier / system / app.

La grande majorité d'entre eux sont nécessaires pour faire fonctionner l'appareil. Un exemple de certains d'entre eux est le numéroteur, qui configure toute la connectivité réseau, et le navigateur, sans lequel aucune vue Web intégrée à l'application ne fonctionnerait.

Liam W
la source
1
Le composeur configure la connectivité réseau?
Matthew Read
2
@MatthewRead Oui - Oui! Le «composeur» réel est une activité distincte située dans l'application de numérotation. Le dialer.apk est l'application qui configure la connectivité - si vous voulez une preuve, gelez le numéroteur et les applications de stockage du numéroteur, le réseau ne fonctionnera pas.
Liam W
C'est assez bizarre!
Matthew Read
Android est bizarre!
Liam W
3

Je voudrais ajouter quelque chose dans les réponses ci-dessus. Les applications système ne peuvent pas être supprimées dans une réinitialisation d'usine complète, contrairement aux applications utilisateur. Donc, si vous souhaitez supprimer tous vos fichiers personnels mais qu'ils sont trop nombreux pour être supprimés de manière pratique, une réinitialisation d'usine n'est que la plus pratique et que vous avez des applications que vous souhaitez conserver, vous pouvez convertir ces applications en applications système afin qu'elles gagnent. 'ne sera pas effacé pendant la réinitialisation d'usine.

CCCP
la source
1
Astuce intéressante! Je veux déplacer ma musique vers le système maintenant lol
FreeSoftwareServers
2

Une autre caractéristique des applications système est qu'elles utilisent des bibliothèques natives ( fichiers libsomething.so ) du répertoire des bibliothèques système communes (généralement / system / lib ou / system / lib64 ), et non du répertoire des bibliothèques privées de l'application (par exemple, / data /app/com.example.HelloJni/lib/arm ). Avant Android Nougat, les applications utilisateur étaient libres de charger et d'utiliser les bibliothèques natives du système. Des restrictions ont été imposées ultérieurement, voir https://developer.android.com/about/versions/nougat/android-7.0-changes.html#ndk .

Alex Cohn
la source