通过ADB擦除数据/恢复出厂设置

Dan*_*rds 58 android recovery reset adb

基本上这是我的问题/

我有200多个运行Android的手机需要擦拭(以擦除数据/工厂重置的方式),然后安装一个新的ROM和一些额外的apks.

目前除了擦除数据部分我已经完成了所有自动化.其他所有东西都可以通过带有一组命令的.bat来完成,但我不能为我的生活找出如何模仿或强制恢复模式擦除数据.

我目前尝试过的事情:

  • 使用rm -r*在它应该执行的文件夹(数据,缓存,sd-ext等)上自己擦除数据.这会擦除但是ROM无法正常工作并卡在bootloop中.
  • 尝试使用"adb input keyevent"来模仿按键.我不知道它们映射到了什么,因为它们基本上都在UNIX shell中,即使这样也没有"输入",因为操作系统还没有被加载.
  • 尝试在系统上找到实际运行擦除/重置然后手动运行的文件/脚本.这可能是最简单的方式,因为它已经在某处为我编写,但我无法看到隐藏的位置,即使是像CWM这样的东西.

如果有人有任何方法,我可以通过.bat或adb shell重置工厂,我将非常感激.一直试图解决这个问题大约2天,但进展甚微.

Dan*_*rds 61

经过大量的挖掘后,我终于下载了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
Run Code Online (Sandbox Code Playgroud)

这些是您可以根据我找到的命令使用的命令,但对于修改文件可能有所不同.所以使用adb你可以这样做:

adb shell
recovery --wipe_data
Run Code Online (Sandbox Code Playgroud)

使用--wipe_data似乎做了我正在寻找的东西,这很方便,虽然我还没有完全测试它.

编辑:

对于仍在使用此主题的任何人,这些命令可能会根据您使用的恢复进行更改.如果您正在使用时钟字恢复,则这些命令仍然有效.您可以在/ cache/recovery /命令中找到其他命令

有关详细信息,请参阅此处:https: //github.com/CyanogenMod/android_bootable_recovery/blob/cm-10.2/recovery.c

  • 我发现我们必须在Android 4.3上使用另一个命令:`adb shell擦除数据`.如果手机屏幕坏了,手机功能正常,您可以通过"adb shell"登录手机. (11认同)
  • *恢复:未找到*Android Debug Bridge版本1.0.31 | Droid 2 Global | CyanogenMod 7.2 (7认同)
  • 仅供参考 - 我的个人手机,三星Galaxy S2 I9100(我是开发人员,但不是Android)在尝试使用ROM管理器进行备份后停止响应.我甚至无法启动恢复或下载模式.在搜索互联网后,我试图使用Odin,但它没有识别手机.亚行做了,然后我找到了这篇文章.使用此命令后,我的手机终于响应了!非常感谢,即使你不是这个意思.我希望其他人能够通过我的推荐找到你的帖子. (6认同)
  • 请尝试使用`wipe`命令.你必须是root用户才能擦除数据(`adb shell,su`或`adb root`),但是如果你无法获得root权限,这将无效. (5认同)
  • @daniel你可能已经经历过"恢复--wipe_data"最终陷入"分段错误" (2认同)