Test drive

I am testing this on a Meizu MX4 Ubuntu Edition phone kindly provided by the UBports project. It is a device that has been on the market for 5 years; most iOS and Android devices from that are have long been retired. If this hardware can run Ubuntu Touch, contemporary devices should have no issues at all, at least performance-wise. If someone ports the system to them.

Installing UBports

UBports Installer is used to install Ubuntu Touch on devices from a host computer running Windows, macOS, or Linux.

The Linux version conveniently comes as an AppImage which means you can run it on most common desktop Linux systems, not just Ubuntu.

UBports Installer AppImage running on a Linux desktop

Quite a polished experience, no fiddling around with cryptic command line flashing tools. Neat!

First boot

The device is quick to boot. No leftovers from Android are visible in the boot process.

Lock Screen

The lock screen is simple and straightforward. The color scheme immediately tells that it is Ubuntu we are running here.

Ubuntu Touch main screen: Yes, it’s clearly (still?) Ubuntu branded

Main screen

The main screen is a straightforward application launcher. Personally I do not need more than that, so I actually find this much simpler to use than the convoluted Android launchers.

Ubuntu Touch main screen: Straightforward application launcher called “Scopes”

General navigation

Swipe from the left corner of the screen to the center to see the running apps and switch between them with a Dash-like launcher

Ubuntu Touch application launcher: Swipe from the left border to the center to bring it up. Ubuntu desktop users will feel right at home

Swipe from right corner to center for a Alt-Tab like application switcher. Actually, if a Bluetooth keyboard is connected, Alt-Tab does work. How cool is that

Therein: Swipe app from center to corner to kill

Ubuntu Touch application switcher: Swipe from the right border to the center to bring it up. Kill apps by swiping them from center to the border. With a Bluetooth keyboard attached, Alt-Tab brings this up

Performance

Loading a typical app like the Contacts app takes 4 to 5 seconds. Again, this is on a five-year old phone, so pretty much in line with what you would expect with other mobile operating systems as well.

Apps

To my big suprise, all of the usual apps preinstalled on mobile phones are there. Phone, Messaging, Contacts, Camera, Browser, Clock, Calculator, Calendar, File Manager, Gallery, Media Player, Music, Notes, OpenStore, System Settings, Terminal, Weather.

For podcasts I downloaded Podbird, and for maps I downloaded uNav.

So in terms of apps, it ships with about the feature set of iOS 2 (if not more), which was quite usable (and not bloated). The apps have no glaring feature gaps (for example, the Clock app doesn’t only show the current time but also lets you set alarms).

Third-party apps may be a different story, but there is always Anbox (more on that later) to run an Android app in case a native one is not available (yet).

Updating apps

Not much to see here, works as expected.

Ubuntu Touch My Apps: Updating works as expected

System settings

Here, too, everything you would expect (but not more) is there. No glaring omissions here either.

Ubuntu Touch System Settings: Everything you would expect (but not more)

You can even use the mobile phone as a hotspot.

Ubuntu Touch System Settings: Use the mobile phone as a hotspot

This feels much closer to a finished product than to an early working prototype.

Permissions system

Ubuntu Touch also comes with a permissions system similar to what is known from other mobile operating systems:

Ubuntu Touch permissions system: Users need to grant access

The OpenStore

The OpenStore is the official app store for Ubuntu Touch which allows you to discover and install new apps. Just like Ubuntu Touch itself, it is an open source project run by a team of volunteers with help from the community. The team encourages the apps published within to be open source, but also accepts proprietary apps.

The OpenStore on Ubuntu Touch

Truth be told, I normally avoid using app stores and Linux software repositories and prefer to get applications directly from their original authors, in order to be sure to get the “official” version and not to be tracked by the store operator. This store seems reasonable, though.

Especially nice is how they integrated the opportunity to donate to application developers:

The OpenStore on Ubuntu Touch: Voluntary donations made easy

The software selection in the store may not be the largest and is certainly not comparable to the Google Play Store and the iOS App Store, probably not even to the F-Droid store, but the software that is there is usually high-quality and open source. It is hard to overestimate how valuable this alone is:

The OpenStore on Ubuntu Touch: uAdBlock, a system-wide ad blocker

