Телевизоры LG на платформе webOS запускают только веб-приложения, упакованные в специальные контейнеры. В отличие от Android TV, здесь нет поддержки APK-файлов, так как ядро системы построено на Linux с графическим стеком, ориентированном на веб-движок. Понимание этой архитектуры критически важно для пользователей, пытающихся установить сторонний софт, и для разработчиков, портирующих сервисы на экосистему LG.

Официальный магазин LG Content Store распространяет приложения в защищенном формате, который автоматически обрабатывается системой обновлений. При попытке установить файл, скачанный из браузера или переданный по USB, телевизор проверяет цифровую подпись и структуру архива. Если контейнер не соответствует спецификации webOS, установка блокируется на уровне системного установщика.

Основные форматы контейнеров:.ipk и.wgt

История webOS делится на две крупные эры упаковки приложений. На ранних версиях (webOS 1.x — 3.x, модели 2014–2016 гг.) использовался формат .ipk (Itsy Package), наследуемый от Palm/HP webOS. Это архив с метаданными в control.tar.gz и полезной нагрузкой в data.tar.gz, по структуре напоминающий пакеты Debian.

С выходом webOS 4.0 (2017 год) LG перешла на стандарт W3C Widget Packaging — формат .wgt. Это ZIP-архив с обязательным файлом манифеста config.xml в корне, описывающим идентификатор, версию, права доступа и точку входа. Современные телевизоры OLED, NanoCell и линейки UHD последних лет работают именно с.wgt.

  • 📦 .ipk — устаревший формат для webOS 1.0–3.5, требует утилиты palm-install для разработки.
  • 📦 .wgt — актуальный стандарт для webOS 4.0+, поддерживает современные API и модель безопасности.
  • 🔐 Оба формата требуют валидной подписи разработчика для установки на продакшн-устройства без режима разработчика.
  • 🚫 Форматы .apk, .exe, .ipa не поддерживаются ни в каком режиме работы телевизора.
💡

Ключевой момент: только.wgt (webOS 4.0+) и.ipk (legacy) являются нативными исполняемыми форматами для LG TV.

⚠️ Внимание: Попытка переименовать.apk в.wgt или.ipk не сделает приложение рабочим. Архитектура кода (Dalvik/ART vs JavaScriptCore/V8) принципиально отличается, бинарная совместимости нет.

Технологический стек веб-приложений webOS

Любое нативное приложение для LG TV — это по сути веб-сайт, работающий в офлайн-режиме с доступом к системным API через JavaScript-мосты. Движок рендеринга основан на WebKit (в новых версиях — на Chromium через WebEngine), что обеспечивает поддержку современных стандартов HTML5, CSS3 и ECMAScript 2020+.

Разработчики используют фреймворки React, Preact, Vue или старый Enyo (поддержка прекращена LG). Для доступа к тюнеру, DRM, Bluetooth, пульту Magic Remote применяются специальные JavaScript API webOS.service. и webOS.dev.. Без знания этих интерфейсов портирование веб-приложения на телевизор невозможно.

  • 🌐 HTML5/CSS3/JS — база любого приложения, точка входа index.html.
  • ⚙️ config.xml — манифест (для.wgt), определяющий <widget id>, <version>, <privilege>.
  • 🔌 JS Services — фоновые Node.js-скрипты для длительных задач (загрузка, синхронизация).
  • 🎮 Input API — обработка нажатий пульта, голосовых команд, указателя Magic Remote.
📊 Какой способ установки приложений на LG TV вы используете чаще?
LG Content Store (официальный)
USB / Developer Mode (сайдлоад)
Не устанавливал сторонние приложения
Через NAS / локальный сервер

Установка сторонних приложений через Developer Mode

Единственный легальный способ запустить неподписанный.wgt или.ipk на телевизоре — активировать Developer Mode. Это делается в меню Настройки → Общие → О телевизоре → Информация о пользователе → Режим разработчика. После перезагрузки телевизор открывает порт 3000 для подключения CLI-инструментов.

Для передачи пакета используется официальный webOS TV SDK (входит в состав @webosose/ares-cli для Node.js). Установка выполняется командами ares-setup-device (добавление IP телевизора) и ares-install --device <имя> <путь_к_.wgt>. Файл приложения должен быть предварительно собран утилитой ares-package из исходников проекта.

☑️ Чек-лист перед установкой.wgt через CLI

Выполнено: 0 / 5

После успешной установки иконка появляется на чере. Логи запуска можно просматривать командой ares-inspect --device <имя> , которая открывает DevTools в браузере на ПК. Это единственный способ отладить ошибки JavaScript на самом телевизоре.

Почему Android-приложения (APK) не запускаются на LG

Архитектура webOS не содержит виртуальной машины Android Runtime (ART) и системных библиотек фреймворка Android. APK-файлы содержат байт-код DEX, нативные библиотеки .so (ARM/x86) и манифест AndroidManifest.xml, которые не имеют никакого отношения к веб-контейнеру webOS.

