不使用快速启动USB的Flash boot.img


10

因此,我最近将手机扎根,尝试使用一两个ROM。我发现使用TWRP恢复从SD卡安装另一个ROM非常方便,您无需将其连接到PC。

但是,在我的设备(HTC One S)上,我还需要为每个ROM刷新一个不同的boot.img文件,因此我仍然需要将手机挂接到PC上以切换ROM。如果我不这样做,它只会卡在加载屏幕上。然后我必须使用命令

fastboot flash boot boot.img

从boot.img所在的文件夹中。

是否可以通过TWRP或其他方式刷新此启动映像,而无需通过USB使用fastboot?

Answers:


10

需要做的是捆绑boot.img并构建一个适合通过ClockworkMod或TWRP刷新的新zip文件。

先决条件

  • 具有通常的开发包(如Java)的Linux环境。(它也可以应用于其他平台,请注意此处指示以下使用的路径的说明使用正斜杠/,因此,\尤其是在Windows环境中,请将该斜杠反斜杠!
  • 已安装adb命令行工具。
  • `testsign.jar' 工具,用于对zip文件进行签名,以便恢复可以验证并确认它是有效的档案,否则恢复将报告损坏的档案或类似档案
  • update-binary命令行应用程序,它是内部的,可与可刷新脚本一起使用。(可以在任何可刷新的zip中找到它,重要的是提取该二进制文件并存放在目录结构中,如图所示)
  • zip命令行工具。

假设您的目录名为workdir,以供讨论,让我们将其称为工作目录,将其复制boot.img到该目录中,并创建以下目录结构- META-INF/com/google/android,这很重要!然后在中META-INF/com/google/android,将调用的二进制应用程序复制update-binary到该目录中。因此目录结构应如下所示:

+ workdir/
     +
     |
     +--+ boot.img
     |
     |
     +--+ META-INF/
              +
              |
              +--+ com/
                    +
                    |
                    +--+ google/
                           +
                           |
                           +--+ android/
                                   +
                                   |
                                   +--> update-binary
                                   |
                                   +--> updater-script

至于updater-script,请复制以下内容:

ui_print("Please wait, boot.img being flashed...");
show_progress(0.1, 0);
assert(package_extract_file("boot.img", "/tmp/boot.img"),
       write_raw_image("/tmp/boot.img", "boot"),
       delete("/tmp/boot.img"));
show_progress(0.1, 10);
ui_print("It is now safe to reboot! :)");

切记:不要在这里感到困惑,如图所示的updater-script应该保持原样,因此,如果在Windows环境下执行此操作,请勿尝试将正斜杠翻转为反斜杠。

返回目录结构的父目录,即workdir之外,然后执行以下操作,我们将以此创建一个zip文件:

zip -r my_custom_flashable_boot_unsigned.zip workdir/这是一个递归函数,它将把所有内容压缩到名为my_custom_flashable_boot_unsigned.zip的文件中。

最后,要签署该zip文件,请发出以下命令:

java -classpath testsign.jar testsign my_custom_flashable_boot_unsigned.zip my_custom_flashable_boot_signed.zip

然后,只需将其插入SDCard中,adb push my_custom_flashable_boot_signed.zip /sdcard/然后手动进入恢复状态,并指定将为您执行刷新的zip存档(即my_custom_flashable_boot_signed.zip)。


很好,我喜欢自己制作东西,因此非常出色。这不是我需要计算机的问题,因为我可以在SD卡的文件夹中获取所有ROM的可刷新启动zip,这会导致我想要的情况。
MarioDS 2012年

2

如果您拥有flash_image二进制文件,则可以通过终端仿真器(闪存启动,然后使用恢复功能)在设备上进行操作。

句法: flash_image boot /sdcard/boot.img

自我推广时间

我有一个为二进制文件提供GUI的应用程序。在这里找到它。

如果您没有该二进制文件,则可以安装(使用Google二进制文件-您必须先下载它,然后将其复制到该/system/bin文件夹中。

这并非在所有设备上都适用,但这是唯一想到的方法。


如果我了解得很好,终端仿真器只是您在正常模式下启动手机时运行的常规应用程序?操作系统运行时,是否不会在启动闪存时出现问题?
MarioDS

1
@MarioDeSchaepmeester手机在启动时仅使用启动;)
Liam W

必须降级投票,因为flash_image有使用adb shell,从文档复制和调用手机的要求(我可以补充,您未能提供链接!)要求重新安装exec位设置的SDCard(*坏主意),并且需要根,即su,除此之外,与您的应用程序有关的“自我推广”,以欧元为单位,我来自哪里,是6,09欧元,这很昂贵... fastboot是一种规范,CM有其自己的古怪方式,-与fastboot和有什么不同flash_image
t0mm13b 2012年

二进制文件也可以在没有计算机的情况下使用。
利亚姆W

0

可以用TWRP [...]刷新此启动映像吗?

重命名文件boot.emmc.win并将其放置在TWRP/BACKUPS/(创建新文件夹)中。从通常的TWRP菜单恢复备份

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.