Мечтая о новом телевизоре читаю тему: http://forum.ixbt.com/topic.cgi?id=62:15456
Хочется модельку типа 46B652, чтобы был DLNA и можно было на фиг убрать комп-который-типа-медиа-центр. Пусть даже глюки есть при чтении файлов… Но не суть. Суть в том, что в телевизоре — Linux и значить можно/нужно все это ковырять. Хотя телевизора еще нет, но в поисках того, как бы покачественнее поотлынивать от подготовки к поступлению в магистратуру, зашел в дебри Самсунговского сайта и скачал последнюю прошивку (ver.T-CHL7DEUC-2001.0), чтобы посмотреть, как это вообще со стороны выглядит. Выглядит как несколько файликов — образы (appdata.img.enc и exe.img.enc) и, судя по всему, загрузчики этих самых образов (ELF’овские бинарники снаружи, а смотреть внутри было неинтересно). Образы — зашифрованы, но шифрование — обычный XOR со строкой. Какой в нем смысл — загадка, ведь простой человек все равно не сможет с этими образами ничего сделать, а для имеющего хоть минимальный опыт в реверсинге, XOR поверх файлов — это какое-то неуважение и издевательство. Особенно учитывая то, что «пароль» считывается просто глядя на содержимое файлов — как и полагается для типичных image’ей — в них полно нулей, поверх который, будучи отXORенным пароль лежит открытым текстом. 🙂 Пароль — T-CHL7DEUC.
Поискал в интернете — найти простой программки для разXORивания (чтобы тупо брала строку и проходилась ей по всему файлу) не смог. Написал сам на VB.NET, благо это единственный desktop’ный язык, на котором я могу что-то сделать. 🙂
РазXORил образы. appdata — SquashFS, exe — FAT16. Почему так? Никогда не видел этого на Линуксовых девайсах, ибо априори лишено смысла. Но так есть. В SquashFS всякая фигня типа подготовленных сеток каналов для стран и картинок интерфейса. Самое интересное — виджеты и весь их API. Даже документации не надо — все прилично откомментировано и много примеров. Пиши — не хочу. В FAT16 же наоборот — хардварные библиотеки (so’шки), телевизионный модуль для ядра Линукса (samdrv.ko), всякие EDID’ы для DCC и здоровые файл exeDSP (ELF), который запускается из прилагающегося rc.local. Судя по названию — не иначе, как что-то обслуживающее встроенный медийный процессор.
Какие выводы в целом? Самсунг не стал доверять пользователям обновлять все до самых корней. Очевидно, что и ядро, и загрузчик все время остаются теми же. Из обновляемой прошивки подгружаются только модули ядра и библиотеки. С одной стороны — очень правильно. Уверен, что в случае убийства телевизора прошивкой, к нему можно будет достучаться по банальной последовательной консоли. С другой стороны, это значит, что базовые вещи — загрузчик и ядро — нужно делать сразу такими, чтобы возможность из обновлять даже не потребовалась за время срока поддержки девайса.
Что со всем этим делать дальше — ХЗ. Просто расковырял для самоудовлетворения. Реальный результат только один — написал программку для быстрого разXORивания. Пригодится еще…
Для захода внутрь образа FAT16 использовал файл-менеджер Altap Salamander. SquashFS поленился копировать в Линуксовую виртуальную машину и тупо разжал через скомпилированные под cygwin squashfs-tools. Они вместе с программкой для разXORирвания — во вложении.