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


Фотография

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


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

#1 LordGenom

LordGenom

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

  • Пользователи
  • PipPipPipPipPipPipPip
  • 2277 сообщений
  • 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
  • 159 сообщений
  • 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
  • 2277 сообщений
  • 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
  • 504 сообщений
  • Gender:Male
  • Location:Германия

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

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


 // 303D (190919_0242_r11) // 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
  • 2277 сообщений
  • 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
  • 2277 сообщений
  • Gender:Male

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

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

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


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