Пульт для Android TV на iPhone — открытый код, работает без интернета | migunoff
●Мигунов · продукт · открытый код

Пульт сломался.
Телевизор остался умным.

Приложение для iPhone, которое управляет телевизором на Android TV напрямую по домашней сети. Без облака, без аккаунта, без рекламы. Исходный код открыт — забирайте и собирайте себе.

Забрать код на GitHub→ iPhone и iPad · iOS 17+
Бесплатно, лицензия MIT
Работает без интернета · ни одного запроса наружу · ставится себе, а не в App Store
Экран приложения: кольцо навигации, плитки приложений и качелька громкости
0серверов и аккаунтов
2протокола внутри
0 ₽стоит
MITоткрытый код
01— Проблема и решение

Шесть причин, по которым это появилось.

Каждая строчка ниже — не выдумка для лендинга, а то, обо что я споткнулся сам, пока делал этот пульт для своего телевизора.

01
проблема

Пульт сломался, потерялся или его залили чаем.

→
решение

Телефон всегда под рукой — и он уже в той же сети, что телевизор. Ставится один раз, дальше просто открываете.

02
проблема

В Google Home кнопка «Открыть пульт» серая и не нажимается.

→
решение

Приложение не зависит от Google Home вообще. Оно говорит с телевизором напрямую, тем же протоколом, что и фирменный пульт.

03
проблема

Пульты из App Store просят аккаунт, показывают рекламу и куда-то отправляют нажатия.

→
решение

Ни аккаунта, ни рекламы, ни единого запроса наружу. Интернет не нужен — только домашняя сеть. Код открыт, проверить можно построчно.

04
проблема

Кнопки нажимаются, а до нужного приложения всё равно долго идти по лаунчеру.

→
решение

Плитки быстрого запуска с настоящими баннерами приложений — теми, что рисует сам телевизор. Одно касание вместо десяти нажатий на стрелки.

05
проблема

В протоколе пульта есть команда «запусти приложение», но телевизор её молча игнорирует.

→
решение

Так и оказалось на живых прошивках: команда принимается и не выполняется. Поэтому внутри есть собственный клиент ADB — через него приложение открывается всегда.

06
проблема

Роутер выдал телевизору другой адрес — и пульт перестал его видеть.

→
решение

Телевизор ищется по имени в сети, а адрес берётся прямо из установленного соединения. Смена адреса больше ничего не ломает.

02— Как устроено

Два протокола вместо одного.

Так вышло не от любви к сложности. Одного протокола не хватает, и это выясняется только на живом телевизоре.

6466TLS

Android TV Remote v2

Тот же протокол, которым пользуется приложение Google. Отвечает за кнопки, громкость, питание и ввод текста. Официального описания у него нет — он восстановлен и переписан на Swift с нуля, вместе с разбором сообщений.

5555ADB

Собственный клиент ADB

Нужен ровно для двух вещей: запускать приложения и читать состояние VPN. Потому что штатная команда запуска из протокола пульта на живых прошивках принимается и молча не выполняется — проверено на всех известных формах записи.

Обе части — свои, на Swift, без сторонних библиотек: около 1650 строк кода, который можно прочитать целиком.

03— Что умеет

Пульт, а не пульт из веб-страницы.

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

01ring

Кольцо навигации

Стрелки и OK собраны в один круг — единственный круглый элемент на экране, палец находит его не глядя. Удержание повторяет нажатие, как на настоящем пульте.

02volume

Крупная качелька звука

Тише, без звука, громче — одной цельной клавишей под навигацией. Кнопка выключения звука остаётся утопленной, пока звук выключен: состояние читается с телевизора.

03apps

Плитки приложений

Свой набор под свой телевизор. Картинки не рисованные: баннеры достаются прямо из установленных на телевизоре приложений.

04vpn

Индикатор VPN

Зелёная точка загорается, только если на телевизоре действительно поднят туннель. Приложение читает состояние сети телевизора, а не помнит последнее нажатие.

05text

Ввод текста

Пароли и поиск набираются клавиатурой телефона и уходят на телевизор целиком. Больше не надо ходить стрелками по экранной раскладке.

06find

Сам находит телевизор

Устройства видны по именам, выбираются в один тап. Работает и когда в доме несколько телевизоров.

04— Честно

Чего это приложение не умеет.

Лучше узнать сейчас, чем после установки.

Нужен Mac, чтобы собрать

Приложения нет в App Store и не будет: внутри ключи от вашего телевизора, такое не публикуют. Сборка ставится себе — один раз с компьютера.

Один телевизор на сборку

Привязка делается к конкретному телевизору. Для второго нужна отдельная привязка и отдельная сборка.

Спящий телевизор недоступен

Многие Android TV в глубоком ожидании отключают сеть целиком — их не будит ни пульт, ни Wake-on-LAN. Это лечится настройкой, она описана в инструкции.

●Забрать

Код открыт. Собирайте себе.

В репозитории лежат исходники, скрипты установки и пошаговая инструкция. Она написана так, что её может выполнить и человек, и ИИ-агент: скачали, открыли у себя Claude Code и сказали «поставь по SETUP.md» — дальше он сам найдёт телевизор в сети, проведёт привязку и соберёт пульт под ваши приложения.

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

Открыть на GitHub→
Иконка приложения