Over the past few months, and especially since the last holiday season, many exciting things have happened in Mobian: new devices are (about to be) officially supported, many new and improved packages have made their way into both Debian and Mobian, and we’re getting ready for our next stable release!

Towards a “device-specific only” repository

Thanks to the involvement of upstream developers (by either accepting or writing patches to ensure their applications can be used on mobile devices) and the work of the relevant Debian teams, many GNOME and KDE apps were made adaptive and could be uploaded to the main Debian archive without any additional downstream patch.

This allowed us to drop (almost) all of the applications we were distributing through the Mobian package repository:

We plan on getting rid of the remaining few ones before the Trixie release:

Except for a patched version of GTK 3 which we will keep maintaining until Phosh is ported to GTK 4, this means all packages in the Mobian archive will be either Mobian-specific (mainly metapackages) or hardware support packages (kernels and device-specific tweaks).

A better tomorrow greeter

Another major milestone we’re about to reach is the move to a new default login screen: back in 2022, we decided that user session management on mobile devices shouldn’t get any special treatment, and we should rely on a “display manager” similar to GDM/LightDM/SDDM, for instance. This would bring many benefits, the most prominent ones being multi-user setups for those who need it (e.g. for handing out a personal device for others to try) and automatic keyring unlocking.

As no mobile-friendly greeter existed back then, we took a stab at hacking Phosh itself, as it provided almost everything we needed:

  • meant to run directly on top of a Wayland compositor
  • a lockscreen we could mutate into a login screen
  • touch input and on-screen keyboard management

After stripping it from a lot of its functionality and only keeping the core and lockscreen features, we came up with phog, which worked so well that we decided to make it part of Mobian (even though this was supposed to be a mere proof-of-concept), leaving cleanups and essential refactoring to a later point in time.

While this mostly worked out as expected, it proved to be a maintenance nightmare, and the combination of time and energy required for this much-needed refactoring was never found, leaving phog in a suboptimal state for the foreseeable future.

Thankfully, this effort inspired others, and @samcday decided to write a new greeter based on the same concepts, this time using unmodified Phosh code (by using its core functionality as a shared library) rather than hacking it to pieces. With the help of @agx, he ensured libphosh provided a usable and complete enough API, added Rust bindings on top of it and finally released Phrog 🐸.

Phrog is now part of Debian and will be used as our default greeter as soon as it migrates to the testing repository. This move should be more future-proof and further reduce our overall tech debt.

Supporting new devices in Mobian

On the topic of device-specific tweaks, we made huge progress on ensuring Qualcomm-based devices can be supported using only packages present in Debian. As a result, the only Mobian packages needed for those devices are effectively the kernels.

This could be achieved thanks to the combined efforts of many Mobian contributors, and involved the following tasks:

One of the most significant results of those efforts is of course that new devices are now supported in Mobian: the Fairphone 5 and Pixel 3a (XL), the latter having proved to be usable as a daily driver for several people, thanks to generally-working audio (including phone calls, if you’re lucky enough), a fairly good battery life and kinda-functioning cameras.

Another important improvement is that generating Mobian images for unsupported (for now) Qualcomm-based devices is now easier than it has ever been (as long as a mainline-based kernel exists for said devices): using the qcom-wip device type, one can “simply” drop the downstream kernel’s .deb package as well as a droid-juicer configuration file to the relevant folders and build the image, with decent chances that it will actually boot once flashed to the device.

More detailed instructions are being written and will hopefully be posted to the Debian Wiki in the near future.

On “universal” kernels

As you might remember, we aim for Mobian to ship universal images, that is, images that can run on all supported devices. This requires first having a “universal” kernel, holding all the patches needed for all supported devices. As this is way more complex than it may sound, we started by offering a single kernel for all Qualcomm-based devices.

However, when looking into adding support for SDM670-based devices (Pixel 3a), we faced the fact that some of the patches required for those would conflict with patches needed for SDM845-based devices. We then had to resolve to shipping a different kernel for the Pixel 3a, realizing that our plan to ship a unified kernel would be only get harder to implement as we would add support for more devices.

More recently, we found out that patches required for SC7280-based devices (Fairphone 5, and possibly the Nothing Phone in the near future) would break display support on SDM845 devices, and had to split SC7280 support into its own separate kernel, putting the final nail in the coffin of our “universal kernel” dream.

In the end, our formerly-generic qcom-linux kernel now only support SDM845 and SM6350 (Fairphone 4) devices, a situation only full upstreaming of device support will be able to improve over time.

What’s coming up next?

At this point, we’re already pretty happy with how things evolved throughout 2024 and in the first weeks of 2025. Our focus will now be on fixing as many bugs as possible in preparation for the Trixie release expected next summer.

Unfortunately, we barely made any progress on our 2024 roadmap items, but choices had to be made due to the (limited) bandwidth of our developers. This doesn’t mean we no longer have interest in those, but rather that we’ll likely address them only once we have the next stable release out.

On the plus side, Mobian will be participating in this year’s “Google Summer Of Code” through its parent project Debian. Our proposal, aimed at improving device tweaks management in Debian, has been approved and is only waiting for the right candidate(s), so feel free to drop us a line and/or join us on #mobian-dev:matrix.org if you’re interested!

Finally, several Mobian developers plan to attend DebConf ‘25 in Brest, France, spreading the Mobile Linux gospel to fellow Debian developers. Maybe we’ll get to meet some of you there as well?