Мини 1 (2019): root и ADB по USB через Station Mini Root¶
Способ для Станции Мини первого поколения, YNDX-0004,
Amlogic A113X. Программа сохраняет исходный system, собирает из него образ с USB-ADB,
записывает его и проверяет uid=0 после загрузки. Разборка корпуса, пайка, смена DNS
и заводской сброс для этого способа не требуются.
- Репозиторий Station Mini Root — исходники, описание и сборка.
- Готовые Windows/Linux-приложения — архивы и
SHA256SUMS.txt. - Техническое описание метода и проверки проекта.
Только Мини первого поколения
Мини 2, Мини 3, Лайт и Станция первого поколения — другие устройства. Проверьте маркировку YNDX-0004. Во время записи и полного обратного чтения сохраняйте питание и USB-соединение. Рабочую папку с бэкапом и личным ADB-ключом храните у себя, не прикладывайте её к публичным сообщениям.
Что понадобится¶
- Своя Мини 1 YNDX-0004 и USB-кабель с передачей данных.
- Компьютер с Windows x64 и поддержкой WSL либо Linux x86_64.
- Интернет для скачивания зависимостей и свободное место под Linux-сборщик и образы.
- Возможность подтвердить установку зависимостей и USB-драйвера с правами администратора.
Инструкция соответствует Station Mini Root 0.3.12. В готовой Windows-сборке уже есть
libusb и WinUSB-помощник: собирать их через WDK вручную не нужно. В Windows образ
собирается через WSL; приложение выбирает совместимый установленный дистрибутив,
а при необходимости устанавливает WSL и официальный Debian. Существующие дистрибутивы
не удаляются, дистрибутив по умолчанию не меняется.
Готовая Linux-сборка выпущена для Ubuntu 24.04 / glibc 2.39. Для более старой системы используйте инструкцию сборки из исходников на целевой системе.
Установка¶
-
Откройте Releases, скачайте архив для своей ОС и распакуйте его полностью:
- Windows:
StationMiniRoot-windows-x64.zip, запуститьStationMiniRoot.exe. -
Linux:
StationMiniRoot-linux-x86_64.tar.gz, выдать право запуска и открыть приложение:
- Windows:
-
Нажмите «Установить зависимости». Программа найдёт или скачает ADB, подготовит сборщик и USB-доступ. Подтвердите системные запросы UAC/драйвера в Windows; в Linux будут подготовлены инструменты и правила udev. Если Windows требует перезагрузки для WSL, выполните её и снова запустите приложение.
-
Подключите колонку USB-кабелем, когда об этом попросит приложение. В подтверждённом способе кнопки зажимать не нужно. Программа ждёт устройство
1B8E:C003, захватывает загрузчик и удерживает его опросом — в журнале это называется «TPL захвачен» и «якорь». Дождитесь готовности зависимостей: до завершения этого этапа root и восстановление недоступны. -
Нажмите «Установить root», подтвердите модель и дождитесь окончания:
- считывается полный исходный
systemразмером 80 МиБ и сохраняется его SHA-256; - из собственного бэкапа колонки собирается изменённый UBI/UBIFS-образ;
- образ записывается в
system, затем раздел полностью считывается обратно; - сравнивается SHA-256, колонка перезагружается, через ADB проверяется
id.
- считывается полный исходный
-
Убедитесь, что в журнале появились
uid=0(root)и подтверждение root. После этого программа автоматически устанавливает Alice Homebrew с автозапуском. В комплекте 0.3.12 — Homebrew 0.5.3. Его интерфейс открывается по адресу<http://IP-КОЛОНКИ:8088>, без входа и токена; используйте доверенную локальную сеть. Плагины, в том числе AirPlay, устанавливаются отдельно. -
Сохраните рабочую папку и исходный бэкап на компьютере. Путь к бэкапу напечатан в журнале. По умолчанию рабочая папка расположена здесь:
- Windows:
%LOCALAPPDATA%\StationMiniRoot\work; - Linux:
~/.local/share/StationMiniRoot/workлибо каталог поXDG_DATA_HOME.
Если приложение использовало прежний каталог
~/StationMiniRootсsession.json, сохраните именно его. Внутри находятсяkeys/adbkey, бэкапы иsession.json. - Windows:
Root и обновления
Программа блокирует распознанные OTA-входы, сохраняет остальные службы Алисы и не обновляет её голосовой стек до другой версии. Неизвестная схема обновлений останавливает сборку до записи. Дополнительные SSH и пакеты описаны в разделах «SSH и обновления» и «Пакеты yse».
Как открыть ADB вручную¶
Приложение само проверяет root. Для дальнейшей работы по USB нужен тот же личный ключ,
публичная часть которого записана в образ. Обычный adb с другим ключом может показать
unauthorized.
Закройте Station Mini Root и другие программы, использующие ADB; отключите от ПК другие ADB-устройства. Следующие команды читают сохранённые пути приложения и перезапускают ADB-сервер компьютера. Его текущие подключения будут закрыты; колонка не перезагружается.
settings="$HOME/.config/StationMiniRoot/settings.json"
adb_path="$(python3 -c \
'import json,sys; print(json.load(open(sys.argv[1]))["adb"])' "$settings")"
work_path="$(python3 -c \
'import json,sys; print(json.load(open(sys.argv[1]))["work"])' "$settings")"
export ADB_VENDOR_KEYS="$work_path/keys/adbkey"
"$adb_path" kill-server
"$adb_path" devices
"$adb_path" shell id
"$adb_path" shell
Ожидаемый результат shell id — uid=0(root). Выход из оболочки — exit.
Если задавался STATION_ROOT_CONFIG_DIR, укажите его settings.json вместо стандартного
пути. Это инструкция для USB-ADB; команда adb connect IP:5555 здесь не требуется.
Совместимость¶
Ограничения по номеру прошивки нет: приложение не использует список разрешённых номеров версий и собирает образ из бэкапа подключённой колонки.
Совместимость определяется доступностью TPL, разметкой и содержимым system.
Проверяются модель, полный раздел 80 МиБ, геометрия UBI/UBIFS, компоненты ADB и известная
схема отключения OTA. Поэтому отсутствие ограничения по номеру не означает гарантии
для любой будущей или произвольно изменённой прошивки. При неизвестном варианте
подготовка останавливается до записи.
В описании проекта подтверждён путь на Mini 1 с
1.356.4.5.4321993220.20260629. Для других сборок нет требования совпадать с этим номером.
Версия 0.3.12 распознаёт штатный updatesd, подтверждённый прежний патч noupdate
и исследованный вариант с updater_switcher; отдельная аппаратная проверка каждой
возможной прошивки не заявляется.
Как это работает¶
- USB-загрузчик TPL/U-Boot позволяет прочитать и записать раздел
system. Приложение удерживает доступ опросом IDENTIFY примерно каждые 0,5 секунды. - Считывается собственный раздел колонки. Из него в Linux-ФС извлекается rootfs с сохранением владельцев, прав и ссылок, затем собирается новый UBI-контейнер.
- В исследованной прошивке штатный
adbdуже способен работать от root. Патч восстанавливает его запуск, добавляет публичную часть локального ADB-ключа, отключает распознанную деактивацию ADB и выбирает USB-ветку гаджета. - Известные пути автоматических обновлений блокируются. Записывается только
system;bootloader,tpl,boot,nv,bkupgradeиrecoveryне прошиваются. - Полное обратное чтение подтверждает записанные байты. После перезагрузки результат
проверяется отдельно через
adb shell id: сам факт записи не считается доказательством root.
Это подтверждённый доступ к TPL, а не заявленная эксплуатация ошибки BootROM. Утверждение о «незакрываемой дыре процессора» этими проверками не подтверждается. Подробности и первичные источники приведены в техническом описании.
Восстановление¶
- Используйте сохранённую рабочую папку с исходным бэкапом и
session.json. - Запустите приложение и пройдите этап зависимостей/подключения загрузчика.
- Нажмите «Восстановить бэкап» и следуйте подсказкам. Перед восстановлением
сохраняется текущий
system; после записи выполняется полное обратное чтение.
Возвращается именно сохранённый исходный system, включая его поведение OTA.
Если он уже был модифицирован до запуска программы, это не будет произвольной
«заводской прошивкой». Homebrew и его данные расположены в /data;
возврат system сам по себе не означает их удаления.
Если не получилось¶
- Не найден libusb / инструкция предлагает собрать WinUSB-помощник. В старой версии 0.3.8 встречалась неполная упаковка. Скачайте готовый выпуск 0.3.12 или новее, распакуйте его целиком и повторите установку зависимостей. Инструкция сборки помощника предназначена для разработчиков, не для готового EXE.
- Ожидание 1B8E:C003 не заканчивается. Проверьте модель и кабель с линиями данных, затем переподключите USB по подсказке программы. Обычный режим ADB и режим загрузчика — разные этапы. Произвольные кнопочные комбинации из инструкций для других моделей использовать не нужно.
- Не найден updatesd в launch.json.
Если старая версия остановилась до записи, обновите приложение до 0.3.12
и сохраните прежние рабочую папку, WSL, ключ и бэкап. В этой версии добавлена
поддержка подтверждённых вариантов
noupdateиupdater_switcher. Если ошибка сохраняется, вариант не распознан: приложите обезличенный журнал к issue проекта, не обходите проверку удалением произвольных служб. - ADB показывает unauthorized или отсутствует.
Дождитесь полной загрузки колонки, проверьте USB-кабель и драйвер, затем повторите
подключение с ключом
keys/adbkeyиз той рабочей папки, в которой собирался образ. Не создавайте вместо него новый ключ. При нескольких устройствах выберите колонку явно черезadb -s <SERIAL>; реальные серийные номера в публичный журнал не включайте.