Osegi
Железо·2 мин чтения

Root и SSH на Xiaomi Mi Smart Speaker с Марусей: SpeakerLab

Энтузиаст получил root и постоянный SSH на Xiaomi Mi Smart Speaker с Марусей, используя штатное USB-окно загрузчика и полный дамп NAND.

Xiaomi Mi Smart Speaker with its board exposed and thin wires soldered to USB test pads, connected to a laptop.
Фото: Хабр

Колонку Xiaomi Mi Smart Speaker с Марусей автор получил в 2021 году вместе с телефоном по акции. Теперь это обычное Linux-устройство: есть root, SSH, который переживает перезагрузку, и полный физический дамп NAND. Для повторения он выпустил утилиту SpeakerLab 1.0 с графическим окном, командной строкой, исходниками и тестами.

Самое интересное в загрузке. На изученной плате включён Secure Boot, но штатный загрузчик после успешной проверки boot-образа позволяет менять данные в оперативной памяти. В этот промежуток запускается временный установщик. Файлы SSH потом лежат в /data, а загрузчик и ядро на NAND не перепрошиваются. Подпись для самодельной прошивки не создаётся, ключи OTP/eFuse не меняются.

Какие колонки Xiaomi поддерживает SpeakerLab

Только одну версию: плату AS09A VER0201 с Марусей. SoC Amlogic A113X, 512 МиБ DDR3, прошивка 32.23.1, загрузчик U-Boot 2015.01 от 27.08.2021. Утилита сверяет SHA256 кода BL33 с profile.json и останавливается, если он не совпал. У глобальной версии с Google Assistant общее железо, но другая разметка и системное ПО, так что её релиз не поддерживает.

Как ловится USB-окно и зачем нужен полный backup

При холодном включении загрузчик ненадолго появляется по USB как 1b8e:c003. Утилита ждёт его, захватывает и дополнительно проверяет ответ identify. Подключаться нужно к USB-площадкам на плате: GND, D+, D-, а VBUS не подключать и заизолировать. Программный reboot окно не даёт, питание нужно полностью выключить и включить. Цвета проводов стоит проверить прозвонкой.

Перед установкой снимается физическое чтение всех страниц NAND с OOB и плохими блоками: 131 072 страницы, 272 МиБ за одно чтение. В таком дампе есть персональные данные, например настройки сети и ключи, поэтому в публичном архиве его нет. Совпавший хеш не гарантирует отсутствия битовых ошибок: в сохранённых чтениях попадались единичные расхождения, и утилита о них предупреждает.

Установщик подключает системный раздел только для чтения и существующий /data как UBIFS, ничего не форматируя. Но запись файлов в /data всё же постоянное изменение той же NAND. Как заблокировать OTA-обновления, автор тоже описывает.

Приложения, на которые стоит взглянуть

SUMO: числовая головоломка

Выбирайте нужные клетки, складывайте, достигайте цели. Легко понять, сложно освоить. Бесплатно, для любого возраста.

Теги:xiaomimi smart speakermaruskarootsshspeakerlab

Ещё за этот день

Показать все →

Ещё в рубрике: Железо

Показать все →