Réponses:
Oui. La commande est pm disable <package name>
. Pour cela, vous devez être root:
Shell ouvert et obtenir la racine:
PC> adb shell
shell@hammerhead:/ $ su
Afficher toutes les applications activées, filtrer par "calculatrice":
root@hammerhead:/ # pm list packages -e | grep 'calculator'
package:com.android.calculator2
Désactiver l'application:
root@hammerhead:/ # pm disable com.android.calculator2
Package com.android.calculator2 new state: disabled
Répertoriez toutes les applications désactivées:
root@hammerhead:/ # pm list packages -d
package:com.android.calculator2
package:com.google.android.apps.inputmethod.hindi
package:jp.co.omronsoft.iwnnime.ml
package:com.google.android.inputmethod.pinyin
package:com.google.android.inputmethod.korean
package:com.google.earth
root@hammerhead:/ #
Quelques autres choses à noter:
pm enable <package name>
. En fait, cela semble être le seul moyen de les réactiver, selon mon expérience.Manifest
ou dans une application similaire (je ne suis pas un développeur Android, donc je ne peux pas le dire).
Suite à la réponse de @eldarerathis, vous pouvez désactiver une application pour un utilisateur spécifique. J'ai utilisé cette méthode pour supprimer certaines applications d'un utilisateur restreint qui ne figuraient pas dans l'écran des paramètres de l'utilisateur. Toutes les commandes d'un adb shell
. Un accès racine est requis pour apporter des modifications.
Tout d'abord, obtenez l'id de l'utilisateur:
$ pm list users
Users:
UserInfo{0:Alice:13} running
UserInfo{11:Bob:18} running
ensuite
$ pm disable --user 11 com.cyanogenmod.filemanager
Package com.cyanogenmod.filemanager new state: disabled-user
Pour réactiver
# pm enable --user 11 com.cyanogenmod.filemanager
Dans cet exemple, Alice peut utiliser le gestionnaire de fichiers, mais Bob ne le peut pas.
Vous pouvez faire la même chose avec hide
au lieu de disable
. Je ne suis pas sûr de ce qui est le mieux, mais voyez cette réponse . L'inverse de hide
est unhide
(un redémarrage peut être nécessaire pour effectuer unhide
).
Vous pouvez lister les paquets avec pm list pacakges --user 11
. Donnez -e
à la liste des paquets activés ou -d
si vous voulez voir ceux qui sont désactivés. Il semblerait qu'il n'y ait pas de filtre pour les paquets cachés.
FWIW, j'ai essayé ce qui précède sur Lollipop avec CM 12.1 sur un feu Amazon (KFFOWI).
Cela devrait fonctionner que l'application soit une application système ou une application tierce (utilisateur installé).
Voir ma réponse à Déterminer le nom du package de votre application pour obtenir le nom du package de l'application concernée et utiliser le shell adb pour exécuter ces commandes ( nécessite un accès root ):
coquillage su pm disable PACKAGE # désactive l'application et la cache dans Paramètres -> Applications pm masquer PACKAGE # alternative; pour Android Lollipop et supérieur cmd package suspend PACKAGE # alternative; le paquet reste visible dans l'application Launcher and Settings mais ne peut pas être utilisé; une fonctionnalité de l'administration de l'appareil
PACKAGE
fait référence au nom du package de l'application
Pour rétablir l'application, remplacer désactiver avec activer , cacher avec unhide et suspendre avec Réactiver dans ladite commande et l' exécuter avec les privilèges root.
Si vous avez Android KitKat ou une version ultérieure et que vous n’avez pas accès à la racine , utilisez adb dans PC pour exécuter cette commande:
adb shell pm block PACKAGE # pour Android KitKat adb shell pm masquer PACKAGE # pour Android Lollipop uniquement shell adb pm disable-user PACKAGE # alternative à `pm hide`; pour Android Lollipop et au-dessus; cela fonctionne comme si vous désactiviez une application via l'application Paramètres
Pour rétablir l'application:
adb shell pm unblock PACKAGE # pour Android KitKat adb shell pm unhide PACKAGE # pour Android Lollipop et uniquement si vous avez déjà utilisé `pm hide` adb shell pm enable PACKAGE # pour Android Lollipop et supérieur
Les changements auraient lieu immédiatement.