This tool aims to automate the rooting process described in Rooting the Xiaomi STYJ02YM (viomi-v7) Vacuum Robot.
It is known to work with the following models:
- Mijia STYJ02YM (viomi-v7)
- Mijia STYTJ02YM (viomi-v8) (experimental, needs manual update of Valetudo)
- a linux machine with
bash
,ssh
,wget
,adb
andsha256sum
- the robot is already connected to your wifi (if you don't want to use the xiaomi app to do this, you can do this with python-miio
- the linux machine needs to be on the same network as the robot
- a micro-USB cable plugged into the robot’s micro-USB port.
Clone this repository, then run the following command and follow its instructions:
./viomi-root.sh
- Enable the
adb shell
command. - Temporarily disable robot services to allow the adb bridge to persist during setup.
- Install
dropbear
along with your~/.ssh/id_rsa.pub
public key - (Optionally:) Install Valetudo.
Problem: No adb connection is established.
-
Check that adb and your cable is working in general by connecting to an android phone (enable usb debugging on it), e.g. by using adb shell.
-
Check the
dmesg
output to see if your computer ever recognized a USB devices. Some machines are too slow, some USB stacks flaky. People have reported success with a raspberry pi when their main computer didn’t work. -
If you see a message like:
adb: insufficient permissions for device See [http://developer.android.com/tools/device.html] for more information
Follow the link for advice, in particular make sure that you are a member of the plugdev group and have setup correct udev rules (
dmesg
would probably show you the device ids). -
Finally, this may not be working on first attempt, but may need multiple tries, but typically not more than 10.
Problem: The script was not able to establish a ssh connection and didn't finish.
Solution: Rerun the remaining steps of the script (replace ROBOT_IP
with the actual ip address)
./viomi-root.sh change_password
./viomi-root.sh restore_robot_services
./viomi-root.sh install_valetudo ROBOT_IP
Problem: An old Valetudo version is installed that doesn't support viomi.vacuum.v8 yet.
Solution: Manually update your installed version by uninstalling and then reinstalling. See also rumpeltux#11