Разбирем заводскую прошивку по косточкам:
Слив дампы с mtd0,1,2,3,4,5,6,7 и сравнив с тем, что нам дает производитель имеем следующее.
Прошивки, что нам дает производитель, как мы знаем бывают 3-х видов, вот их внутренний состав:
Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Почитав статью о перепрошивке ресиверов в разные модели, разобрался в структуре самого файла *.isd.
Наш файл фактически состоит из трех частей: 1 - размер и контрольная сумма заголовка, 2 - заголовок (в нем описаны размер прошивки, контрольная сумма прошивки, размеры файлов в прошивке, "пункт назначения", версия прошивки и модель ресивера, 3 - сама прошивка ,состоящая из указанных выше mtd без каких либо разрывов).
Далее приведены адреса значенией в файле и сами значения:
Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Итак можно легко собрать свою прошивку (для примера allinone):
1) Имея дампы необходимых mtd0,1,2 с ресивера (хвосты с нулями в дампах следует отрезать, чтобы не увеличивать размер итогового файла)
Вариант 1: Скормить это все FW Tool ->>> тамВариант 2: ручками
- Запомнить их размеры в байтах и перевести в HEX
- Взять HEX редактор, соединить их между собой в том порядке в котором я указал. Начало следующего файла к концу предыдущего без разрывов и лишних символов
- Запомнить размер полученного файла (в результате слияния по п.3) и перевести в HEX
- Посчитать CRC32 этого файла.
- Взять заголовок от любой заводской прошивки, соединить его с файлом из п.3 в HEX редакторе
- В полученном файле исправить: модель, если хотите влить в клон-ресивер, CRC32 из п.5, размер файлов mtd0,1,2 в составе полученной прошивки (см, коды выше)
- Посчитать CRC32 полученного заголовка 00000008-00000173
- Исправить в полученном файле CRC32 заголовка
- Переименовать полученный файл в allinone_XXX.isd (XXX - любой произвольный текст)
P.S.: Важная информация, не забываем про обратный порядок байт. Если в файле вы прочитали по адресу 00000000-0000003: 74 01 00 00, то воспринимать его следует как 00 00 01 74 - что при переводе в Dec даст 372. Соответственно и вносить посчитанные значения следует меняя байты местами. Подробнее -> тут <-Добавлено 22 декабря | 2011г. | 22:10:55 Полезно иногда поковырять то что дает нам производитель.
Я разобрал на части прошивки начиная от 20.25 и заканчивая 21.38 и сравнил отдельные части
Интересно то, что kernel (vmlinux) все это время не менялся
Но более всего поразило отличие loader_04.34 от loader_04.42, которое заключается в смене картинки и ВСЕ!!!, то есть для новых прошивок наличии лоадера 04.42 не обязательно!