Ubuntu Touch OTA-4 Focal Release
OTA-4 Release Notes

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-4, our 4th stable update to the new Ubuntu 20.04 LTS based system! OTA-4 will become available for the following supported Ubuntu Touch devices over the next days:

Asus Zenfone Max Pro M1
Fairphone 3 and 3+
Fairphone 4
Google Pixel 3a and 3a XL
JingPad A1

Oneplus One Oneplus 5 and 5T OnePlus 6 and 6T PinePhone (beta) PinePhone Pro (beta) PineTab (beta) PineTab2 (beta)
Samsung Galaxy S7

Sony Xperia X Vollaphone Vollaphone X Vollaphone 22
Vollaphone X23
Xiaomi Poco M2 Pro Xiaomi Poco X3 NFC / X3
Xiaomi Redmi 9 Pro, 9 Pro Max and 9S

What's new?

This release of Ubuntu Touch is based on Ubuntu 20.04 LTS, so latest Ubuntu 20.04 LTS security updates have landed in this OTA. 

New features:

You can now hide notifications' content while locked

We used to always show all notification's content even when the screen is locked. This can lead to an awkward situations if the content is inappropriate. In this OTA, we've added a setting to allow you to hide the content of the notification.

You can access the settings at System Settings > Security & Privacy > Locking and unlocking > When locked: > Hide notifications content. Note that for now, other people could still read the notification content from the quick settings at the top. So, you may want to disable "Allow quick settings" in the same page as well.

Credit goes to Lionel Duboeuf (@lduboeuf)

The lock screen now shows the estimated time to charge your phone

Ever wondered how long it will take to charge your phone? We've added the charge time estimation, directly on the lock screen.

If you prefer not to see it, you can disable it in System Settings > Battery > Show charging information on lock screen.

Credit goes to Muhammad (@TheVancedGamer).

Theme switching now built-in

We have always had a system-wide dark mode in the system. However, in the past, you had to use a third-party app to access the necessary switch. In this OTA, we've added a new toggle switch in the System Settings to allow you to change it without the need of an additional app.

To access it, go to System Settings > Background & Appearance. For now, it will affect applications only, and not the other system components (such as notifications). Also, you'll have to restart the applications for the change to take effect. In the future, we plan to extend this system to also affect system components, and to have the change applied immediately too.

Credit goes to Muhammad (@TheVancedGamer).

Each contact get its own ringtone

Maybe you want a special ringtone for your significant other, or maybe you need a specific ringtone to warn you that the caller is hard to deal with. In this OTA, now you can assign a specific ringtone for a specific contact. You can access it by editing a contact or adding a new one then select Add field > Ringtone.

Credit goes to Lionel Duboeuf (@lduboeuf).

For developers: connecting your phone to new a computer now asks for confirmation

When using adb for the first time on a computer, the following dialogue will appear when you unlock the screen.

This ensures that adb commands will not work on a new computer unless the user unlocks the phone and acknowledges the dialogue. Selecting “Allow” will make the adb commands work for this session, and will also remember this computer so that it won’t prompt you again in the future.

Credit goes to Ratchanan Srirattanamet (@peat_psuwit)

