eQuasar: ADB-доступ к Яндекс Станциям

eQuasar — проект, посвящённый получению ADB-доступа к умным колонкам Яндекса с использованием конфигурации Nginx, сертификатов и DNS-подмены. Автор проекта — bitracker. Репозиторий: iwakura/eQuasar.

Проект: git.gay/iwakura/eQuasar
Автор: bitracker

Апдейт: Яндекс начал закрывать уязвимость

Появилось сообщение о новом обновлении, которое может помешать использованию eQuasar и усложнить дальнейшие эксперименты с колонкой.

В качестве временного решения предлагают добавить в конфигурацию Nginx/Angie следующий блок:

location = /check_updates {
    return 204;
}

Важно: эффективность этого способа пока не подтверждена. Ответ 204 No Content лишь возвращает пустой успешный ответ на конкретный URL и сам по себе не гарантирует блокировку обновления или сохранение доступа к устройству.

Апдейт: Бекап прошивки

Пока не загружаю сюда, сначала шарющие люди изучат архив. Мало ли, вдруг там личные данные
Вот версия которую можно скормить как софтвейр апдейт при желании (Мини2): Google Drive

Апдейт: Есть SU

Вот

Как это работает

огласно опубликованному описанию, схема использует конфигурацию и сертификаты из репозитория, а также перенаправление DNS-запросов к доменам инфраструктуры Яндекса на локальный сервер.

Среди упомянутых доменов:

  • quasar.yandex.net
  • quasar.yandex.ru
  • scbh.yandex.net
  • rpc.alice.yandex.net
  • alice.yandex.net
  • uniproxy.alice.yandex.net

В качестве веб-сервера используется Nginx. По описанию автора, после настройки и перезапуска совместимой колонки становится доступен ADB на порту 5555, позволяющий получить командную оболочку.
Предполагаемая причина уязвимости — недостаточная защита механизма взаимодействия колонки с серверной инфраструктурой. Точные детали проверки сертификатов и обработки запросов требуют отдельного анализа исходников.

eQuasar — краткая инструкция

  • Установи Nginx на компьютер или сервер, который будет работать в локальной сети.
  • Скачай конфигурацию и сертификаты из репозитория eQuasar.
  • Подключи конфигурацию к Nginx и настрой DNS-перенаправление доменов quasar.yandex.net, quasar.yandex.ru и scbh.yandex.net на локальный сервер.
  • Перезапусти Nginx и переподключи совместимую колонку к питанию.
  • Если метод сработал, ADB может стать доступен на порту 5555.

Важно: совместимость зависит от модели и прошивки. DNS-фоллбэки могут мешать перенаправлению, а доступность ADB не гарантирована. Не открывай порт 5555 в интернет.

Что известно об устройстве

Для Яндекс Станции Mini 2 сообщалось об успешном получении оболочки на прошивке: 0.369.1.46.4778262943.20261013.299
В окружении упоминаются:

  • Linux с ядром версии 4.9;
  • Buildroot — система сборки встроенных Linux-окружений;
  • BusyBox — компактный набор системных утилит;
  • ADB для удалённого доступа к командной оболочке.

Таким образом, речь идёт не об обычной Android-системе, а о специализированном Linux-окружении для встроенного устройства.
Также сообщается, что в /system/vendor/quasar находятся полезные для исследования компоненты, а ряд системных команд имеет префикс yandex-. Их точное назначение пока не документировано в рамках этого обзора.

DNS и сетевые ограничения

В опубликованном примере конфигурации /etc/unbound/unbound.conf используется DNS-forwarding через несколько серверов, включая адреса 77.88.8.1, 77.88.8.8, 77.88.8.88, 77.88.8.2 и 10.250.0.1.
Это указывает на использование перенаправления DNS-запросов, однако само по себе не доказывает наличие уязвимости: для этого необходимо установить, как колонка проверяет подлинность серверов и какие именно запросы принимает локальный сервер.
В другом опубликованном примере сканирования сети обнаружен открытый TCP-порт 5081, тогда как остальные проверенные порты оказались закрыты. Это результат конкретного сканирования, а не доказательство того, что ADB недоступен во всех конфигурациях.

Что это даёт

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

  • изучение штатных аудиосервисов;
  • запуск собственных Linux-программ;
  • создание альтернативного голосового ассистента;
  • интеграция с собственным музыкальным сервером, например Navidrome;
  • исследование возможности замены отдельных штатных компонентов.

Однако ADB-доступ не гарантирует root-права, возможности менять системные разделы или устанавливать альтернативную прошивку. Доступность микрофонов и динамика для сторонних программ также требует проверки.

Анлок заблокированных станций

