UBports 16.04 on a Nexus 5 Three years ago I had the opportunity to try running Ubuntu Touch 15.04 on a Meizu Pro 5. While there is always a period of adjustment when switching between operating systems, on any platform, I got the hang of Ubuntu Touch's gestures after a few days and the system's use of scopes within a week. After a month I was greatly appreciating Ubuntu Touch's clean interface, short-cuts, and lack of annoying ads and nag screens. This led me to put aside my old Android phone and switch to using Ubuntu Touch full time. I have been using the same phone and platform since.



Lately I've been noticing my Meizu Pro 5 no longer offers the same good battery life span and the USB cable does not connect properly, making it impossible to transfer data directly between a PC and the phone over a wired connection. This prevents performing upgrades on the mobile device. I could live with these limitations, but the final straw gently settled onto this camel's back when Google announced it was cutting off access to my contacts and calendar from my phone. I had been holding out, hoping my Meizu Pro would survive until either the Librem 5 or PinePhone became available, but pressure was increasingly mounting to transition to a new phone, one with a fresher battery and the ability to receive updates.



UBports, the project which took over maintaining Ubuntu Touch, recommends three devices: the OnePlus One, the Fairphone 2, and the Nexus 5. The Fairphone is out of stock and I could not find any used units while the OnePlus One models in my region are both rare and oddly expensive considering the age of the model. Which left me looking at Nexus 5 devices on eBay. The Nexus 5 is quite common and relatively well priced, plus I had tried UBports 15.04 the Nexus 5 with mostly positive results.



A note on naming: Some people refer to the operating system maintained by UBports as Ubuntu Touch (the same name Canonical used) and some call it UBports. In an effort to avoid confusion I will refer to older versions of the mobile operating system that were developed and supported by Canonical as Ubuntu Touch. Versions of the operating system developed by the UBports community I will call UBports.



Installing



When the Nexus 5 arrived in the mail, with a full battery charge, it had a fresh copy of Android installed, ready to go through the initial setup process. I skipped through most of the configuration steps just so I would be able to access the phone's settings panel. I then downloaded the AppImage version of the UBports Installer from the project's website. Making the AppImage file executable and running it opens a graphical wizard that guides us through installing UBports on the mobile device.





UBports Installer 0.2.2 -- Selecting a version to install

(full image size: 45kB, resolution: 806x631 pixels)



The first screen of the installer asks us to put the phone into developer mode. There is a button we can click in the installer which lists the specific steps required to do this on an Android device and there is even an animation to show the steps being demonstrated. Once the phone is in developer mode and plugged into the computer, the installer identifies the phone and asks which version of UBports we would like to install. At the moment, UBports 15.04 and 16.04 are available, in Development, Release Candidate and Stable editions. I opted for 16.04 Stable.



With the version selected, the installer reboots the phone for us, puts it in recovery mode, downloads the necessary files, and installs them on the phone. During this process the installer displays progress information. After a few minutes the installer reports it is finished and advises us the phone will complete the install process and automatically reboot within five minutes.



A few minutes later the phone restarted and showed me the Ubuntu Touch splash screen, followed by a first-run wizard. The wizard walks us through picking our language from a list, connecting to a wireless network, and picking a time zone. We can then optionally set a password (or passcode) on the lock screen.





UBports 16.04 -- The Apps scope and home screen

(full image size: 363kB, resolution: 1080x1920 pixels)



How UBports works



The design of the UBports interface and how we navigate it requires a shift in the way we approach mobile devices. While other operating systems, such as Android, tend to rely on tapping buttons, with UBports we mostly use swiping gestures with our fingers. For instance, dragging a finger from the left edge of the screen towards the middle causes the panel to appear. The panel acts as a launcher for commonly used applications and a task switcher, showing which programs are currently running.



Running a finger down from the top of the screen opens the settings panel. A status bar at the top of the screen shows new notifications, network connections, battery status, volume and a clock. Pulling down from any one of these icons opens a related drawer of settings and status information. Pulling down the network part of the status bar shows available networks and allows us to toggle mobile data, wi-fi, and hotspots on/off. Pulling down the battery icon shows screen brightness and links to the power settings module. This gives us quick access to most commonly used settings.



