Ubuntu Touch on OnePlus Nord N100

Table of Contents

Installation

Sources:

We will need:

Flashing an older version of android

  1. Turn off driver signing in your windows by pasting this into your terminal:
  2. bcdedit /set nointegritychecks on

    Reboot your PC, and install the Qualcomm drivers.

  3. Unzip the downloaded MSM tool, and run the .exe as administrator.
  4. In the MSM tool, select "Other" and hit next. You should see an empty list of devices.
  5. Plug the phone into your USB port, turn the phone off, and hold all of its buttons at once. It will boot into an EDL mode. If it doesn't show up in MSM tool, press "Enum".
  6. If you see "Connected" as a Status of Connection, press "Start". This will flash a specific version of Android 10 that Ubuntu Touch needs.
  7. When it finishes, the phone will automatically boot into Android. Go through the setup.
  8. Unlocking the bootloader

  1. Just to be safe go into developer options and turn on OEM unlocking (You need to connect to wifi for the option to become available). This is what I did and it worked.
  2. Enable Advanced Reboot mode (Just search for it in the settings).
  3. Hold the power button intil you see 5 options on the side, one of them being Bootloader. Press that.
  4. On your computer, go to Device Manager and update the driver. Select the ADB one.
  5. On your computer, you have to make sure that fastboot sees the devices.
  6. fastboot devices

    The output should not be empty.

  7. Issue a command for unlocking the bootloader
  8. fastboot oem unlock
  9. The phone will prompt you whether you really want to unlock the bootloader. Press volume down and the power button to confirm. The phone will now be wiped and the bootloader unlocked. Yes I know I told you to go to the settings and press OEM unlock but that doesn't really unlock the bootloader unfortunately.

Installing Ubuntu Touch itself

  1. Go through the android setup again.
  2. Enable USB debugging in developer settings.
  3. Launch the UBports installer on your PC.
  4. The phone will ask whether you want to allow USB tethering from this PC. Accept it.
  5. Follow what the UBports installer tells you.

That's it. In my experience the installer may run into an issue, but by pressing "Try again" the install goes through just fine.

Using the operating system

The dock

Hold on an app to bring up a menu, just like right clicking on the desktop Ubuntu. If you want to rearrange the apps, press and hold on the icon for around a second.

The top bar

Compared to android's compact menu, everything is spread out in one row. Luckily you can quickly scroll through. My guess is that the devs wanted to give as much screen space to each of the items as possible. For example this is the space you get for notifications compared to android.

The gesture navigation

At first I found swiping from right to left to access open apps strange, but it turns out that if you swipe just a little, you will cycle to the previously opened app. Basically the equivalent of pressing square on android twice. This is pretty nice.

In a similar fashion, swiping from the left will bring up the app panel, long swiping brings up the app drawer.

The terminal

You probably expected to be able to do everything like on a PC version of Ubuntu, but unfortunately since Ubuntu Touch is immutable, you can't just open the terminal and do apt install. However that doesn't mean you can't install apt packages or that the terminal is useless.

Move your finger up and down, this acts as tapping the up/down arrow on a desktop terminal.

For autocompletion (pressing Tab), simply tap the area of the window.

Press and hold for about 1-2 seconds for a menu to appear, which let's you paste.

Keyboard

You can select everything on the web page, but you can also select single text field by pressing Select Element.


You can also hold space to turn the keyboard into a touchpad, like on ios.

We also have a limited clipboard, of a single item. But it's there. You can access it by holding down space as well.

What I don't like is that you cannot change the keyboard's height.

File transfer to and from a PC

Works just fine. You get to choose between MTP and RNDIS in the settings. By default it's MTP, used by most androids as well, but having this as an option is great. You can modify this behaviour in the UT Tweak Tool. Tap the hamburger menu > System > ADB settings

Fingerprint reader

Works, but unfortunately it cannot wake up the device like on Android. I found a bug report regarding this so I don't think it's just the case of my device.

Battery life

