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


Фотография

Реверс-Инженеринг Программной Начинки Dune


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

#1 LordGenom

LordGenom

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

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

Отправлено 25 July 2019 - 04:43

На досуге в меру своих знаний поковыриваю программные потроха дюны и решил поэтому решил завести темку, где буду делиться интересными находками и заодно задавать вопросы :)

Например, в /firmware/ext_command/cgi-bin/do обнаружились недокументированные команды ip-контроля
light_stop
start_dvbs_scan
start_dvbc_scan
start_dvbt_scan
cancel_dvb_scan
первая даже гуглится, но данных по ней нет ибо упоминается лишь в ченджлоге, по остальным даже упоминаний нет, но название параметров я думаю говорит само за себя :)

Теперь задам вопросы, мб кто уже разбирал их :

1) Для чего предназначен скрипт /config/boot/rc_extension.bash ?
Spoiler
ясно, что это какой-то вспомогательный костыль для ip-контроля, вот только мне непонятно, зачем он стартует /tango3/firmware_ext/plugins/remote-control/bin/dune_rc_extension_mipsel, который зачем-то слушает порт 7777 и к которому приложение для работы с ip-контролем даже не обращается.

2) Какие существуют ключи для процесса shell и где бы про них почитать ? В выхлопе ps нет ничего, но в логах аргументы запуска при перезапуске shell'a проскакивали, вот только эксперементировать без адекватного мана не очень хочется.

3) Выполняются ли какие-либо манипуляции перед power off shutdown'ом дюны (подразумеваются дюны старой сборки) ? Используются ли при этом какие-либо скрипты ? Возможно ли там воткнуть что-то своё, по аналогии с /config/boot ?
Dune HD TV-102 (tv102_150721_0135_b9) Сист.флешка присутствует

#2 LordGenom

LordGenom

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

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

Отправлено 25 July 2019 - 04:58

По первому вопросу всё только что выяснилось - при ковырянии dune_rc_extension_mipsel стало ясно, что этот процес на порту 7777 отвечает за управление мышью
Dune HD TV-102 (tv102_150721_0135_b9) Сист.флешка присутствует

#3 LordGenom

LordGenom

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

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

Отправлено 26 July 2019 - 12:26

Те, у еого 102-е русской сборки, т.е. tv102v2, попробуйте через телнет такой твик для выключения дюны :
touch /tmp/run/power_off
killall shell
на "старых" дюнах после его применения плеер уходит в отключку.
Dune HD TV-102 (tv102_150721_0135_b9) Сист.флешка присутствует

#4 Brigadir

Brigadir

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

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

Отправлено 26 July 2019 - 14:56

Реверс - громко сказано, простое ковыряние в кишочках. Это чтобы сюда заглядывали?

Скрипт загружает модуль ядра.
Выключить дюну можно послав код кнопки выключения тому же /tmp/www/cgi-bin/do
Включать также, но с кодом кнопки включения.

Бинарник shell загружается другим бинарником, это видно в скрипте бута.
Dune HD Pro One 8K Plus (240201_2116_r22)
Dune HD Real Vision 4K (230929_0206_r21)
Dune HD Pro 4K II (230929_0206_r21)
Dune HD Sky 4K Plus (221018_1640_r20)
Dune HD 303D (190919_0242_r11) Сист. флешка присутствует, тестовая
-----------------------------------
Keenetic Giga (KN-1010)

Все мои (и не только) плагины Dune HD
Гранд обзор Dune HD Pro One 8K Plus
Краткий обзор Dune HD Pro 4K II
Краткий обзор Dune HD Neo 4K с картинками

(ЮMoney для благодарностей)

#5 LordGenom

LordGenom

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

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

Отправлено 26 July 2019 - 16:31

Реверс - громко сказано, простое ковыряние в кишочках.

Ну мб :) Просто на большее фантазии не хватило. Вариант "Ковыряние в программных потрохах Dune" показался мне как-то не очень)))

Это чтобы сюда заглядывали?

И это тоже пожалуй ;)

Скрипт загружает модуль ядра.
Выключить дюну можно послав код кнопки выключения тому же /tmp/www/cgi-bin/do
Включать также, но с кодом кнопки включения.

Так там на 102v2 заморочки были именно со стандартной "пультовой" схемой выключения, поэтому через do должна быть та же петрушка. Через несколько нестандартный ход мб и сработает, если там только нет аппаратных изменений