Swiping a finger from the right side of the display brings up a list of all currently running applications with previews of what each program is displaying. Tapping a window's preview switches to it, making it the active window. Sliding a finger left or right across the screen scrolls through the list of open windows, which is handy if we have a lot of them open.





UBports 16.04 -- Browsing open windows

(full image size: 431kB, resolution: 1080x1920 pixels)



Pulling up from the bottom of the screen performs different actions, depending on which application is currently open. Typically, this rising gesture creates a new item. In the calendar app it makes a new appointment, in the note taking app it creates a new note, in the web browser it displays tabs and offers to create a new tab.



At all times there is always one window open, which we can think of as the Home screen or Scope application. By default, on UBports 16.04, this screen shows us installed applications we can tap to launch. Optionally, if we add more scopes, they are placed in this default window as pages we can swipe through with short left-or-right gestures across the screen.



Early Impressions



For the most part, UBports 16.04 is very similar to Ubuntu Touch 15.04 which I tried three years ago. With this in mind, I will mostly focus on the differences which I was able to observe. The first is that when I last tried UBports 15.04 on a Nexus 5, the screen never seemed to remain completely asleep, it would frequently wake up or display a very faint background glow. Version 16.04 seems to have fixed this issue and saves a little bit of battery power as a result.



One of the big features of Ubuntu Touch 15.04 was scopes. Scopes are essentially pages of widgets which are all contained in one application. Scopes are always running and are typically used for displaying information or summaries, such as what the weather is, upcoming appointments, and links to recent news stories. With 16.04, UBports appears to have mostly phased out scopes. The Apps scope, used for launching apps, is still present, but other scopes are not installed by default. The Today scope, for instance, which showed a summary of upcoming events, recently received messages, and the weather is no longer present. The only scope I could find in the phone's software centre was for reading RSS feeds.



At first I thought this would slow me down, especially in the mornings when I wanted to see what was on my schedule and what was happening in the news. However, I found out a summary of appointments can be viewed quickly by dragging down the date/time settings panel from the top of the screen. This let me see what was on my calendar in just a few seconds without opening a new application. For most other news and events I was able to set up RSS feeds once I had installed the RSS scope.





UBports 16.04 -- Checking events on the calendar pull-down

(full image size: 195kB, resolution: 1080x1920 pixels)



Managing software



Canonical's original application store for Ubuntu Touch has been replaced by a new software centre (and infrastructure) provided by UBports. The new software centre is called OpenStore and can be launched from the phone's main page (or Apps scope). OpenStore offers three ways to find new applications. The main screen shows new and recently updated programs, along with highlighted apps (a sort of "editor's picks" section). Another tab shows us categories of applications we can browse. The third option is to type in searches for programs, using descriptive words.





UBports 16.04 -- Browsing apps in OpenStore

(full image size: 347kB, resolution: 1080x1920 pixels)



I tend not to use many applications in the run of a day, and UBports pre-installs most of the functionality (camera, note-taking application, file manager, terminal, calendar, web browser) I want. However, I did grab a few items such as the RSS feed scope, a QR code reader, and a few games. Each of these downloaded and worked well. OpenStore includes a tab which displays available updates for installed programs. Alternatively, we can install updates through the operating system's settings panel, under the Updates module. Either approach seems to work equally well.



Ubuntu Touch Tweak Tool



One application I especially liked having was the Ubuntu Touch Tweak Tool (sometimes abbreviated UTTT). The Tweak Tool can adjust all sorts of aspects of the phone and its interface. Some examples include changing the size of the panel, adjusting how sensitive the phone's swipe gestures are, scaling fonts, and switching themes. (UBports 16.04 offers light and dark mode themes.) There are some other neat features, such as installing third-party Click packages we have downloaded and making the operating system's filesystem writable (which is dangerous, but useful sometimes). If you are the sort of person who likes to tinker with your desktop interface, I highly recommend the Tweak Tool.





UBports 16.04 -- Scaling text and images in Tweak Tool

(full image size: 169kB, resolution: 1080x1920 pixels)



Some other observations



