Push notifications without Google

Google services has something like “push notifications” used by much software. Is there a Google-free alternative?

For example Nextcloud-talk is not very usable without a notification when a call comes in.

I’ve heard about “microG”, I guess this is using Google and cannot be used with self-hosted software?

With regards,
Paul van der Vlis

MicroG is Free Software that you can install on your phone to communicate with Google Services (including Cloud Messaging = push notifications) while sending a minimal amount of data to Google.

It should work with every software that works with Google.

You’ll need to enable the microG repository in F-Droid to download the relevant microG apps.

What for exactly? What does the app do?

Did you read: https://f-droid.org/en/2018/09/03/replacing-gcm-in-tutanota.html yet?

@bubu is in the process of writing something like that right now. There is also Amazon, Baidu, etc. but that’s probably not what you’re interested in.

1 Like

microG cannot be used with a custom push server at present, but when I asked its author about this, he said it should be just a matter of changing a URL in the code (or presumably, adding code to make the server user-selectable).

The real problem is that, as far as I’m aware, there isn’t currently a compatible server implementation that’s free software, and I’m not sure microG’s implementation of the client library is in a working condition either (this is required for the applications themselves to be free software), so there is no point in adding such an option to microG.

I do know there is funding for an effort to create a server and client library by a developer connected with F-Droid, so this situation might change (the link is to Google Translate from the original page in German). I don’t know if this aims to be a fully drop-in replacement to the Google API, or would require changes in applications. If the wire protocol ends up being the same, then conceivably microG could be adapted to play the role of the push service broker for apps, so that they can, for example, exit states like Doze when they receive notifications. Incidentally, microG itself is slated to receive the same funding too, so there could potentially be a concerted effort to bring these components up to date in an organic way, as microG already implements most of the client portion.

By keeping an “app server to server to client” architecture like the original Google implementation (and most push services around, I guess), there is still the issue of where the server is going to be hosted. I suppose one could go in a direction of having community-run servers, or of letting users run their own servers and configure apps and app servers ti communicate with them.

2 Likes

The push part will only work as a system app though (I think).

It’s also not sufficient to just implement that API for our use-case. Becasue you’ll need additional logic to communicate the push-server a certain client is using upstream to the application-server (like nextcloud.)

So there’s no real chance here to get a drop-in replacement.

Afaik it’s not currently, but I’ll look into that soon I think.

It’ll be one push-server per device configurable by the user but possibly suggested by an app you install. The details will still have to be figured out.

3 Likes

At the moment I am interested in using Nextcloud talk, but without notifications it’s difficult to use.

Your link is very interesting! Is this beta-app in production now?

Actually I think the push part is one of the few that doesn’t require it to be installed as a system app. I could be wrong but I remember installing it as non-system on phones where I couldn’t be bothered with setting it up as a system app just to get push. But, there are a few different methods apps can access the push subsystem, reflecting the various API changes (GCM to FCM and whatnot), so I definitely cannot guarantee it will work as non-system for all apps.

Edit: on second thought, I’m not sure I remember whether the peculiar thing about push was that it worked without the app being a system app, or with the app being a system app but without signature spoofing enabled.

I think the push service needs to have elevated privileges to bring apps out of doze/sleep when a notification is received. The server communications do not need any special privileges.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.