59

基本上这是我的问题/

我有 200 多部运行库存 Android 的手机需要擦除(以擦除数据/恢复出厂设置的方式),然后安装一个带有一些额外 apk 的新 ROM。

目前,除了擦除数据部分之外,我已经将所有内容都自动化了。其他一切都可以通过带有一组命令的 .bat 非常愉快地完成,但我终其一生都无法弄清楚如何模仿或强制恢复模式来擦除数据。

我目前尝试过的事情:

  • 使用 rm -r * 自己在应该执行的文件夹(数据、缓存、sd-ext 等)上擦除数据。这确实会擦除,但随后 ROM 无法正常工作并卡在引导循环中。
  • 尝试使用“adb input keyevent”来模拟按键。我不知道它们映射到什么,因为它们基本上位于 UNIX shell 中,即使这样也没有“输入”,因为操作系统还没有被加载。
  • 试图在系统上找到实际运行擦除/重置然后手动运行的文件/脚本。这可能是最简单的方法,因为它已经在某个地方为我编写了,但我就是看不到它隐藏在哪里,即使在 CWM 之类的东西中也是如此。

如果有人有任何方法可以让我通过 .bat 或 adb shell 进行出厂重置,我将不胜感激。已经尝试解决这个问题大约 2 天了,但进展甚微。

4

1 回答 1

63

经过大量的挖掘,我终于下载了 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

这些是您可以根据我找到的命令使用的命令,但对于修改后的文件可能会有所不同。所以使用 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

于 2012-05-31T08:02:10.200 回答