Оживляем дешевый Smart TV: ADB, деблоат Яндекс ТВ ч1

Купил я тут по дешевке 43-дюймовый телевизор Hartens (модель HTY-43FHD06B-HK22, панель BOE HV430FHB-F91) под проект умного гостевого дома. Железо внутри скромное: чипсет MediaTek MT5867, 32-битная архитектура (armeabi-v7a), 1.5 ГБ оперативной памяти и вишенка на торте — фирменная оболочка Яндекс.ТВ на базе AOSP Android 11. Из коробки это чудо техники работает «не очень». Интерфейс задумчивый, повсюду рекомендации, Алиса, Кинопоиск, Яндекс.Музыка и куча другого софта, который постоянно висит в памяти и кушает и без того дефицитные ресурсы.

План созрел быстро: Вырезать весь ненужный яндексовский софт (деблоат). Накатить легкий лаунчер без рекламы. Установить джентльменский набор софта: SmartTube, Lampa, TorrServe, Kodi, Zona.

Интегрировать это все с Home Assistant (для сценариев автоматизации, например, автоматического запуска веб-страницы при заселении гостя). Но на первом же шаге я уперся в стену: производитель полностью вырезал пункт «Отладка по USB» (USB Debugging) из меню разработчика. USB-порты у телевизора работают только в режиме хоста (подключить ПК напрямую кабелем нельзя), а сетевой ADB по умолчанию закрыт. Ниже я расскажу, как удалось обойти это ограничение, залезть «под капот» телевизора и превратить тормозящий яндекс-комбайн в чистый и шустрый Android TV.

Шаг 1. Ищем лазейку в обход урезанного меню Обычный путь (зайти в «Об устройстве», покликать 7 раз по номеру сборки, перейти в «Для разработчиков» и включить отладку) тут не работает. Разработчики прошивки просто скрыли или удалили этот тумблер из UI. Сканирование портов телевизора показало, что порт 5555 глухо закрыт, а стандартные лаунчеры активности (Activity Launcher) при попытке вызвать скрытое меню разработчика открывали пустой экран. Поскольку Hartens собирается на заводах CVTE (крупный ODM-производитель плат для ТВ), у него должно быть инженерное меню. И комбинация для пульта нашлась.

Как войти в сервисное меню CVTE: Зажмите кнопку Menu (кнопка с тремя полосками) на пульте примерно на 1 секунду. Быстро, без пауз, нажмите стрелки на пульте в следующем порядке: Влево → Вверх → Влево → Вверх. Нажмите кнопку Назад (стрелка возврата). Если всё сделано правильно, поверх интерфейса Яндекса откроется классическое сине-серое сервисное меню на английском языке. ВАЖНО: Не трогайте разделы Panel Type, LVDS, White Balance, Backlight или Shipping Init. Неправильный клик в этих меню может легко убить картинку, сбить калибровку матрицы или превратить телевизор в кирпич. Нам нужен только один пункт. Прокрутите список вниз, найдите строку ADB (или USB Debugging) и переключите её в режим ON.

Шаг 2. Подключаемся и авторизуем ПК Телевизор и компьютер должны находиться в одной локальной сети. Лучше сразу зайти в настройки роутера и закрепить за телевизором статический IP-адрес по его MAC-адресу, иначе при следующей перезагрузке IP может смениться. В моем случае телевизор получил IP 192.168.188.148. Открываем терминал на ПК (убедитесь, что у вас установлены Android Platform Tools) и пишем: adb connect 192.168.188.148:5555

В этот момент на экране телевизора появится стандартный системный диалог: «Разрешить отладку по USB с этого компьютера?». Обязательно ставим галочку «Всегда разрешать с этого компьютера» и нажимаем ОК. Проверяем успешность подключения: adb devices

Должна появиться строчка: 192.168.188.148:5555 device If it is written unauthorized, значит, вы не успели подтвердить запрос на экране ТВ. Сбросьте сервер командой adb kill-server, подключитесь заново и подтвердите диалог.

Продолжение у меня в профиле !

Сразу после этого сетевой ADB-сервер на телевизоре запускается и начинает слушать порт 5555