LINUX.ORG.RU

Распаковка mipsel boot.img с ядром и рамдиском

 , mipsel


0

1

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

Я его вычитываю, копирую себе. file показывает что это gzip архив. Распаковываю, распаковывается, file показывает что это mipsel32 ELF. (ядро вначале?) Вся конструкция весит 27 мегабайт в распакованном виде, так что там явно кроме ядра еще и рамдиск.

Андроидские тулзы не работают. Какие идеи как это все разобрать и собрать взад?

★★★★★

Какие идеи как это все разобрать

binwalk?

и собрать взад?

как-то натыкался на детальное* низкоуровневое** описание начальной*** фазы старта linux, типа «загрузчик передает управление ядру. в ядре сначала…» (но мне надо было что-то другое) было там и описание сборки образа «ядро+фс_для_старта». наверное, надо какой-то тулчейн для этой железки искать (какими-то инструментами же текущий образ сделали).

anonymous
()
Ответ на: комментарий от anonymous

было там и описание сборки образа «ядро+фс_для_старта»

CONFIG_INITRAMFS_SOURCE это было, скорее всего. Оно initrd подтягивает в отдельную секцию и ставит символы вокруг, чтобы его можно было найти при старте.

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

может быть, а вообще статья была в стиле «лёгким движением руки»

anonymous
()
Ответ на: комментарий от anonymous

binwalk?

$ binwalk extracted_cur_ri.img 

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             ELF, 32-bit LSB executable, MIPS, version 1 (SYSV)
5042192       0x4CF010        Linux kernel version "3.3.8-3.2-XXXXX (wrevens@build7) (gcc version 4.5.4 (crosstool-NG hg+unknown-20150319.134551) ) #1 SMP Tue Mar 29 16:53:08 BST 2"
5148160       0x4E8E00        CRC32 polynomial table, little endian
5733232       0x577B70        Neighborly text, "NeighborSolicits/ipv6/inet6_hashtables.c"
5733252       0x577B84        Neighborly text, "NeighborAdvertisementses.c"
5930732       0x5A7EEC        YAFFS filesystem
6280252       0x5FD43C        gzip compressed data, maximum compression, from Unix, NULL date (1970-01-01 00:00:00)
13046144      0xC71180        Cisco IOS microcode, for ""

бинго! напрасно вы столько лет скрывали от меня такую годную утилиту. Алсо, про yaffs я тоже только сейчас узнал. Спасибо большое, это уже большое дело

pihter ★★★★★
() автор топика
Ответ на: комментарий от anonymous

наверное, надо какой-то тулчейн для этой железки искать (какими-то инструментами же текущий образ сделали).

тулчейн у меня есть. Правда для основной прошивки, а не для вот этой вот рекавери, но я думаю что можно раскурить

pihter ★★★★★
() автор топика
Ответ на: комментарий от apt_install_lrzsz

А что за железка-то?

Этого я сказать не могу, извини

Я правильно понимаю, что её производитель SDK тебе не даст?

Не правильно: сдк у меня есть, но для основной прошивки и многое там без исходников. Рекавери прошивку предлагается включать в основную и тогда при обновлении она запишет и раздел восстановления

pihter ★★★★★
() автор топика
Ответ на: комментарий от pihter

YAFFS filesystem

ЕСЛИ Я ПРАВИЛЬНО ПОМНЮ этим летом уже была тема с упоминанием этой ФС и ТС посоветовали какую-то программу «джеферсон-с-гитхаба» – ему помогло.

anonymous
()
Ответ на: комментарий от anonymous

а я уже распаковал бинволком и там вторая часть (после ядра) детектируется как cpio архив, а уж оно распаковывается на утра. Теперь надо только понедельника дождаться, чтоб попробовать запаковать и засунуть взад не железяку. Выглядит правдоподобно, посмотрим, что же пойдет не так )

pihter ★★★★★
() автор топика
Ответ на: комментарий от pihter

понедельник начинается в субботу

там вторая часть (после ядра) детектируется как cpio архив

точно как в упомянутом мной мануале )

anonymous
()
Ответ на: понедельник начинается в субботу от anonymous

понедельник начинается в субботу

сечешь )

а ты тот самый анаон кто бинволк присоветовал? ты один всю тему бел или вас тут больше? есть ли для регистранта способ отличить одного ананона от другого хотя бы в рамках треда?

pihter ★★★★★
() автор топика
Ответ на: комментарий от pihter

а ты тот самый анаон кто бинволк присоветовал?

да, тот самый.

ты один всю тему бел или вас тут больше?

больше одного. коммент про телепатов не мой. может и другие были.

есть ли для регистранта способ отличить одного ананона от другого хотя бы в рамках треда?

интуиция, если ты не модератор.

если в треде завязывается диалог «анон-регистант», то неизбежно подтягиваются подражатели/провакаторы/тролли/… вспомни хотя бы «феномен» анона Владимира – у него свой стиль общения, но иногда понять который из «Владимиров» возможно настоящий «тот самый» просто не реально.

anonymous
()
27 июня 2022 г.
Ответ на: комментарий от anonymous

С Владимиром смешно вышло, за то ЛОР и любим

pihter ★★★★★
() автор топика
Ответ на: комментарий от etwrq

нет, но проверяет подпись )

если бы ты это написал раньше – сэкономил бы мне кучу времени, но лишил бы увлекательного приключения

в итоге я все сделал, прошивку разобрал, что надо поменял, собрал взад учитывая все сдвиги, а эта срань написала что я не буду это грузить потому что подпись неверна.

pihter ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.