Ubuntu Touch Installation on rabbit r1 - a detailed Guide
Schmuel
The following article will give you a step-by-step guide on how to install Ubuntu Touch on the rabbit r1. Ubuntu Touch is a mobile operating system based on Ubuntu Linux. You can read more about it here: https://www.ubuntu-touch.io/
Note, that Ubuntu Touch is meant to be installed on Smartphones and is not designed for the small form factor of the rabbit r1. However it runs pretty smooth on it.
This port was brought to you by Aryan Sinha aka Techyminati. He kindly helped me getting UT up and running on my device.
Prerequisites
You should have adb and fastboot drivers installed.
Linux
On most common linux distributions they should already be installed. If not, they should be installable using your standard package manager. If the drivers are not pre-installed on your linux machine and they are not installable with your standard package manager, you are most likely using a niche distro which means that you should know how to install the drivers ;)
Windows
The following section is sited from the r1 escape github repo
You will need adb/fastboot drivers, you can grab them straight from Google, XDA or use Koush's driver package:
- Google: https://developer.android.com/studio/run/win-usb
- XDA: https://xdaforums.com/t/official-tool-windows-adb-fastboot-and-drivers-15-seconds-adb-installer-v1-4-3.2588979/
- Koush: https://adb.clockworkmod.com
You will also require MediaTek Preloader USB VCOM drivers. Now, there are many sources on rather shady websites, but I suggest grabbing them from an OEM's instructions directly, for example:
- Hovatek: https://www.hovatek.com/forum/thread-16640.html
- Teracube: https://downloads.myteracube.com/Drivers/MediaTek_Preloader_USB_VCOM_Drivers_Setup_Signed.zip
Windows might also automatically try downloading and installing these drivers, but your mileage may vary.
Step 0: Handy Hints
The following section must not be read to install Ubuntu Touch on the r1. But it does contain helpful information that might come handy when running into issues while installing Ubuntu Touch
Rabbit r1 reset button
Be aware of the fact, that the rabbit r1 has a reset button. It can be found inside of the sim slot. You can find an image here

Pressing this button will essentially disconnect the battery from the device and force it to power of. This might come handy when you find your device in a bootloop and need to enter preload mode for backing up.
Bringing back Rabbit OS / Unbrick rabbit r1
The r1 is a weird device. If you want to flash any other operating system on it, I would highly recommend to know how to reset it to a backup. You can find the official firmware releases here: https://github.com/rabbit-hmi-oss/firmware/releases
I recommend using the SP Flash Tool or mtkclient-gui to flash the firmware to the device if necessary. Personally, I only tested it with the SP Flash tool since I know how to use it. Other tools should work just fine.
Heres a quick step by step on how to "unbrick" your r1 using the SP Flash Tool:
- Set up SP Flash Tool
- Download and unzip the Firmware
- In SP Flash Tool, select the "Scatter loading file" it can be found within the Firmware folder you just unzipped
- Select "Firmware Upgrade"
- Press Download
- Turn your rabbit r1 off (use the reset button if necessary)
- Plug your rabbit r1 in via USB
After a few minutes your r1 should be back to life.

