Как распаковать Kernel.img при помощи скрипта mkboot


Когда я вчера писал инструкцию по установке Linux на Amlogic S905 Android TV вчера, я столкнулся с проблемой извлечения kernel.img которую я нашёл в Android прошивке, Но Google мне не помог пока я не нашёл mkboot в инструментах mkbootimg.

Но сначала давайте посмотрим, как создается kernel.img Google предоставляет сценарий на Python под названием mkbootimg, что совмещает образ ядра (Е, .g. ZImage), с корневым файловым / электронным диском и деревом устройств (DTB) файл командной строки выглядит как:

Тем не менее компания AFAIK не обеспечивает сценарий «unmkbootimg» , и mkbootimg может быть использован только для создания kernel.img, его невозможно декомпилировать. Это работает для kernel.img и recovery.img. Давайте получим необходимые файлы:

mkboot является Bash скриптом так, что мы можем использовать его сразу:

Его можно использовать как для распаковки так и архивирования kernel.img в / из каталога вывода. Давайте запустим команду к самому файлу kernel.img:

Сценарий действительно декомпилирует kernel.img с ядром, в электронный диск, и second.img это файл DTB. img_info содержит информацию, показанную во время извлечения

second.img и second.img.tmp отличаются по размеру, так что я проверил их через DTC, чтобы получить читаемый файл дерева устройств и в результате файлы оказались идентичны:

Таким образом, временные файлы имеют какое-то дополнение, необходимое для создания second.img.
Теоритически вы можете изменить файлы ядра, randisk или дерево устройств, теперь давайте всё упакуем:

Но пока это ещё не работает так как нам надо:

Если мы посмотрим на первую команду ./mkbootimg , мы можем увидеть некоторые отличия в декомпиляции образа, так что я изменил img_info по первой командной строке, с базой = 0, = 0x01080000 kernel_offset и ramdisk_offset = 0x01000000, и все получилось:

Благодарим сайт Cnx-software.com за предоставленную информацию.

Оригинал статьи тут

Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.