In the past, on both Android and Ubuntu Touch, I have eventually installed a flashlight application. It is a handy way to navigate in dark corners or when the lights go out. UBports allows us to skip this and we can turn the camera's flash on/off by simply pulling down the battery settings module and tapping a button to toggle the light. This saves time and means we do not end up searching for a flashlight app after the power goes out.





UBports 16.04 -- Accessing the flashlight from the battery pull-down

(full image size: 82kB, resolution: 1080x1920 pixels)



The classic web browser that shipped with Unity 8 has been traded out for a new browser called Morph. Morph appears to offer most of the same settings and bookmark options. Morph defaults to using DuckDuckGo as its start page, includes tabs and seems to work well. One feature it offers that the old browser did not was the ability to request desktop-style pages from websites. The old browser would not work properly on some websites, particularly those which demanded we install a site-specific Android app when visiting a mobile site and would block access from mobile browsers. The ability to request desktop-style pages gets around those traps and limitations.



I connected the Nexus 5 to my Google account and it automatically synchronized my calendar and contacts from my old phone. One aspect of UBports I appreciate is we can place fine-grained permissions on applications. We can control which apps can connect with on-line accounts. We can also limit which programs can access certain features, such as GPS. For example, even when GPS is turned on the Weather app cannot access our location until it is specifically granted permission to do so.



On a related topic, notifications can likewise be finely tuned for each application. We can determine whether an application is allowed to notify us using an audio signal, vibration, or pop-up bubble. I find this very handy if, for instance, I want my calendar to make a noise when it is time for me to go to an appointment, but never want Twitter to be able to make a sound and only display a pop-up if someone messages me. This ensures I know when calendar events are coming up, but never worry about social media waking me up at 3:00am.





UBports 16.04 -- The virtual terminal

(full image size: 150kB, resolution: 1080x1920 pixels)



One thing I appreciate about UBports is that is has a fully functional GNU/Linux virtual terminal. The display is a little squeezed on the Nexus 5's small screen, but I am still able to run commands like top, free, secure shell, and rsync. In fact, I transferred files from my old phone to the new one using rsync to move files through my desktop PC. For people like me who like the command line's flexibility and occasionally run scripts or use shell variables, it is an excellent tool to have.



Hardware support



Unfortunately UBports does not work on many devices. However, the devices it does run on seem to be well supported. The Nexus 5 is listed as being supported with no serious issues and I can confirm this is the case. Everything from phone calls to wireless networking to GPS all work as expected. The phone performs well and the operating system only takes up about half the available RAM (1GB of 2GB total). The Nexus 5 provides about 32GB of storage space and UBports 16.04 leaves about 24GB left for user data.



Common questions



When I tell people I am running an operating system that is not Android or iOS, I tend to end up answering the same questions. I would like to cover a handful of them here.



How is the battery life? In my experience it has been good and roughly on par with Android running on the same or similar devices. My Nexus 5 is used so I cannot state how fresh the battery was when I acquired it. When sitting idle, the Nexus 5 running UBports draws 2% of its battery per hour. In theory it would need to recharge every two days with minimal usage. Light usage (my usual pattern of checking my calendar, looking up information on the web, and sending texts) consumed about 5% of the battery per hour. This means I can typically get through a day with about half the battery's charge remaining. Heavy usage, such as watching videos, more web browsing, and taking pictures can use around 10% of the battery per hour. I have not done much testing with recharging the device, but it seems to recharge at a rate of about 1% per minute.



What about apps? Does it run app-name? UBports 16.04 can access OpenStore which has about 950 applications at the time of writing. There are lots of games, news trackers, a word processor, multimedia players, calendars, a Dropbox client, password managers, and so on. In other words, many tasks you might want to perform are covered.



With that said, if you are looking for a specific utility or game that you used on Android or iOS, it probably has not been ported to OpenStore. The way I tend to describe it to people is that if you want a word processor, OpenStore has that. If you specifically want Microsoft Word, then UBports is not the platform for you. If you want a Twitter client you are in luck, but if you want the official Twitter client, then it is not available.



How long did it take you to get used to the new interface? It took roughly three or four days for me to unlearn my old Android habits. After about a week I was starting to think in terms of the UBports interface. After two weeks I was comfortable enough with UBports I did not want to go back to Android.



