Перейти к содержимому


Фотография

Как Извлечь Cramfs Из Dff-Файла Прошивки ?


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 12

#1 LordGenom

LordGenom

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 2298 сообщений
  • Gender:Male

Отправлено 24 July 2019 - 13:24

Понадобилось поглядеть потроха старых и новых (относительно установленной у меня)прошивок (скрипты, бинари, скины и т.д.) без накатывания оных на дюну. Анализ dff-файла показал, что в него зашита cramfs, которая перемашана с двоичными данными (вот только неясно необходимость ли это или сделано намеренно), которые рушат всю структуру контейнера. После каждых 2032 байт идут 16 байт "лишних" данных с нарастающим индексом

00 10 00 00 01 01 00 00 01 00 00 00 F0 07 00 00
00 10 00 00 01 01 00 00 02 00 00 00 F0 07 00 00

***

00 10 00 00 01 01 00 00 10 00 00 00 F0 07 00 00
00 10 00 00 01 01 00 00 11 00 00 00 F0 07 00 00

которые включены на всём протяжении контейнера. Ближе к концу файла данные "метки" слегка меняют свой вид и возможно, расположение - этот момент я не прорабатывал.

Пока думаю над алгоритмом очистки cramfs-контейнера, решил поинтересоваться - существуют ли готовые решения для распаковки/запаковки dff ? Для dsf тулзы есть, мб есть и для dff ?

p.s. Если не затруднит - поделитесь /app/tango.cramfs от b6 и r11 102-й (не v2 и не 102p), если есть в наличии :)
Dune HD TV-102 (tv102_150721_0135_b9) Сист.флешка присутствует

#2 cup20

cup20

    Комментатор-активист

  • Пользователи
  • PipPipPipPip
  • 182 сообщений
  • Gender:Male

Отправлено 25 July 2019 - 09:19

Понадобилось поглядеть потроха старых и новых (относительно установленной у меня)прошивок (скрипты, бинари, скины и т.д.) без накатывания оных на дюну. Анализ dff-файла показал, что в него зашита cramfs, которая перемашана с двоичными данными (вот только неясно необходимость ли это или сделано намеренно), которые рушат всю структуру контейнера. После каждых 2032 байт идут 16 байт "лишних" данных с нарастающим индексомкоторые включены на всём протяжении контейнера. Ближе к концу файла данные "метки" слегка меняют свой вид и возможно, расположение - этот момент я не прорабатывал.

Пока думаю над алгоритмом очистки cramfs-контейнера, решил поинтересоваться - существуют ли готовые решения для распаковки/запаковки dff ? Для dsf тулзы есть, мб есть и для dff ?

p.s. Если не затруднит - поделитесь /app/tango.cramfs от b6 и r11 102-й (не v2 и не 102p), если есть в наличии :)

И на чисто 102-й и 102v2 (на обеих была b9) извлекал коммандой cp /app/tango.cramfs /D/tango.cramfs согласно документации. При сравнении с файлом прошивки видно его местонахождение, но как брать с самого файла прошивки не знаю - вопрос этот поднимался давно.



#3 LordGenom

LordGenom

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 2298 сообщений
  • Gender:Male

Отправлено 25 July 2019 - 09:36

И на чисто 102-й и 102v2 (на обеих b9) извлекал коммандой cp /app/tango.cramfs /D/tango.cramfs согласно документации

Одно дело скопировать с дюны, другое дело - извлечь из dff. Я не хочу лишний раз насиловать флеш переустановками прошивок далеко не молодой дюны, потому и решил попросить контейнеры у форумчан, у кого он есть в наличии, дабы использовать в качестве эталона при распаковке dff.
Dune HD TV-102 (tv102_150721_0135_b9) Сист.флешка присутствует

#4 miouser

miouser

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 561 сообщений
  • Gender:Male
  • Location:Германия

Отправлено 25 July 2019 - 22:37

ответил на сигмаплеере  ;)


// TV-204 (200207_1901_r11) // SoloLite (190919_0242_r11) // Neo4k+ (200415_0403_r13) // 
 
OTTClub - SovokTV - Shara-TV - IP-TV.club - Еdеm TV - iptv.online - iTV - Sharavoz.tv


#5 gusav

gusav

    Пользователь

  • Пользователи
  • PipPip
  • 25 сообщений

Отправлено 21 April 2020 - 21:44

#!/bin/bash
var=22548992
mkdir extract
touch cramfs
while [ $var -lt 128190976 ] #размер прошивки в байтах
do
dd if=file_in of=extract/file-$var bs=1 skip=$var count=2032 #file_in - имя файла прошивки
cat cramfs extract/file-$var >> cramfs
rm -rf extract/file-$var
var=$(($var+2048))
done
rm -rf extract

Если еще актуально


Dune 301 (150721_0136_B9) Сист.флешка присутствует


#6 LordGenom

