Расширение функционала телевизоров LG и оскал корейского капитализма

:

image
Небольшая заметка о том, как исследовались прошивки для телевизоров LG, о том, что удалось добиться, какие проблемы встретились на пути и как обстоят дела сейчас. О реакции на всё происходящее корпорации LG, решившей попросту перешагивать через законы.

Экскурс в историю вопроса


Началась эта история в уже далеком 2009. Тогда, встав перед проблемой выбора жк телевизора, я, как обычно, засел за изучения предложений рынка, оценки существующих моделей разных производителей, благо гугл помогал и на множестве тематических форумов вовсю велись обсуждения текущего и веяний нового.

Я бы не назвал себя техноманом, но ещё с детства интересовался, что же происходит внутри всяких электронных черных ящиков. Также не причисляю себя к красноглазым линуксоидом, однако уже лет 10 не пользуюсь продуктами компании MS и вполне справляюсь. Уже вдоволь оттюнинговав к тому времени свой asus-wl500gp я понял, что нужна новая жертва экспериментов.

Собственно возможность что-то покрутить внутри нового тв и встала первым приоритетом для его выбора. По этой причине были сразу отброшены неинтересные филипсы, сони и тошибы. На самом деле выбор был не велик — либо samsung с уже тогда известными модификациями из проекта samygo, либо только что появившаяся новая серия жк тв LH от компании LG. Ко всему прочему, эти фирмы сами выпускают себе lcd-матрицы и вполне неплохого качества.

Некоторые пытливые умы уже за несколько месяцев 2009 выявили маленькую особенность всех моделей серии LH — все они были собраны на одной и то же элементной базе, т.е. попросту были абсолютно одинаковы, за исключением, разумеется диагонали и типа матриц. На этом они не остановились и сравнили функционал моделей, оказалось, что в старших была возможность проигрывания HD видео, музыки, просмотра картинок с подключаемых к usb порту дисков, в более младших функционал постепенно скудел. Стало понятно, что это не более чем программное ограничение, которое было успешно снято из «секретного» технологического меню без применения паяльников или каких-либо программных заплаток.

image

На тот момент это было здорово. Купив тв немного младшей модели, я получал абсолютно бесплатно уже готовый и рабочий hd плеер. Выбор был сделан!

Исследования


Что же оказалось внутри нового чёрного ящика? SoC saturn6, а всем управляло ПО с ос linux и проприетарной программой, обеспечивающей пользовательский интерфейс и взаимодействие с сугубо телевизионным железом.

Наверное, первыми людьми, начавшими исследования, были известные ныне на форуме lg-hack.info luca, tester13, keitsi и ещё несколько человек. Стало понятно, что прошивка собрана на распространяемом по лицензии GPL ядре linux, а значит LG обязана предоставить исходники ядра системы.

Что это могло дать? Многие мечтали, что это поможет решить несколько главных проблем всей линейки продуктов lg — во первых эти тв не воспроизводят и даже не пропускают через себя звук в формате DTS, во вторых, все понимали, как было бы здорово подключить их к сети и смотреть фильмы непосредственно с домашних NAS'ов, была ещё так называемая проблема «красных линий», не решенная, к сожалению, до сих пор. Если кратко — то LG, кроме ограничения функционала, в самые младшие модели добавляла особенность — в изображение добавлялись артефакты в виде паразитных цветных линий разных цветов, особенно заметных рядом с красными тонкими линиями, а в целом картинка размазывалась.

Последовал запрос с LG. Переписка дала свой первый результат — первая свободная прошивка openlgtv была создана финским программистом Mikko Karkalo.

image

Она позволяла подключать тв к сети с помощью usb-ethernet адаптера, поддерживала файловые системы, upnp, ssh, монтирование разделов по nfs и cifs. Немного позднее был написан удобный веб интерфейс LGMOD, позднее доработанный фрунцузом arno1.

image

К сожалению, главная программа, которая называется «release», полностью закрыта, а именно она отвечает за вывод изображения на экран, работу с пультом ду, встроенный плеер. Таким образом, решив часть задач, некоторые так и остались нерешенными.