Бинарник shell загружается другим бинарником, это видно в скрипте бута.

Грузится он root'ом, а скрипт bdstart.sh ? Там в потрохах root'a было вроде что-то по поводу shell'a, но конкретно по аргументам данных не было (были лишь те, что и так виднов ps типа first_run, а те, что видно в логе - нет).

***

Возник новый вопрос, /dev/fip0 он отвечает за фронтальную панель или фронтальную панель и светодиод ? Нашёл dsf-ку которая судя по потрохам меняет fip0 на null и тушит его. Если и то и то, то надо бы попробовать, дабы затушить диод.

Гм, а за что отвечает флаг /tmp/run/stop_player ?
Dune HD TV-102 (tv102_150721_0135_b9) Сист.флешка присутствует

#6 Brigadir

Brigadir

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

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

Отправлено 26 July 2019 - 17:02

Так там на 102v2 заморочки были именно со стандартной "пультовой" схемой выключения, поэтому через do должна быть та же петрушка. Через несколько нестандартный ход мб и сработает, если там только нет аппаратных изменений

Из стендбая в стендбай должна работать.

Грузится он root'ом, а скрипт bdstart.sh ?
Там в потрохах root'a было вроде что-то по поводу shell'a, но конкретно по аргументам данных не было (были лишь те, что и так виднов ps типа first_run, а те, что видно в логе - нет).

Наверное, не помню, давно смотрел.
Не все строковые константы можно прочитать блокнотом ;)

Возник новый вопрос, /dev/fip0 он отвечает за фронтальную панель или фронтальную панель и светодиод ? Нашёл dsf-ку которая судя по потрохам меняет fip0 на null и тушит его. Если и то и то, то надо бы попробовать, дабы затушить диод.
Гм, а за что отвечает флаг /tmp/run/stop_player ?

Ну потушите его. Дальше что?
Dune HD Pro One 8K Plus (240201_2116_r22)
Dune HD Real Vision 4K (230929_0206_r21)
Dune HD Pro 4K II (230929_0206_r21)
Dune HD Sky 4K Plus (221018_1640_r20)
Dune HD 303D (190919_0242_r11) Сист. флешка присутствует, тестовая
-----------------------------------
Keenetic Giga (KN-1010)

Все мои (и не только) плагины Dune HD
Гранд обзор Dune HD Pro One 8K Plus
Краткий обзор Dune HD Pro 4K II
Краткий обзор Dune HD Neo 4K с картинками

(ЮMoney для благодарностей)

#7 LordGenom

LordGenom

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

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

Отправлено 27 July 2019 - 05:22

Из стендбая в стендбай должна работать.

Имелось ввиду отключения питания (power_off). Не ждущий режим.

Наверное, не помню, давно смотрел.
Не все строковые константы можно прочитать блокнотом ;)

Ну так я и не блокнотом смотрел ;) Хекс-редактором. Или вы про дизассемблеры ? Я пока до такого не дорос :lol:

Ну потушите его. Дальше что?

Так всё же fip0 отвечает и за светодиод ? Потушу ради того, чтобы потушить, дабы не светил )))
Dune HD TV-102 (tv102_150721_0135_b9) Сист.флешка присутствует

#8 LordGenom

LordGenom

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

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

Отправлено 16 September 2019 - 09:53

В скрипте bdstart.sh, который инициируется при старте дюны есть пара полезных переменных, которые могут помочь при отладке и отлове багов и проблем. Это переменные "LOG_DIR" и "LOG_MAX_FILE_SIZE", которые задают директорию, куда будут писаться логи и их максимальный размер соответственно. Для того чтобы задать LOG_DIR нужно создать файл
/config/log_dir.txt
и задать необходимую директорию (у меня это /D/logs/run, по дефолту это /tmp/run).

Для того чтобы задать "LOG_MAX_FILE_SIZE" нужно создать
/config/log_max_file_size.txt
и задать размер файла в байтах (у меня это 104857600 т.е. 100 мб)

В LOG_DIR после ребута практически без ограничений (ротации) пишутся логи, которые ранее писались в /tmp/run
launch_cmd.log
root.log
shell.log
storage_manager.log
и т.д.
что позволяет при отладке избежать использования каких-либо сторонних средств (типа полноценного tail) в принципе :)
Dune HD TV-102 (tv102_150721_0135_b9) Сист.флешка присутствует