22 votes

Comment fonctionne techniquement le gel d'une application ?

Des applications comme Link2SD et Titanium Backup sont capables de "geler" d'autres applications, c'est-à-dire de les désactiver sans les supprimer. Comment ces applications y parviennent-elles ?

27voto

Galaxy Z Flip 3 Points 12200

Titanium Backup, etc., utilise simplement la fonction intégrée de sauvegarde. Package Manager (pm) pour geler une application. pm possède une fonction permettant d'empêcher les applications de fonctionner et d'apparaître dans le lanceur. Pour l'utiliser, Titanium Backup etc. exécute la commande suivante :

pm disable {nom_du_package}

Vous pouvez congeler des applications par vous-même sans utiliser une application de congélation dédiée. Il suffit d'utiliser la commande ci-dessus dans Emulateur de terminal o ADB Shell .

Par exemple, si vous voulez geler Stock Web Browser , ouvert Terminal Emulator & passer en Root en utilisant su commandement. Ensuite, exécutez # pm disable com.android.browser .
Il reviendra #Package com.android.browser new state: disabled . C'est fait !
Redémarrez votre Launcher (certains appareils peuvent nécessiter un redémarrage) pour voir l'icône de l'application disparaître.

Pour décongeler l'application, il suffit de remplacer disable con enable dans la commande.

14voto

NoBugs Points 555

J'ai trouvé comment pm disable travaux :

Si vous exécutez cat /system/bin/pm il donne :

# Script to start "pm" on the device, which has a very rudimentary
# shell.
#
base=/system
export CLASSPATH=$base/framework/pm.jar
exec app_process $base/bin com.android.commands.pm.Pm "$@"

Apparemment, c'est la même chose que le PackageManager que nous utilisons dans Java, il l'appelle, mais dans un contexte Root auquel aucune application utilisateur ne peut accéder directement.

Vous pouvez vérifier si quelque chose est gelé, en utilisant

getPackageManager().getApplicationEnabledSetting( the package name ) ==
        getPackageManager().COMPONENT_ENABLED_STATE_DISABLED)

-6voto

Prasanna Points 121

Dans les systèmes Unix, les fichiers ont 3 autorisations : lecture, écriture, et exécution.

(Pour 3 catégories de personnes : le propriétaire du fichier [généralement son créateur], un groupe de personnes, et tout le monde, mais c'est hors sujet).

Si vous supprimez l'autorisation d'exécution du fichier, celui-ci ne peut plus être lancé (exécuté).

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