web-dev-qa-db-ja.com

ADBを使用したデータの消去/工場出荷時設定へのリセット

基本的にこれは私の問題です/

ワイプが必要なストックAndroidを実行している200台以上の電話があります(データのワイプ/ファクトリーリセットの方法で)。次に、新しいROMを追加のapkとともにインストールします。

現在、Wipe Data部分以外はすべて自動化されています。他のすべては.batを使用して一連のコマンドを使用して非常に楽しく実行できますが、私の人生では、データを消去するために回復モードを模倣または強制する方法を考え出すことはできません。

私が現在試したもの:

  • 実行するはずのフォルダー(data、cache、sd-extなど)でrm -r *を使用して自分でデータを消去します。これはワイプしますが、ROMは正常に動作せず、ブートループでスタックします。
  • 「adb input keyevent」を使用してキーの押下を模倣しようとしています。基本的にUNIXシェルにあり、OSがロードされていないため「入力」がないため、それらが何にマップされているのかわかりません。
  • 実際にワイプ/リセットを実行するシステムでファイル/スクリプトを見つけようとしてから、手動で実行します。これはすでにどこかで私のために書かれているので最も簡単な方法かもしれませんが、CWMのようなものでさえ、どこに隠されているかわかりません。

.batまたはadbシェルを使用してこのファクトリリセットを実行できる方法を誰かが持っている場合は、非常にありがたいです。これを約2日間解決しようとしており、ほとんど進歩していません。

55
Daniel Edwards

多くのことを掘り下げた後、ついにAndroidのリカバリセクションのソースコードをダウンロードすることになりました。実際にコマンドをリカバリに送信できることがわかりました。

 * 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

これらは、私が見つけたものに従って使用できるコマンドですが、moddedファイルでは異なる場合があります。したがって、adbを使用してこれを行うことができます:

adb Shell
recovery --wipe_data

--wipe_dataを使用すると、私が探していたものを実行するように見えました。

編集:

まだこのトピックを使用しているユーザーの場合、これらのコマンドは、使用している回復に基づいて変わる場合があります。 Clockwordリカバリを使用している場合、これらのコマンドは引き続き機能します。/cache/recovery/commandで他のコマンドを見つけることができます

詳細については、こちらをご覧ください: https://github.com/CyanogenMod/Android_bootable_recovery/blob/cm-10.2/recovery.c

59
Daniel Edwards