В это время программист под ником jenyavv из Украины подключился к вопросу. Был найден способ изменить некоторые параметры работы проприетарной программы release. Путем модификации значений в некоторых ячейках оперативной памяти у владельцев ТВ из России и Украины появилась возможность смотреть цифровое тв, не меняя свою страну (и язык интерфейса) на заграницу. Стало возможным отключить предпросмотр во встроенном плеере, который очень сильно тормозил работу. На некоторых моделях появилась возможность активировать плеер.

Кроме этого он стряс с LG прошивки под множество моделей. Сама LG, наверное под напором запросов, сделала сайт, где стала публиковать исходные тексты ядра большинства своих тв.

Началась работа по анализу функционирования «release». Оказалось, что он скомпилирован статически с выпускаемой под лицензией lgpl библиотекой uclibc, являющейся ограниченной альтернативой glibc, оптимизированной для встраиваемых систем. Что это могло дать? LG была обязана предоставить объектные файлы для сборки release с любой другой версией uclibc, однако не только этого не делала, но и не афишировала факт использования lgpl библиотек своей программой, ну собственно и не была обязана.

Однако, появилась новая возможность расширить функционал более старых моделей путём объединения объектных файлов из старых и более новых моделей, где к примеру появилась возможность регулировать параметры изображения при проигрывании видео встроенным плеером.

Вот тут LG реально призадумалась, к чему это может привести и мгновенно стала собирать все новые версии release динамически. Кроме всего прочего, отказавшись выдать объектные файлы для старых версий по, попросту перешагнув через закон и соблюдение лицензий. Одновременно с этим один за одним стали закрываться сайты, где имелась какая-то информация с анализом внутреннего устройства тв: был закрыт wiki на sourceforge.net, сайт с вики lgusb.wikispaces.com, сайт разработчика lgmod — lgmod.free.fr. Часть вики была восстановлена на российском хостинге и теперь доступна на openlgtv.org.ru. Но уже сейчас из Вашингтона из одной известной в узких кругах адвокатской конторы поступают письма с требованиями закрыть ресурс. В выходные была dos атака на сервер хостера, на котором в том числе лежит вики.

Позиция lg на 180 градусов отличается от samsung, которая, по меньшей мере не вредит исследователям из samygo. Почему-то lg считает, что ей можно нарушать закон и одновременно предъявлять претензии к законным ресурсам. Просто даже не двойные, а тройные стандарты, верх наглости и паразитирование на работах десятков и сотен людей, по сути, за бесплатно разработавших большую часть ПО тв. По этой проблеме было открыто обсуждение на gpl-violations.org.

В 2010 LG выпускает серии PK/PJ телевизоров, в которых ситуация повторяется. На данный момент на форумах активно исследуются модели LE/LX, а для всей линейки LD уже на днях появилась возможность подключения сетевых ресурсов.
Больше подробностей можно найти на форуме и вики, ссылки на которые даны ниже.

Итоги


Противостоять закрытым технологиям может быть порой не просто, но это того стоит. Борьбу за открытое информационное общество нужно вести на всех фронтах. И каждый, кто может немного поменять мир в лучшую сторону, восстановить справедливость не должен сдаваться и опускать руки. Понятно, что есть много других проблем, особенно в России, но тем не менее…

Список источников

UPD1: 2011-04-11: Появилась OpenLGTV BCM 0.3.0-alpha4. Включена поддержка Yahoo Widgets из северамериканских моделей ТВ LG, и из ТВ Samsung. Можно активировать все возможные Netcast сервисы. В планах редактирование списка прямо из меню ТВ (через встроенный браузер). Подробности на форуме.
UPD1: 2011-04-13: Сегодня товарищ под ником rtokarev явил сообществу разработку OPENRELEASE. Это не новый release, но release «в обертке». На данный момент можно переназначать кнопки пульта, включать/выключать превью в плеере, писать логи. Ждём развития событий… Подробности на форуме.