Ограничение метода eQuasar: заблокированные Яндекс Станции нельзя разблокировать этим способом, поскольку их статус проверяется не только на самом устройстве, но и на стороне серверов Яндекса (server-side). Поэтому DNS-подмена и локальная конфигурация Nginx сами по себе не позволяют обойти серверную проверку блокировки.

Что пока неизвестно

На основании доступных сведений нельзя подтвердить:

  • совместимость метода с другими моделями и версиями прошивок;
  • точный механизм обхода проверки сертификатов;
  • уровень привилегий полученной оболочки;
  • возможность устойчивого автозапуска сторонних программ;
  • возможность замены штатных сервисов без нарушения работы колонки;
  • наличие рабочего способа восстановления после неудачных изменений.

Поэтому проект пока разумнее рассматривать как исследовательскую возможность, а не как готовый универсальный способ превращения любой Яндекс Станции в свободное Linux-устройство.

Итог

eQuasar представляет интерес для тех, кто хочет изучать внутреннее устройство умных колонок Яндекса и экспериментировать с собственным программным обеспечением. Если описанный метод действительно работает на конкретной модели, ADB может стать отправной точкой для исследования Linux-окружения и разработки альтернативных сервисов.

Особенно перспективное направление — собственный голосовой ассистент с независимой логикой обработки команд и воспроизведения музыки. Но прежде чем говорить о полноценной замене экосистемы Яндекса, необходимо разобраться в правах доступа, аудиостеке и механизме запуска системных служб.

Интересности

На Яндекс Станции Mini 2 основная корневая файловая система (ubi0:rootfs) имеет размер всего 64,8 МБ, из которых занято 53,6 МБ (83%), а свободно около 11,3 МБ. Отдельный раздел /bkupgrade, судя по названию, предназначен для операций обновления и располагает 87,5 МБ, из которых свободно 72,8 МБ. При этом устройству доступно около 106 МБ для /dev и 119 МБ для временных файловых систем в RAM (tmpfs).

На Яндекс Станции Лайт первого поколения корневая файловая система (ubi0:rootfs) имеет размер 64,8 МБ, из которых занято 52,6 МБ (81%), а свободно 12,3 МБ. Раздел /bkupgrade, предположительно используемый для обновления системы, занимает 87,5 МБ, из которых свободно 82,7 МБ (94%). Для временных файловых систем в RAM доступно около 119 МБ, причём на момент снятия показаний в /tmp занято всего 2,5 МБ. По сравнению с Mini 2 корневая файловая система практически идентична по размеру, но на Лайт первого поколения раздел обновления свободнее.

На Яндекс Станции Mini 2 удалось получить ADB-оболочку с ядром Linux 4.9.68 и архитектурой ARM64 (aarch64). При этом стандартный каталог /dev/block/by-name, характерный для многих Android-устройств, отсутствует.

У Яндекс Станции Mini 2 обнаружена разметка памяти на основе MTD — типичного механизма работы с флеш-памятью во встроенных Linux-устройствах. Команда /proc/mtd выявила семь разделов: bootloader (2 МиБ), tpl (2 МиБ), boot (10 МиБ), system (80 МиБ), nv (1 МиБ), bkupgrade (105 МиБ) и recovery (50 МиБ).

Вывод df -h показывает, что корневая файловая система станции использует около 64,8 МиБ, из которых занято 53,6 МиБ (83%). Раздел /bkupgrade имеет размер 87,2 МиБ и смонтирован отдельно, а временные каталоги /tmp, /run и /dev/shm используют tmpfs — файловую систему в оперативной памяти. Раздел /tee занимает около 1 МиБ.

Согласно /proc/cpuinfo, устройство использует четырёхъядерный ARM-процессор семейства Cortex-A53: идентификатор CPU part : 0xd03 соответствует Cortex-A53, архитектура — ARMv8-A, производитель SoC указан как Amlogic. Команда free показывает около 238 МиБ оперативной памяти, из которых примерно 85,6 МиБ доступны приложениям с учётом возможности освобождения кэша. Swap не настроен.

После подключения к станции через ADB создаётся каталог station_backup, в который считываются резервные копии основных разделов прошивки: загрузчика, tpl, boot, system, bkupgrade и recovery

На Яндекс Станции Лайт 2-го поколения корневая файловая система занимает 64,8 МиБ, из которых занято 56,2 МиБ (87%), а свободно около 8,7 МиБ. Раздел /bkupgrade имеет размер 87,5 МиБ и используется отдельно, а временные каталоги размещены в tmpfs и используют оперативную память. Раздел /tee занимает около 1 МиБ.
/tee вероятнее всего связан с Trusted Execution Environment (TEE)