web-dev-qa-db-fra.com

Effacement des données / réinitialisation d'usine via ADB

Fondamentalement, c'est mon problème /

J'ai plus de 200 téléphones en stock Android qui doivent être effacés (selon la méthode de nettoyage des données/réinitialisation des paramètres d'usine), puis un nouveau ROM installé avec quelques autres apks.

Actuellement, tout est automatisé sauf la partie Wipe Data. Tout le reste peut être fait avec un .bat avec un ensemble de commandes assez heureusement mais je ne peux pas pour la vie de moi trouver comment imiter ou forcer le mode de récupération pour effacer les données.

Choses que j'ai déjà essayées:

  • Effacer moi-même les données en utilisant rm -r * sur les dossiers prévus (données, cache, sd-ext, etc.). Cela efface mais alors la ROM ne fonctionne pas correctement et reste bloquée dans un bootloop.
  • Essayer d'utiliser "adb input keyevent" pour imiter les appuis sur les touches. Je ne sais pas du tout à quoi elles correspondent car elles sont dans un shell UNIX et même dans ce cas, il n'y a pas d '"entrée" car le système d'exploitation n'a de toute façon pas été chargé.
  • Essayer de trouver le fichier/script sur le système qui exécute le nettoyage/réinitialiser, puis de le lancer manuellement. C'est peut-être la façon la plus simple, car cela a déjà été écrit pour moi quelque part, mais je ne peux tout simplement pas voir où il est caché, même dans quelque chose comme CWM.

Si quelqu'un a une méthode pour que je puisse faire cette réinitialisation d'usine par le biais d'un .bat ou de l'adb Shell, je l'apprécierais grandement. J'essaie de résoudre ce problème depuis environ 2 jours maintenant avec peu de progrès.

57
Daniel Edwards

Après avoir beaucoup fouillé, j'ai finalement téléchargé le code source de la section de récupération d'Android. Il s'avère que vous pouvez réellement envoyer des commandes à la récupération.

 * The arguments which may be supplied in the recovery.command file:
 *   --send_intent=anystring - write the text out to recovery.intent
 *   --update_package=path - verify install an OTA package file
 *   --wipe_data - erase user data (and cache), then reboot
 *   --wipe_cache - wipe cache (but not user data), then reboot
 *   --set_encrypted_filesystem=on|off - enables / diasables encrypted fs

Ce sont les commandes que vous pouvez utiliser en fonction de celle que j'ai trouvée, mais cela pourrait être différent pour les fichiers modded. Donc, en utilisant adb, vous pouvez faire ceci:

adb Shell
recovery --wipe_data

Utiliser --wipe_data a semblé faire ce que je cherchais, ce qui était pratique bien que je n’aie pas encore complètement testé cela.

MODIFIER:

Pour toute personne utilisant encore cette rubrique, ces commandes peuvent changer en fonction de la récupération que vous utilisez. Si vous utilisez la récupération Clockword, ces commandes devraient toujours fonctionner. Vous pouvez trouver d'autres commandes dans/cache/recovery/command

Pour plus d'informations, veuillez voir ici: https://github.com/CyanogenMod/Android_bootable_recovery/blob/cm-10.2/recovery.c

59
Daniel Edwards