Прошить boot.img без использования fastboot USB

10

Так что я недавно рутировал свой телефон и попробовал ROM или два. Мне очень удобно, что вы можете использовать TWRP recovery для установки другого ПЗУ с SD-карты, вам не нужно подключать его к ПК.

Тем не менее, на моем устройстве (HTC One S) мне нужно также перепрограммировать разные файлы boot.img для каждого ПЗУ, поэтому мне все равно нужно подключить телефон к ПК для переключения ПЗУ. Если я этого не сделаю, он просто застревает на экране загрузки. Тогда я должен использовать команду

fastboot flash boot boot.img

из папки, где находится boot.img.

Можно ли прошить этот загрузочный образ с помощью TWRP или любым другим способом без использования fastboot через USB?

MarioDS
источник

Ответы:

10

Что нужно сделать, это связать boot.img и создать новый zip-файл, подходящий для прошивки через ClockworkMod или TWRP.

Предварительные условия :

  • среда Linux, в которой установлены обычные пакеты разработки, такие как Java. ( Это может также относиться к другим платформам, но будьте осторожны, чтобы в приведенных здесь инструкциях с указанием пути, использованного ниже, использовалась косая черта /, поэтому переверните ее, чтобы она стала обратной косой чертой, \особенно для среды Windows! )
  • Установлен инструмент командной строки adb.
  • `testsign.jar» инструмент для подписи файла почтового индекса , так что восстановление может пройти проверку подлинности и убедитесь , что он является действительным архив в противном случае восстановление будет сообщать о коррумпированном архиве или аналогичном.
  • 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! :)");

Помните: не смущайтесь здесь, скрипт обновления, как показано, должен быть оставлен в покое и как есть, поэтому не пытайтесь перевернуть прямой слеш на обратный слеш, если вы делаете это в среде 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/и вручную зайти в recovery и указать тот zip-архив (т.е. my_custom_flashable_boot_signed.zip ), в котором он выполнит для вас перепрошивку.

t0mm13b
источник
Хорошо, я люблю создавать вещи сам, так что отличные инструкции. Дело не в том, что мне для этого понадобится мой компьютер, потому что я могу просто получить сменные загрузочные молнии для всех моих ПЗУ в папке на моей SD-карте, что приведет к ситуации, которую я хотел.
MarioDS
2

Если у вас есть flash_imageбинарный файл, то вы можете сделать это на устройстве через эмулятор терминала (флэш-загрузка, затем все остальное с помощью восстановления).

Синтаксис: flash_image boot /sdcard/boot.img

Время саморекламы

У меня есть приложение, которое предоставляет графический интерфейс для двоичного файла. Найдите это здесь .

Если у вас нет этого двоичного файла, его можно установить (Google его - вы должны загрузить его, а затем скопировать его в /system/binпапку.

Это работает не на всех устройствах, но это единственный способ, который приходит на ум.

Лиам W
источник
Если я правильно понимаю, эмулятор терминала - это просто обычное приложение, которое вы запускаете, когда ваш телефон загружается в обычном режиме? Не будет ли проблем с перепрошивкой загрузки во время работы ОС?
MarioDS
1
@MarioDeSchaepmeester Телефон загружается только во время загрузки;)
Liam W
Пришлось downvote ее, как flash_imageесть требование , чтобы скопировать и вызвать из телефонной трубки , используя adb shell, документацию ( могу я добавляю, вы не в состоянии обеспечить Linky!) Просим перемонтировать SDCard с ехесом битом (* плохая идея ) и требует root, то есть su, в дополнение к этому, «самореклама» по отношению к вашему приложению, в евро, откуда я родом, составляет 6,09 евро, что дорого… fastboot - это норма, у CM есть свои причудливые способы. - а чем отличается fastbootа flash_image?
t0mm13b
Также бинарный файл можно использовать без компьютера.
Лиам W
0

Можно ли прошить этот загрузочный образ с помощью TWRP [...]?

переименуйте файл boot.emmc.win и поместите его в TWRP/BACKUPS/(создайте новую папку). восстановить резервную копию из обычного меню TWRP

alecxs
источник