Оживляем дешевый Smart TV: обход вырезанного ADB, деблоат Яндекс.ТВ и сборка легкого медиацентра

от автора

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

Из коробки это чудо техники работает «не очень». Интерфейс задумчивый, повсюду рекомендации, Алиса, Кинопоиск, Яндекс.Музыка и куча другого софта, который постоянно висит в памяти и кушает и без того дефицитные ресурсы.

План созрел быстро:

  1. Вырезать весь ненужный яндексовский софт (деблоат).

  2. Накатить легкий лаунчер без рекламы.

  3. Установить джентльменский набор софта: SmartTube, Lampa, TorrServe, Kodi, Zona.

  4. Интегрировать это все с Home Assistant (для сценариев автоматизации, например, автоматического запуска веб-страницы при заселении гостя).

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

Ниже я расскажу, как удалось обойти это ограничение, залезть «под капот» телевизора и превратить тормозящий яндекс-комбайн в чистый и шустрый Android TV.


Шаг 1. Ищем лазейку в обход урезанного меню

Обычный путь (зайти в «Об устройстве», покликать 7 раз по номеру сборки, перейти в «Для разработчиков» и включить отладку) тут не работает. Разработчики прошивки просто скрыли или удалили этот тумблер из UI. Сканирование портов телевизора показало, что порт 5555 глухо закрыт, а стандартные лаунчеры активности (Activity Launcher) при попытке вызвать скрытое меню разработчика открывали пустой экран.

Поскольку Hartens собирается на заводах CVTE (крупный ODM-производитель плат для ТВ), у него должно быть инженерное меню. И комбинация для пульта нашлась.

Как войти в сервисное меню CVTE:

  1. Зажмите кнопку Menu (кнопка с тремя полосками) на пульте примерно на 1 секунду.

  2. Быстро, без пауз, нажмите стрелки на пульте в следующем порядке: Влево → Вверх → Влево → Вверх.

  3. Нажмите кнопку Назад (стрелка возврата).

Если всё сделано правильно, поверх интерфейса Яндекса откроется классическое сине-серое сервисное меню на английском языке.

ВАЖНО: Не трогайте разделы Panel Type, LVDS, White Balance, Backlight или Shipping Init. Неправильный клик в этих меню может легко убить картинку, сбить калибровку матрицы или превратить телевизор в кирпич.

Нам нужен только один пункт. Прокрутите список вниз, найдите строку ADB (или USB Debugging) и переключите её в режим ON.

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


Шаг 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, подключитесь заново и подтвердите диалог.


Шаг 3. Хирургический деблоат Яндекса

Давайте посмотрим, что крутится на устройстве. Пишем:

adb shell pm list packages | grep yandex

Нам вывалится около 30 пакетов. Яндекс пустил корни очень глубоко. Но будьте осторожны: нельзя бездумно удалять всё подряд.

  • com.yandex.tv.settings — это приложение отвечает за системные настройки телевизора. Если его удалить, вы не сможете настроить даже Wi-Fi или Bluetooth.

  • ru.yandex.androidkeyboard.tv — единственная экранная клавиатура в системе. Без нее вы не сможете ввести ни один поисковый запрос или пароль.

Удалять системные приложения намертво мы не будем (без root-прав это и не получится), но мы можем отключить их для текущего пользователя. Это освободит оперативную память и процессорное время, а в случае проблем всё можно будет вернуть одной командой.

Я подготовил список пакетов, которые можно безболезненно отключить. Сюда входят Алиса, Кинопоиск, Музыка, встроенный браузер, рекламные сервисы и сам яндекс-лаунчер:

# Список пакетов для отключенияpackages=(  "com.yandex.tv.alice"  "com.yandex.tv.home"  "ru.kinopoisk.yandex.tv"  "com.yandex.tv.music"  "com.yandex.browser.tv"  "com.yandex.tv.live"  "com.yandex.tv.input.efir"  "com.yandex.tv.daydream"  "com.yandex.tv.bugreportsender"  "com.yandex.android.advid"  "com.yandex.tv.ytplayer"  "com.yandex.tv.webplayer"  "com.yandex.tv.videoplayer"  "com.yandex.launcher.updaterapp")for pkg in "${packages[@]}"; do  adb shell pm uninstall --user 0 "$pkg"  adb shell am force-stop "$pkg"done

Примечание для Windows-пользователей: если вы запускаете скрипт через PowerShell, синтаксис цикла будет немного другим, но суть та же — для каждого пакета выполняем pm uninstall --user 0 <имя_пакета>.

Если вдруг после перезагрузки что-то сломалось или вам захотелось вернуть, например, Кинопоиск, его можно восстановить прямо из системного раздела одной командой:

adb shell cmd package install-existing ru.kinopoisk.yandex.tv

