Firmware Hero
0

spoti-alice

Yandex Station Max (rooted, Android 9) turned into a local Spotify Connect speaker with on-device voice commands and its own LED ring/screen UI.

  • Sideload / dev mode
  • Alpha
  • Medium brick risk

Source code

This project hasn't been claimed by its maintainer yet, so its details come from the community. Is it yours? Claim it

Before you start

How hard is it?
HardUses the command line or developer tools.
What you need
  • Comfort with the command line
  • A computer
  • Another hack installed first
Can it break my device?
Small chance of trouble, with a way to recover.
Can I undo it?
The project doesn't say. Assume you can't.
Get itOpens github.com

Did it work for you?

Did spoti-alice work on your Yandex Station?

No reports yet.

One-tap reports from owners. Bricked reports are checked before they count.

Compatibility

Devices: Yandex Station.

No compatibility information yet.

Getting started

From the project's README ("Полная установка с нуля"):

Ниже описан стандартный путь для root-обвязки mysudo su shell. Начинайте из корня репозитория.

  1. Подключить ADB и проверить root

export ADBDEVICE=<ip-колонки>:5555 adb connect "$ADBDEVICE" adb -s "$ADBDEVICE" shell 'mysudo su shell -c "id"'

В выводе должен быть root (uid=0). Если adb connect или mysudo su shell не работают, сначала исправьте root/ADB на самой колонке.

  1. Подготовить host-инструменты

На macOS установите Android SDK/NDK и Java любым удобным способом. Если SDK находится не в стандартном macOS-пути:

export ANDROIDSDK=/path/to/Android/sdk export NDK="$ANDROIDSDK/ndk/<версия>"

На Linux задайте оба пути явно, например:

export ANDROIDSDK=$HOME/Android/Sdk export NDK="$ANDROIDSDK/ndk/<версия>"

Если версия build-tools отличается от 34.0.0, задайте:

export ANDROIDBUILDTOOLSVERSION=<версия>

Если Android platform отличается от android-28, это можно переопределить через ANDROIDPLATFORM, но совместимость с Android 9 отдельно не гарантируется.

  1. Собрать и загрузить проект

ADBDEVICE="$ADBDEVICE" sh voice/deploy.sh

Скрипт собирает voiced, ledd, mic.dex, aaudiopipe, при необходимости скачивает набор негативов для обучения и загружает бинарники и device-side скрипты в:

/data/local/tmp/voice /data/local/tmp/soloist

Эти каталоги можно изменить:

export REMOTEBASE=/data/local/tmp export REMOTEVOICEDIR="$REMOTEBASE/voice" export REMOTESOLOISTDIR="$REMOTEBASE/soloist"

Для нестандартных путей нужно передавать те же SOLOISTBASE и VOICEDIR …

Read the full instructions

Risk and recovery

Brick risk
Medium
Requires opening the device
No

From the project's README ("После запуска"):

Веб-панель доступна по адресу:

http://<ip-колонки>:8780

Через неё можно записать и обучить слова команд, настроить громкость, шаг кольца, стили индикации и яркость экрана.

> В панели сейчас нет аутентификации. Порт 8780 слушает на всех интерфейсах, > поэтому не выставляйте его в недоверенную сеть и ограничьте доступ firewall'ом > или локальной сетью.

Если голосовой стек Яндекса мешает, его можно удалить обратимо:

adb -s "$ADBDEVICE" shell -tt
'mysudo su shell -c "pm uninstall -k --user 0 com.yandex.io.sdk"'

Вернуть компонент:

adb -s "$ADBDEVICE" shell -tt
'mysudo su shell -c "cmd package install-existing com.yandex.io.sdk"'

Стоковые анимации экрана Яндекса в репозиторий не входят. deploy.sh пытается скопировать их из данных io.sdk; отсутствие этих файлов не должно ломать остановку и запуск, но часть анимаций будет недоступна.

Read the full instructions

Credits, license and support

License
MIT