Ubuntu Touch OTA-16 Release
Ubuntu Touch is the privacy and freedom-respecting mobile operating system by UBports. Today we are happy to announce the release of Ubuntu Touch OTA-16, our sixteenth stable update to the system! OTA-16 will be available for the following supported Ubuntu Touch devices over the next week:

LG Nexus 5
OnePlus One
FairPhone 2
LG Nexus 4
BQ E5 HD Ubuntu Edition
BQ E4.5 Ubuntu Edition
Meizu MX4 Ubuntu Edition
Meizu Pro 5 Ubuntu Edition
BQ M10 (F)HD Ubuntu Edition
Nexus 7 2013 (Wi-Fi and LTE models)
Sony Xperia X
Sony Xperia X Compact
Sony Xperia X Performance
Sony Xperia XZ
Sony Xperia Z4 Tablet
Huawei Nexus 6P
OnePlus 3 and 3T
Xiaomi Redmi 4X
Google Pixel 3a
OnePlus 2
F(x)tec Pro1
Xiaomi Redmi Note 7
Xiaomi Mi A2
Volla Phone
Samsung Galaxy S3 Neo+ (GT-I9301I)
Samsung Galaxy Note 4

The Pine64 PinePhone and PineTab are updated independently of the rest of these devices. The stable channel for the PinePhone and PineTab will not receive an update labeled "OTA-16".

New devices this cycle

With this update we have new devices officially joining the release cadence! This means that these devices will now have a "Stable" update channel available in System Settings -> Updates -> Update Settings -> Channels. You can install Ubuntu Touch on these devices using the UBports Installer:

Samsung Galaxy S3 Neo+ (GT-I930I) By Florian

If you're a porter with a near-ready device that is not in the above list, make sure it can be installed with the UBports Installer and has an entry on devices.ubuntu-touch.io.

What's new?

OTA-16 is the second-largest release of Ubuntu Touch ever (OTA-4, the switch from Ubuntu 15.04 to 16.04, being the largest). 

In this release, we upgraded the installed version of the Qt frameworks from v5.9.5 to v5.12.9. Qt makes up a massive part of Ubuntu Touch, and using it saves us huge amounts of time while creating software that can scale between phone, tablet, and desktop uses. Upgrading it put us back inside Qt's Long-Term Support cycle and gave us a number of new features we hope to take advantage of in Ubuntu Touch and the Lomiri operating environment.

Over 1/3 of the binary packages contained in Ubuntu Touch have changed in this release! This includes not only the various Qt libraries, but also packages that Qt libraries depend on.

Once all that work was done, it was time to fix all of our software to account for deprecated features and new bugs. Rodney left a distinct mark on this release with all of this work, which has been ongoing since July last year.

Upgrading the version of Qt we use and its dependent packages helped prepare us for the Ubuntu 16.04 -> Ubuntu 20.04 transition, which we are currently working to complete.

While the Qt upgrade shone a bright light on this release, we found time to test and integrate a number of other features and fixes you're sure to love.

Morph Browser

Morph, Ubuntu Touch's default web browser, has received a number of excellent upgrades during this cycle.

Kugi completely overhauled the Downloads system, a much-needed change. Instead of a full-screen page interrupting your browsing at the start and completion of a download, there is now a simple headerbar icon to alert you of the download's progress. The icon turns blue and shakes when your downloads have finished.

The downloads page has also been supplemented with a "Recent Downloads" panel. This panel shows any downloads which have been started during the current browsing session.

Speaking of the current browsing session, a control has been added to the tab management page which allows reopening the most recently closed tab.

Chris re-enabled custom user agents in the browser and added a checkbox which allows you to "Always Deny" location access to a webpage. He also fixed the webpage zoom controller, fixing a problem where the page's zoom didn't always follow your settings.

It is now easier than ever to use Morph in a tablet or desktop situation. Tabs are taller and easier to hit, and the browser won't rotate itself whenever its window is taller than it is wide.

Making devices more ready for your pocket.

The upgrade of Qt to 5.12 allowed us to finally integrate the gst-droid work that Ratchanan has been working on for what feels like forever. This brought video recording support to 32-bit Android 7 devices. The newer GStreamer support also allowed us to bring up a hardware accelerated camera viewfinder on the PinePhone.

Alfred enabled video recording on the Sony Xperia X and fixed problems with call audio being too loud on the OnePlus 3 and Xperia X.

If you're a device porter with Android 7 devices and they *don't* support video recording yet, ask in the UBports Porting group on Telegram. It might only need a couple of configuration changes to enable camcorder on your device.

Changes for app developers

Qt 5.12 brings its own changes to app development, including a number of performance improvements and new features. However, we also removed the Oxide web rendering engine with this release.

Oxide was a Chromium-based web rendering engine created at Canonical for the "Ubuntu for Devices" project. After Canonical dropped that, we knew that we would not be able to maintain the rendering engine.

The default web browser switched from Oxide to QtWebEngine in OTA-5, released on October 12, 2018. Since then, we've warned people not to use the Oxide rendering engine or Ubuntu.Web, its simpler QML component counterpart. The replacements for these are importing QtWebEngine or, even better, using the Morph.Web wrapper.

