Компиляция WGT пакета Lampa для Samsung Tizen через CLI
Пошаговая инструкция по сборке пакета WGT для Samsung Tizen OS: компиляция Lampa через Tizen Studio CLI, генерация сертификатов автора и установка через SDB.
Самостоятельная сборка веб-виджета в формат WGT остается самым надежным методом развертывания медиаоболочки на телевизорах Samsung Smart TV под управлением Tizen OS. В отличие от запуска через универсальные виджеты Media Station X или сторонние синхронизаторы, локально скомпилированный пакет функционирует как полноценное нативное приложение. Он получает изолированное дисковое пространство для баз данных IndexedDB и хранилища localStorage, не зависит от сторонних серверов раздачи и не сбрасывает пользовательские плагины при плановой очистке оперативной памяти телевизора.
Многие пользователи сталкиваются с трудностями при попытке собрать WGT-пакет из-за громоздкой среды Tizen Studio IDE, которая требует более 5 ГБ дискового пространства и часто дает сбои при генерации сертификатов. Разберем легкий и надежный инженерный метод компиляции через консольный инструментарий Tizen CLI, который занимает менее 200 МБ и гарантирует корректную установку виджета на любую версию Tizen от 3.0 до 8.0.
Архитектура WGT пакета и требования к сертификации
Пакет WGT представляет собой сжатый zip-контейнер стандарта W3C Widget, содержащий исполняемый веб-код, таблицу дескрипторов config.xml, графические ресурсы и две криптографические подписи: цифровую подпись автора (author-signature.xml) и подпись дистрибьютора (signature1.xml).
Операционная система Tizen на коммерческих телевизорах Samsung защищена строгой политикой целостности исполнения. В отличие от эмуляторов для разработчиков, розничный телевизор отклоняет пакеты, подписанные стандартными открытыми сертификатами Tizen SDK. Для инсталляции необходим специальный профиль Samsung Certificate Extension:
- Author Certificate: удостоверяет личность создателя виджета и связывается с персональной учетной записью разработчика Samsung.
- Distributor Certificate: содержит список уникальных идентификаторов устройств (DUID). Телевизор сверяет свой внутренний DUID с содержимым сертификата и блокирует установку, если совпадение не обнаружено.
Структура пакета WGT:
Lampa.wgt (ZIP archive)
├── config.xml <- Манифест разрешений и параметров запуска
├── index.html <- Главная точка входа веб-приложения
├── app.js <- Ядро оболочки и загрузчик модулей
├── lampa.css <- Стилистические таблицы разметки
├── icon.png <- Иконка для панели приложений Smart Hub
├── author-signature.xml <- Подпись автора (Samsung Author Certificate)
└── signature1.xml <- Подпись дистрибьютора с привязкой DUID ТВ
Если ранее вы выполняли базовую установку Lampa на Samsung Tizen через готовые скрипты синхронизации, самостоятельная компиляция даст вам полный контроль над версией ядра и конфигурацией сетевых разрешений.
Подготовка консольного инструментария Tizen CLI
Для работы не требуется устанавливать полную графическую оболочку Tizen Studio. Достаточно скачать легковесный архив Tizen Studio CLI tools под вашу операционную систему (Windows, macOS или Linux) и пакет расширения сертификатов Samsung.
После распаковки архива в рабочую директорию (например, C:\tizen-studio или /opt/tizen-studio) добавьте пути к исполняемым файлам в системную переменную PATH:
# Для Linux и macOS (в ~/.bashrc или ~/.zshrc)
export TIZEN_HOME="/opt/tizen-studio"
export PATH="$TIZEN_HOME/tools/ide/bin:$TIZEN_HOME/tools:$PATH"
# Проверка корректности установки бинарников
sdb version
tizen version
Далее обязательно установите расширение Samsung Certificate Extension через менеджер пакетов консоли:
package-manager-cli.bin install Certificate-Extension
Без этого модуля утилита генерации ключей не сможет создать дистрибьюторский сертификат корпоративного уровня Samsung, и телевизор вернет ошибку SIGNATURE_INVALID (-14).
Активация Developer Mode на телевизоре и подключение по SDB
Перед отправкой собранного пакета на устройство необходимо перевести Smart TV в инженерный режим разработки и узнать уникальный DUID платы.
- Откройте панель Smart Hub и перейдите в раздел Apps (Магазин приложений).
- На стандартном пульте поочередно нажмите цифровые клавиши
1 2 3 4 5. На компактном пульте Samsung One Remote вызовите виртуальную цифровую панель на экране и введите эту же комбинацию. - В появившемся модальном окне переключите ползунок Developer mode в положение ON.
- В строке Host PC IP укажите локальный IP-адрес вашего компьютера (например,
192.168.1.50). Нажмите OK. - Выполните аппаратный перезапуск телевизора: зажмите кнопку питания на пульте на 5 секунд до исчезновения подсветки и появления логотипа Tizen либо отключите кабель питания из розетки на 20 секунд.
Узнайте IP-адрес телевизора в меню настроек (Сеть -> Состояние сети -> Настройки IP) и подключитесь через Smart Development Bridge (SDB):
# Подключение к порту отладки 26101
sdb connect 192.168.1.120:26101
# Просмотр подключенных устройств и получение DUID
sdb devices
Консоль выведет строку следующего вида:
List of devices attached
192.168.1.120:26101 UE55TU8500 device DUID: 10102938475610293847
Скопируйте значение параметра DUID — оно потребуется на этапе генерации сертификата дистрибьютора.
Генерация персонального Samsung Certificate Profile
Создайте профиль подписи через утилиту командной строки tizen cli-config либо через графический мастер Certificate Manager:
# Запуск генератора сертификатов Tizen
tizen-studio/tools/certificate-manager/certificate-manager
В окне мастера выберите создание профиля типа Samsung:
- Step 1 (Author Certificate): создайте новый сертификат автора, указав имя профиля (например,
LampaSign), пароль и учетную запись Samsung Developer. - Step 2 (Distributor Certificate): выберите тип привилегий Public. В блоке регистрации устройств нажмите Add и вставьте 20-значный DUID вашего телевизора, полученный на предыдущем шаге.
- Сохраните профиль под именем
LampaSamsungProfile. Созданные ключевые файлы (author.p12иdistributor.p12) сохраняются в директорииtizen-studio-data/keystore.
Настройка манифеста config.xml и компиляция WGT пакета
Загрузите актуальный веб-бандл Lampa с официальных зеркал Lampa и распакуйте в рабочую папку lampa_src.
Критически важным элементом является файл конфигурации config.xml. Откройте его в текстовом редакторе и убедитесь в наличии обязательных директив:
<?xml version="1.0" encoding="UTF-8"?>
<widget xmlns="http://www.w3.org/ns/widgets"
xmlns:tizen="http://tizen.org/ns/widgets"
id="http://lampa.help/LampaTizen"
version="1.0.0"
viewmodes="fullscreen">
<tizen:application id="x7z9Lampa0.Lampa"
package="x7z9Lampa0"
exec="index.html"
screen-orientation="landscape"
context-menu="enable"/>
<tizen:privilege name="http://tizen.org/privilege/internet"/>
<tizen:privilege name="http://tizen.org/privilege/filesystem.read"/>
<tizen:privilege name="http://tizen.org/privilege/filesystem.write"/>
<tizen:privilege name="http://tizen.org/privilege/tv.inputdevice"/>
<tizen:setting screen-orientation="landscape"
context-menu="enable"
background-support="disable"
encryption="disable"
install-location="auto"/>
<access origin="*" subdomains="true"/>
</widget>
Строка <access origin="*" subdomains="true"/> принципиально необходима для обхода ограничений CORS: она позволяет приложению обращаться к внешним парсерам, серверам TorrServer и учетной записи CUB.
Выполните двухэтапную сборку виджета в терминале:
# Шаг 1: компиляция веб-ресурсов в промежуточный каталог
tizen build-web -- lampa_src
# Шаг 2: упаковка и криптографическая подпись WGT контейнера
tizen package --type wgt --sign LampaSamsungProfile -- lampa_src/.buildResult
После завершения в папке появится файл Lampa.wgt объемом около 12–18 МБ.
Установка пакета на телевизор через Smart Development Bridge
Убедитесь, что SDB сохраняет активное соединение с телевизором, и выполните отправку пакета:
# Инсталляция скомпилированного пакета
sdb install lampa_src/.buildResult/Lampa.wgt
В процессе выполнения в терминале отобразится шкала передачи файла, после чего Tizen произведет распаковку и верификацию сертификатов:
pulled Lampa.wgt 100% 15MB 4.8MB/s
install Lampa.wgt
package_path /opt/usr/apps/tmp/Lampa.wgt
app_id[x7z9Lampa0.Lampa] install completed
100%
Installed successfully
Запустить установленное приложение можно прямо из терминала либо выбрав появившуюся карточку Lampa в главном меню Smart Hub:
sdb shell 0 was_execute_app x7z9Lampa0.Lampa
Устранение частых ошибок сборки и инсталляции
При компиляции и передаче WGT-пакета по сети возможны сбои, вызванные сетевой изоляцией или несовпадением параметров безопасности:
- Ошибка
closedпри выполнении командыsdb connect: телевизор не отвечает на порту 26101. Проверьте, включен ли Developer Mode, перезагружен ли телевизор и не блокирует ли роутер трафик между устройствами в локальной сети (отключите изоляцию AP Isolation). - Ошибка
failed to install: -14 / SIGNATURE_INVALID: телевизор отвергает цифровую подпись. Это происходит, если пакет подписан стандартным профилем Tizen SDK либо в сертификат дистрибьютора не был внесен точный DUID текущего телевизора. Перегенерируйте профиль через Samsung Certificate Extension с добавлением DUID. - Ошибка
failed to install: -12 / AUTHOR_SIGNATURE_INVALID: срок действия сертификата признан недействительным. Распространенная причина — сбитое системное время на телевизоре. Если в настройках ТВ дата откатилась на несколько лет назад, сертификат от 2026 года будет заблокирован. Установите точную дату и время в меню системы.
Чек-лист проверки перед инсталляцией WGT
- Установлен Tizen Studio CLI и модуль Samsung Certificate Extension.
- На телевизоре активирован Developer Mode с указанием IP-адреса хоста и выполнена перезагрузка.
- Значение DUID получено через
sdb devicesи зарегистрировано в Distributor Certificate. - В манифесте
config.xmlпрописано глобальное правило<access origin="*" subdomains="true"/>. - Пакет WGT подписан профилем типа Samsung и успешно передан на устройство командой
sdb install.
Готовые плагины под вашу задачу
Ответьте на 3 вопроса о вашем ТВ, и мастер подберет проверенный набор скриптов.
- Онлайн-видео (балансеры)Без P2P
- 4K торренты (TorrServer)В стриме
- Зеркала CUB и плагиныАктуально
Frontend-инженер и энтузиаст оболочки Lampa. Эксперт по JS-плагинам, сборке виджетов для Samsung Tizen, LG webOS и Apple TV. Специализируется на кастомизации интерфейса, интеграции онлайн-балансеров и решении сбоев клиентской части.