So far so good, unfortunately it cannot conserve energy that well while being asleep. During the night (cca 8 hours) the battery capacity dropped by 12%. I left the wifi, Bluetooth on but I do the same with my Android.

I also did a second test with wifi, bluetooth and location disabled. In this case the phone only lost a few %. So if you want to keep it in standby, make sure to disable anything that could consume energy.

Taking screenshots/screen recordings

For recording the screen, you will need to download Screen Recorder. It works just as you would expect.

As for taking screenshots, you have to hold down both the + and - volume key until a screenshot is taken. There's no button for it in the OS.

Night light

This isn't a thing. The minimum brightness isn't very minimal either, so your only option for using the phone during the night is to turn on dark mode and hope you don't get flashbanged.

Hotspot

Unfortunately you can only share your cellular data to another device. On Android you can also share your wifi connection. It is admittedly a niche usecase but it can be useful if you need a wifi dongle for a PC but don't have one.

Software installation

Openstore

Very straightforward. Just like any other appstore. One interesting thing I noticed tho is the small size of most native apps, in hundreds of kilobytes.

Fun fact: this install method uses "clicks", the predecessor of snaps.

Libertine containers

If you were disappointed that you can't just open the terminal app and do apt install, fear not. Libertine is sort of like distrobox, but for the current Ubuntu version your Ubuntu Touch is based on. In my case 20.04 at the time I'm writing this.

Go to the settings, find Libertine, and create a new container. Give it around 20 minutes to do its thing.

After it finishes, you can tap + and type in the name of the package you want to install.

The installed package will appear in the app drawer, but this isn't that useful for CLI apps. To launch these we will need to open the terminal, and type

libertine-launch -i CONTAINER-IDENTIFIER SOFTWARE COMMAND

CONTAINER-IDENTIFIER of course being the name of your container. If you are unsure of what it is:

libertine-container-manager list

You can read more about this in the UBports documentation. UBports documentation

From my experience this unfortunately doesn't work very well. I tried to run a local python HTTP server without success.

Flatpak/Snap

Flatpak straight up refused to work, spitting out errors about dbus. As for Snap tho, you can enable it by installing Snapz0r. It will enable some kernel parameters making Snaps run, and you can then install Snap apps from its GUI. Unfortunately... As you can expected the apps don't scale well on a tiny phone. I managed to run KeepassXC just fine but without a large screen, keyboard and a mouse it's not usable. According to the UBPorts website, this phone can't be connected to a minitor either so you're out of luck.

I forgot to take a screenshot of how this looks. Sorry.

Waydroid

Installing it is easy from OpenStore. The app will guide you through everything. Waydroid is surprisingly performant for what it is. It feels like using a slower android phone, which is totally fine. However it's really buggy.

If you are fine with these bugs, it's usable.

You can also access the Android storage, and symlink it to more accessible locations. That way you can easily share files into Waydroid.

From the documentation:

ln -s ~/.local/share/waydroid/data/media/0/Documents ~/Documents/android

ln -s ~/.local/share/waydroid/data/media/0/Pictures ~/Pictures/android

ln -s ~/.local/share/waydroid/data/media/0/Music ~/Music/android

ln -s ~/.local/share/waydroid/data/media/0/Movies ~/Videos

Thoughts on the phone hardware-wise

Despite being an older midrange device, it manages to run UT well. I experienced basically no stuttering or slowdowns unless I'm doing something heavy.

Was it worth it?

As much as I appreciate the work UBports is doing, I need a phone to do a lot more than Ubuntu Touch can provide. I came in prepared that there will be nearly no support for the apps I need, but I didn't expect to encounter problems with basic Linux stuff, such as viewing local HTML files. Or editing text files.

During my testing I had to conclude that Ubuntu Touch is not usable as a daily driver for normal people (without the use of Waydroid, but if all of your apps run through an emulator why not just use Android), nor is it a good option for people trying to use it as a portable Linux device. In the end I ended up flashing Android back and giving the phone away.

I don't want to be overly negative, and as you can see from this blog post there is a lot I like about this OS, but it's just not for me.

Published on: December 14th - 2024