Последние ответы форума
Тема Дата, Время Автор Раздел
Футбол! Расписание прямых трансляций 21.11.2024, 11:14 satvitek Новости-ТВ (Самые-свежие)
Читать
IPTV плейлисты других стран мира 21.11.2024, 11:13 konn1j Бесплатные плейлисты IPTV
Читать
СПОРТИВНЫЕ ТРАНСЛЯЦИИ НА SAT-TV 21.11.2024, 11:13 satvitek Новости-ТВ (Самые-свежие)
Читать
Webstream плейлисты 21.11.2024, 10:34 Vilem Бесплатные плейлисты IPTV
Читать
Плейлисты IPTV (общая тема) 21.11.2024, 07:18 master-1974 Бесплатные плейлисты IPTV
Читать
Playlistfinder 21.11.2024, 00:21 konn1j Программы для IPTV, сканеры портов, сканеры сетей, сканеры IP адресов
Читать
Ростелеком (Регионы России>Урал,ЦФО,Д... 20.11.2024, 21:39 konn1j Бесплатные плейлисты IPTV
Читать
  • Страница 1 из 1
  • 1
Модератор форума: Buldozer34, serjio1990, AlexanderA, InCite, dima90_25  
Как распаковать imageupdate MAG 250/254
konverДата: Среда, 12.08.2015, 00:12 | Сообщение # 1
Иногда требуется распаковать свой, или не свой smile Imageupdate (прошивку)

Так вот, если вдруг вам это понадобилось по каким либо причинам, то вооружайтесь hex редактором и линуксой smile

Сама структура прошивки там простая.
В заголовке все подсказки есть smile
Вот пример:

STB Model:MAG250
Date:Wed Jun 10 01:58:33 BST 2015
Image Version:218
Image Description:Test
VerUpdateAPI:2
Kernel size:3334307
Image  size:61797479
Env size:155 65312814
Userfs Version:1
Userfs size:144 65313232
SecondBoot size:162683 65313639
Logotype  size:39488 65476585
Start data...

Например, раз нам нужен rootfs, то в заголовке ищем "Image". Для него дается только размер, в
отличие от env, userfs и secondboot, поэтому смещение посчитаем сами. Нам нужно
сложить длину заголовка и длину Kernel, благо kernel и rootfs идут друг за
дружкой )
Область, где размещается kernel идет после "Start data..." и символа перноса строки 0х0А. К тому же все это дело на файловой системе Jffs2,
поэтому нужные нам блоки начинаются с hex последовательности 85 19, которые как
раз идут после "Start data..." и символа переноса строки 0х0А. В моем примере
kernel начинается с адреса 108h (число дано в 16-ой системе счисления, в 10-й
это число 264). К этому числу прибавляем длину области Kernel - 3 334 307 байт.
Получаем число 3 334 571 или в hex 32 E1 AB. По этому смещению будет находиться
начало блока Image, это проверяется наличием первого байта ФС jffs2 0х85 (после
него всегда идет 0х19, если вы верно нашли смещение в файле). Длина блока Image
указана в заголовке - это 61 797 479 байт. Я пользовался hex редактором winhex,
поэтому через меню выделил блок данных указав начало блока 32 E1 AB, а конец
блока находится тоже легко, к адресу начала блока прибавьте длину блока
(переведя с 10-й в 16-ю). После чего можно выделенный блок скопировать в
отдельный файл. Вот мы и получили наш Image.
Ну, а чтобы получить rootfs, тут уже танцы с бубнами ))))

Далее этот файлик надо в Ubuntu, Debian или любой другой nix для вас удобной системе смонтировать как блочное
устройство.
На примере Ubuntu будет выглядеть так.
Убунте для работы с файловой системой jffs2 нужен пакет mtd-utils, ставим его и выполняем
команды:
modprobe jffs2
modprobe mtdram total_size=64536 erase_size=16
modprobe mtdchar
mknod /dev/mtdblock0 b 31 0
modprobe mtdblock
losetup -o 16 /dev/loop0 /home/kikoz/Image
dd if=/dev/loop0 of=/dev/mtdblock0
losetup -d /dev/loop0
mkdir /mnt/rootfs
mount -t jffs2 /dev/mtdblock0 /mnt/rootfs

и вуаля в папке /mnt/rootfs имеем так необходимый нам rootfs в нормальном виде smile Там уже можете
его сжать и хранить у себя для дальнейшего использования.

работу можем закончить так:
umount /mnt/rootfs
rmmod mtdblock
rmmod mtdram
rmmod jffs2

Способ подключения образа в jffs2 взят отсюда http://www.zaurus.ru/board/viewtopic.php?t=53401.

Более простой и легкий способ я не искал, но может быть он и существует.

Представленая информация только для учебных и ознакомительных целей!

Удачи Вам!


Сообщение отредактировал konver - Среда, 12.08.2015, 00:16

 
Поделиться с друзьями:
  • Страница 1 из 1
  • 1
Поиск: