Skip to main content


Google-Free Push Messaging for Google-Free Phones


UnifiedPush open-standard push messaging complements degoogled android-compatible phone OS's such as LineageOS.

People who do not want to depend on Google or have them control our devices are using android-compatible but not google-controlled phones, a.k.a. “degoogled phones”. We have been asking for several years if we can have google-free push notifications. Thanks to the developers of UnifiedPush, the answer is now, “yes!”

The open standard UnifiedPush.org has now been created. While not a large number yet, a useful handful of apps already support UnifiedPush, including several matrix and fediverse apps. For its servers and the associated client-side “distributor” component, there are multiple successful implementations deployed.

The current situation is such that anyone can use UnifiedPush on an android-compatible device by installing their choice of UnifiedPush distributor app (which must run in the background), configuring it to connect to their chosen U-P server (compatible with chosen distributor), and then installing any number of U-P-aware apps which will then use it (without needing per-app configuration to do so).

In android-compatible OS ROM projects such as LineageOS, implementing some core support for the UnifiedPush.org standard now seems to me like the right way to go. Exactly what form of support is to be decided.

Involving the OS ROM


Some ways an OS like LineageOS could usefully be involved to improve the UnifiedPush experience are:

  • ensuring the U-P distributor app has a convenient way to be installed and permitted to run in the background, free from restrictions, because getting this right is critical and if the user installs the distributor manually it can be tricky to get right; (investigate: would it need to be a system app, or some kind of whitelisting (ugh), or be split into a system component and a user component, or what?)
  • providing a convenient way to let the user (or the OS distribution provider) configure the distributor's U-P server address: perhaps rather than using an ad-hoc UI provided by the distributor app, it could integrate with “accounts” settings.
  • potentially providing a system settings UI for monitoring the U-P connections and which apps are using them.

Thoughts on the role of microG. The purpose of microG as best I understand is to provide Google compatible APIs to apps which expect Google services. Underneath these APIs, it provides access to a mixture of actual Google services, alternative real services, and fake services. As far as I know it does not so far provide any non-Google APIs, and yet for push notifications the provision of UnifiedPush APIs might be a good fit for fulfilling its overall purpose as a compatibility layer. Or perhaps not, perhaps that is out of scope and should be in LineageOS or another add-on layer instead. I'm sure the folks involved will work out what is best.

Constraints, FCM Fallback, non-Android


Unlike the situation with some other google APIs, it is important to note that an OS compatibility layer such as microG cannot automatically divert the connections made by apps built using Google's FCM, to use U-P instead. The apps must be modified.

However, the inverse is possible: a UnifiedPush aware app can automatically “fall back” to using Google's FCM if U-P support is absent and FCM support is present. See details of the Embedded FCM Distributor in UnifiedPush documentation.

Non-Android devices can use UnifiedPush too, including Linux phones such as PinePhone and Purism Librem. The UnifiedPush D-Bus spec may be relevant. (On locked-down proprietary devices such as Apple's it is unlikely to be possible, nor to make much sense: FAQ.)

Packaging a UnifiedPush Distributor


A U-P distributor app could be built in to an OS or subsystem like microG but there is a significant down-side to that: it would support only one type, or at most a fixed small number of types, of U-P server. Choosing a distributor type is more of a whole OS packaging decision. In cases where the whole OS is related to a service provider of some kind (so not like LineageOS, but perhaps like Murena/Calyx/Graphene etc.), the service provider might choose to run a U-P server for their users and have their distributor automatically connect to it (with user consent/opt-in/opt-out). In the more generic/self-hosted case (like LineageOS) it makes more sense to leave it to the user to install their preferred U-P distributor.

I would love to see distributors of google-free phones, such as Murena, support google-free push notifications. I posted a brief sketch of a UnifiedPush Plan for Murena /e/-OS on their forum, without attempting to go into details of integrating the U-P distributor into the ROM.

History


A rough time line of UnifiedPush development. (From light research and having followed it through its development.)


Conclusion


Whatever the specifics of how any android-compatible OS ROM project might choose to proceed with google-free push support, the solution space enabled by UnifiedPush now exists. Speaking as one of the people who prefer our devices not to be controlled by and dependent on Google:

What do we want? UnifiedPush!

When do we want it? Now!


See my other posts tagged... #unifiedPush #degoogled #awesomeFOSS


Follow/Feedback/Contact: RSS feed · Fedi follow this blog: @julian​@wrily.foad.me.uk · use the Cactus Comments box above · matrix me · Fedi follow me · email me · julian.foad.me.ukDonate: via LiberapayAll posts © Julian Foad and licensed CC-BY-ND except quotes, translations, or where stated otherwise