With Oxide removed, any applications which depend on it directly will cease to function. Apps which used Ubuntu.Web may still work, but will likely have unforseen problems. If you're an app developer and you've got an app which depends on Oxide, we can help you make the transition to QtWebEngine. Find us at forums.ubports.com, (at)UbuntuAppDevEN on Telegram, or #ut_appdev:matrix.org on Matrix.

Anbox installers included by default

The Anbox installer is now included with Ubuntu Touch. This allows users of supported Anbox devices to use Anbox without modifying the Ubuntu Touch root filesystem. It will also prevent Anbox installations breaking with every update.

Note that Anbox itself is not installed by default, and it will not run unless it is installed. To install Anbox, see "How to install" on our Android apps documentation.

Other fixes

This release also features a number of less mainstream fixes that are all exciting to us.

Jami Kettunen added support for controlling the flashlight on Snapdragon 835 and 845 devices.

Lionel Duboeuf added support for animated images to the default Messaging application. He also fixed a number of problems with recording audio, playing back audio, and timing across the core apps.

Ratchanan was essential to finding and fixing an issue with seemingly random segmentation faults and "Stack Smashing detected" errors in this release. The cause was actually an incredibly convoluted web of assumptions between Android's bionic libc and our glibc which couldn't be mediated by Libhybris (and not a single case of stack smashing or segmentation violation). That might be worth a blog post someday...

Edit: A previous version of this post stated that Marius fixed autobrightness on the Volla Phone in this release. While a fix was attempted for autobrightness on the Volla Phone, it did not fix the issue correctly.

"natur-produkt" fixed switching the mobile data SIM in some cases on Android 9 devices.

Between his work on TELEports (the Ubuntu Touch Telegram client) and six new device ports, Florian made it possible to rotate the "spinner" splash screen upside-down. Who knew some devices had their screens installed upside-down?

Joan "Cibersheep" fixed the Catalan keyboard layout, making it far more consistent. Joan also created the release mascot for OTA-16, the tangram cat. This release truly was like a cat: All was quiet, until it was suddenly a complete mess. Everything was all over the place for a while. But eventually, it settled down and all was beautiful once again.

Mateo Salta made some quality-of-life tweaks in Morph Browser and system-settings, including moving the "Update Settings" pane of the Updates plugin from a strange bottom edge control to the header bar.

Alfred found and fixed an AppArmor error when using QTemporaryFile after the Qt 5.12 transition. He also made the Xperia X a stellar device to use every day by improving its battery life and general stability. In particular, the device always wakes on the first try with the power button and always wakes for calls and messages.

Caleb Connolly took some time out of his fervent work on mainline Linux for the OnePlus 6 to fix haptic and LED feedback on the device with hybris.

We broke Daniel Kutka's fix to tab previews in morph-browser with the Qt 5.12 transition. Luckily, he came back to fix it again.

"NotKit" has mostly been working on pushing Ubuntu Touch onto new, interesting devices. You'll see his work mainly on GitLab in the "Community Ports" section. However, he snuck in a fix for showing the correct device name in the "About" page on some Android 9 devices.

What's next?

Unfortunately, this release marks a slight slowing-down period for Ubuntu Touch updates. We still plan to issue Ubuntu Touch releases every 6 to 8 weeks as usual, but the changes between releases will likely be less pronounced. This is due to our continuing work building Ubuntu Touch based on Ubuntu 20.04, which will better prepare us for the long-term future.

That said, there is already plenty in store for OTA-17. On the list of proposed updates is a navigation history feature when pressing and holding the Back or Forward buttons in Morph browser, fixes to the alarm's "snooze" functionality, and new keyboard layouts. It should be exciting, even if it isn't a blockbuster.


How to get OTA-16


Existing Ubuntu Touch users

Existing users of Ubuntu Touch on `Stable` channel (which is selected by default in the UBports Installer) will receive the OTA-16 upgrade through the Updates screen of System Settings. Devices will randomly receive the update starting today through March 22. This spread is to give us time to interrupt a bad update in the future (should that ever become necessary), *not* to accommodate any bandwidth restrictions.

If you would like to receive the update immediately, turn on ADB access and issue the following command over `adb shell`:

sudo system-image-cli -v -p 0 --progress dots

Your device should then download the update and install it. This process may take a while, depending on your download speed.

New Ubuntu Touch users

You will find instructions for installing Ubuntu Touch on your device at devices.ubuntu-touch.io.

"I found an issue!"

Have you found a bug? We want to know!

You can follow our Bug Reporting document to learn how to present the information we'll need to confirm and fix your issue. Every bit helps. The best way to improve Ubuntu Touch is to use it and then tell us about the experience.

You should always check to see whether your bug has already been reported on ubports/ubuntu-touch on Github. Browsing open bugs is worth doing, even if you have nothing to report. This ensures that you can watch for any of the open issues and help fix them by providing more information.

Changelog

A manually-compiled changelog for this release is posted at https://forums.ubports.com/topic/5837/ubuntu-touch-ota-16-changelog
Ubuntu Touch Q&A 95
OTA-16 has gone to rc for testing. Fingerprint and Halium AL