Медленный ТВ снова быстрый, а правила дома задают родители
MyTV — открытый лаунчер для Android TV. Он отключает службы, которыми вы не пользуетесь, а его санитар сам освобождает память, поэтому ТВ не тормозит. Для семьи добавлены детское расписание с PIN-кодом, управление с телефона и таймер сна. Аккаунт не нужен.
Почему ТВ становится быстрее
Медленный ТВ редко тормозит только из-за процессора. На нашем TCL память была почти всегда занята: файл подкачки в 600 МБ был забит, а при пяти тяжёлых приложениях системный очиститель памяти съедал 95% ядра. MyTV бьёт именно в это.
-
Ненужные службы отключены
Инструменты установки отключают телеметрию производителя, рекламные службы, ленты контента и предустановленные приложения командой
Процент ускорения от этого шага на нашем ТВ мы не измеряли, поэтому цифру не даём.pm disable-user. Ничего не удаляется, одна команда возвращает всё обратно. В репозитории есть списки больше чем для 250 моделей ТВ; на нашем TCL это 15 пакетов. -
Лаунчер, который в простое почти ничего не делает
Он рисует только тогда, когда что-то меняется. В нашем замере на одном ТВ TCL (версия 2.7) он занимал 42 МБ и в простое использовал от 0 до 0,6% ядра. Два других лаунчера, которые мы пробовали, занимали 64 и 140 МБ и использовали около 13% и от 30 до 58% ядра.
Один ТВ, несколько прогонов. Текущую версию замерим заново. -
Санитар, который сам наводит порядок
Он ничего не опрашивает по таймеру. Память проверяется, когда главный экран три минуты стоит без нажатий, когда гаснет экран и когда Android просит приложения вернуть память. Если подкачка почти исчерпана или мало оперативной памяти, он закрывает фоновые процессы приложений, но не то, что на экране, не играющее в фоне, не лаунчер и не ваше VPN-приложение, и не чаще раза в 20 минут. Если VPN отвалился, через четыре тихие минуты он снова открывает VPN-приложение.
Ещё проверяем на одном ТВ. Одна настройка его отключает.
Что получает семья
Скорость — главная причина. Ниже семейные возможности поверх неё.
-
Детский режим
Расписание, когда можно смотреть ТВ, PIN-код (хранится как хеш с солью), журнал событий, таблица экранного времени за последние 30 дней и бонусные минуты, которые родитель выдаёт на самом ТВ по PIN-коду. Если служба-помощник выключена, журнал это покажет.
-
Управление с телефона дома
ТВ показывает код привязки. Родитель вводит его на телефоне и получает небольшую страницу, которую отдаёт сам ТВ на порту 8787, только внутри домашней сети. Заблокировать, разблокировать, показать сообщение поверх видео, выключить ТВ. У каждого телефона свой токен, его можно отозвать.
Боты и ваши скрипты пользуются тем же описанным HTTP-API. -
Таймер сна поверх видео
Кнопки «вверх» и «вниз» меняют минуты, видео при этом идёт: выкл, 15, 30, 60 или 90. За минуту до конца появляется предупреждение, любая клавиша пульта добавляет 15 минут, в конце ТВ уходит в режим ожидания. На пульте TCL таймер открывается двойным нажатием кнопки с шестерёнкой.
Для режима ожидания нужен Android 9 или новее. -
«Смотреть далее» на первой странице
Главный экран открывается полкой с фильмами и сериями, которые вы не досмотрели, а приложения на одно нажатие ниже. Разрешение читать телевизионные списки запрашивается только когда вы включаете полку.
-
Выключение ТВ с телефона
Выключить сразу или через заданное время, до 24 часов, и отменить отложенное. Действуют то же предупреждение и те же +15 минут.
-
У заблокированного ТВ есть выход
Если PIN-код забыт, файл-метка, отправленный по adb, снимает блокировку и стирает код, заданный на ТВ. Больше ничего блокировку не снимает.
Установка с компьютера
Без аккаунта и без root. Нужен компьютер в той же сети Wi-Fi, что и ТВ, и около десяти минут.
-
1. Включите отладку на ТВ
Настройки, Параметры устройства, О системе: нажмите OK на пункте «Сборка» семь раз. Назад, затем «Для разработчиков»: включите «Отладка по USB». Если есть переключатель «Отладка по сети», включите и его. Запишите IP-адрес ТВ в Настройки, Сеть.
-
2. Подключитесь с компьютера
Установите platform-tools от Google (в них есть
adb) на Windows, macOS или Linux. В терминале, в папке со скачанным файлом:adb connect 192.168.1.50:5555
Укажите адрес вашего ТВ. Когда ТВ спросит, разрешите подключение на экране.
-
3. Поставьте MyTV на ТВ
Одна команда копирует приложение на ТВ:
adb install -r MyTV.apk
Если на ТВ уже стоит другая сборка с тем же идентификатором приложения (com.gathin.tvhome), сначала удалите её: Android не заменит приложение, подписанное другим ключом. -
4. Сделайте его главным и отключите лишнее
Пошаговый путь делает резервную копию, применяет список отключаемых служб для вашей модели ТВ, назначает MyTV главным экраном и откатывает всё, если главным экраном он не стал. Он описан в README в разделе «Doing it by hand» (по-английски).
Открыть README. Установщик в один клик для Windows, macOS и Linux запланирован.
На экране
Скриншоты с настоящего ТВ TCL, интерфейс лаунчера на английском.
Что проверено, а что нет
Лучше сказать прямо, чем дать вам узнать об этом вечером, когда ТВ смотрит вся семья.
Проверено на настоящем ТВ
- Блокировка и разблокировка детского режима из скрипта, таблицы использования.
- Таймер сна: предупреждение, +15 минут, режим ожидания, пробуждение с пульта.
- Выключение из скрипта с задержкой и отменой.
- Страница для телефона и привязка в домашней сети.
- Блок погоды и полка «Смотреть далее».
Ещё проверяем на одном ТВ
- Детское расписание на настоящем ТВ и кнопка выключения на странице телефона.
- Голосовое выключение ТВ через HDMI-CEC.
- Санитар: очистка фоновых приложений при нехватке памяти и перезапуск VPN-приложения, когда главный экран простаивает.
- Список языков, который загружается из этого репозитория, и новые значения по умолчанию у скрипта установки.
- Переводы, кроме английского, русского и иврита, пока показывают английский текст.
Что уходит с ТВ
Очень немного, и каждую строку кода, которая это делает, можно прочитать.
-
Разрешение на сеть
По умолчанию в интернет ходят две вещи. Необязательный блок погоды раз в 30 минут обращается к Open-Meteo, пока показан главный экран. Диалог выбора языка при открытии читает один небольшой список языков из репозитория проекта на GitHub и сохраняет его. Обычный http разрешён только для домашней сети: всё остальное отклоняется до соединения.
-
Служба доступности
Она видит, какое приложение вышло на передний план, а при заблокированном ТВ ещё и нажатия на пульте. Содержимое экрана, текст и пароли она не читает.
-
PIN-код и телефоны
PIN-код хранится как хеш с солью. Токены телефонов передаются в заголовке, а не в адресе, и ТВ хранит только их хеши. Данные детского режима остаются на ТВ и стираются на нём же.
-
Облачное управление, только если вы включите
Чтобы управлять ТВ с телефона не из дома, можно включить «Облачное управление» и привязать телеграм-бота кодом с экрана ТВ. ТВ только выходит в сеть сам: ничего не подключается к нему, порты не открываются. Сервер узнаёт название ТВ, какие приложения были на переднем плане и когда горел экран, последние события журнала и ваши сообщения, но не родительский код, не имя Wi-Fi и не то, что вы смотрите. Данные старше 30 дней удаляются, а выключение переключателя сразу удаляет данные этого ТВ. Пока родитель не включит, оно выключено.
Чтобы проект продолжался
MyTV бесплатный и останется рабочим без оплаты. Если он сэкономил вам вечер, пожертвование оплатит время на тестовом ТВ и сервер для бота. Те же два QR-кода лаунчер показывает в разделе «О программе».