Привет всем! Меня зовут Егор Гаврилов. И я сегодня покажу все секреты того, на чём основаны прошивки приёмников Триколора, и как всё внутри основано.

Если что, я не являюсь сотрудником Триколора, или каких-либо компаний группы GS Group (особенно General Satellite и GS Labs). Всё, что я накопал - либо из открытых источников, либо выявлены путём обычного ковыряния файлов прошивки.

Сначала разберёмся, какую прошивку взять для реверса? Правильно - которые были недавно выпущены для свежего оборудования! Для примера я взял файл прошивки для модели GS B622L (GS B622L вер. 5.11.113, GS1 вер. 0.0.245), которая использует самую свежую основу.

Часть 1: ковыряем прошивку

Судя по всему, система использует в качестве основы обычное ядро Linux, библиотеки GNU, но с использованием busybox вместо coreutils и bash. Для отображения графики используется Wayland, а для звука — обычная ALSA. Последнее чем‑то напоминает LG webOS, кстати.

Тут, судя по всему, обычный Wayland.
Тут, судя по всему, обычный Wayland.
Тут у нас Busybox...
Тут у нас Busybox...
В файле argile-zapper, скорее всего, находится основная часть ОС. Как я понял, это обычный ELF-файл, а так как я не умею в асм, то я не смогу посмотреть, что там.
В файле argile-zapper, скорее всего, находится основная часть ОС. Как я понял, это обычный ELF-файл, а так как я не умею в асм, то я не смогу посмотреть, что там.
Ммм, Glibc...
Ммм, Glibc...

Часть 2: SDK...

Да, у этой системы есть даже свой SDK. Причём, кстати, доступный публично. Судя по всему, тут предполагается использовать QML для написания приложений для системы. Причём в ранних версиях прошивок для приёмников Триколора на базе этой системы можно было невозбранно установить какое‑нибудь homebrew (вот пример). Но потом эту фичу прикрыли, и теперь можно ставить приложения только в специальный эмулятор от GS.

Гайд от разрабов на замедлённом сайте (благо есть способы, как эту проблему решить)...
Гайд от разрабов на замедлённом сайте (благо есть способы, как эту проблему решить)...
А вот и документация...
А вот и документация...
А вот и предполагаемая target-платформа...
А вот и предполагаемая target-платформа...
А вот как ставится тот самый эмуль от GS... Да, это сделано через Docker.
А вот как ставится тот самый эмуль от GS... Да, это сделано через Docker.

Итоги

По сути, StingrayTV - это обычный Линукс со своими приколами. Однако я не смог увидеть большую часть прошивки, так как оно упаковано в отдельный бинарник, который требует для меня изучения ассемблера для ARM.

Мой GitHub

Комментарии (18)