What is the advantage of UBports over Android? There are a few advantages. One is privacy and security. Every week there is a new story about apps stealing data from Android users, or programs breaking out of their permission restrictions, or apps containing backdoors. UBports is not much of a target for large companies and malware authors. The platform is small and has relatively good security, partly thanks to fine-grained permissions and partly due to AppArmor support built into the operating system. My phone still leaks some information with the wi-fi enabled (as all phones do), but I'm less worried about my applications tracking what I do on a day to day basis.



Another factor is the lack of ads and nag screens. Android regularly demanded updates be installed, or a new version be downloaded. Several apps included ad banners with no way to disable them (within the app, there are third-party ad blockers). When I use Android I feel like I'm using an ad platform that is constantly demanding my attention. UBports doesn't show me ads, it doesn't nag me to install upgrades, it doesn't ask me to install new services. It displays what I ask it to show me. It feels more like a tool for me to use rather than a platform a company is using to sell me things.



Finally, one thing I like about UBports is it appears to be designed to provide me with information I want without requiring as many steps. If someone sends me a short text, I can drag down my notification area and tap the message to type a response without opening my SMS app. When I want to turn on the flashlight function, I drag down the status bar and tap a button, without opening an app. When I want to see my appointments for the next 48 hours, I pull down the calendar rather than opening yet another app. When I want to see RSS feed updates, I make a little swipe to the right from the home screen and the information is just there in a scope, again without needing an app.



When I was running Android (and using Blackberry before that) I always felt like I had to open a new program to do anything. I was always switching between windows. With UBports much of the information I want is a short swipe away and I don't need to open anything or switch to a new window. It is a little thing, but it adds up over time.



What don't you like about it? There are two things which I have noticed. The first is that UBports, at least version 15.04, tended to leak memory. After a week I'd usually need to either restart the desktop process (essentially a logout/login) or reboot the phone. So far, with UBports 16.04, I have not had to do that. I'm not sure if the leaks have been fixed or I just haven't been using it long enough to require a reboot. However, after coming from Android where the phone might run for months without restarting or killing a process, it was frustrating.



The other thing is that, while I don't use many apps, I do sometimes miss having a specific tool. If I wanted to play Ingress or Plants vs Zombies I wouldn't be able to with this phone. At least not until Anbox becomes more mature. Sometimes my friends want to send me invites or files over a specific service and I need to either use the associated company's web portal (usually an awkward experience) or ask them to send me information another way. This is a rare event, but many people are accustomed to everyone being on either iOS or Android, and are surprised when asked to use e-mail instead of Skype, or are told I don't have Facebook Messenger.



Can you run GNU/Linux desktop applications? Not really, no. At least not with the default settings. I have read that it is possible to run GNU/Linux desktop programs which have been ported to ARM, with some tinkering. This approach uses a technology called Libertine. And I suspect if I mounted my root filesystem with read-write permissions (rather than the default read-only) I could install command line programs using the APT package manager, which is included with UBports 16.04. I have not tried using APT yet though as it means taking some risks with the filesystem. In theory though, you can install and use command line tools that have ARM ports.



Can I run other Linux distributions on the phone? In short: no. Porting a Linux distribution to a new mobile device is a lot of work. Phone vendors tend not to make this process easy and you need to use a distribution image specifically matched to the device. Hopefully, in the near future, devices like the PinePhone will help change this limitation.



Can you use UBports with any network? I think this question comes up as often as it does because some early phones which were sold with Ubuntu Touch did not work with North American networks. Whether a mobile device works with your carrier's network is a function of the phone's hardware rather than its operating system. In other words, if you have a Nexus 5, a FairPhone 2, or OnePlus One that runs Android and works with your phone company's network, it will also work if the device is running UBports. * * * * * All in all, I'm very happy with UBports on the Nexus 5. I think it's a solid operating system that has been offering me a smooth experience thus far. There are some shortcomings in terms of applications if you need a specific program, but otherwise I think the phone offers all the capabilities people expect from their mobile devices. I am particularly impressed with the UBports Installer program. This is the easiest experience I have ever had installing any operating system on a mobile device and it greatly lowers the bar for people who wish to give UBports a try. I am very much looking forward to seeing this distribution ported to more devices, especially hardware like the Librem 5 and PinePhone.



