Инструменты для разработки

Здесь освещаются пути и тонкости в разработке собственных приложений Dune HD
Ответить
Аватара пользователя
gusav
Сообщения: 18
Зарегистрирован: 09 апр 2020, 17:25

Инструменты для разработки

Сообщение gusav » 21 апр 2020, 16:24

Всем здравствуйте.Может кто-нибудь знает, есть ли какой нибудь рабочий способ вытащить cramfs из 102/303/connect прошивки? На sigmaplayer.com нашел екстрактор - http://www.sigmaplayer.com/filebase.php ... t=c&page=1 , но ссылка недоступна - просить зарегистрироваться или залогиниться, несмотря на то, что я итак залогинен. Может проблема с моей учеткой? Просьба, если у кого есть данный экстрактор поделиться или, если есть учетка на Сигма плеер попробовать скачать. Заранее спасибо.
Dune 301 (150721_0136_B9) Сист.флешка присутствует

Аватара пользователя
Brigadir
Администратор
Сообщения: 1072
Зарегистрирован: 07 янв 2018, 18:28
Откуда: С просторов необъятной
Контактная информация:

Сообщение Brigadir » 21 апр 2020, 19:04

Это можно на самой дюне исполнить:
http://files.dune-hd.com/sdk/doc/html/d ... stem_image
Dune HD Pro 4K (191228_0342_r13)
Dune HD Sky 4K Plus (191228_0342_r13)
Dune HD Base 3D (170519_1351_r11) Сист. флешка присутствует
Dune HD TV-102 (190919_0242_r11) Сист. флешка присутствует

Чтобы получить log-файл плагинов, нужно создать на первом носителе, доступном пользователю (обычно внутренний HDD, или любое другое USB-хранилище при отсутствии внутреннего HDD) папку "dune_plugin_logs". Если вы используете USB-флешку, то отформатируйте ее в FAT32 перед тем, как создать папку для логов. После чего перезагрузите дюну и начните пользоваться плагином, в папке dune_plugin_logs появится файл лога.

Последняя актуальная версия плагина Домашнее ТВ: v3.0b5 (10.05.2020)

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

Аватара пользователя
gusav
Сообщения: 18
Зарегистрирован: 09 апр 2020, 17:25

Сообщение gusav » 21 апр 2020, 19:54

Требуется инструмент для извлечения именно из прошивки, если доступа к Дюне нет.
Dune 301 (150721_0136_B9) Сист.флешка присутствует

Аватара пользователя
gusav
Сообщения: 18
Зарегистрирован: 09 апр 2020, 17:25

Сообщение gusav » 21 апр 2020, 20:43

Задача решена с помощью bash скрипта.

Код: Выделить всё

#!/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
Обратите внимание на необходимость указать имя файла прошивки и размер в байтах.
На решение натолкнула тема http://forum.hdtv.ru/index.php?showtopic=19285 за что автору огромное спасибо)
Dune 301 (150721_0136_B9) Сист.флешка присутствует

Аватара пользователя
Brigadir
Администратор
Сообщения: 1072
Зарегистрирован: 07 янв 2018, 18:28
Откуда: С просторов необъятной
Контактная информация:

Сообщение Brigadir » 21 апр 2020, 21:36

Отлично. Осталось посчитать длину файла в скрипте и реализовать передачу имени файла параметром. Получится универсальный инструмент, легкий в использовании.
Dune HD Pro 4K (191228_0342_r13)
Dune HD Sky 4K Plus (191228_0342_r13)
Dune HD Base 3D (170519_1351_r11) Сист. флешка присутствует
Dune HD TV-102 (190919_0242_r11) Сист. флешка присутствует

Чтобы получить log-файл плагинов, нужно создать на первом носителе, доступном пользователю (обычно внутренний HDD, или любое другое USB-хранилище при отсутствии внутреннего HDD) папку "dune_plugin_logs". Если вы используете USB-флешку, то отформатируйте ее в FAT32 перед тем, как создать папку для логов. После чего перезагрузите дюну и начните пользоваться плагином, в папке dune_plugin_logs появится файл лога.

Последняя актуальная версия плагина Домашнее ТВ: v3.0b5 (10.05.2020)

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

Аватара пользователя
gusav
Сообщения: 18
Зарегистрирован: 09 апр 2020, 17:25

Сообщение gusav » 21 апр 2020, 22:01

Отлично. Осталось посчитать длину файла в скрипте и реализовать передачу имени файла параметром. Получится универсальный инструмент, легкий в использовании.
Без проблем) Имя файла передается через пробел после имени скрипта. Например - ./cramfs_extractor_102 dune_firmware_tv102_190919_0242_r11.dff

