UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login
    1. Home
    2. peat_psuwit
    3. Best
    Offline
    • Profile
    • Following 0
    • Followers 7
    • Topics 26
    • Posts 127
    • Groups 0

    Posts

    Recent Best Controversial
    • Ubuntu Touch 24.04-1.0 is scheduled to be released on 24 September

      I'm happy to announce that, after much anticipation, Ubuntu Touch 24.04-1.0 is scheduled to be released on 24 September 2025.

      Currently, the schedule looks like this:

      Date Event
      31 July 2025 Platform stability freeze, 24.04-1.0 Beta 1
      14 August 2025 String freeze
      28 August 2025 Branch off, 24.04-1.0 Beta 2
      11 September 2025 Final freeze, 24.04-1.0 RC
      24 September 2025 Release version 24.04-1.0

      (See the explanation of the freezes here: https://cpad.ubports.com/sheet/#/2/sheet/view/z44Rl7-Ba5mzHRYXXuk-9l8ZweVF-+v5X30JnZw7bPw/)

      We're still a number of things left to do before we can release 24.04-1.0 to all users. However, at this point, we feel confident enough to define a finish line, especially given that Canonical has ended standard support for Ubuntu 20.04.

      App developers: you'll soon be able to submit applications built against 24.04-1.x to OpenStore

      As part of 24.04-1.0 Beta 1 release, we'll also declare ubuntu-touch-24.04-1.x Click frameworks as stable. Applications built against 24.04-1.x will be allowed to use APIs introduced in Qt 5.15, paving a way to Qt 6 migration in the future.

      We're working to make sure apps built against 24.04-1.x can be published on OpenStore. This should happen by 31 July.

      posted in OS
      peat_psuwitP
      peat_psuwit
    • Status update on Ubuntu Touch 24.04-1.x, March/April 2025

      Apologize for the late update this time. Let's get into it:

      For everyone: the next Ubuntu Touch release will be called 24.04-1.0

      You'll notice that this status update has a different headline format. After a discussion with UBports Foundation Board of Trustee (BoT) and with the community in general, we've decided on naming the next Ubuntu Touch release based on Ubuntu 24.04 as "Ubuntu Touch 24.04-1.0". 24.04 signifies the base Ubuntu version we're based on, and 1.0 represents whether it's a major upgrade or it's a minor update.

      For now, the system-image channel will still be called utnext/{arch}/{hybris|android9plus|mainline}/daily. We will provide more updates on system-image channel in the future.

      For app developers: it's now possible to build against Ubuntu Touch 24.04-1.x

      Finalizing on versioning scheme means we're now able to finalize the name of Click framework. The new framework is called ubuntu-touch-24.04-1.x, with -qml variant for QML-only applications and -papi for applications without QML part. Due to the limitation of the Click file format, the AppArmor policy version is 2404.1.

      Support in Clickable has been added in the recently released version 8.3.0. This means that if you specify the correct framework and AppArmor policy version, Clickable will choose the correct Docker image by itself and will produce Click packages compatible with 24.04-1.x series.

      Open-Store will not yet accept applications built against Ubuntu Touch 24.04-1.x, as the framework is not quite stable yet. However, it's stable enough for developers to compile and test their applications against newer versions of libraries (such as Qt 5.15) available in Ubuntu Touch 24.04-1.x.

      We intend to maintain full app compatibility between minor updates, but the same can't be said on major upgrade even when we stay on the same Ubuntu version. However, in practice the app compatibility on the same Ubuntu base version should be possible, and we'll try to maintain backwards compatibility where it makes sense.

      For app developers: Ubuntu Touch 24.04-1.x will support apps built against Ubuntu Touch 20.04

      Related to my last point, it turns out that it's relatively easy to maintain compatibility with apps built against Ubuntu Touch 20.04, with only a couple of compatibility libraries added to Ubuntu Touch 24.04-1.x. So, we've decided to maintain compatibility with applications which use ubuntu-sdk-20.04 framework and its variants.

      This applies to most phones which has a modern 64-bit ARM processor (this applies to all devices which we currently have stable releases of Ubuntu Touch 20.04). On older phones with 32-bit ARM processor, due to a large-scale transition in Ubuntu and Debian (64-bit time_t transition), this is not possible, and compatibility will be limited to QML-only apps which use -qml variant of framework.

      Status of Ubuntu Touch 24.04-1.x

      At the moment, a few key items still has to be done, including but not limited to:

      • Fix MMS and contacts/calendar sync.
      • Re-test push notification and hotspot to ensure they actually work.
      • Re-building our core applications against the new framework.
      • Update our artworks to go with the new Ubuntu icon, introduced at part of Ubuntu 22.04.
      • A more streamlined mechanism to upgrade Ubuntu Touch major releases.
      • Infrastructure-side work to support the new Ubuntu Touch release scheme.

      We still need help in many of these items. If you're interested in lending hands, please reach us on our Telegram group.

      posted in OS utnext noble 24.04-1.x
      peat_psuwitP
      peat_psuwit
    • [Call for testing] Announcing out-of-schedule Ubuntu Touch 20.04 OTA-7

      We're going to release Ubuntu Touch 20.04 OTA-7 earlier than schedule to fix a number of security issues affecting Pulseaudio, our audio server. One of the issue affects privacy of Ubuntu Touch users, and thus we've decided to release an out-of-schedule update.

      The issues are as follow:

      • Confined applications can remove the Trust Store permission system module from Pulseaudio, allowing such applications to access the phone's microphone without user knowing, amongst a number of privileged actions.
      • Confined applications are able to crash Pulseaudio by performing a volume control on a specific virtual device when a Bluetooth headset is connected.

      Both of the issues are specific to the way Ubuntu Touch patches and uses Pulseaudio. However, the second issue has a potential to affect some Ubuntu 16.04 installations running non-default configuration (newer versions are not affected). As such, we've coordinated with Canonical on the timing before making this announcement.

      Due to the way our release pipeline works, Ubuntu Touch 20.04 OTA-7 will also contain a number of fixes which are not related to the aforementioned issues. Thus, we'll release an RC for 20.04 OTA-7 in upcoming days and we'll announce a call-for-testing. We plan to release Ubuntu Touch 20.04 OTA-7 on Friday 29 November 2024.

      Updated: Ubuntu Touch 20.04 OTA-7 RC is out, which should have version 2024-W47. Please take some time to switch your spare/development phone to the 20.04 RC channel and test this OTA.

      Update: Ubuntu Touch 20.04 OTA-7 is released. Thank you everyone involved in testing.

      posted in OS
      peat_psuwitP
      peat_psuwit
    • RE: On the subject of Ubuntu Touch versioning scheme

      In the Board of Trustees meeting on 4th February, I've brought the release version numbering up as a discussion topic. The attendees considered the comments on this post and have agreed that it's important to still reference Ubuntu version in our versioning scheme, while it would be beneficial development-wise to have a major-minor release system in place.

      As such, we've come up with a versioning scheme of "Ubuntu Touch [Ubuntu version]-[release version]" (a variant of option 3). For example, the next version of Ubuntu Touch would be referred to as "Ubuntu Touch 24.04-1.0".

      We believe this versioning scheme is both understandable and practical.

      posted in General
      peat_psuwitP
      peat_psuwit
    • Status update on the next, Noble-based Ubuntu Touch release, December 2024

      I just realize that there has been a lack of a long-form communication from the Ubuntu base upgrade side, which causes some frictions and confusions when trying to contribute to Ubuntu Touch during this transition period. This post aims to provide status updates and information that I think everyone has to know.

      Name changes for Noble-based images

      Due to some confusion in the word devel which has been used differently before, I've decided to rename the word devel that is used in various places to just next or utnext. In practice, this means:

      • The image name from the rootfs job will be in the format of e.g. ubuntu-touch-android9plus-rootfs-next-arm64.tar.gz
      • The system-image channel for testing out Noble-based is now called utnext/arm64/android9plus/daily. Note that we've set up redirection in place, so if you're already on the old channel, you'll automatically be redirected to this new name.
      • The Clickable images (which we're still working on) will be available under the version next.

      The name next is chosen to represent that this will become the "next" major release of Ubuntu Touch. When we enters the phase where we stabilize the release, we'll produce another set of channels, rootfs and Clickable images with the release number (which is yet to be finalized).

      Status of Noble-based Ubuntu Touch

      Since the last time I made a forum post, the following features has become usable:

      • Web Browser
      • Media Playback
      • Sensor

      This may seem not much, but more features are already in the code review phase. It could even be possible that we'll have the image in the state ready for wider testing before the Chrismas. We'll see...

      Please be careful when submitting changes to core applications

      Mike Gabriel and his team is currently working to package up a number of UT/Lomiri core applications for Debian, making them available on a more up-to-date OS with newer Qt compared to Ubuntu 20.04 our current images are based on. Meanwhile, our Noble-based Ubuntu Touch image is start to be more usable. Both of these expose our applications to new warnings which has not appeared before on Ubuntu Touch 20.04 with Qt 5.12.

      However, in many cases, the only way to solve those warnings is to migrate the code to the new syntax. Syntax which is not compatible with Qt 5.12. In particular, those syntax changes include:

      • Using function onFoo () { } form for Connection { } component.
      • Setting restoreMode property of Binding { } component.

      Since we've not make a separated branch for 20.04 just yet (and we can't do so because Clickable support for Noble-based Ubuntu Touch is not available yet), please don't introduce those changes into our core application repositories (more specifically, repositories under "ubports/development/apps" GitLab group). We've yet to decided if we need a separated branch for Ubuntu Touch 20.04 compatibility, but personally I would prefer that we don't need one.

      Also, please be reminded that these applications are first and foremost core applications for Ubuntu Touch. When submitting changes for them, please be mindful of this fact. When reviewing changes, please think of a possible breakage on phone (and wrt. Click packaging). Preferably test them on a phone first if the change seems big.

      Side note: we're planing to ship an environment variable drop-in file to silence deprecation warnings for the 2 syntax changes above. This should ease your eyes when reading through the log on the device.

      Heads up for porters: please drop touch.pa overlay if possible

      We expect ports that are available on Ubuntu Touch 20.04 to require only minimal changes in order to run on Noble-based Ubuntu Touch (unlike the 16.04 -> 20.04 transition). We've yet to finalize all changes that will be required. However, one change is certain: touch.pa will have to be updated, or be dropped if possible.

      This is due to how a newer Pulseaudio changes how it handles Bluetooth audio, requiring us to update the configuration for the Bluetooth module. However, if touch.pa file is overlaid from ports, the old configuration would be used, preventing voice call over Bluetooth headset to work properly.

      If your port requires overlaying touch.pa to hard-code the API level of pulseaudio-module-droid to 30, then you'll be glad to know that it will no longer required when MR at [1] is merged, as it will now happen automatically when required. If, however, your port requires overlaying touch.pa to specify quirks to pulseaudio-module-droid, we'll soon provide a way to specify this quirk without overlaying touch.pa. And if you need to overlay touch.pa for other reasons, please tell us so that we can understand your need better.

      [1]: https://gitlab.com/ubports/development/core/hybris-support/pulseaudio-module-droid-discover/-/merge_requests/6

      Another thing that might require special consideration is that, if your port overlays binary files (which we would not recommend, for security update reason and other reasons), please make sure that your overlaid binary can be executed on Noble-based images, as not every library retains its interface and/or soname.

      Heads-up for app developers: you'll need to re-build your app

      Due to changes in Ubuntu 24.04, we cannot guarantee that every application built against Ubuntu Touch 20.04 will run on Noble-based Ubuntu Touch. As such, we'll enforce it through Click's framework system that every native applications must be re-built against the next Ubuntu Touch version.

      However, we've not finalized how the Clickable support for the new release scheme will look like. So you can't quite do that just yet. Sorry for the delay.

      Meanwhile, if your application is QML-only, and the Click package declare this fact through Click framework (i.e. by using ubuntu-sdk-20.04-qml framework), your application should work as-is without any change. However, due to a shortcoming in Clickable, you might not be able to do that just yet. Please follow issue at [2] to see if this has been solved.

      [2]: https://gitlab.com/clickable/clickable/-/issues/444


      Phew! That's a lot of stuffs. I didn't expect it to be this long when I first decided to sit down and start writing this up. But here we are.

      If you still have any question, feel free to reply to this post or to ping me on Telegram in the "UBports Development" channel. I'll try to answer as much as I can.

      posted in OS
      peat_psuwitP
      peat_psuwit
    • Status update on the next, Noble-based Ubuntu Touch release, February 2025

      Status of Noble-based Ubuntu Touch (UTNext)

      Since the last time I made a forum post, the following features has become usable:

      • GPS
      • NFC
      • Phone call & SMS
        • Note that MMS is blocked until very recently. We'll have to recheck if it has been fixed or not.
      • Camera, include picture and video recording.

      Progress is a bit slower than we expected. But we still are progressing nicely.

      For app developers: it's now possible to build & test your apps against UTNext

      After a long await, you can now start attempting to rebuild your app against Noble-based UTNext. This should allow you to test whether your app has any problem with the Noble-based images, especially if the app was unable to start on them before due to shared library changes.

      For now, you'll need to get a nightly build of Clickable. After that, specify ubuntu-touch-next-internal as the framework inside clickable.yaml and specify policy_version of the AppArmor profile to 9999. You may also also have to make sure your manifest.json specifies @CLICK_FRAMEWORK@ in the framework field so that the correct version is filled in automatically by Clickable (sadly a similar mechanism doesn't exist yet for AppArmor policy - see this issue). When building, you'll have to specify --accept-review-errors for now, as click-reviewer-tools has not been updated.

      ubuntu-touch-next-internal is a framework which corresponds to the on-going development of UTNext. The -internal part indicates that there is no formal "contract" for this framework. In other words, we don't guarantee forward- and backward- compatibility with any past and future Ubuntu Touch versions. The framework is intended for testing only and is not intended to be published to the Open Store; you'll have to switch to the final framework when it's available.

      Due to delays and ongoing discussions, we at the core team are still unable to settle on what versioning scheme and what version number we will use for the next Ubuntu Touch release, and subsequently as the final framework name. We'll have a separated post discussing this in more details and allow you to chime in. We're sorry for this; as soon as we're able to finalize this detail, we'll provide an update to you.

      Update: please see a separated post for a discussion around version number: https://forums.ubports.com/post/84517

      For porters: it's now possible to drop touch.pa overlay (for UTNext, at least) now possible on both UTNext and 20.04

      If your port is one of the port which has to overlay /etc/pulse/touch.pa to provide additional arguments to pulseaudio-module-droid-discover or pulseaudio-modules-droid-card-<API>, it's now possible to instead provide extra arguments using an Deviceinfo property. The property is called PulseaudioModulesDroid_ExtraCardArgs [1] and accept all arguments which you may add to pulseaudio-modules-droid-card-<API>. For example, you can put this in your Deviceinfo overlay to set sampling rate of your device's audio chip:

        PulseaudioModulesDroid_ExtraCardArgs: "rate=48000"
      

      Combined with a change which allow you not to hard-code API level, it should now be possible to drop touch.pa overlay entirely. This feature is now merged into UTNext and 20.04, so you'll be able to share your device tarball between 20.04 and UTNext.

      [1]: In case you're wondering, yes, there are PulseaudioModulesDroid_ExtraGlueArgs and PulseaudioModulesDroid_ExtraHidlArgs as well. However, I believe you won't need them.

      posted in OS
      peat_psuwitP
      peat_psuwit
    • Call for testing: Ubuntu Touch 20.04 OTA-9

      We've just released the RC image for the Ubuntu Touch 20.04 OTA-9, which should have version 2025-W21 or newer. Please take some time to switch your spare/development phone to the 20.04 RC channel and test this OTA.

      Ubuntu Touch 20.04 OTA-9 is a maintenance release with only a minimal number of changes. That said, we still have a number of changes in this OTA. We would love an extra attention to the following areas:

      • Basic phone functionality (call, SMS, MMS and cellular data)
        • In particular, if your carrier supports VoLTE and you're using newer Volla phones (X23 and newer). This release include fixes which make VoLTE work on more carriers, which may introduce compatibility issues.
      • If your device has an LED, please see if it works correctly.
      • Whether Emojis show up correctly. (Not all of newer ones work, but the number should improve).
      • Whether Waydroid works.

      Please note that only critical and security fixes will be able to enter Ubuntu Touch 20.04 OTA-9 as this point. Normal bug fixes and new features will need to wait for our next release. Please do not discuss normal bug fixes and new features here.

      Ubuntu Touch 20.04 OTA-9 is expected to be released on 3 June 2025. We appreciate all testing we will receive.


      Update 28 May 13:20 UTC: a new RC has been published. Changes include a fix for Waydroid startup race condition, an APN config update for 1&1 (a carrier in Germany), and additional security fixes from Ubuntu upstream.

      posted in OS
      peat_psuwitP
      peat_psuwit
    • Status update on Ubuntu Touch 24.04-1.x, May/June 2025

      New system-image channel name: 24.04-1.x/arm64/{hybris,android9plus}/daily

      A couple weeks ago, I've done another migration to change, amongst other things. system-image channel name. The new channels are now called 24.04-1.x/arm64/{hybris,android9plus}/daily, with utnext/arm64/{hybris,android9plus}/daily becoming the alias of the former.

      The change is made to streamline the process when the development release (e.g. 24.04-1.x) enters a stabilization phase. Devices receiving updates from the old channel name will not see a significant change.

      Once 24.04-1.x enters a stabilization phase, utnext/arm64/{hybris,android9plus}/daily will become the aliases of the next release of Ubuntu Touch (e.g. 24.04-2.x).

      Status of Ubuntu Touch 24.04-1.x

      Notable progresses in the past 2 months are:

      • The new logo of Ubuntu Touch has been finalized, and is now used in the boot screen and (soon) in System Settings app.

      screenshot20250627_230112672.png

      • Calendar syncing is now working again after fixing underlying issues in libraries we depend on. (MR: 1, 2)
      • The problem of ADB session being closed after a few minutes has been fixed. (MR)

      GitLab label & milestone cleanup, and new GitLab issue board for 24.04-1.0

      A few weeks ago, I've finally got a chance to sit down and re-organize issue labels, milestones and issue boards. As a result we now have an issue board for UT 24.04-1.0 which should help showing what's left in order to have 24.04-1.0 out of the door.

      a3d3d661-13d4-4222-ba88-2d5e64e7a7b8-ภาพ.png

      As you can see, there are still a number of issues on the board that would love some help. Please join our development Telegram group and talk to us if you're interested in one of the issues on the board.

      posted in OS
      peat_psuwitP
      peat_psuwit
    • Noble-based devel images now available on most devices with 20.04 devel image

      For those that are interested in development of Noble-based Ubuntu Touch, we've now published a new system-image channel devel/arm64/android9plus/daily, available on most devices which has 20.04 devel image [1]. You can switch to it using the following command:

      sudo system-image-cli -v --progress=dots --switch=devel/arm64/android9plus/daily
      

      The channel has actually been existed for some time. However, up until today images are available only on a handful of devices due to system-image server configuration limitation. Note that I haven't tested the images on devices other than a handful of devices I have, so please make sure you have a way to recover your phone before trying this.

      Note that at the time of posting, the Noble-based images are still missing quite a number of functionalities. At the moment, the following features are either known to be not working, or is not tested but is likely not to be working:

      • Web browser
      • Media playback
      • Camera
      • Libertine
      • Sensor
      • Push notification
      • Dialer, Messaging UI
      • Hotspot

      If you're interested in helping bringing up these features to Noble-based images, please ping me either here or on Telegram.

      Do not install this image on your daily driving phone. Things will be broken. You have been warned.

      [1]: more specifically, devices with 64-bit ARM architecture and Halium 9 or newer.

      posted in OS
      peat_psuwitP
      peat_psuwit
    • Call for testing: Updated Pulseaudio & better Bluetooth headset support

      This is the followup from my previous call-for-testing. This time, in addition to updated PulseAudio from 16.04, this also includes:

      • a fix to Bluez which should improve the experience for users that use a Bluetooth headset for calling.
      • an update to the modern pulseaudio-module-droid to make sure they work with the updated version.

      All devices are welcome to participate in the test.

      How to test:

      Make sure your device runs the latest devel image. Run the following command in the ADB shell or SSH session:

      # Mount a tmpfs so apt can breathe
      sudo mount -t tmpfs tmpfs /var/cache/apt/archives 
      # Prevent Bluez from restarting & get stuck.
      sudo mount -o remount,rw /
      sudo tee /usr/sbin/policy-rc.d >/dev/null <<EOF
      #!/bin/sh
      exit 101
      EOF
      sudo chmod +x /usr/sbin/policy-rc.d
      # Actually install the packages.
      sudo ubports-qa install xenial_-_pulseaudio-updates-to-0ubuntu3.10
      # Reboot the phone.
      sudo reboot; exit
      

      What to test:

      See if there's any regression in both built-in speaker, wired headset, and Bluetooth headset. If possible, use a Bluetooth headset that can be in both music mode (hi-fidelity audio) and call mode (low-latency 2-way audio).

      Two possible regressions that can happen are

      • issue #528 ([xenial] Sound does not go to bluetooth headset)
      • a call via Bluetooth does work but cuts off after a few seconds

      I believe they're fixed, but please report if you encountered these issues.

      Also, if you have a Bluetooth headset with an accept/hangup button, try pressing the button while in call and see if the call hangs up. Accepting the call or last number redial might not work, and is a known issue.

      You may want to also follow this test plan from Canonical if you want to be extra sure there's no issue. However, even in the current version of PulseAudio, not all tests in this test plan pass. Thus, you may want to double-check if it's a regression or not.
      https://wiki.ubuntu.com/Process/Merges/TestPlan/pulseaudio

      If you found any issue/regression:

      Luckily, someone has written a script that automates enabling, disabling, and collecting debug logs [1]. It's located at https://github.com/bergotorino/bt-debugging-tools

      To enable debugging, run ./bt-device-enable.sh -e -p <lockscreen password>. The device will reboot automatically. Then, after reproducing the issue, run ./bt-collect-logs.sh <password>. A tarball will be produced. Please send that to me via PM or Telegram (@peat_psuwit) as it can contain sensitive information. Please also mention the brands of all devices you used to test in the PM; they'll be used to match up with what's in the log.

      To disable debugging, run ./bt-device-enable.sh -d -p <password>

      [1] For devices with ADB anyway. If you use a Halium 7.1 devices without ADB, you may take a look at the script, or you can ask me.

      Known issues:

      • The issue that the playing streams won't switch to the headset after a re-connect/connecting another device is issue #1045. The fix requires that this update works first. To workaround, please close and reopen the app playing the sound.
      • Even though using the button on the headset to hangup work, using it to accept a call or redial might not work.
      • It's been reported that Bluetooth on OnePlus One is unstable in general. Thus, you may want to skip testing Bluetooth on this particular device.
      posted in OS
      peat_psuwitP
      peat_psuwit
    • Call for testing: Ubuntu Touch 24.04-1.0

      Update 11 September: Ubuntu Touch 24.04-1.0 RC 1 is now available. See details.


      Hello everyone.

      We are pleased to announce that, after much anticipation, Ubuntu Touch 24.04-1.0 Beta 1 is now available for testing! Ubuntu Touch 24.04-1.0 is slated for release on 24 September 2025. Before then, we need to make sure it's ready to go.

      Wait? 24.04-1.0?

      If you have not followed our forums closely, you might be surprised that this versioning scheme does not match the scheme previously announced on our blog. This is a result of a long discussion amongst community members resulting in a decision to change our versioning scheme. This versioning scheme combines the version of Ubuntu we're based on (in this case, 24.04) with the version of changes specific to Ubuntu Touch (in this case, 1.0).

      The rest of the previous announcement are still applicable; the only thing changed is how we versions each release of Ubuntu Touch.

      What's new?

      Ubuntu Touch 24.04-1.0 will be the first release of Ubuntu Touch which is based on Ubuntu 24.04 LTS, a major upgrade from Ubuntu 20.04. This might not be as big compared to our last upgrade from Ubuntu 16.04 to 20.04, but this still brings newer software stack to Ubuntu Touch (such as Qt 5.15).

      Given the long time it took to produce this release, many new features are added to Ubuntu Touch 24.04-1.0 and we're unable to list them all. However, following are some of the most notable changes:

      • New Ubuntu Touch logos to go with the new Ubuntu Circle-of-Friends (CoF)
      • Light mode for the shell

      Known issues

      As with any pre-released software, there are some significant issues that are known to developers. We include some of the them here so you don't need to spend time reporting these bugs again.

      • Sending and receiving MMS is currently not working. (ubuntu-touch#2208)
      • Some pinned applications in the launcher might get disappeared due to internal rename (lomiri-system-settings-system-update#15)
      • You might not be able to pair new Bluetooth headset. Already paired Bluetooth headset will continue to work. (ubuntu-touch#2238)
      • Ubuntu Touch logo in System Settings is currently missing. (ubuntu-touch#2233)

      Also available for testing: Ubuntu Touch 20.04 OTA-10

      In addition to Ubuntu Touch 24.04-1.0 Beta 1, we're pleased to also announce that Ubuntu Touch 20.04 OTA-10, a maintenance release of 20.04 series, is also available for testing.

      There is a separated forum post for discussion related to Ubuntu Touch 20.04 OTA-10 testing.

      How can I test?

      To receive Ubuntu Touch 24.04-1.0 Beta 1, we recommend upgrading your phone to Ubuntu Touch 20.04 OTA-10 RC then upgrade to Ubuntu Touch 24.04-1.0 via the new upgrader.

      Once your phone is on Ubuntu Touch 20.04 OTA-10 RC, run the following command in Terminal app or via ADB/SSH to receive Ubuntu Touch 24.04-1.0 Beta 1:

      gsettings set io.ubuntu-touch.system-settings.update offer-development-release true
      

      After that, head to System Settings -> Updates again, and you should be offered to upgrade to Ubuntu Touch 24.04-1.0 Beta 1.

      You can find your image version in System Settings -> About -> OS.

      posted in OS
      peat_psuwitP
      peat_psuwit
    • App developers' guide to publishing applications for Ubuntu Touch 24.04-1.x

      With Ubuntu Touch 24.04-1.0 nearing release, many app developers will probably want to make sure their applications are available after the users upgrade their phone. This post will answer a number of questions you might have in mind.

      Before we continue: version terminology

      Throughout this post, I may use 24.04-1.x and 24.04-1.0 interchangeably. Technically, 24.04-1.x is a series which represent 24.04-1.0, 24.04-1.1, 24.04-1.2 etc, while 24.04-1.0 is a specific version from the series. However, we intends to maintain application compatibility across all minor versions throughout 24.04-1.x series. So, from app developers perspective, what is true for 24.04-1.0 should be true for the entire 24.04-1.x series as well.

      I will indicate if I say something that is applicable for 24.04-1.0 but not for the rest of the series.

      Do I have to re-build my application against Ubuntu Touch 24.04-1.x?

      Surprisingly, the answer is complicated. At the most basic level, applications built against Ubuntu Touch 20.04 will still be downloadable on OpenStore for 24.04-1.x users, and applications that has already been installed will still be available on users' devices. However, depends on how the application is built, it might run fine on Ubuntu Touch 24.04-1.x, or it might outright crash from the beginning.

      The best way to answer this is to install Ubuntu Touch 24.04-1.0 RC 1 on one of your phone and then try to run your app on it. But the following are rules-of-thumb:

      • If your application is completely QML-only: most likely, your application will just run fine on Ubuntu Touch 24.04-1.x. However, you may still have to slightly modify the code to stop using unsupported types. For example, if you use Lomiri.OnlineAccounts 0.1, you'll have to change that to SSO.OnlineAccounts 0.1 since the former is not supposed to be used, even on 20.04.
      • If your application contains C or C++ code: now it depends on what library you're using:
        • If your app uses only Qt libraries (such as libQt5Core, libQt5Gui, libQt5Quick etc.), then your application should run fine, unless you use private symbols for them. [^1]
        • If your app uses other libraries, then we can't really say for sure if your application will work as-is; you'll have to test your application to be sure. In general, if your library's API/ABI is stable and used outside of Ubuntu Touch ecosystem (e.g. GLib), then chances are it'll work. But if you use some lesser-known one, then it's more likely that it won't.
        • The following non-exhaustive list of libraries lists libraries known to have API/ABI changed between 20.04 and 24.04-1.x and requires rebuild:
          • libssl1 (from OpenSSL)
          • Boost (if you use non-header-only parts; see here)
          • ICU (libicu*.so)
          • libtiff, libwebp
      • If your application is written in Rust or Go and you use Qt or QML, then you'll almost certainly have to rebuild your application. This is because the integration between Rust/Go and Qt uses Qt's private symbols which have changed between Qt 5.12 (20.04) and 5.15 (24.04-1.x).

      Note: if you intends to support armhf architecture (32-bit ARM), you'll have always have to recompile your application, as armhf binaries built against 20.04 will not run on 24.04-1.x. This is due to Ubuntu and Debian's 64-bit time_t transition. Note that there's currently no supported Ubuntu Touch devices with armhf architecture.

      [^1]: Ideally, the sdk-libs and sdk-libs-dev seeds should defines what is stable for applications to consume. In practice, this list is poorly maintained and most people don't think about this when writing their applications. There are things that we should not promise, and there are things that we should have promised, but doesn't. So for now this list is advisory. Also so see Canonical-era wiki page about Click frameworks.

      How do I build my applications against Ubuntu Touch 24.04-1.x?

      The steps are:

      1. Make sure you run Clickable version 8.4.0 or later, which include necessary fixes for uploading applications built against 24.04-1.x to OpenStore.
      2. In clickable.yaml, specify ubuntu-touch-24.04-1.x as the framework:
      framework: ubuntu-touch-24.04-1.x
      

      Alternatively, specify framework using CLICKABLE_FRAMEWORK environment variable (useful for dual-building against both 20.04 and 24.04-1.x, see below).

      export CLICKABLE_FRAMEWORK='ubuntu-touch-24.04-1.x'
      
      1. In your manifest.json, make sure to specify framework as "@CLICK_FRAMEWORK@". Most applications is probably doing this already, but it's worth checking to be sure.
          "framework": "@CLICK_FRAMEWORK@",
      
      1. In your AppArmor manifest file(s), specify policy_version as "@APPARMOR_POLICY@". This allows Clickable to fill in the correct AppArmor policy version corresponding to the Click framework. If you have multiple AppArmor manifiest files (e.g. for your main application and your push helper), make sure to update all of them.
          "policy_version": "@APPARMOR_POLICY@"
      
      1. Run clickable build as usual. Now the application should be built against Ubuntu Touch 24.04-1.x.

      Note that applications built against 24.04-1.x will not run on 20.04 devices. In fact, the device will outright refuse to install your Click. This is intended; your application might call APIs that has been added in between versions, so we prevent this to avoid surprises.

      If I upload applications built against 24.04-1.x to OpenStore, will it be offered to devices running 20.04?

      No. OpenStore will offer the latest version which is still compatible with a particular device. For example, if you uploaded version 1.2.2 built against 20.04, then subsequently upload version 1.3.0 built against 24.04-1.x, devices running 20.04 will receive version 1.2.2, while 24.04-1.x devices will receive version 1.3.0.

      I want to provide updates for my app to 20.04 devices after I upload a new version for 24.04-1.x. Can I do that?

      Yes. OpenStore has been updated to accept a new Click which is older than the current version, as long as the Click's framework is different. Using the previous example again, if you uploaded version 1.2.2 built against 20.04 then subsequently upload version 1.3.0 built against 24.04-1.x, you can then upload version 1.2.3 built against 20.04 and 20.04 devices will receive this update. At the same time, 1.3.0 will continue to be provided to 24.04-1.x users.

      I want to provide the same versions but built against both 20.04 and 24.04-1.x. Can I do that?

      Yes, with one caveat: your built Clicks must have unique versions.

      Wait, that's a "no", isn't it?

      Well, indeed. But here's the technique: with some configurations, you can build your application twice using the same code, and still get a different versions out of it. Here's the way I do it:

      • Make manifest.json a "build-time configured file". Then, add a build-time flag to define a suffix to the version of the Click.
      • In your build scripts/CI configuration, build your app twice, varying CLICKABLE_FRAMEWORK. This might be multiplied by architectures, so in practice you might build your apps 6 times.
      • In clickable.yaml, set the Click's version suffix based on the ${SDK_FRAMEWORK} environment variable, which Clickable will set to the framework you defined earlier. Note that shell's command substitution/variable expansion is available for you, so you can modify this variable further.
      • Make sure you leave "framework" in manifest.json as "@CLICK_FRAMEWORK@", and your "policy_version" in AppArmor manifest(s) as "@APPARMOR_POLICY@". This allows Clickable to fill in the appropriate values.

      For a concrete example, see this lomiri-calendar-app MR.

      Fun fact: Click package's version is not limited to just "major.minor.patch" format. Rather, it allows a full range of Debian package's version, including alphanumeric, ~, + and -. So you can include them in the version to help distinguish Git builds, Ubuntu Touch versions, and more.

      My app currently doesn't build against 24.04-1.x. The version built against 20.04 doesn't start on 24.04-1.x due to missing libraries. I'm currently short on time. Is there a workaround?

      There is one, indeed. Clickable has a feature to include libraries from the build environment into your Click (similar to Snapcraft's parts.<part-name>.stage). To do so, add the library names in the install-lib key of clickable.yml.

      install_lib:
      - libasound.so*
      

      When your application is launched, system will make sure that your Click's library is added into LD_LIBRARY_PATH environment variable, which will make your app look into your Click first for any library it wants.

      Note, however, that if you do this, you will want to make sure that the library you included is not actually depended on by one of the system library but under a different "soversion" [^2]. This is because 2 different soversions of the same library can have the same symbols; in that case, it's not guaranteed which version of the symbol will be used, and the behavior will be undefined [^3].

      One way to check this is to install your Click on a 24.04-1.x device, then run:

      LD_LIBRARY_PATH=/opt/click.ubuntu.com/<Click id>/current/lib/* \
        ldd /opt/click.ubuntu.com/<Click id>/current/<your app binary> | less
      

      Then, inspect the output to make sure the same library with different "soversion" does not appear twice e.g. make sure libwebp.so.6 and libwebp.so.7 does not appear together.

      (The exception to this rule is libicu*.so; ICU allows linking multiple versions of itself into one process by make sure all symbols have the version number appended. See ICU4C documentation.)

      [^2]: "soversion" is the first version number after .so in the file name. For example, if a library has a file name libcurl.so.4, its "soversion" is 4.
      [^3]: my understanding of the Click framework contract is that, if a library does not appear in sdk-libs or sdk-libs-dev, then you're supposed to bundle it in the Click package. However, due to this "soversion" clashing issue, I'm not sure this is the right approach to this problem...


      I hope this post answers some of your questions and ease a migration of your apps to 24.04-1.x. If you have any question, feel free to leave a reply to this post and I'll try to answer them as best as I can.

      posted in App Development
      peat_psuwitP
      peat_psuwit
    • Call for testing: Ubuntu Touch 20.04 OTA-8

      We've just released the RC image for the Ubuntu Touch 20.04 OTA-8, which should have version 2025-W08 or newer. Please take some time to switch your spare/development phone to the 20.04 RC channel and test this OTA.

      Ubuntu Touch 20.04 OTA-8 is a maintenance release with only a minimal number of changes. That said, we still have a number of changes in this OTA. We would love some extra attention to the following areas:

      • Basic phone functionality (calls, SMS, MMS and cellular data)
      • Address book app
      • Web browser
      • Wi-Fi settings
      • If you were affected by mobile data breakage issue in OTA-6 testing cycle, please check if mobile data is working for you in this RC. You might be affected if you use Volla Phone X23, live in Germany, and Telekom is your carrier.
      • If you're using Volla Phone 22 with a new replacement screen, we would appreciated it if you can spare your time testing this RC.

      Please note that only critical and security fixes will be able to enter Ubuntu Touch 20.04 OTA-8 as this point. Normal bug fixes and new features will need to wait for our next release. Please do not discuss normal bug fixes and new features here.

      Ubuntu Touch 20.04 OTA-8 is expected to be released on 28 Februrary 2025. We appreciate all testing we will receive.

      Update 19 Feb 13:40 UTC: earlier version of the announcement mentioned contact syncing as an area of interest for testing. It was included by accident, and has been removed.

      Update 20 Feb 7:00 UTC: a new RC has been published which include a fix for Pixel 3a XL cellular breakage.

      Update 25 Feb 13:40 UTC: a new RC has been published which fixes mobile data issue on some Volla Phone X23 users depending on SIM slot being used.

      posted in OS
      peat_psuwitP
      peat_psuwit
    • Call for testing: Ubuntu Touch 20.04 OTA-10

      We've just released the RC image for the Ubuntu Touch 20.04 OTA-10. Please take some time to switch your spare/development phone to the 20.04 RC channel and test this OTA.

      Ubuntu Touch 20.04 OTA-10 is a maintenance release with only a minimal number of changes. The most notable change in Ubuntu Touch 20.04 OTA-10 is the inclusion of the new upgrader, allowing users to upgrade to Ubuntu Touch 24.04-1.0 with ease once it comes out.

      Release upgrader

      In addition, there are a number of general bug fixes and security updates, including QtWebEngine update to the latest patch release in 5.15 series (sadly still based on Chromium 87).

      Please note that only critical and security fixes will be able to enter Ubuntu Touch 20.04 OTA-10 as this point. Normal bug fixes and new features will need to wait for our next release. Please do not discuss normal bug fixes and new features here.

      Ubuntu Touch 20.04 OTA-10 is expected to be released on 14 August 2025. We appreciate all testing we will receive.


      If, however, you're interested in testing the next version of Ubuntu Touch based on Ubuntu 24.04, Ubuntu Touch 24.04-1.0 Beta 1 is now also available for testing.


      Update 11 September 2025: Ubuntu Touch 20.04 OTA-10 RC 2 is published. This version includes fixes for various issues with Volla devices, along with a number of bug fixes.

      The new target release date of Ubuntu Touch 20.04 OTA-10 is 25 September 2025 (the same date as Ubuntu Touch 24.04-1.0).

      posted in OS
      peat_psuwitP
      peat_psuwit
    • Call for testing: Ubuntu Touch 20.04 OTA-5

      We've just released the RC image for the Ubuntu Touch 20.04 OTA-5, which should have version 2024-W30 or newer. Please take some time to switch your spare/development phone to the 20.04 RC channel and test this OTA.

      Ubuntu Touch 20.04 OTA-5 is a maintenance release with only a minimal number of changes. That said, we still have a number of changes in this OTA. Please have a look if:

      • The battery life, compared to the previous OTA, doesn't not get worse.
      • There's no settings being overwritten (you don't have to be exhaustive. Just report if you remembered a setting being different before receiving this update).
      • Morph Browser works as well as it was in the previous OTA (please don't report known website incompatibilities).

      Please note that only critical and security fixes will be able to enter Ubuntu Touch 20.04 OTA-5 as this point. Normal bug fixes and new features will need to wait for our next release. Please do not discuss normal bug fixes and new features here.

      Ubuntu Touch 20.04 OTA-5 is expected to be released on 29 July 2024. We appreciate all testing we will receive.

      posted in OS
      peat_psuwitP
      peat_psuwit
    • RE: No new stuff for xenial, but what about old new stuff?

      Hello jEzEk,

      There are both technical and societal reasons as to why we have decided to not accept new features into the Xenial line of update anymore, even the ones which is developed against Xenial and is near ready.

      First, the technical reason: due to a large number of changes involve in making all Ubuntu Touch components works with the new version of Ubuntu, compound with desire to realize the rename in this release, we've decided early on to have a separated branch of code for almost every component we have. Unfortunately, this resulted in a largely separated development between Xenial and Focal, and while one is busy making a component runs on Focal, another proceeds to add new features onto the existing codebase on Xenial. And because we didn't realize this problem early enough, this means now we have quite a backlog to visit. Also, since the code diverged a lot since we start the branches for Focal, sometimes it's not straight forward to port changes to Focal. So, limiting the amount of changes that enters Xenial directly reduces the amount of work needed to make Ubuntu Touch based on Focal a reality.

      Now, the societal reason: as mentioned by many people above, we're a small group of people and unfortunately can't do everything at once. In addition to adding the amount of changes we need to carry to Focal, time spent reviewing changes for Xenial is time not spent developing or reviewing changes for Focal. Given that Xenial has been out of support for over a year at this point, it has become our priority to provide our users with the up-to-date base for the security of our users, and that means we need to reduce as much work as possible.

      In addition, many people might consider Focal complete when it reaches feature parity to Xenial. However, if more changes keeps being added to Xenial, it becomes harder to realize that objective. Having to chase a moving target is not fun, and personally I already have that feeling when I realized that the contact backend changes will land in OTA-24. Fortunately that didn't happen in the end, but even for smaller features it can easily be unexpectedly hard to bring to Focal.

      So, please accept my apology that we cannot accept more changes into Xenial line of update anymore. We want to have an up-to-date and secure operating system, and we cannot have that with an out-of-date base.


      On the side of device support, the primary limiting factor at the moment is due to the inevitable change of the init system from Upstart to Systemd. Systemd uses a number of modern features of Linux kernel, and as such requires a (moderately) modern Linux kernel. The version of systemd requires Linux >= 3.13, however the recent version raised that a bit.

      It's possible to backport certain changes into an older kernel to make systemd runs, but it's a tedious manual task that has to be done per kernel tree [1]. A rule of thumb is that if the device launches with Android 9 it should be fine, but for older devices one must check the Linux kernel version.

      [1] For example, I've done such job on FP2, which allows me to run an old image of Plasma Mobile which uses systemd.

      posted in General
      peat_psuwitP
      peat_psuwit
    • GitHub mass archival starts Monday 18 December

      Starting from Monday 18 December 2023, I'll start to brutally archive GitHub projects in ubports group that should have been archived for some time. This includes (but isn't limited to) unity8 and indicator-*, amongst others (probably).

      By brutally, I mean I'll archive them without further modifications to the repository. No updating README, no issues & PRs closing, no per-issue notification, and no further migration. The only change I'll make with archiving is modifying the description so that it points to the relevant, migrated repo (our GitLab for most, but AyatanaIndicators when applicable).

      We once planned to actually use GitLab's migration tool to migrate those repos over, and then notify each of the issue and PR of the new location of it. However, as we (accidentally?) create a new, corresponding repo on GitLab, migrating the repo from GitHub suddenly becomes more complicated. As such, I've decided that it's no longer worth an effort to do the migration, as code-wise, we're pretty much self-hosted on GitLab now.

      Some repository will still live on GitHub and won't yet be archived in this round. This includes installer-config, build-tools, and various Android trees. Efforts are being made to migrate the rest of repositories to GitHub, to avoid confusions in the future.

      If you happen to have some issue filed on GitHub that will be archived, I'm sorry for the inconvenience. If it still occurs on Focal, today, please file a new issue on GitLab. We now have a meta-repo for issues, so please go to https://gitlab.com/ubports/ubuntu-touch for new issues.

      posted in OS
      peat_psuwitP
      peat_psuwit
    • RE: ubports/focal branching will happen on 14 February

      The branching is finished. I have to run the script twice since in the first run the script did not take the archived state into account. Luckily, the script is already idempotent, so I can just code that in and re-run the script.

      For accountability, these are the log of both runs: https://gitlab.com/-/snippets/3673980

      Also, since I noticed it, I also go ahead and delete ubports/focal branch after the fact for these repositories since they are not actually code repositories.

      • https://gitlab.com/ubports/development/core/devscripts
      • https://gitlab.com/ubports/development/core/focal-projectmanagement-missing-packages

      As mentioned, this means CI for main branch will fail for a while, so it's probably not a good idea yet to merge MRs. I'm working on the CI change as we speak. Thank you for your patience.

      posted in OS
      peat_psuwitP
      peat_psuwit
    • CI is now fixed and freeze is lifted

      The new CI code is now fully functional, and will build packages against both Ubuntu Noble and Debian testing. So we can now accept MRs again!

      Note that since I start the new APT archive here, a few dependencies are still missing and your MR may still fail. I'm working to bootstrap the most important dependencies. Also, I've configured the CI so that the failure against Debian testing is not fatal (but will show up as "unstable"). However, due to GitLab's limitation it may show up in GitLab as failure. Please take Jenkin's comment in the MR as it gives more detailed status.

      The rule that everything must land in main branch first still apply. After an MR is merged, we can have the MR backported to the ubports/focal branch if wanted. I'm working on wiring up the backport automation, but in the mean time I can also run the backport automation manually.

      I'll work to document everything up by this week. In the mean time, if you have any questions or the CI is not working as expected, please ping me on Telegram. Also, if you have a fix that you want to land into Focal image quickly, please also ping me so that I prioritize fixing that component's dependencies.

      posted in OS
      peat_psuwitP
      peat_psuwit
    • RE: Call for testing: Ubuntu Touch 20.04 OTA-9

      Ubuntu Touch 20.04 OTA-9 is released. Thank you everyone involved in the testing.

      https://ubports.com/blog/ubports-news-1/post/ubuntu-touch-ota-9-focal-release-3962

      posted in OS
      peat_psuwitP
      peat_psuwit