Проблема с Google TV

Android TV работает стабильно, запускает нужные приложения и доступен на дешёвых Chromecast-устройствах или встроен в телевизоры. Но Google TV, стандартный интерфейс для большинства устройств, постоянно раздражает: в верхней части экрана висит большой баннер с рекомендациями, который Google считает нужным показывать всем.

Режим «Только приложения» (Apps only mode) должен избавить от этого кошмара, но баннер остаётся. Нет никакой возможности поменять лаунчер, да ещё YouTube добавляет собственную рекламу сверху.

Google TV на главном экране в режиме 'Только приложения', баннер всё ещё виден

До: Google TV в режиме Apps only mode

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

Решение: основные компоненты

  • Projectivy Launcher — замена для главного экрана. Показывает только приложения, полностью кастомизируется.
  • SmartTube — альтернатива YouTube без рекламы, лучший интерфейс, встроена поддержка SponsorBlock. Продолжаю платить за YouTube Premium для поддержки авторов, но SmartTube явно удобнее официального приложения.
  • Wholphin — удобный клиент для Jellyfin с хорошим UI и опциями настройки.
  • Button Mapper — переназначает кнопки пульта, чтобы кнопка YouTube открывала SmartTube вместо официального приложения.

Главный экран Projectivy Launcher с приложениями

После: Projectivy Launcher

Главный экран SmartTube

SmartTube (размытый экран)

Этот набор настроен на двух Chromecasts с Google TV и телевизоре Hisense — должен работать на большинстве устройств с Android TV.

Пошаговая инструкция

Совет: можно передать эту статью AI-ассистенту (например, Claude Code) и попросить провести по всем шагам. Он сможет выполнить ADB-команды за вас и адаптировать их под конкретное устройство.

Сначала установите приложения. Projectivy, Wholphin и Button Mapper доступны на Play Store. SmartTube можно установить через Downloader. Остальное требует ADB.

Подключение ADB

Включите режим разработчика, нажав Settings → System → About → Android TV OS build 7 раз подряд. Затем в Developer options активируйте Wireless debugging и выберите Pair device with pairing code:

adb pair <ip>:<pairing-port> <code>
adb mdns services # Найти connect-порт
adb connect <ip>:<connect-port>

D=<ip>:<connect-port> # Использовать в командах ниже

Wireless debugging работает только через Wi-Fi. Если устройство его не поддерживает (как мой Hisense TV), включите USB debugging и подключитесь командой adb connect <ip>:5555.

Замена лаунчера

Projectivy имеет опцию Override current launcher, но стандартный экран всё ещё мелькает перед ней. Проще отключить стандартный лаунчер и пакет, который его восстанавливает, а затем установить Projectivy как главное приложение:

adb -s $D shell pm disable-user --user 0 com.google.android.apps.tv.launcherx
adb -s $D shell pm disable-user --user 0 com.google.android.tungsten.setupwraith
adb -s $D shell cmd package set-home-activity com.spocky.projengmenu/.ui.home.MainActivity

На телевизоре стандартный лаунчер может отвечать за переключение HDMI-входов — проверьте, что это всё ещё работает.

Замена YouTube

После установки SmartTube удалите официальное приложение:

adb -s $D uninstall com.google.android.youtube.tv

Если приложение встроено в прошивку (ошибка DELETE_FAILED_INTERNAL_ERROR), используйте:

adb -s $D shell pm uninstall --user 0 com.google.android.youtube.tv

Переназначение кнопок пульта

Button Mapper и Projectivy оба нуждаются в включённых сервисах доступности. Это заменит весь список, поэтому сначала проверьте текущие сервисы командой adb -s $D shell settings get secure enabled_accessibility_services и сохраните, что используется:

adb -s $D shell settings put secure enabled_accessibility_services \
  'flar2.homebutton/a.i:com.spocky.projengmenu/com.spocky.projengmenu.services.ProjectivyAccessibilityService'
adb -s $D shell settings put secure accessibility_enabled 1

Используйте полный путь компонента Projectivy, как выше. С сокращённой формой (com.spocky.projengmenu/.services...) Projectivy показывает Enabled: No, хотя сервис работает.

Android иногда отключает сервисы доступности. Дайте Button Mapper разрешение WRITE_SECURE_SETTINGS, чтобы он мог сам себя включать, и добавьте исключение из оптимизации батареи:

adb -s $D shell pm grant flar2.homebutton android.permission.WRITE_SECURE_SETTINGS
adb -s $D shell dumpsys deviceidle whitelist +flar2.homebutton

Затем в Button Mapper переназначьте кнопку YouTube на SmartTube.

Финальная очистка

Пока подключены к ADB, ускорьте анимацию и отключите ненужные приложения Google:

for k in window_animation_scale transition_animation_scale animator_duration_scale; do
  adb -s $D shell settings put global $k 0.75
done

for p in com.google.android.videos com.google.android.play.games \
         com.google.android.feedback com.google.android.partnersetup; do
  adb -s $D shell pm disable-user --user 0 $p
done

Всё можно отменить командой adb shell pm enable <package> (или adb shell cmd package install-existing <package> для YouTube). Отключите Wireless debugging по завершении.

Готово: без баннеров, без рекламы, пульт открывает только нужные приложения.