ЧистыйТВ: скрипт для Windows отключает рекламу и слежку на Android TV без root и с откатом
Разработчик выпустил утилиту ЧистыйТВ, которая по Wi-Fi находит телевизор на Android TV, отключает рекламные и телеметрические пакеты, устанавливает YouTube без рекламы и умеет возвращать всё назад одной командой. Поводом стал собственный лагающий Xiaomi на Android 9, а также волна интереса к похожему проекту CleanYourTV, собравшему 16 тысяч звёзд на GitHub за четыре дня.
В конце прошлой недели в сообществе разработчиков появился проект ЧистыйТВ — скрипт для Windows, который по локальной сети подключается к телевизору на Android TV и приводит в порядок его программную начинку. Автор утилиты столкнулся с тем, что его собственный Xiaomi MiTV-MSSP0 на Android 9 открывал меню с задержкой в пару секунд после нажатия кнопки, и решил разобраться, что именно работает в фоне. Поводом для публикации стала не только личная проблема: почти одновременно на GitHub взлетел проект CleanYourTV, автор которого попросил ИИ-ассистента почистить телевизор родителей от рекламы и за четыре дня собрал 16 тысяч звёзд и материал в TechCrunch. Российский разработчик отметил, что в списках CleanYourTV не оказалось ни Яндекс ТВ, ни Салют ТВ, ни российских прошивок Xiaomi, и закрыл этот пробел собственным инструментом.
По наблюдениям автора, на его телевизоре после покупки было установлено 101 приложение, включая онлайн-кинотеатры, которые он ни разу не открывал. Помимо них в фоне работали сервисы аналитики и рекламные модули, а на других моделях встречается система ACR (automatic content recognition): пакеты tv.alphonso.alphonso_eula на Xiaomi, tv.anoki.acr.controller на Haier и com.hisense.evservice на Hisense. Такая система периодически снимает «отпечаток» изображения на экране — независимо от того, идёт ли эфир или сигнал с HDMI-приставки, — и отправляет его для более точного подбора рекламы. На бюджетном железе с 1–2 ГБ оперативной памяти все эти процессы дополнительно расходуют ресурсы, что и проявляется в виде задержек интерфейса. Именно поэтому утилита ориентирована не только на приватность, но и на отзывчивость телевизора.
Технически решение опирается на штатный ADB, который есть у Android TV как у любой платформы на базе Android. Пользователю достаточно включить «Отладку по USB» в меню разработчика, после чего на большинстве телевизоров открывается порт 5555 в локальной сети — кабель не требуется. Отключение выполняется командой adb shell pm disable-user --user 0 для конкретного пакета, и это именно отключение, а не удаление: APK остаётся в системном разделе, данные сохраняются, а вернуть компонент можно через pm enable. Удаление через pm uninstall --user 0 тоже обратимо, но без флага -k стирает данные, поэтому автор считает его излишним. При этом shell без root способен переключать только целые пакеты: попытка отключить отдельный компонент упирается в SecurityException, и это ограничение напрямую влияет на логику работы скрипта.
Отдельное внимание в проекте уделено пакетам, которые отключать нельзя. Автор собрал по форумам и страницам 4PDA наиболее опасные случаи, когда после «чистки» телевизор превращается в кирпич до сброса. Показателен пример Google TV 14: если отключить штатный лаунчер launcherx, кнопку «Домой» перехватывает RecoveryActivity мастера настройки setupwraith, и system_server падает примерно раз в минуту. Отключить один этот компонент через shell невозможно — только весь пакет, а отключение setupwraith удаляет сеть Wi-Fi, сохранённую при первой настройке, после чего телевизор одновременно отваливается от Wi-Fi и от ADB. В ЧистомТВ это зашито в логику: штатный лаунчер отключается только по явной просьбе, только вместе с парными пакетами и никогда — если один из них владеет сетью Wi-Fi. Дополнительно действует второй рубеж: пакеты, чьи имена похожи на входы, пульт, клавиатуру, установщик, Wi-Fi или заводские меню, скрипт не тронет, даже если они по ошибке окажутся в базе.
Российский контекст в проекте проработан отдельно. Для Яндекс ТВ, который встречается на устройствах Hartens, Leff, DEXP, Hyundai, Novex, Starwind и других на платах CVTE/Cultraview, главным источником рекламы назван пакет com.yandex.android.advid. С прошивок 2025 года из меню разработчика часто пропадает «Отладка по USB», но у плат CVTE есть сервисное меню с последовательностью кнопок, где можно включить ADB Mode; остальные пункты вроде Panel Type, LVDS или Shipping Init трогать нельзя, иначе легко получить чёрный экран. Ещё один нюанс — обновление прошивки Яндекс ТВ возвращает рекламные плагины, поэтому ЧистыйТВ предлагает отключить обновления отдельным пунктом, но не делает этого молча, поскольку вместе с ними не придут и исправления. Для Салют ТВ, как ни странно, путь самый цивилизованный: у Сбера есть официальная документация, а ADB включается в Sber Studio по ID устройства, единственное условие — VPN на компьютере не должен перехватывать маршруты.
Отдельный блок посвящён YouTube, который на телевизоре тормозит и показывает рекламу даже после отключения рекламных пакетов на главном экране. Решение состоит из двух частей: открытый клиент SmartTube без рекламы, со SponsorBlock и поддержкой 4K, а также VPN для обхода замедления. Автор предупреждает о детали, о которую споткнулся сам: в конце 2025 года разработчик SmartTube сменил ключ подписи после заражения сборочной машины, и имена пакетов изменились — теперь это org.smarttube.stable вместо com.teamsmart.videomanager.tv, поэтому старые установки не обновляются поверх, и скрипт распознаёт их и ставит новую версию рядом. Загрузка идёт только с официального GitHub, где у релиза с тегом latest постоянные имена файлов под каждую архитектуру, а основной сборкой для ТВ остаётся armeabi-v7a. Для VPN скрипт устанавливает Happ с официального APK и отправляет подписку через команду am start с данными happ://add/, а если конкретная сборка не принимает ссылку, используется официальный путь с пятизначным кодом в Web Import и POST-запросом на сервер Happ — при этом скрипт спрашивает разрешение, поскольку подписка проходит через сервер. Ссылка вставляется в shell внутри одинарных кавычек, поэтому пропускаются только URL из безопасных символов, и конструкция вида https://x.ru/'; reboot не пройдёт.
Опыт первого запуска на живом Xiaomi выявил две проблемы, которых не было ни в одном гайде. При первом adb connect телевизор показывает окно «Разрешить отладку?», а adb в этот момент возвращает не «unauthorized», а failed to authenticate, и первая версия скрипта приняла это за ошибку — теперь утилита ждёт подтверждения. Вторая проблема связана с VPN на компьютере: скрипт не находил телевизор, хотя тот был в той же сети, потому что AmneziaVPN забирал себе маршрут. Помимо этого, проект существует в контексте общего роста внимания к приватности умных устройств и к тому, что происходит внутри телевизоров: параллельно в сообществе обсуждают архитектуру сетей фильтрации вроде Curator и разбор утечек телеметрии в настольных утилитах. На этом фоне ЧистыйТВ выглядит не разовой акцией, а попыткой дать пользователю управляемый и обратимый инструмент. Открытыми остаются вопросы о том, насколько списки пакетов будут поддерживаться для новых прошивок, как поведёт себя скрипт на устройствах с нестандартными лаунчерами и не начнут ли производители активнее закрывать ADB в следующих версиях ПО.