Other noteworthy changes

            The ability for apps to specify custom vibration patterns is now fixed. For example, Teleports' notification will now have 2 short pulses instead of a single long one.

            Using a Bluetooth headset for voice call should work more reliably.

            Double-tap-to-wake settings now will be properly persist across reboots.

            For Waydroid users, you will less likely encounter camera problems after you exit Waydroid. However, this is not yet fully resolved, we're still working on finding a way to completely fix the issue.

            You will no longer see "Low storage space" warning on the barcode reader app.

            oFono has been patched against CVE-2023-4233 & CVE-2023-4234.

            QtWebEngine, our web-browser engine, has been updated to 5.15.16 (the latest in 5.15.x line).

            You should experience less occurrences of "have LTE, but can't access internet" in the area of low cellular coverage.

            "Sign in with Google" and similar features on other networks are now fixed on certain websites. This also fixes websites that comunicate with their pop-ups.

            On incoming calls when mobile data is enabled, the incoming call interrupts the mobile data connectivity. With this OTA, after having finished the phone call, mobile data connectivity comes back again immediately and does not require being switched off and on again any more.

            Esp. Lomiri's System Settings app has seen multiple improvements:

            The layout of a few pages (e.g. Sound) have been adjusted to be more consistent. There are more like this to come in the future, so stay tuned!

            You can now delete your custom background image that you've added earlier, in case you don't want to have that background image any-more.

            You can now adjust the sensitivity of the edge gestures in Lomiri. If you install a case or a bumper on your device, you can now increase the width of the edge area so that swipes from the border into the screen centre become easier for you. Or maybe you find it too sensitive, now you also can reduce it. The new setting can be found in System Settings > Gestures. Currently only visible though on a device that supports double tap to wake.

            You can now use the physical camera button to shoot the photo.

            When requesting a file from File Manager app over Content Hub, the app opens more smoothly.

            Changes / resolved issues since UT 20.4 OTA-3 (2023-11-04)
            Changelog of adbd since UT 20.04 OTA-3: Makes secure ADB mode works again (@peat-psuwit)

            Changelog of adbd-approver since UT 20.04 OTA-3: Initial bringup of adbd-approver (@peat-psuwit)

            Changelog of address-book-app since UT 20.04 OTA-3:
            Set theme color for Note field. (@lduboeuf)
            custom ringtone support: Add Custom Ringtone for incoming calls (@lduboeuf)
            Changelog of address-book-service since UT 20.04 OTA-3: custom ringtone support: Add ringtone url storage (@lduboeuf)

            Changelog of aethercast since UT 20.04 OTA-3: src/w11tng: Prevent premature disconnects due to scan requests (@fredldotme)

            Changelog of apparmor-easyprof-ubuntu since UT 20.04 OTA-3:
            Revert "templates/20.04/unconfined: Transition child processes to unconfined" (@peat-psuwit)
            templates/20.04/unconfined: Transition child processes to unconfined (@fredldotme)

            Changelog of audioflingerglue since UT 20.04 OTA-3: New upstream release v0.0.14 (@UBportsJenkinsService)

            Changelog of audiosystem-passthrough since UT 20.04 OTA-3: New upstream release v1.3.0 (@UBportsJenkinsService)

            Changelog of ayatana-indicator-datetime since UT 20.04 OTA-3: debian/patches: Also apply show-events to Phone profile (@deathmist)

            Changelog of ayatana-indicator-display since UT 20.04 OTA-3: src: disable USB manager inside a-i-display (@peat-psuwit)

            Changelog of biometryd since UT 20.04 OTA-3:
            data: Make less assumptions about where files will end up (@OPNA2608)
            Stop using qt5_use_modules (@OPNA2608)
            Add Missing Headers for Musl and GCC 13 Compatability (@JustSoup321)

            Changelog of deviceinfo since UT 20.04 OTA-3: Pinetab patch: PT2 sensors, PT1+PT2 morph scaling (@ook37)

            Changelog of Geonames since UT 20.04 OTA-3: demo/CMakeLists.txt: Use CMAKE_INSTALL_BINDIR for install location (@OPNA2608)

            Changelog of gst-hybris since UT 20.04 OTA-3: plugin: fall back to planar YUV420 for COLOR_FormatAndroidOpaque (@NotKit)

            Changelog of hfd-service since UT 20.04 OTA-3:
            Adds vibratePattern DBus API, makes pattern repetition happens on event loop (@peat-psuwit)
            Add missing include to fix Musl compatibility (@PureTryOut)

            Changelog of history-service since UT 20.04 OTA-3: Prevent deadlock at ContactManager destruction (@lduboeuf)

            Changelog of indicator-transfer since UT 20.04 OTA-3: Modernize i18n (@gberh)

            Changelog of libgbinder since UT 20.04 OTA-3: New upstream release v1.1.35 (@UBportsJenkinsService)

            Changelog of libgbinder-radio since UT 20.04 OTA-3: New upstream release v1.5.6 (@UBportsJenkinsService)

            Changelog of libglibutil since UT 20.04 OTA-3: New upstream release v1.0.75 (@UBportsJenkinsService)

            Changelog of libgrilio since UT 20.04 OTA-3: New upstream release v1.0.44 (@UBportsJenkinsService)

            Changelog of libhybris since UT 20.04 OTA-3: debian/patches: Allow hot-reloading by unloading previous WS (@fredldotme)

            Changelog of libqtdbusmock since UT 20.04 OTA-3: DBusMock: separate mocks for system and session buses (@mardy)

            Changelog of libusermetrics since UT 20.04 OTA-3:
            Use GNUInstallDirs variables for more install destinations (@OPNA2608)
            Only require libqtdbustest when building tests (@OPNA2608)

            Changelog of location-service since UT 20.04 OTA-3:
            Waydroid Compatibility (@j1xlte-gtelwifiue)
            Add cstdint to location includes (@JustSoup321)

            Changelog of lomiri since UT 20.04 OTA-3:
            BatteryMonitor & Greeter: finally fix charging information (@muhammad23012009)
            Greeter: add configurable charging information (@muhammad23012009)
            Notification: Add privacy mode (@lduboeuf)
            Greeter & BatteryMonitor: fix "Fully charged" message (@muhammad23012009)
            Add support for both older qtmir and newer qtmir with miroil (@Luigi311)
            Plugins: BatteryMonitor/WindowManager: Fix warnings and default returns (@Luigi311)
            Mixed asortement of patches from postmarketOS (@z3ntu)
            App Launcher animation rework (@lduboeuf)
            Make apps with transparent backgrounds work on phones by making wallpaper not invisible for staged mode (@AdamSchrey)
            Greeter: add time to full hint (@muhammad23012009)
            Make DT2W setting persistent (@lduboeuf)

            Changelog of lomiri-action-api since UT 20.04 OTA-3:
            Stop using qt5_use_modules (@OPNA2608)
            Fix unknown cmake command in error paths (@z3ntu)

            Changelog of lomiri-app-launch since UT 20.04 OTA-3: desktop-hook: handle localized Icon & SymbolicIcon (@peat-psuwit)

            Changelog of lomiri-camera-app since UT 20.04 OTA-3:
            Drop bad anchor to reduce log filling up - reimplementation for focal (@Danfro)
            BarcodeReaderOverlay: get rid of lowspace overlays (@muhammad23012009)

            Changelog of lomiri-download-manager since UT 20.04 OTA-3:
            CMakeLists.txt: Bump version, make Werror and tests optional (@OPNA2608)
            Drop deprecated calls to GetConnectionAppArmorSecurityContext (@ogayot)
            Use GNUInstallDirs variables for more install destinations (@OPNA2608)

            Changelog of lomiri-filemanager-app since UT 20.04 OTA-3: Fix incorrect initialization of PathHistoryRow (@AlTeveDev)

            Changelog of lomiri-indicator-network since UT 20.04 OTA-3:
            CMake: Make less assumptions about where files will end up (@OPNA2608)
            Honour CMAKE_INSTALL_DOCDIR for documentation installation (@OPNA2608)

            Changelog of lomiri-keyboard since UT 20.04 OTA-3: Use pkg-config to link to hunspell in Bengali plugins (@z3ntu)

            Changelog of lomiri-push-service since UT 20.04 OTA-3:
            debian/config.json: rename path of `fallback_sound` (@peat-psuwit)
            bus, client: fully transition to hfd-service (@peat-psuwit)

            Changelog of lomiri-schemas since UT 20.04 OTA-3:
            schemas: introduce new schema for configuring charging information (@muhammad23012009)
            Add new property to hide notification content while locked (@lduboeuf)
            debian/changelog: bump version to allow versioned depends (@peat-psuwit)
            add gsetting for double tap to wake (@lduboeuf)

            Changelog of lomiri-settings-components since UT 20.04 OTA-3: Colorize "Delete fingerprint" et al. buttons red (@Danfro)

            Changelog of lomiri-sounds since UT 20.04 OTA-3: debian/lomiri-sounds.links: add compatibiity symlinks back (@peat-psuwit)

            Changelog of lomiri-system-settings since UT 20.04 OTA-3:
            po: prevent gettext from extracting Icon field in .desktop (@peat-psuwit)
            Background: Introduce dark mode switch (@muhammad23012009)
            Battery: add toggle for configuring charging information (@muhammad23012009)
            Add flag to compile with ubuntu accountsservice (@JustSoup321)
            Pass missing parameter to dbusmock bluez PairDevice function (@z3ntu)
            l-s-s: Modernize i18n. (@sunweaver)
            Bluetooth settings: reorder devices (known devices first), drop redundant list of to be auto-connected devices (@Luigi311)
            Plugins: Battery: Use has history for battery primary condition check (@Luigi311)
            Remove duplicate signal connection (@lduboeuf)
            make use of gsetting to store the value for dt2w so it is remembered (@lduboeuf)

            Changelog of lomiri-system-settings-security-privacy since UT 20.04 OTA-3: Add a setting to make notifications content hidden while locked (@lduboeuf)

            Changelog of lomiri-system-settings-system-update since UT 20.04 OTA-3: Reflect channel selection change  on update settings Page (@lduboeuf)

            Changelog of lomiri-thumbnailer since UT 20.04 OTA-3:
            Fix check for "No such file or directory: " error (@OPNA2608)
            Stop using qt5_use_modules (@OPNA2608)
            tests/headers/CMakeLists.txt: Remove extra "/" in include paths (@OPNA2608)
            Add missing includes (@z3ntu)

            Changelog of lomiri-ui-extras since UT 20.04 OTA-3:
            tests/qml/CMakeLists.txt: Don't insist on finding qmltestrunner only at hardcoded guess (@OPNA2608)
            plugin/photoeditor: Fix for Exiv2 0.28.0 (@OPNA2608)
            Stop using qt5_use_modules (@OPNA2608)

            Changelog of lomiri-ui-toolkit since UT 20.04 OTA-3:
            Fix compilation with Qt 5.15.11 (@OPNA2608)
            tests: Upstreaming small fixes (@OPNA2608)

            Changelog of lomiri-weather-app since UT 20.04 OTA-3:
            Prevent gettext from extracting Icon field in .desktop (@peat-psuwit)
            app/components: fix setting typo (@peat-psuwit)

            Changelog of mediaplayer-app since UT 20.04 OTA-3: Support audio via content hub (@lduboeuf)

            Changelog of messaging-app since UT 20.04 OTA-3:
            Add info to MMS notification bubble (@lduboeuf)
            Fix composer bar in landscape mode: Set minimum size before app is shown. (@lduboeuf)
            fix #342 Make Set Theme Last item in ListItem (@ixsvf)
            On landscape, highlight Thread when selected (@lduboeuf)

            Changelog of morph-browser since UT 20.04 OTA-3:
            webbrowser: fix window.opener and window.close() (@peat-psuwit)
            remove old scripts (@uxes)
            Convergence improvement: Convert downloads content picker into a popover (@Luigi311)
            Test: HistoryModelTests: Add additional delay (@Luigi311)
            Add reader mode (@Luigi311)
            Add dim background color to select element popup (@mariogrip)

            Changelog of net-cpp since UT 20.04 OTA-3: CMakeLists.txt: Make tests optional (@OPNA2608)

            Changelog of network-manager since UT 20.04 OTA-3:
            Hack the oFono plugin to give infinite autoconnect retry (@peat-psuwit)
            wwan/ofono: handle disconnect while activating connection (@peat-psuwit)

            Changelog of ofono-ril-binder-plugin since UT 20.04 OTA-3: New upstream release v1.2.7 (@UBportsJenkinsService)

            Changelog of ofono-ril-plugin since UT 20.04 OTA-3: New upstream release v1.0.6 (@UBportsJenkinsService)

            Changelog of ofono-sailfish since UT 20.04 OTA-3:
            d/patches: patch CVE-2023-4233 & CVE-2023-4234 (@peat-psuwit)
            debian/: Update to upstream version 1.29+git8 (@mariogrip)

            Changelog of ofono-ubports since UT 20.04 OTA-3:
            smsutil: Check that address fits and submit report in memory (CVE-2023-4233, CVE-2023-4234) (@GermanAizek)

            Changelog of persistent-cache-cpp since UT 20.04 OTA-3: Un-hardcode static linking (@OPNA2608)

            Changelog of pulseaudio since UT 20.04 OTA-3: debian/patches: fix intermittent call-over-Bluetooth failure (@peat-psuwit)

            Changelog of qmenumodel since UT 20.04 OTA-3: New upstream release v0.9.2 (@UBportsJenkinsService)

            Changelog of qtwebengine since UT 20.04 OTA-3:
            Upgrade QtWebEngine to 5.15.16 (@peat-psuwit)
            add enable-predictive-text.patch (@Luigi311)
            0007-hybris-omx.patch: revert !31, better memory safety, correct threading (@peat-psuwit)
            debian/patches: revert hybris-omx patch to the state before !28 (@peat-psuwit)

            Changelog of qtwebview since UT 20.04 OTA-3: d/ubports.source_location: update the URL to make it build (@peat-psuwit)

            Changelog of rootfs-builder-debos since UT 20.04 OTA-3:
            Pine64: Add SSH setup to the Pine overlay (@SumwunDucainest)
            common: fix live-build acquisition (@ook37)

            Changelog of system-image since UT 20.04 OTA-3: fix #18 Update URL in README.rst (@ixsvf)

            Changelog of telephony-service since UT 20.04 OTA-3:
            tests/libtelephonyservice/CMakeLists: Fix ProtocolTest build (@OPNA2608)
            CMakeLists: Fix cross-conditional for QT_INSTALL_QML determining (@OPNA2608)
            CMake: Add more/better GNUInstallDirs variables usage (@OPNA2608)
            custom ringtone support: Contact Ringtone (@lduboeuf)
            Upgrade C++ standard to C++17 (@z3ntu)
            Make mktemp call compatible with busybox (@z3ntu)
            Fix compile error in some setups (@z3ntu)
            Replace deprecated QString::null (@z3ntu)

            Changelog of trust-store since UT 20.04 OTA-3:
            Make icon resolver more robust (fix translation failures if icons are localized) (@peat-psuwit)
            Make -Werror flag optional (@z3ntu)

            Changelog of Ubports Qa Scripts since UT 20.04 OTA-3: Don't allow apt update to fill up the rootfs (@XiaoFuse)

            Changelog of ubuntu-touch since UT 20.04 OTA-3:
            Revert "touch: Ship Lomiri Polkit Agent" (@peat-psuwit)
            touch: Ship Lomiri Polkit Agent (@fredldotme)
            touch: add adbd-approver (@peat-psuwit)
            touch-core: replaces usensord with hfd-service (@peat-psuwit)

            Changelog of Upower since UT 20.04 OTA-3: linux: ignore power supply with unknown type (@peat-psuwit)

            Changelog of waydroid since UT 20.04 OTA-3: tools: immediately trigger a camera HAL crash on container stop (@peat-psuwit)

            How to get OTA-4

            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-4 upgrade by using the Updates screen of System Settings. Devices will randomly be allocated the update from today through. This spread is to give us a breathing space to stop the roll out of any bad update (should that ever become necessary), and is not to accommodate any bandwidth restrictions.

            There is also the system update broadcast facility, which will send each online device a trigger message. If the device can find its update, it will be downloaded for you and when everything is ready, a notification will pop up and you can install right away. This only works if you have set up that updates can be downloaded automatically.

            If however 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 https://devices.ubuntu-touch.io .

            How to get OTA-4 phone background


            "I found an issue!"

            Have you found a bug? We want to know! Quickly!

            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, from now on at ubports/ubuntu-touch on Gitlab ! 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.

            Ubuntu Touch 20.04 goes stable with OTA-4

            With the release of Ubuntu Touch 20.04 OTA-4 the core developers consider Ubuntu Touch based on Ubuntu 20.04 LTS as stable and from now on we will only fix severe issues / security problems in Ubuntu Touch focal.  Yes, there will be OTA-5, OTA-6, etc. for UT 20.04, but these won't bring invasive changes nor shiny new features; the upcoming 20.04 OTAs will provide you with security support and pressing bug solutions that can't wait until the initial release of Ubuntu Touch 24.

            That said, after this release of UT 20.04 OTA-4, the core developers will start working on Ubuntu Touch based on Ubuntu 24.04 LTS. All the new features, ideas and UI improvements will be provided there to our end users, becoming available with the first major release of Ubuntu Touch based on Ubuntu 24.04 LTS.

            So, stay tuned...

            Ubuntu Touch Q&A 132
            TIDE, Snaps and Snapstore, FOSDEM 2024