Osegi
Sprzęt·2 min czytania

Xiaomi Mi Smart Speaker z Marusią: root i SSH dzięki SpeakerLab

Hobbysta zdobył roota i trwały SSH na głośniku Xiaomi Mi Smart Speaker z Marusią. Wykorzystał okno USB bootloadera i pełną kopię pamięci NAND.

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

Głośnik Xiaomi Mi Smart Speaker z asystentką Marusią dostał w 2021 roku razem z telefonem, w promocji. Teraz ktoś zrobił z niego zwykłe urządzenie z Linuksem: root, SSH działający po restarcie i pełna kopia pamięci NAND. Autor opublikował narzędzie SpeakerLab 1.0 z kodem źródłowym, instrukcją i testami.

Najciekawsza jest sama procedura startu. Na badanej płycie włączony jest Secure Boot, ale oryginalny bootloader po poprawnej weryfikacji obrazu pozwala modyfikować dane w pamięci RAM. W tym odstępie uruchamiany jest tymczasowy instalator. Pliki SSH trafiają potem do katalogu /data, a bootloader i jądro na NAND nie są przepisywane. Podpisu dla własnego firmware'u nie tworzy się, kluczy OTP/eFuse nie zmienia.

Które głośniki Xiaomi obsługuje SpeakerLab?

Tylko jedną wersję: płytę AS09A VER0201 z Marusią, z układem Amlogic A113X, 512 MiB RAM DDR3, firmware 32.23.1 i bootloaderem U-Boot 2015.01 z 27 sierpnia 2021. Narzędzie sprawdza sumę SHA256 kodu BL33 i zatrzymuje się, jeśli profil się nie zgadza. Wersja globalna z Asystentem Google ma podobny sprzęt, ale inny podział pamięci i inne oprogramowanie, więc nie jest wspierana.

Jak działa okno USB i po co pełny backup

Przy zimnym starcie bootloader na chwilę pojawia się przez USB jako urządzenie 1b8e:c003. Narzędzie czeka na nie, przejmuje je i dodatkowo sprawdza odpowiedź identify. Trzeba podłączyć się do pól USB na płycie (GND, D+, D−), a VBUS zostawić niepodłączony i zaizolowany. Zwykły reboot programowy okna nie otwiera, trzeba całkiem wyłączyć i włączyć zasilanie. Kolory przewodów należy sprawdzić miernikiem.

Przed instalacją autor zapisuje fizyczny odczyt całej NAND razem z obszarem OOB i uszkodzonymi blokami: 131 072 stron, razem 272 MiB na jeden odczyt. Taka kopia zawiera dane osobiste, w tym ustawienia sieci i klucze, więc w publicznym archiwum jej nie ma. Poprawna suma pliku nie dowodzi też braku błędów bitowych, a w zapisanych odczytach zdarzały się pojedyncze różnice. Narzędzie ostrzega o nich zamiast je ukrywać.

Instalator montuje partycję systemową tylko do odczytu i istniejący /data jako UBIFS, bez formatowania. Zapis plików do /data to jednak trwała zmiana na tej samej pamięci. Według autora da się też zablokować aktualizacje OTA.

Aplikacje warte uwagi

SUMO: łamigłówka liczbowa

Wybierz właściwe pola, dodaj je i trafiaj w cel. Łatwa do nauczenia, trudna do opanowania. Za darmo, dla każdego wieku.

Tagi:xiaomimi smart speakermaruskarootsshspeakerlab

Więcej z tego dnia

Zobacz wszystkie →

Więcej w kategorii: Sprzęt

Zobacz wszystkie →