Root Robot Aspirador Xiaomi STYJ02YM

Si ets propietari d’un robot aspirador de la marca Xiaomi i en concret del Viomi V2 Pro, el fantàstic STYJ02YM també conegut a Europa com a Mi Robot Vacuum Mop Pro, t’explicaré com tenir accés root a través de la shell del robot i en un segon post explicaré com solucionar els problemes amb les actualitzacions, que es queden al 80, 83, 85%.

Vull recordar, que en cap moment seré responsable de cap dany que es pugui produir al dispositiu.

Requisits

  • El robot Xiaomi STYJ02YM
  • Tenir instal·lat l’Android platform-tools ( pots descarregar-ho aquí )
  • Client SSH ( Amb el que ús sentiu més còmode )
  • Una shell de Linux/Unix ( Si sou usuaris de Windows podeu utilitzar Cygwin ).
  • Cable Micro USB
  • Tornavís d’estrella menut.

Root del dispositu

Per poder accedir al sistema de fitxers del dispositiu cal poder accedir com a súper usuari. Rumpeltux ha fet una meravellosa feina, trobant una manera de poder accedir a l’equip d’una manera senzilla, però ús explicaré pas a pas com poder realitzar aquests passos i entendre’ls.

Cercar el port de Micro USB

Retirem la coberta de plàstic del raspall principal i retirem el raspall principal, tal com es veu a la imatge.

Un cop retirat el raspall, veurem que hi ha una coberta de plàstic amb 4 caragols petits, que també haurem de retirar.

Un cop retirada la coberta, veurem que hi ha la bateria del dispositiu. La retirem i la desconnectem del robot. Un cop fet això, veurem que hi ha un micro USB.

Connecteu el cable micro USB al connector, amb la bateria desconnectada, i sense connectar a l’ordinador.

Durant l’arracada del robot, publica un servidor Android ADB al dispositiu USB, però durant un període molt breu menys 1 segon ), i després el desactiva. És per això que hem de preparar abans i executar les ordres, metres aquest servidor estigui operatiu.

Substitució de la Shell ADB

Creem un arxiu anomenat adb_shell al nostre equip amb la següent informació

#!/bin/sh export

ENV='/etc/adb_profile'

exec /bin/sh "[email protected]"

Un cop guardat l’arxiu li donarem permisos

chmod 755 adb_shell

Executarem la següent comanda en bucle, així, quan arrengui el servidor adb durant aquest període curt de temps mitjançant push, enviarà la shell al dispositiu.

Obrim el terminal i executem tot en una mateixa línia. Un cop guardat l’arxiu li donarem permisos

while true; do adb push -a adb_shell /bin/adb_shell | grep -v "no devices"; done

Un cop executat, connectem USB a l’equip i esperem que connecti al robot.

Ens hi haurà d’aparèixer alguna línia com aquesta.

adb_shell: 1 file pushed, 0 skipped. 0.0 MB/s (58 bytes in 0.033s)

Pot ser que no ens aparegui cap línia. Si és així desconnectem l’USB i el tornem a connectar.

Hem d’ometre els erros que puguin aparèixer, es totalment normal. Ens hem de fixar en la línia i que s’hagi transmès dades58 bytes in 0.033s ) .

Si ha anat bé, polsarem “Ctrl + C” per aturar la comanda.

El següent pas, és aturar l’enllaç que arranca l’aplicació del robot i que fa que s’aturi el servidor d’Android ADB. Aquesta aplicació és la que fa que connecti a Mi Home, per tant, un cop estigui aturada apareixerà el robot com a desconnectat.

Amb el cable USB desconnectat executem la comanda següent i connectem l’USB

while true; do (adb shell rm /etc/rc.d/S90robotManager && echo "Done") 2>&1 | grep -v "no devices"; done

Si la comanda no ha anat bé, repetiu el pas anterior. Per verificar que ha anat correctament, en una nova finestra de shell executem adb shell i haurà d’aparèixer el login del linux del robot.

Si és així anul·lem la comanda anterior amb “Ctrl+C”

Ara toca instal·lar DropBear per a tenir habilitat el servei SSH. Podeu compilar vosaltres mateixos el binari mitjançant la guia de Rumpeltux, o utilitzar el binari ja compilat per Rumpeltux, que podeu descarregar d’
aquí

Per instal·lar DropBear amb l’arxiu precompilat de Rumpeltux, seguim el següents passos.

Pugem l’arxius a la carpeta tmp del robot, executant la seguent comanda.

adb push dropbear_2015.71-2_sunxi.ipk /tmp

Instal·lem  el paquet.

adb shell opkg install /tmp/dropbear_2015.71-2_sunxi.ipk

Un cop fet això, desconnectem l’USB i el tornem a connectar i verifiquem que podem accedir per SSH.

ssh [email protected]

Ens demanarà un password, que és el següent:

@3I#sc$RD%xm^2S&

Un cop a la shell del robot modifiquem el password de la següent manera.

passwd

Ara toca tornar a generar el enllaç d’arrancada de l’aplicatiu del robot, per tal que funcioni amb Mi Home, i no tinguem un mini ordinador linux en comptes d’una aspiradora.

cd /etc/rc.d ln -s

../init.d/robotManager S90robotManager

Un cop creat el enllaç. Desconnectem el micro USB del robot. Tornem a connectar la bateria, la coberta amb els 4 cargols petits, el raspall i la coberta del raspall.

Col·loquem el robot a la seva base, i esperem que connecti a la xarxa wifi i verifiquem que connecta amb l’aplicatiu de MiHome i que també tenim accés per SSH.

Recomano lleguir el seguent article, si esteu interesats en actulitzar el robot STYJ02YM ( Viomi V7 Pro ) a la versió 3.5.3_0047