Tired of Android? Try your luck with Sailfish OS, Ubuntu Touch, and Firefox OS

The Good, the Bad, and the Ugly

Article from Issue 179/2015

Sailfish OS, Ubuntu Touch, and Firefox OS are mobile phone operating systems that all want a piece of the smartphone market. We try out these ambitious mobile alternatives on a Nexus 4 phone.

Android and iOS command a colossal lead over everyone else who has tried their hand at a mobile operating system – including Microsoft's own Windows Phone, which is stuck in a distant third place. The other systems that exist in the huge mobile space are asking what it will take to be number four. In this article, I tour some alternative mobile operating systems, including Sailfish OS, Ubuntu Touch, and Mozilla's Firefox OS. I tested each of these alternative systems on my LG Nexus 4 (Figure 1).

Figure 1: System information, from left to right, for Sailfish OS, Ubuntu Touch, and Firefox OS running on the Nexus 4.

In the following sections, I'll show you how to set up each system on a Nexus 4, and I'll offer some observations on the user experience.

If you have a spare Nexus 4, you might want to follow along and try this experiment. (At the end of the article, I explain how to get your phone back to Android.) Who knows? You might discover you like one of the alternatives better than Android.

If you don't have a Nexus 4, your mileage will vary from "hard" to "downright impossible," but this article should at least give you enough information to get started installing an alternative OS on your device.

Before you can install any of these systems, you first need to unlock the bootloader on your device.

Unlocking Nexus

The instructions for unlocking a cell phone vary depending on the system. Thankfully, the task is pretty easy on the Nexus. As you learned in the preceding article, the first step is to download and install the Android Debug Bridge (or adb – a collection of android-related developer tools), and fastboot, which allows you to send commands directly to the phone's bootloader. On an Ubuntu computer, adding these tools is as simple as adding a repository and installing two packages:

$ sudo add-apt-repository ppa:phablet-team/tools && \
  sudo apt-get update
$ sudo apt-get install android-tools-adb android-tools-fastboot

