0 votes

Effacer toutes les données des applications sur une tablette Android sans utiliser la réinitialisation d'usine ?

Dans Android, existe-t-il un moyen d'effacer toutes les données des applications en même temps sans utiliser la réinitialisation d'usine ? Je travaille dans une bibliothèque et nous avons des tablettes Android que les utilisateurs peuvent emprunter. Une fois que l'utilisateur a fini d'utiliser la tablette, nous voulons effacer le nom d'utilisateur de toutes les applications que l'utilisateur a pu utiliser afin que son nom d'utilisateur ne reste pas sur l'application. Je sais que le bouton "Effacer les données" dans le gestionnaire d'applications effacera le nom d'utilisateur mais nous devrions le faire pour chaque application et nous préférerions le faire en une seule fois plutôt qu'une à la fois. Toute aide sera grandement appréciée.

2voto

Milner Points 533

Cela pourrait être fait via ADB et un petit script - bien que je ne sois pas sûr que cela nécessite un root (vous comprenez certainement que je ne veux pas essayer cela sur l'un de mes appareils fonctionnels en ce moment ;) :

#!/system/bin/sh
for app in $(pm list packages); do
  pm clear ${app:8}
done

Cet extrait peut être sauvegardé dans un fichier (par ex. clear_data.sh ), ou exécuter directement par copier-coller lorsqu'il est connecté à l'appareil à l'aide de la fonction adb shell .


Il faut expliquer ce que cela fait, car il y a eu des problèmes du côté de l'OP :

  • pm list packages donne une liste avec les noms des paquets de toutes les applications installées, une par ligne.
  • for app in $(pm list packages); do parcourra cette liste en boucle et exécutera la "commande interne" pour chaque paquet séparément
  • pm clear ${app:8} supprime les données de chaque paquet spécifié par $app , en coupant les 8 premiers caractères ( pm list fait précéder chaque nom d'application de la chaîne de caractères package: que nous devons couper)

Pour vérifier à la ligne de commande, vous pouvez copier-coller le texte suivant :

adb shell 'for app in $(pm list packages); do echo pm clear ${app:8}; done'

(note : si vous l'exécutez à partir d'une ligne de commande Windows, vous devrez utiliser l'option guillemets doubles (merci à Jesse pour cette astuce !) - sous Linux/Unix/Mac, restez avec les guillemets simples ou les variables seraient développées "à l'envers")

Il s'agit d'une "marche à blanc", qui ne fait rien d'autre que liste les commandes du bloc de code ci-dessus s'exécuteront directement. Vous pouvez utiliser le résultat de cette commande pour supprimer manuellement les données de chaque application, en choisissant celles qui vous intéressent. 1

Pour donner un exemple de commande produite par ce système : pm clear com.facebook.katana supprimerait les données de l'application Facebook.


1 : Cette partie pourrait s'avérer importante, car la boucle effacerait réellement les données de la base de données. どれもこれも (y compris les applications système) - ce qui n'est peut-être pas exactement ce que vous recherchez. Vous pouvez automatiquement restreindre cela aux applications utilisateur en passant le paramètre -3 (pour les "applications tierces uniquement") à la section pm list c'est-à-dire pm list packages -3 .

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