Ubuntu Touch Installation on rabbit r1 - a detailed Guide

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:

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:

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

https://x.com/podkovyr/status/1800536416474316849

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:

  1. Set up SP Flash Tool
  2. Download and unzip the Firmware
  3. In SP Flash Tool, select the "Scatter loading file" it can be found within the Firmware folder you just unzipped
  4. Select "Firmware Upgrade"
  5. Press Download
  6. Turn your rabbit r1 off (use the reset button if necessary)
  7. Plug your rabbit r1 in via USB

After a few minutes your r1 should be back to life.

This is how the SP Flash Tool should look like before clicking on "Download"




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:

  1. Download or Clone the code:
    git clone https://github.com/SchmueI/r1_unlock_bootloader
  2. Open the directory:
    cd r1_unlock_bootloader


Windows

  1. Open an admin PowerShell
  2. Run
    Set-ExecutionPolicy unrestricted
  3. Search for "Manage app execution aliases", scroll down till you see 2 entries called "App Installer" - python/python3.exe, disable these.
  4. Right click in the directory and click "Open in Terminal"
  5. Run
    .\r1.ps1
  6. You may be asked to turn off and plug in your device multiple times, the script should take care of the rest.

Linux

  1. Either clone this repository or download it as ZIP
  2. Open a terminal in the directory of extracted files
  3. Run ./r1.sh
  4. The script may ask you for your sudo permissions several times, so please enter your password
  5. 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

  1. Download and Install the UBports Installer
    https://devices.ubuntu-touch.io/installer/
  2. In the installer select the rabbit r1 manually from the device list
  3. Confirm that your device is unlocked
  4. 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)
  5. 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
  6. wait, while Ubuntu Touch is being installed.
At some point, the device will load the UBports recovery and download additional files. Depending on your download rate, this can take a while.


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

  1. Download and unzip the file (not source code.zip)
  2. 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
  3. run the script
    bash flash.sh
  4. connect your r1 to your computer
  5. 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.

Report Page