Код: Выделить всё

#!/bin/bash
var=22548992
filesize=$(stat -c%s "$1")
mkdir extract
while [ $var -lt $filesize ]
do
dd if=$1 of=extract/file-$var bs=1 skip=$var count=2032
cat extract/file-$var >> tango.cramfs
rm -rf extract/file-$var
var=$(($var+2048))
done
rm -rf extract
Dune 301 (150721_0136_B9) Сист.флешка присутствует

Аватара пользователя
gusav
Сообщения: 18
Зарегистрирован: 09 апр 2020, 17:25

Сообщение gusav » 22 апр 2020, 02:15

Кстати кто знает, что означают цифры в заголовке прошивки в hex редакторе? DUNE FIRMWARE FILE [hdtv_301] format2150721_0136_b 8710195 до этого момента понятно. А вот дальше нет. Я извлек cramfs из прошивки, отредактировал содержащиеся там файлы, запаковал обратно, а прошивка не ставится. Подозреваю что как раз нужно менять что то в данных параметрах. А руками загонять cramfs в /dev/nblock8 каждый раз не хочется.
Dune 301 (150721_0136_B9) Сист.флешка присутствует

Аватара пользователя
gusav
Сообщения: 18
Зарегистрирован: 09 апр 2020, 17:25

Сообщение gusav » 22 апр 2020, 04:35

Задача решилась правильной установкой checksum. Checksum была в заголовке прошивки после размера прошивки в байтах. Как она генерируется, я так и не понял, но у Дюны есть очень информативный /tmp/run/shell.log. Он то мне все и рассказал - и какую я ему контрольную сумму дал, и какую он ожидал от меня получить. В общем после правки контрольной суммы все успешно прошилось.
Dune 301 (150721_0136_B9) Сист.флешка присутствует

Аватара пользователя
Brigadir
Администратор
Сообщения: 1072
Зарегистрирован: 07 янв 2018, 18:28
Откуда: С просторов необъятной
Контактная информация:

Сообщение Brigadir » 22 апр 2020, 06:14

Вряд ли изобретали что-то экзотическое, стандартный crc16 или 32 наверное. Вот как это на баше изобразить не знаю, не силен. Я в баш только с мануалом в руках лезу, и то стараюсь не лезть лишний раз))

Что дальше, если не секрет?
Dune HD Pro 4K (191228_0342_r13)
Dune HD Sky 4K Plus (191228_0342_r13)
Dune HD Base 3D (170519_1351_r11) Сист. флешка присутствует
Dune HD TV-102 (190919_0242_r11) Сист. флешка присутствует

Чтобы получить log-файл плагинов, нужно создать на первом носителе, доступном пользователю (обычно внутренний HDD, или любое другое USB-хранилище при отсутствии внутреннего HDD) папку "dune_plugin_logs". Если вы используете USB-флешку, то отформатируйте ее в FAT32 перед тем, как создать папку для логов. После чего перезагрузите дюну и начните пользоваться плагином, в папке dune_plugin_logs появится файл лога.

Последняя актуальная версия плагина Домашнее ТВ: v3.0b5 (10.05.2020)

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

Аватара пользователя
gusav
Сообщения: 18
Зарегистрирован: 09 апр 2020, 17:25

Сообщение gusav » 22 апр 2020, 07:07

crc32 и md5 проверял - не оно. Дальше кастомизация прошивки, выпиливание ненужных предустановленных плагинов из firmware_ext и тд
Dune 301 (150721_0136_B9) Сист.флешка присутствует

Аватара пользователя
Brigadir
Администратор
Сообщения: 1072
Зарегистрирован: 07 янв 2018, 18:28
Откуда: С просторов необъятной
Контактная информация:

Сообщение Brigadir » 22 апр 2020, 08:40

Контрольная сумма похожа на crc32 или 16, на md5 или любой другой хэш ни разу не похожа. Это на 99% crc. А под виндовс можете портировать? Было бы удобней в разы, чем с этим линуксом.
Dune HD Pro 4K (191228_0342_r13)
Dune HD Sky 4K Plus (191228_0342_r13)
Dune HD Base 3D (170519_1351_r11) Сист. флешка присутствует
Dune HD TV-102 (190919_0242_r11) Сист. флешка присутствует

Чтобы получить log-файл плагинов, нужно создать на первом носителе, доступном пользователю (обычно внутренний HDD, или любое другое USB-хранилище при отсутствии внутреннего HDD) папку "dune_plugin_logs". Если вы используете USB-флешку, то отформатируйте ее в FAT32 перед тем, как создать папку для логов. После чего перезагрузите дюну и начните пользоваться плагином, в папке dune_plugin_logs появится файл лога.

