Rooting Roborock S5 - make it sing you some songs
A few words on roborock and robots and what rooting is. Roborock is a sub brand of Xiaomi, manufacturer of various pieces of equipment and most notably known for its smartphones. Roborock S5 is the older generation of vacuum cleaning robots (I think s6/t6 is the current one as of now). Rooting – by default smart devices come with admin account available but locked down due to many good reasons. Rooting a device means activating the admin access to the software (which might even unlock access to some extra hardware functionality in some specific cases). It’s like gaining control of the root account in linux – google this if you must.
Roborock coms with couple of gigs of flash storage, half a gig of ram and old crappy version of ubuntu 14 (released in 2014 mind you) – so no wpa3 support until using such moldy software.
To root roborock we will need the firmware update file – these babies are not that easy to find (probably on purpose). But with the power of internet this can be easily overcome. This is a full roborock s5 stock firmware collection in one place. Usually, selecting the latest version sets up with the best software achievements to date. In reality this is not always the case but let’s keep it simple stupid 🙂 While firmware is download we can carefully examine this link. Pay special attention to the readme.md part and the links – each link is a tiny educational treasure. Take your time to visit all of them and read what you find interesting.
With the firmware downloaded we need a firmware builder – this is a full set of scripts that “edit” the firmware to “unlock it” , actually using the edited firmware is the so called “using a rooted device”.
Good firmware builder is this one. Just clone it with git, edit the vacuum.sh to reflect the functionality you’d like to pre-program to your robot on flashing. Once this is done, execute the main script builder_vacuum.sh and you will get the rooted variant of the “stock” firmware in the “output”. Do please bother to read the information from the links because 30 minutes of reading will not only educate you but it will also save you days of frustration.
Once the rooted firmware is ready you can flash Roborock with it. Feel free to use this flashing script for the task. If you really bothered to install python-miio I see little to none chances for failure now. So after successful upload for flashing the vacuum cleaner robot Roborock s5 says – it may take up to 10 minutes. Usually process takes between 6-8 minutes and boom – rooted. Now you can ssh to the robot, install wicked things like sox , libsox-fmt-all, mpv, youtube-dl wget and whatever you need and fits the device limited storage and ram. For example, with sox and mpv and youtube-dl I’m managing a long playlist of online radios and youtube resources directly played by the vacuum cleaner. For freeing some more storage feel free to examine these scripts When you know what they do you’ll probably know they are executed locally on the robot.
Apart from valetudo (which is a very interesting idea) one can generate new voice packs for his rooted vacuum and thus he can localize it #likeAboss
You are welcome 🙂