Step 1: Enable Developer Options / Unlock Bootloader on rabbit r1
Method A: The official way
The r1 team recently announced that they will allow end users to unlock their bootloader. However, the user is required to ask the r1 team for permission. See details here: https://www.rabbit.tech/support/article/unlock-bootloader-rabbit-r1
The support team needs up to one week for answering your request, so you might need to be patient. However, some users reported that they only needed to wait one day before they got a response so the waiting time seems not to be consistent.
As soon as your developer options are enabled, you can boot your device to bootloader using the r1 flash tool: https://rabbit-hmi-oss.github.io/flashing/ Please note that you need to use a chrome based browser to get the flash tool working.
As soon as you are in fastboot mode with the r1 connected to your device run
fastboot flashing unlock
If your outpoot looks like this:
(bootloader) Start unlock flow
FAILED (remote: '
Unlock operation is not allowed
')
fastboot: error: Command failed
it means that the Developer Options are not activated on your device. This can be caused if the permission from rabbit team was not granted or if there was a sync problem between the web tool and the actual device. No matter what: OEM Unlock is not allowed on your device. You can either wait now or have a look at Method B: the unofficial way.
Method B: The unofficial way
If rabbit does not want to enable developer options on your device or if you dont want to wait or if you did get permission but the sync failed and you get the fastboot error when trying to unlock your bootloader: you can try this way to unlock the bootloader on your device.
You can either modify the original r1-escape Github codebase to only unlock your bootloader: https://github.com/RabbitHoleEscapeR1/r1_escape
Therefore you need to delete the last few lines after "fastboot flashing unlock" in the r1.sh script (linux) or the r1.ps1 script (Windows)
Or you download my modified fork of the project, which is essentially exactly the same except you dont need to modify any files:
https://github.com/SchmueI/r1_unlock_bootloader
If you choose to use my fork, here is a step-by-step guide how to unlock the bootloader using r1_unlock_bootloader:
- Download or Clone the code:
git clone https://github.com/SchmueI/r1_unlock_bootloader - Open the directory:
cd r1_unlock_bootloader
Windows
- Open an admin PowerShell
Run
Set-ExecutionPolicy unrestricted- Search for "Manage app execution aliases", scroll down till you see 2 entries called "App Installer" - python/python3.exe, disable these.
- Right click in the directory and click "Open in Terminal"
- Run
.\r1.ps1 - You may be asked to turn off and plug in your device multiple times, the script should take care of the rest.
Linux
- Either clone this repository or download it as ZIP
- Open a terminal in the directory of extracted files
- Run
./r1.sh - The script may ask you for your sudo permissions several times, so please enter your password
- You may be asked to turn off and plug in your device, the script should take care of the rest.
After the script was executed, the device will reboot. While booting, you will see the Orange State message. This means that the bootloader is unlocked and you can go on with Step 2: Install Ubuntu Touch
Note: If you are struggling with getting your device to bootloader, you can always use the mtkbootcmd.py file shiped within the repository. Simply run
python3 mtkbootcmd.py FASTBOOT
However, you might need to install the python package pyserial beforehand:
pip3 install pyserial
or:
python3 -m pip install pyserial
Step 2: Install Ubuntu Touch on rabbit r1
There are two ways to install Ubuntu Touch. You can use the UBports installer which comes with a nice GUI and works pretty well - but you need to follow the steps carefully as they differ slightly from other devices; or you can alternatively download the release from Github and flash it yourself.
Method A: The recommended way
- Download and Install the UBports Installer
https://devices.ubuntu-touch.io/installer/ - In the installer select the rabbit r1 manually from the device list
- Confirm that your device is unlocked
- Select Ubuntu Touch and your preferred channel (currently rc is the most stable one for rabbit r1 but there might be a "stable" release one day soon)
- After the Firmware is downloaded, boot the r1 into the bootloader.
If you are having issues with this step, take a look at the last section of Step 1/ Method B - wait, while Ubuntu Touch is being installed.

Method B: The alternative
If you are having issues with the UBports installer, you can always use the following script: https://github.com/MinatiScape/ubtouch-on-r1/releases
- Download and unzip the file (not source code.zip)
- boot the r1 into the bootloader.
If you are having issues with this step, take a look at the last section of Step 1/ Method B - run the script
bash flash.sh - connect your r1 to your computer
- wait, while Ubuntu Touch is being installed.
First Steps / Recommendation/ Hints
- I would highly recommend changing the display resolution. Therefore, you need to install the App UT Tweak Tool from the OpenStore App.
- Ubuntu Touch does support calling. However, you need to enable speakers to hear someone and be able to speak to them.
- There is currently an issue with audio routing after calls: Pulseaudio always routes the source of incoming and outgoing audio to non-existent headphones. To workaround, you can type
pactl set-sink-port sink.primary_output output-speaker
in the terminal.
I highly recommend to create a desktop shortcut for this command.