Последняя актуальная версия плагина Домашнее ТВ: v3.0b5 (10.05.2020)

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

Аватара пользователя
gusav
Сообщения: 18
Зарегистрирован: 09 апр 2020, 17:25

Сообщение gusav » 22 апр 2020, 08:58

С Windows сложнее, тк в нем нет аналога линуксового dd - программы для побайтового копирования данных. То есть штатными средствами на коленке написать скрипт не получится. Нужно или искать какое то аналогичное ПО, работающее в silent режиме, или писать, например, на Delphi. Но, и в том, и в другом случае нужен сам Windows, которого у меня нету(
Dune 301 (150721_0136_B9) Сист.флешка присутствует

Аватара пользователя
gusav
Сообщения: 18
Зарегистрирован: 09 апр 2020, 17:25

Сообщение gusav » 22 апр 2020, 09:04

Если Windows 10, то там можно запускать bash-скрипты.

https://itsecforu.ru/2019/07/15/%F0%9F% ... indows-10/
Dune 301 (150721_0136_B9) Сист.флешка присутствует

Аватара пользователя
gusav
Сообщения: 18
Зарегистрирован: 09 апр 2020, 17:25

Сообщение gusav » 22 апр 2020, 09:26

Brigadir писал(а):
22 апр 2020, 06:14
Что дальше, если не секрет?
Да кстати, я портировал dune_api.php из r11 в b9 прошивку. Не думаю, что для использования, например, sel_id или post_action в open_folder() не хватит производительности моей 301 Дюны)
Dune 301 (150721_0136_B9) Сист.флешка присутствует

Аватара пользователя
Brigadir
Администратор
Сообщения: 1072
Зарегистрирован: 07 янв 2018, 18:28
Откуда: С просторов необъятной
Контактная информация:

Сообщение Brigadir » 22 апр 2020, 09:49

gusav писал(а):
22 апр 2020, 09:26
Да кстати, я портировал dune_api.php из r11 в b9 прошивку. Не думаю, что для использования, например, sel_id или post_action в open_folder() не хватит производительности моей 301 Дюны)
Одним портированием не обойтись, сам шелл должен быть обновлен)) Ведь json c параметрами ему отсылаются. Да и сам api - автогенерируемый файл, предполагаю самим шеллом.
Dune HD Pro 4K (191228_0342_r13)
Dune HD Sky 4K Plus (191228_0342_r13)
Dune HD Base 3D (170519_1351_r11) Сист. флешка присутствует
Dune HD TV-102 (190919_0242_r11) Сист. флешка присутствует

Чтобы получить log-файл плагинов, нужно создать на первом носителе, доступном пользователю (обычно внутренний HDD, или любое другое USB-хранилище при отсутствии внутреннего HDD) папку "dune_plugin_logs". Если вы используете USB-флешку, то отформатируйте ее в FAT32 перед тем, как создать папку для логов. После чего перезагрузите дюну и начните пользоваться плагином, в папке dune_plugin_logs появится файл лога.

Последняя актуальная версия плагина Домашнее ТВ: v3.0b5 (10.05.2020)

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

Аватара пользователя
gusav
Сообщения: 18
Зарегистрирован: 09 апр 2020, 17:25

Сообщение gusav » 22 апр 2020, 10:36

Shell без исходников никак не обновить(
Dune 301 (150721_0136_B9) Сист.флешка присутствует

Аватара пользователя
Brigadir
Администратор
Сообщения: 1072
Зарегистрирован: 07 янв 2018, 18:28
Откуда: С просторов необъятной
Контактная информация:

Сообщение Brigadir » 22 апр 2020, 11:04

Ну это понятно. Я к тому что эти подмены ничего не дают, самое главное, ядро так сказать, остается без изменений((
Dune HD Pro 4K (191228_0342_r13)
Dune HD Sky 4K Plus (191228_0342_r13)
Dune HD Base 3D (170519_1351_r11) Сист. флешка присутствует
Dune HD TV-102 (190919_0242_r11) Сист. флешка присутствует

Чтобы получить log-файл плагинов, нужно создать на первом носителе, доступном пользователю (обычно внутренний HDD, или любое другое USB-хранилище при отсутствии внутреннего HDD) папку "dune_plugin_logs". Если вы используете USB-флешку, то отформатируйте ее в FAT32 перед тем, как создать папку для логов. После чего перезагрузите дюну и начните пользоваться плагином, в папке dune_plugin_logs появится файл лога.

Последняя актуальная версия плагина Домашнее ТВ: v3.0b5 (10.05.2020)

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

Ответить