Существуют проекты-эмуляторы (например, Anbox или Waydroid), но они требуют root-доступа, разблокированного загрузчика и ядра Linux с поддержкой binder — ничего из этого недоступно на потребительских телевизорах LG. Любые инструкции по «установке APK на LG» в интернете описывают либо запуск Android-приставки через HDMI, либо использование сервисов облачного стриминга.

⚠️ Внимание: Не скачивайте и не пытайтесь установить файлы, выдаваемые за «APK для LG» на сторонних сайтах. Это вектор распространения вредоносного кода для вашего ПК или телефона, на ТВ они просто не запустятся.

Инструментарий разработчика: SDK, CLI и IDE

Официальный набор инструментов webOS TV SDK распространяется через npm и включает эмулятор (на базе QEMU/VirtualBox), компилятор пакетов, инспектор и утилиту управления устройствами. Рекомендуемая среда разработки — Visual Studio Code с расширением webOS TV Extension, обеспечивающим подсветку манифеста, автодополнение API и кнопку «Deploy to TV».

Для кроссплатформенных проектов актуален фреймворк Enact (наследник Enyo), оптимизированный под пультовое управление и рендеринг на больших экранах. Он решает проблемы фокуса навигации, масштабирования интерфейса и работы с памятью, типичные для веб-приложений на ТВ.

Детали сборки проекта Enact для webOS

Команда `enact create my-app` создает заготовку с настроенным webpack и babel. В `package.json` добавляются скрипты `pack` (сборка.wgt через ares-package) и `pack-p` (сборка для продакшена с подписью). Файл `appinfo.json` (legacy) или `config.xml` генерируется автоматически на основе метаданных проекта.

Важно: эмулятор в SDK полезен для проверки верстки и логики, но не воспроизводит аппаратное ускорение видео (DRM, 4K, HDR) и специфику пульта Magic Remote. Финальное тестирование обязательно на железе.

Частые ошибки при сайдлоаде и их диагностика

Самая распространенная ошибка INSTALL_ERROR_INVALID_PACKAGE означает повреждение архива, отсутствие config.xml в корне или несоответствие ID приложения в манифесте и имени папки/файла. Ошибка INSTALL_ERROR_VERSION возникает, если версия в манифесте не выше уже установленной (webOS не позволяет даунгрейд без удаления).

Проблемы с правами доступа (SECURITY_ERROR) появляются, когда приложение запрашивает привилегию (например, http://webos.org/privilege/media.recorder), не объявленную в манифесте или запрещенную для неподписанных приложений. Некоторые системные API (HDMI CEC, настройки сети) доступны только предварительно установленным системным приложениям.

💡

Если установка зависает на 99%, проверьте логи командой `ares-install -d -l `. Часто причина — нехватка места во внутренней памяти (раздел /var) или конфликт ID с остатками старой версии. Удалите приложение через `ares-install --remove ` перед повторной попыткой.

Конфликт версий webOS API: приложение, собранное под SDK 6.0 (webOS 6.0 / webOS 22), может не запуститься на ТВ 2018 года (webOS 4.x), если использует новые API (например, webOS.service.tv.avblock). Всегда указывайте минимальную версию ОС в манифесте или используйте полифиллы.

Сравнительная таблица форматов и совместимости

Формат Версия webOS Годы выпуска ТВ Инструмент упаковки Поддержка сейчас
.ipk 1.0 – 3.5 2014 – 2016 palm-package / ares-package (legacy) Только архивные модели
.wgt 4.0 – текущая 2017 – настоящее время ares-package (Node.js CLI) Полная поддержка
.apk — — Android SDK (Gradle) Не поддерживается
.crx — — Chrome Extension Packaging Не поддерживается

Часто задаваемые вопросы

Могу ли я установить APK на LG TV через флешку?

Нет. Операционная система webOS не содержит среду выполнения Android. Файл.apk не будет распознан установщиком, даже если включен режим разработчика. Используйте Android-приставку или телевизор на Google TV / Android TV для нативного запуска APK.

Какой форент нужен для приложения из LG Content Store?

Пользователю не нужно знать формат — магазин качает и устанавливает зашифрованный.wgt автоматически. Файлы в памяти ТВ скрыты и недоступны для копирования через файловый менеджер или USB без взлома системы (что не рекомендуется).

Почему мое самописное.wgt не устанавливается:"Invalid signature"?

В режиме разработчика подпись не обязательна, но файл манифеста config.xml должен быть валидным XML с корректным id (формат com.domain.appname). Проверьте команду ares-package --validate перед установкой.

Работают ли веб-приложения (PWA) в браузере LG вместо нативных?

Браузер LG поддерживает Service Workers и манифест Web App Manifest, поэтому PWA можно «установить» на главный экран браузера. Но доступ к системным API (пульт, тюнер, DRM, уведомления) в браузере ограничен по сравнению с нативным.wgt приложением.

Где скачать webOS TV SDK для Windows/Mac/Linux?

Официально SDK распространяется как npm-пакет @webosose/ares-cli. Установка: npm install -g @webosose/ares-cli. Требуется Node.js LTS. Эмулятор качается отдельно через ares-emulator install (нужен VirtualBox). Документация на developer.lge.com.