На прошлой неделе на GitHub взлетел проект CleanYourTV: автор попросил ИИ-ассистента почистить телевизор родителей от рекламы и за четыре дня собрал 16 тысяч звёзд и статью в TechCrunch. Я открыл его списки — и не нашёл ни Яндекс ТВ, ни Салют ТВ, ни российских прошивок Xiaomi. Зато мой собственный Xiaomi на Android 9 лагал так, что меню открывалось через пару секунд после нажатия.

Я сделал ЧистыйТВ — скрипт для Windows, который по Wi-Fi находит телевизор, отключает рекламу и телеметрию по проверенным спискам, ставит YouTube без рекламы и откатывает всё одной командой. Ниже — что на самом деле крутится внутри «умного» телевизора, какие пакеты отключать нельзя ни в коем случае (некоторые превращают ТВ в кирпич до сброса) и на какие грабли я наступил при первом запуске.

Что живёт внутри телевизора

На моём Xiaomi MiTV-MSSP0 после покупки стояло 101 приложение. Помимо очевидного — онлайн-кинотеатры, которые я ни разу не открывал, — в фоне работали:

Пакет

Что делает

com.miui.tv.analytics, com.xiaomi.statistic

Аналитика и статистика Xiaomi

com.xiaomi.floatingframe

Всплывающие промо-окна

com.google.android.tvrecommendations

Рекламные ряды на главном экране

android.autoinstalls.config.xiaomi.amelie

Тихая автоустановка партнёрских приложений

com.xiaomi.mitv.tvmanager

«Очистка», которая сама висит в фоне

На других телевизорах встречается штука похуже — ACR (automatic content recognition): tv.alphonso.alphonso_eula на Xiaomi, tv.anoki.acr.controller на Haier, com.hisense.evservice на Hisense. Она периодически снимает «отпечаток» картинки на экране — неважно, эфир это или HDMI с приставки — и отправляет, чтобы точнее подбирать рекламу.

На слабом железе ТВ (1–2 ГБ памяти) всё это ещё и съедает ресурсы. Отсюда лаги.

Как это убрать без root

У Android TV, как у любого Android, есть ADB. Включаете «Отладку по USB» в меню разработчика — и на большинстве телевизоров вместе с ней открывается порт 5555 в локальной сети. Кабель не нужен.

Дальше всё делает одна команда:

adb shell pm disable-user --user 0 com.miui.tv.analytics

Важно, что это именно отключение, а не удаление: APK остаётся в системном разделе, данные на месте, вернуть можно через pm enable. Удаление pm uninstall --user 0 тоже обратимо (cmd package install-existing), но без флага -k стирает данные — незачем.

Shell без root может переключать только целые пакеты: отдельные компоненты (pm disable pkg/.Activity) упираются в SecurityException. Это ограничение ещё всплывёт ниже.

Что отключать нельзя: грабли с форумов

Это самая ценная часть работы. Списки «что отключить» найти легко, а вот что после этого ломается — разбросано по сотням страниц 4PDA. Собрал самое опасное:

Платформа

Пакет

Что будет

Яндекс ТВ

com.yandex.tv.services.platform

«Entering recovery system» и чёрный экран

Яндекс ТВ

com.yandex.tv.live

Перестают переключаться входы и HDMI

Яндекс ТВ

ru.yandex.androidkeyboard.tv

Это единственная клавиатура в системе

Салют ТВ

ru.sberdevices.starlauncher

Recovery-петля, даже если поставлен сторонний лаунчер

TCL

com.tcl.suspension

Пропадает меню источников — HDMI не переключить

Google TV

com.android.location.fused

Циклическая перезагрузка

Haier/CVTE

com.cvte.tv.hkcfac

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

Отдельная история — Google TV 14. Если отключить штатный лаунчер launcherx, кнопку «Домой» перехватывает RecoveryActivity мастера настройки setupwraith, и system_server падает примерно раз в минуту. Отключить один этот компонент shell не может — только весь пакет. А отключение setupwraith удаляет сеть Wi-Fi, сохранённую при первой настройке (она принадлежит ему), и телевизор отваливается от Wi-Fi и от ADB одновременно. Проверить заранее можно так:

adb shell "dumpsys wifi | grep -o 'cname=[^ ]*'"

В ЧистомТВ это зашито в логику: штатный лаунчер отключается только по явной просьбе, только вместе с парными пакетами и никогда — если один из них владеет сетью Wi-Fi. А если после отключения кнопка «Домой» всё равно не открывает новый лаунчер, скрипт сам всё включает обратно.

Плюс есть второй рубеж: пакеты, чьи имена похожи на входы, пульт, клавиатуру, установщик, Wi-Fi или заводские меню, скрипт не тронет, даже если они по ошибке окажутся в базе.

Российские платформы

