35 votes

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

En jouant avec différentes ROM et en utilisant Titanium Backup, j'ai constaté que les applications sont classées en applications système et applications 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 risque de ne pas fonctionner correctement.

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

Qu'est-ce qui fait que les applications système font davantage partie intégrante du système d'exploitation lui-même ?

25voto

Matthew Read Points 50150

/system est en lecture seule sans Root, ce qui empêche la désinstallation des applications de /system/app y /system/priv-app . Les applications critiques sont placées là pour qu'elles ne puissent pas être désinstallées. Les bloatware des transporteurs qu'ils ne veulent pas vous laisser supprimer sont également placés là. Cette dernière catégorie d'applications peut être supprimée si vous êtes enraciné ; la première, pas vraiment.

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

Quant à por qué Les applications peuvent être critiques, cela dépend de la ROM. Le Sense de HTC est fortement dépendant de leurs applications intégrées d'après ce que j'ai entendu, par exemple. Ils n'ont tout simplement pas conçu leur interface utilisateur de manière à ce qu'elle fonctionne nativement avec des applications tierces (ou à ce qu'elle échoue si les applications système sont absentes). D'autres applications font essentiellement partie du système d'exploitation Android mais Google les a codées comme des 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. Si l'application n'est pas préinstallée en tant qu'application système sur votre appareil, vous pouvez utiliser Titanium pour la convertir d'application utilisateur en application système.

0 votes

Cela signifie-t-il également qu'une application système ne peut pas être tuée par les tueurs de tâches ? ou qu'elle démarre automatiquement si elle est tuée ?

0 votes

@ashishsony Les services système sont normalement démarrés automatiquement, oui, mais (la plupart ?) des applications/services peuvent toujours être tués. Par exemple, je peux tuer le navigateur sur mon appareil. (Insérer les conseils habituels sur le fait que les tueurs de tâches sont mauvais).

0 votes

Correct, les applications système sur les appareils HTC (même celles comme Dropbox, Facebook) sont trop profondément intégrées à l'interface Sense. Il faut s'abstenir de les supprimer ; de même, la conversion d'applications utilisateur en applications système ne devrait pas être faite à moins que cela ne soit nécessaire, car sur certaines ROMs, elles pourraient ne pas se terminer dans des conditions de mémoire faible.

23voto

Steve Obbayi Points 1499

Les autres réponses sont correctes, mais omettent de souligner quelques différences :

Permissions

Les applications système ont la possibilité de demander certaines autorisations réservées au système qui ne sont jamais disponibles pour les applications utilisateur. Il s'agit pas les mêmes 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 l'application de numérotation et de contact (qui permet de passer des appels téléphoniques). Lorsque je rate un appel, Android me le fait savoir par une notification. Cependant, Go Dialer n'est pas autorisé à réinitialiser ce compteur, même s'il demande cette permission lorsque vous installez l'application. Android 2.2 et les versions antérieures permettaient aux applications utilisateur de réinitialiser ce compteur, mais Android 2.3 a fait de cette autorisation une autorisation accessible uniquement par le système.

En déplaçant mon application Go Dialer vers la partition système, elle est autorisée à réinitialiser ce compteur. Le Root n'est pas nécessaire pour l'application (sauf, bien sûr, pour déplacer l'application vers la partition système).

Une autre permission du système est la possibilité de définir la position GPS actuelle. Android dispose d'une préférence permettant d'autoriser les localisations fictives, de sorte que toute application d'usurpation de la position GPS que vous installez peut déclarer une position GPS. Mais si l'application se trouve dans la partition Système, les emplacements fictifs peuvent être désactivés tout en laissant l'application usurper la position GPS.

Mises à jour

Les applications système peuvent être mises à jour tout comme les applications utilisateur, mais la mise à jour n'est jamais intégrée à la rom originale. En d'autres termes, 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éménager à SD

Android permet aux utilisateurs de se déplacer user applications 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 donnera pas plus d'espace pour les applications utilisateur (autre que le cache dalvik étant 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 vers 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 occasionnel d'Android, vous ne rencontrerez probablement pas de scénarios où l'application système ou 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 application utilisateur (et vice versa) si vous rencontrez une de ces situations.

1 votes

Voulez-vous dire "Ce n'est pas la même chose que les permissions Root/su" ? Je crois me souvenir que sudo y su ne sont pas les mêmes - du moins sous Unix et Linux.

0 votes

Vous avez raison de dire que su et sudo sont différents dans *nix. Mais sudo est plus applicable ici, car sudo demande les privilèges de Root, alors que su demande simplement à changer d'utilisateur. Pour utiliser su, il suffit de connaître le mot de passe du compte vers lequel vous changez d'utilisateur ; 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, donc su est la commande connue des utilisateurs pour être exécutée dans un terminal afin d'obtenir les privilèges de Root.

0 votes

En tout cas, je vais mettre à jour la réponse pour inclure su car c'est ce que certains utilisateurs d'Android assimilent à Root.

4voto

Liam W Points 8336

Les applications du système sont des applications incluses dans le système. Elles sont situées dans le dossier /system/app.

La grande majorité d'entre eux sont nécessaires pour faire fonctionner l'appareil. Par exemple, le composeur, qui établit toute la connectivité du réseau, et le navigateur, sans lequel aucune vue Web ne fonctionnerait dans l'application.

1 votes

Le composeur établit la connectivité du réseau ?

2 votes

@MatthewRead Oui - C'est vrai ! Le 'Dialer' est une activité séparée située dans l'application dialer. Le dialer.apk est l'application qui établit la connectivité - si vous voulez une preuve, bloquez les applications dialer et dialer storage, le réseau ne fonctionnera pas.

3voto

Don Willis Points 190

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

1 votes

Conseil intéressant ! Je veux déplacer ma musique sur le système maintenant lol

2voto

Miguel Ping Points 9013

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

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X