LordGenom

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 2298 сообщений
  • Gender:Male

Отправлено 22 April 2020 - 02:34

Если еще актуально

Актуально :)

И я даже сваял тогда что-то похожее, только у меня использовался for вместо while, плюс там нужна ручная обрезка до начала cramfs через HEX, плюс я не выяснял, что там с cramfs ближе к концу файла т.к. метки меняют свой характер и их надо обрабатывать по иному, иначе будет нарушена структура контейнера, плюс весь процесс по причине однопоточности (вычёрпывание ванной чайной ложкой :lol:) может занимать часов 6-8, а то и больше. Поэтому я свернул все работы и отложил проект до лучших времён.
Dune HD TV-102 (tv102_150721_0135_b9) Сист.флешка присутствует

#7 LordGenom

LordGenom

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 2298 сообщений
  • Gender:Male

Отправлено 07 May 2020 - 03:46

На сигма-форуме появился новый билд (V3.03a (2020-02-24) ) утилиты extract_smp86xx. Теперь можно распаковывать под win без заморочек. Респект разработчику.

Прикрепленные файлы


Dune HD TV-102 (tv102_150721_0135_b9) Сист.флешка присутствует

#8 sleik

sleik

    Пользователь

  • Пользователи
  • PipPip
  • 18 сообщений
  • Gender:Male

Отправлено 16 August 2020 - 23:53

Может кто-то знает, как потом это все запаковывать?



#9 miouser

miouser

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 561 сообщений
  • Gender:Male
  • Location:Германия

Отправлено 17 August 2020 - 01:08

@sleik

наверно как то так

// TV-204 (200207_1901_r11) // SoloLite (190919_0242_r11) // Neo4k+ (200415_0403_r13) // 
 
OTTClub - SovokTV - Shara-TV - IP-TV.club - Еdеm TV - iptv.online - iTV - Sharavoz.tv


#10 sleik

sleik

    Пользователь

  • Пользователи
  • PipPip
  • 18 сообщений
  • Gender:Male

Отправлено 17 August 2020 - 07:36

Эту инструкцию я читал наверное лет 5 назад(если не больше). В то время она мне очень помогла. Только это все не о том. Как собрать образ прошивки, файлы которые мы извлекли с помощью утилиты что была выше?



#11 LordGenom

LordGenom

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 2298 сообщений
  • Gender:Male

Отправлено 17 August 2020 - 10:59

Эту инструкцию я читал наверное лет 5 назад(если не больше). В то время она мне очень помогла. Только это все не о том. Как собрать образ прошивки, файлы которые мы извлекли с помощью утилиты что была выше?

Пока никак. Разработчик обещал реализовать обратную сборку когда-нибудь в будущем. Зарегайтесь, поинтересуйтесь. Может чего изменилось.

 

При "ручной" пересборке основная проблема это забивка контейнера спустя каждые 2032 байта 16 байтами двоичных данных, распложенных по так до конца и неясному алгоритму (мне), плюс генерация контрольной суммы и её встраивание в прошивку. Для 101/301 пересобрать прошивку реально т.к. там нет этой набивки, но сам я этим не занимался и информация у меня лишь из вторых рук.


Dune HD TV-102 (tv102_150721_0135_b9) Сист.флешка присутствует

#12 Brigadir

Brigadir

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 4422 сообщений
  • Gender:Male
  • Location:Russia

Отправлено 17 August 2020 - 14:10

16 байтами двоичных данных

 

32 если верить. Вроде же только индекс инкременируется? Интересно насколько отличаются данные у разных прошивок.


Краткий обзор Pro 4K II
Актуальная версия плагина Домашнее ТВ: v3.0b6 (06.08.2020)
Все мои (и не только) плагины Dune HD

Dune HD Pro 4K II (200710_1329_r15)
Dune HD Pro 4K (200415_0403_r13)
Dune HD Sky 4K Plus (200415_0403_r13)
Dune HD Base 3D (190919_0242_r11) Сист. флешка присутствует
Dune HD TV-102 (190919_0242_r11) Тестовая
Dune HD TV-102 (150721_0136_b9) Тестовая

Отблагодарить автора (Yandex-деньги)

#13 LordGenom

LordGenom

    Маэстро комментариев

  • Пользователи
  • PipPipPipPipPipPipPip
  • 2298 сообщений
  • Gender:Male

Отправлено 18 August 2020 - 02:02

32 если верить.

Да, 32. Просто я считал первый блок не изменяемых данных до индекса, а это 16 байт, вот цифра в голове и засела :/ Пардон.

Вроде же только индекс инкременируется?

ХЗ. Знаю лишь только то, что "набивка" данных в начале контейнера имеет один формат, а ближе к концу - другой.

Интересно насколько отличаются данные у разных прошивок.

ХЗ. Не изучал данный вопрос :/
Dune HD TV-102 (tv102_150721_0135_b9) Сист.флешка присутствует