You will not find this in the Google Play Store nor the iOS App Store, and getting something working from the F-Droid store usually involves fiddling around a lot. Here, it’s just a click away.

Connecting to a desktop

USB MTP

Attach the phone, it shows up as a MTP device just like an Android phone. But unlike Android, you don’t have to swipe around and click “confirm” a gazillion of times — it just works. How cool is that.

Ubuntu Touch device showing up as an MTP device in the desktop file manager

This functionality is nicely integrated into and advertised within applciations, like the Music app:

Ubuntu Touch music app: This is the screen iPhone users would die for

Now try that with an iPhone. Nada. Need to use iTunes or however their latest proprietary app is called, and always tends to break with Linux desktops. In contrast, this feels really polished, but simple and straightforward. It makes the user’s like easier. I like it!

ADB

Supposedly you can use ADB like with an Android device, but for that unfortunately you need to set up a password for the lock screen, which I personally find inconvenient. So instead I use…

SSH

It’s a Ubuntu box. Why not use it as such. By default, password-based authentication is disabled, but we can change this easily.

After all, we have a root shell at our fingertips.

Ubuntu Touch shell: One of the best features of the system is that the user is in full control right out of the box— without having to fiddle around first

So here we go: In /etc/ssh/sshd_config edit

PasswordAuthentication yes

ChallengeResponseAuthentication yes

AllowUsers phablet

And sure enough, now we can access the device using SSH. This allows us to do everything you do, well, on an Ubuntu box…

The top command running on the Ubuntu Touch device

I’d be interested in knowing what trust-stored-sk is and why it is eating 159% CPU… Apparently it’s a background service for permission handling: https://github.com/ubports/trust-store — maybe it was performing some kind of maintenance tasks. One reboot later, CPU usage is normal.

Hardware

Let’s make it really short here:

Connecting a USB keyboard over Bluetooth —check.

Connecting to wireless LAN —check.

USB keyboard and mouse via OTG adapter —check.

What’s missing, and how often did it crash?

With Canonical having dropped the effort, I was expecting a half-baked system with 80% of the functionality missing and lose ends all over the place. This is not the case at all.

In fact, the system did not crash once on me. And I am hardly missing something on first sight.

Just some minor nitpicks which I am sure can easily be addressed:

Missing

Speech recognition and text-to-voice. Everyone likes to talk to their phones these days. I hardly ever type a text, I always dictate. This may be the biggie? No one has ported Mycroft yet? As I learn from UBports developer Jan Sprinz,

“There were some experiments, and some people had something working a year ago or so, but it wasn’t really worth it. Voice assistants are either perfect or useless. With the team being very much occupied with other tasks, it’s not on the roadmap as of now. But of course we’d welcome any community members to take a swing at this!”

Change brightness from swipe-down menu (turns out it’s actually there: in the Battery menu of all things, because, well, uh, supposedly you search in the Battery menu to change the brightness…)

A way to change font size and weight. The default font size is very small and also very thin which makes it less legible than possible (I hear this is in the works and might come with OTA-13)

Swiping on the keyboard. Have to type each letter separately

A super simple way to switch on password-based SSH without having to resort to the command line on the device

Geolocation using WLAN— apparently this only works via GPS and not using the hotspots around me, hence I could not be located on the map while using the device indoors (luckily something is the works and might land in OTA-13)

The lock screen is always in portrait mode, I would like to also see it in landscape — because everything else does work in landscape

Something like NewPipe, a lightweight YouTube viewer and downloader

Bugs

How many bugs did I encounter during my tests?

Switching to the front camera results in “Cannot access camera”. Back camera works. Apparently this is a device-specific issue, so future devices should not encounter this

trust-stored-sk was eating 159% CPU until a reboot

was eating 159% CPU until a reboot A cosmetic glitch, screen rotation is not always working

Cosmetic glitch: Screen rotation is not always working

So, no biggies, nothing that couldn’t be fixed. At this point, I have to say that I am deeply impressed. Where I was expecting an unfinished, “for developers only” experience, I got much, much more than that — something I would not hesitate to give to “mere mortal” users (at least those who do not need apps other than what comes with the system).

A system with no glaring omissions and no obvious showstopper bugs. Everything else we will only see in a longer-term “real life” test.

But how does it all work under the hood?