Contents
The current focus is towards
- reducing the gap between Mobian and Debian
- making Debian suitable for mobile phones running Mobian/Debian
In general, this implies:
- avoiding disruptive changes which we know won't be accepted into Debian as much as possible
- upload packages in Debian where possible
- working with upstream to make sure we can, over time, drop packages from our archive and rely on Debian's versions instead.
Debian-specific improvements
Apart from Mobian-specific packages, we maintain a few packages which could be generally useful and therefore should be uploaded to Debian. A (mostly) complete and up-to-date list can be found on our Teams/Mobian/WantedPackages page.
Mobian packages we should upload to Debian include:
meta-mobian
mobian-tweaks
Please note those packages would need to be cleaned up and possibly reworked in order to comply with the Debian policy.
We also ship a number of device-specific packages containing (mostly) the configuration files needed to get this device working properly. Those basically depend on and extend the corresponding package from the Debian mobile-tweaks package, however that implies having one binary package per device, which doesn't scale in the long run.
Tweakster is an attempt at providing a boot service that can configure the system and add device-specific tweaks based on detected hardware, similar to how droid-juicer extracts binary firmware on Qualcomm devices. Pushing it further and uploading it to Debian would allow us to publish a unified image for multiple hardware.
- Ensuring it works in a way that doesn't break Debian processes is key to the success of this task.
General ecosystem improvements
Provide and maintain a mobile-friendly login/session manager
We have Phog which proved to be a good enough login manager over the past few months. However, it is essentially a modified fork of Phosh, which causes maintainability problems in the long run.
The best solution seems to be a full refactoring in order to use an unmodified libphosh, extending the latter in the process: this would make it possible to regularly switch to a newer version of Phosh as the base version for Phog (upstream issue), benefitting from all the upstream improvements with little effort.
Improve call audio management
Over the past few years, call audio routing has been handled by callaudiod, as there was no way we could ever push the needed changes into PulseAudio.
The massive adoption of PipeWire and ?WirePlumber changes a lot of things in this regard: ?WirePlumber is a session manager, meaning managing audio routing in various situations (including phone or VoIP calls) is definitely its role. As a consequence, we should push for moving at least part of the callaudiod functionality to ?WirePlumber, starting with automatic profile/route selection during phone calls.
The basic plan to achieve this would be:
implement a PipeWire "modem" module/plugin: its role would be to monitor ?ModemManager through D-Bus and export the modem presence & status as PipeWire metadata
implement/improve ?WirePlumber policies to use the appropriate profile/ports during phone calls
- this will require WP 0.5, still under active development
build on the above to properly handle ?BlueTooth audio during calls
Note: asahi-audio might provide inspiration regarding how to handle custom PipeWire configs and ?WirePlumber policies.
Other desirable improvements
A-GPS with phone: better integrate software with GPS modules
Note: it should be handled transparently by EG25 manager for the ?PinePhone(Pro), but there are reports where it had to be manually enabled using appropriate AT commands
Doze or reliable alarms waking up phones
Hardware support
We aim for the supported devices to eventually use the Debian kernel instead of a downstream fork, which isn't a sustainable long-term option.
This implies ensuring the devices Mobian supports have a community actively upstreaming support for those to the mainline kernel.
Note: this is currently the case for SDM845 devices and the Librem 5. There isn't much community interest in PINE64 devices, meaning we have to move forward for those devices if we want to keep supporting them, and this is a current problem.
Among the areas requiring a significant amount of work and/or dedication:
USB-C management in downstream kernels is full of hacks and must be fully reworked using proper kernel mechanisms
Charger/battery drivers for the ?PinePhonePro are downstream ones and should be rewritten
The ?PinePhone's wifi driver is also a downstream driver. To be upstreamed, it needs to be rewritten from scratch
Porting to new phones
Due to limited development volunteers, Mobian developers prioritize phones whose companies want to mainline their kernels and share the goals of Mobian.
However, if someone wishes to port over and maintain a new device with Mobian, we can assist with creation of the repositories. Please understand that should you choose to do this, we are asking you to keep maintaining it.