Яндекс ТВ (Hartens, Leff, DEXP, Hyundai, Novex, Starwind и другие на платах CVTE/Cultraview). Главный источник рекламы — com.yandex.android.advid. Проблема в том, что с прошивок 2025 года из меню разработчика часто пропадает «Отладка по USB». Но у плат CVTE есть сервисное меню: Меню (зажать на секунду) → ← ↑ ← ↑ → Назад → Other options → ADB Mode → On. Больше в этом меню трогать ничего нельзя: Panel Type, LVDS или Shipping Init легко дадут чёрный экран.

И ещё один нюанс с 4PDA: обновление прошивки Яндекс ТВ возвращает рекламные плагины. ЧистыйТВ предлагает отключить обновления отдельным пунктом, но не делает этого молча — без них не придут и исправления.

Салют ТВ. Тут, неожиданно, самый цивилизованный путь: у Сбера есть официальная документация — ADB включается в Sber Studio по ID устройства. Единственное условие — VPN на компьютере не должен перехватывать маршруты (об этом ниже).

YouTube

Отключённая реклама на главном экране не спасает от главной боли — YouTube тормозит и показывает рекламу. Решение из двух частей.

SmartTube — открытый клиент YouTube для ТВ: без рекламы, со SponsorBlock, 4K. Деталь, о которую я споткнулся: в конце 2025 года разработчик сменил ключ подписи после заражения своей сборочной машины, и имена пакетов поменялись — теперь org.smarttube.stable вместо com.teamsmart.videomanager.tv. Старые установки не обновляются поверх, поэтому скрипт их распознаёт и ставит новую версию рядом. Скачивает только с официального GitHub: у релиза с тегом latest постоянные имена файлов под каждую архитектуру, а для ТВ основная сборка — armeabi-v7a.

VPN — без него от замедления не уйти. Скрипт ставит Happ (официальный APK с GitHub) и отправляет подписку командой:

adb shell am start -a android.intent.action.VIEW -p com.happproxy -d 'happ://add/<ссылка>'

Если конкретная сборка Happ не принимает ссылку так, есть официальный путь для ТВ: Happ показывает 5-значный код в «Web Import», а подписка отправляется POST-запросом на check.happ.su/sendtv/<код>. Подписка при этом проходит через сервер Happ, поэтому скрипт спрашивает разрешения.

Ссылка подписки вставляется в shell телевизора внутри одинарных кавычек, поэтому скрипт пропускает только URL из безопасных символов — https://x.ru/'; reboot не пройдёт.

Грабли первого запуска

Тестировал на живом Xiaomi — и сразу поймал две вещи, которых не было ни в одном гайде.

«failed to authenticate». При первом adb connect телевизор показывает окно «Разрешить отладку?», а adb в это время возвращает не «unauthorized», а failed to authenticate. Первая версия скрипта приняла это за ошибку. Теперь — ждёт подтверждения.

VPN на компьютере. Скрипт не находил телевизор, хотя тот был в той же сети. Выяснилось, что AmneziaVPN забирал себе маршрут и к домашней подсети:

Find-NetRoute -RemoteIPAddress 192.168.0.42 | Select InterfaceAlias
# InterfaceAlias : AmneziaVPN

Пакеты к телевизору уходили в туннель. Подозреваю, что у половины читателей Хабра на компьютере сейчас включён какой-нибудь VPN, так что скрипт теперь проверяет маршрут и прямо говорит, какой адаптер мешает. Заодно он перестал сканировать сети VPN и виртуальных машин в поисках телевизора.

Итог

После чистки на моём телевизоре отключено 19 пакетов, меню открывается мгновенно, YouTube работает через SmartTube без рекламы и замедления. Всё отключённое записано в журнал, и пункт «Вернуть как было» включает это обратно.

Запустить можно одной строкой в PowerShell:

irm https://raw.githubusercontent.com/by-sonic/chistytv/main/chistytv.ps1 | iex

Что внутри:

  • поиск ТВ в сети и подключение, включая беспроводную отладку Android 11+ по коду;

  • бэкап списка приложений, getprop и системных настроек до любых изменений;

  • база на 132 пакета для 7 платформ: Яндекс ТВ, Салют ТВ, Xiaomi, Haier, TCL, Hisense, Google TV — каждый с пометкой «отключить», «спросить» или «не трогать», с источниками;

  • ваши приложения (Алиса, Кинопоиск, Okko, ivi…) отключаются только если вы их отметили;

  • SmartTube, Happ, открытый лаунчер без рекламных рядов и AdGuard DNS — по желанию;

  • для редких моделей — промпт для Claude Code / Codex, с которым ИИ-ассистент разберёт пакеты конкретного телевизора и сохранит журнал отката в том же формате.

Код и база открыты: github.com/by-sonic/chistytv. Идея и часть данных по Xiaomi, TCL и Haier — из CleanYourTV (MIT), российские платформы — по материалам 4PDA и Хабра.

Больше всего проекту сейчас нужны отчёты с реальных телевизоров: модель, платформа и вывод adb shell pm list packages. Проверено пока на одном Xiaomi — с вашей помощью список будет расти. Если что-то пошло не так — issue на GitHub или Telegram @sonic_h1.

Комментарии (0)