The repository (which you'll need later to install Ubuntu Touch) is maintained directly by the official Ubuntu Phablet team.

After installing these tools, you'll need to boot up the phone and enter the Settings app in Android. Then, scroll down to the About phone section, where you need to tap the Build number seven times to open up a new section called Developer options. Head back to the app's main screen and scroll down to the bottom, where you'll see that Developer options has appeared above About phone. Press it and enable USB debugging, which will allow you to use adb with the phone via your PC.

Connect the Nexus to your computer with a USB cable, open up a terminal, and type:

$ adb devices

The command should output a code similar to:

04d0f70a1c4845ac     offline

A message should pop up on the phone asking if you want to allow USB debugging. After pressing OK, your phone will accept commands from your computer. If you type adb devices into the terminal, the status of the phone should change from offline to device:

04d0f70a1c4845ac     device

Now you can reboot the phone into its bootloader. Type the following line into your console

$ adb reboot bootloader

to get the phone to reboot. Now when you type the command

$ fastboot devices

into the terminal, you should see the same code as before, but with device changed to fastboot:

04d0f70a1c4845ac     fastboot

All you have to do now is tell the phone to unlock the bootloader:

$ fastboot oem unlock

A warning message will come up on your phone asking you to confirm the unlocking process. Highlight Yes with the volume keys and confirm with the Power button. Within seconds, your phone will unlock. Just to make sure, you can look at the last line of text on the bootloader at the bottom of the screen, which should read LOCK STATE – unlocked (Figure 2).

Figure 2: The Nexus 4 bootloader screen.

That's it! Now for the fun part!

Sailfish OS

Sailfish OS (Figure 3, left) was released alongside the Jolla phone in 2013 to much excitement, although admittedly little success. The OS has been slowly updated and improved by Jolla, with version 2.0 released this year. Right now, Sailfish OS feels smoother than it felt back in 2013 and somewhat more stable. See the "Installing Sailfish OS" box for a look at how to get the system running on a Nexus smartphone.

Installing Sailfish OS

To install Sailfish OS, your Nexus 4 must be on Android 4.2.2. If you are not on this version, you must do the following.

First, download the system image for 4.2.2 for the Nexus 4 [1], uncompress the file, open a console, and type:

$ adb reboot bootloader

Once the phone has rebooted into the bootloader, run the script included in the file:

$ ./flash-all

Wait for the process to complete, and Android 4.2.2 will be installed on your device. Now, you have to download ClockworkMod Recovery [2] (CWM) and install it by typing:

$ fastboot flash recovery \

Replace <your_recovery_image>.img with the name of the image file you just downloaded.

Once you have flashed the custom recovery, press the Volume Down button twice, highlighting the Recovery entry in the bootloader, and press the Power button to confirm, entering the custom recovery you just flashed.

Once the phone has entered the recovery (Figure 4), touch the wipe data/factory reset label. Once that's done, you will need to download version 10.1.3 of CyanogenMod for the Nexus 4 [3]. Follow the link and download it. Once that's done, push the file onto your device with the following command:

$ adb push <update>.zip /sdcard/

Replace <update>.zip with the name of the CyanogenMod zip you just downloaded. Press install zip in the recovery on your phone, then Choose zip from /sdcard/. If the zip is not there, simply go back, repeat the previous command, wait for it to finish, then go back to choose the zip. Press the zip and wait for it to install.

You must now download the zip for Sailfish OS [4]. Follow the link, and once the download has finished, push it onto your phone the exact same way you pushed CyanogenMod onto it. Then head back into install zip, choose zip from /sdcard/, and choose Sailfish's zip.

Once the process is complete, simply press reboot system now and, voilà!, Sailfish OS is on your Nexus 4.

Sailfish OS is based on Mer, a fork of MeeGo, which was itself a fork of Maemo. Mer is entirely open source, but Sailfish OS isn't (save for the very low level stuff) – the UI is closed source, making it the only system in this article that is not open source.

A proprietary UI definitely goes into the negative column, but it is worth noting that, at first sight, the UI looks impressive. Sailfish OS is very stylish, with smooth animations and gestures all round (well, most of the time anyway). Gestures are based on swipes, which behave differently depending on where on the screen you swipe. For example, swiping from the top closes your current app or turns off the screen if there is no application open in the foreground; swiping from the edges minimizes the current app or opens up the app switcher (Figure 5, left) in the home screen (Figure 6, left); swiping from the bottom toggles app-specific events on or off.

Although these gestures are the most common, other gestures perform different functions. These gestures do take a lot of getting used to, especially if you are coming from another mobile OS such as Android or iOS, and they don't succeed in making navigation easier than on Android, Ubuntu, or Firefox OS – even with the annoying, unskippable tutorial on the first boot-up that tries to teach you the gesture system. The interface is especially irritating when many menus and buttons are hidden away at the top of the screen – beneath the app itself.

A feature on Sailfish OS you might have heard about are called ambiances (Figure 7). Ambiances are essentially themes you can create, allowing you to customize the Sailfish OS interface. You choose a background and associate the background's color scheme (called accents) with the rest of the UI, as well as the OS's apps. Graphically there doesn't seem to be much else you can change, though; for example, you won't find an option to change the font type. Ambiances also allow you to set up the sounds for certain notifications on the phone, such as calls, messages, email, and more. The interface transitions affect third-party apps as well. The result is that the entire operating system feels cohesive and unified, and it is visually appealing throughout. Having said this, ambiances feel like little more than glorified backgrounds, and more customization options would be a useful addition.

Figure 7: An example of an ambiance in Sailfish OS.

The apps are the Achilles heel of any new OS, and the app lineup is certainly a problem for Sailfish OS. You won't find WhatsApp, Skype, Instagram, Gmail, or Google+ (at least not officially). Thankfully, this app shortage is alleviated by the presence of Alien Dalvik, a virtual machine running inside Sailfish OS that allows you to run Android apps – as long as you have a Jolla phone. If you are running Sailfish OS on any other device, such as the Nexus 4, you're out of luck. The absence of Alien Dalvik on the Nexus is due to some licensing issues with the creators of the VM, Myriad Group. (Proprietary licensing once again makes life worse for the enduser.)

Matters aren't helped by the enormous number of bugs and the lack of essential features this system provides. The first time I installed Sailfish OS, it locked up during the setup process. The phone also struggled to keep a WiFi connection up on Sailfish OS more than it did on the other systems tested. During one of the tests, the apps in the app switcher on the home screen would not go away and were overlaid on top of everything else in the system. As for missing features, you won't find an option to highlight, copy, or paste text, you cannot take screenshots, and on some devices such as the Nexus 5, you cannot install any apps without the whole system freezing.

The lack of Android compatibility for anything other than the Jolla phone severely handicaps the user experience. The Sailfish app store simply doesn't have enough apps to provide a complete user experience. To install Telegram, for example (which both Firefox OS and Ubuntu Touch provide natively), I had to download an unofficial Telegram client RPM, which broke because of a dependency issue. When I managed to install the dependency, the client's SMS verification stopped working! Sailfish OS is by far the most lacking in features and applications of the three systems reviewed for this article, which is especially worrying because it has been out for much longer than Ubuntu Touch. At least the developers bundled in a few extras, such as a terminal and a calculator app, although both are lackluster and feel like more like demo experiments than real applications – especially the calculator.

Right now, the only phone that comes preloaded with Sailfish OS is Jolla's own Jolla (the phone has the same name as the company). The Sailfish OS is more than one year old, yet Jolla (the company) has shown no serious interest in getting third-party manufacturers on-board its operating system. This wouldn't be such a problem if the Jolla (phone) had a lower price, powerful internals, a good screen, good battery life, LTE 4G, and a good camera, but it has none of these things. Sailfish OS is also not completely functional on other devices, such as the Nexus 5, nor is it entirely open source. To succeed, Jolla should be trying to get manufacturers to adopt its operating system instead of relying on their own outdated, overly expensive piece of kit to get to fourth place in this crowded mobile segment.

Oh, and it needs more apps.

Ubuntu Touch

Ubuntu Touch [5] (sometimes called Ubuntu Phone) is Canonical's idea of what a smartphone OS should be. After a year of alphas and betas, Touch (Figure 3, center) finally came out last April preinstalled on the BQ Aquaris E4.5 Ubuntu Edition. As the lengthy name suggests, this phone is essentially a re-release of the Spanish firm's Android model, only with Ubuntu Touch installed on it and the large Home, Back, and Menu buttons from the Android model removed from the bottom bezel. Touch has already received quite a few updates since it came out, and it is much, much stabler than it was just a few months ago. See the box titled "Installing Ubuntu Touch" for a description of how to set up Touch on a Nexus 4.

Installing Ubuntu Touch

Installing Ubuntu Touch on a Nexus 4 is extremely easy. All you need to do is install two packages and run a few commands in your Linux terminal.

First, install the packages:

$ sudo apt-get install ubuntu-device-flash phablet-tools

Now reboot the phone into the bootloader

$ adb reboot bootloader

and run the installation:

$ ubuntu-device-flash touch \
  --channel=ubuntu-touch/stable/ubuntu --bootstrap

That's it! The installer will download the necessary files and install Ubuntu Touch onto your device.

Figure 3: Lock screens, from left to right, for Sailfish OS, Ubuntu Touch, and Firefox OS.

Unlike Sailfish OS, Ubuntu Touch is entirely open source from the ground up – except for some necessary firmware for radios and other such stuff. Another cool thing is that the user has open access to root, making the OS feel like a typical desktop distro. Many of your typical commands (Figure 8) from Ubuntu are available, too – even apt-get – although it's not quite as easy to use on the phone as it is from a desktop computer.

Figure 8: The Terminal app running on Ubuntu Touch.

Ubuntu's mobile version is very similar in design to its desktop version. Most apps and the home screen come with the typical Ubuntu orange accents (Figure 6, center), and although Ubuntu Touch isn't as slick looking as Sailfish OS, it isn't ugly either. It also features the same launcher that is included in the desktop distro, which is a delight to use, making switching between your favorite apps as simple as swiping from the left and tapping on the app's icon.

Figure 6: Home screens, from left to right, for Sailfish OS, Ubuntu Touch, and Firefox OS.

Unlike Sailfish OS, the gestures used with Ubuntu Touch are quite intuitive: Swiping all the way from the left to the right brings you to the home screen, whereas swiping from the right to the left shows the app switcher (Figure 5, center). A quick and short swipe from the left opens the launcher, and a quick swipe from the right switches you to the previously used app. The gestures are easy to get used to, with the tutorial quickly teaching you the basics of navigation. No menus or buttons are hidden anywhere – they're right where they're supposed to be.

Figure 5: App switchers, from left to right, on Sailfish OS, Ubuntu Touch, and Firefox OS.

Ubuntu Touch does lack customization options. You can change the background on the lock screen and change your ringtone and notification sound, and that's about it. You can change the interface further if you're handy and use a terminal, but for most of us, that's all you can modify easily.

Ubuntu's mobile app store is also lacking. Few apps are present, and even fewer are actually good, but the quantity and quality of the apps is gradually increasing. A good example is the Telegram client, which, although lacking in some of the features of the Android and PC versions, gets the job done. Unlike Sailfish OS (on Jollas), Ubuntu Touch does not include an emulation tool for running Android applications.

A frustrating part of the Ubuntu store is that many of the apps are web apps – in many cases just links that have icons on your app launcher with a few fancy extras. These web apps are typically slower, uglier, and less adapted to the touchscreen than the real-deal native apps like Telegram.

Currently, Ubuntu Touch can only install .cli applications and not the typical .deb packages found on most Ubuntu distributions. Even with the lack of apps, Ubuntu Touch's openness really gives the OS a massive advantage over its competitors. Right now, Canonical has few official hardware partners (Meizu and BQ, at this time of writing), but because the system is open source, a large quantity of ports have been created by the community for many phones – although it must be said most don't fully work.

Right now, Ubuntu's mobile OS is a solid step in the right direction. It's not quite complete yet, and it is missing many apps that users will want, but with more partners and a better app store, Ubuntu Touch has a good chance of succeeding.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More