Шаг 4. Установка чистого лаунчера

Раз уж мы отключили стандартный лаунчер Яндекса (com.yandex.tv.home), телевизору нужен новый домашний экран. Я выбрал FLauncher — это легкий, бесплатный лаунчер с открытым исходным кодом, написанный на Flutter. В нем нет рекламы, рекомендаций и прочего мусора, только ваши иконки приложений.

Скачиваем актуальный APK с официального GitLab (под архитектуру armeabi-v7a): GitLab Releases FLauncher

И устанавливаем его через ADB:

adb install flauncher.apk

Теперь нужно объяснить системе, что это наш новый главный экран. Выполняем команду:

adb shell cmd package set-home-activity me.efesser.flauncher/.MainActivity

Готово. Теперь при нажатии кнопки Home на пульте у вас всегда будет открываться аккуратный плиточный лаунчер.


Шаг 5. Сборка медиацентра

Телевизор готов к установке софта. Так как Google Play Store на телевизоре нет (это чистый AOSP без GMS-сервисов), всё ставим через ADB.

  1. SmartTube — клиент YouTube без рекламы, оптимизированный под пульт. Качаем стабильную версию (ARMv7) с официального репозитория: GitHub yuliskov/SmartTube

    adb install SmartTube_stable_armeabi-v7a.apk
  2. Lampa + TorrServe — ультимативная связка для просмотра торрентов онлайн без предварительного скачивания.

    adb install lampa.apkadb install torrserve.apk

    Настройка: Запускаем TorrServe на телевизоре один раз (он поднимет локальный сервер на порту 8090). Затем открываем Lampa → заходим в Настройки → Торренты → TorrServe. В поле адреса вводим http://127.0.0.1:8090, нажимаем «Проверить» (статус должен смениться на зеленый). Теперь Lampa умеет стримить торренты через TorrServe. Для онлайн-просмотра не забудьте добавить в Lampa плагины-балансеры в меню «Расширения».

  3. TV Bro — легкий браузер для Android TV, который отлично управляется с пульта и имеет встроенный AdBlock. Он пригодится нам для открытия веб-страниц по внешним командам. GitHub truefedex/tv-bro

    adb install tvbro.apk
  4. RuStore TV — официальный российский магазин приложений. Он адаптирован под ТВ-пульт и позволит обновлять софт (например, онлайн-кинотеатр Wink, Zona или плееры) без постоянного подключения к компьютеру. Берем официальную TV-версию: RuStore TV APK

    adb install RuStoreTV.apk

Шаг 6. Бонус: интеграция с Home Assistant

Поскольку проект делался для гостевой комнаты, мне нужно было уметь автоматически будить телевизор и открывать на нем приветственную веб-страницу с меню отеля при заселении гостя.

Для этого в Home Assistant настраивается интеграция Android TV Remote (или AndroidTV). HA подключается к IP-адресу телевизора (192.168.188.148) по протоколу ADB.

Сценарий автоматизации в YAML выглядит так:

alias: "Smart Room: Welcome Guest TV Portal"description: "Включает ТВ в комнате и открывает веб-портал при заселении"trigger:  - platform: state    entity_id: input_boolean.guest_checked_in    to: "on"action:  # 1. Будим телевизор (media_player.turn_on)  - service: media_player.turn_on    target:      entity_id: media_player.yandex_tv_room_7  - delay: "00:00:02"  # 2. Шлем ADB-команду для открытия URL в браузере (TV Bro)  - service: androidtv.adb_command    target:      entity_id: media_player.yandex_tv_room_7    data:      command: "am start -a android.intent.action.VIEW -d http://192.168.188.59:8880/tv/room-7/welcome"

Эта команда отправляет Android-интент VIEW с URL-адресом. Поскольку по умолчанию у нас установлен TV Bro, он перехватывает этот интент и мгновенно выводит веб-страницу на экран телевизора.


Итог

Потратив около получаса времени, мы получили:

  • Отличный, отзывчивый интерфейс без лагов.

  • Полное отсутствие встроенной рекламы, рекомендаций и фоновой телеметрии Яндекса.

  • Чистую систему, освободившую около 150-200 МБ драгоценной оперативной памяти.

  • Полноценный медиацентр (YouTube без рекламы, просмотр кино и торрентов онлайн).

  • Возможность удаленного управления телевизором по сети через Home Assistant.

Надеюсь, эта инструкция поможет владельцам аналогичных бюджетных телевизоров вздохнуть с облегчением и вернуть контроль над своим устройством. Если у вас возникнут вопросы по командам или настройке Lampa — пишите в комментарии!

Кому интересно пишите — могу продолжить делиться своим опытом настройки продвинутой автоматизации для дома или гостиниц !

ссылка на оригинал статьи https://habr.com/ru/articles/1043666/