Hello from my new GrapheneOS phone! I’m working on getting things set up and have come to the notification issue. I’ve heard this brought up tangentially but haven’t put enough together to be actionable, and my initial searches mostly turn up info for app developers rather than end users.
Is there a way to get reliable and timely push notifications without Google Play Services? What does that look like?
For my threat model I’m not really concerned with people gaining physical access to my phone, it’s more the surveillance capitalism I’ve got a problem with. So I’d like to be able to keep showing notification contents to myself without showing them to Google.
I haven’t picked a cell provider yet, and I’m in the US, in case that affects my options. Wanted to make sure the new setup was viable before cutting the cord on the old one.
From what I understand, this is a per-app situation, so here are my important sources:
- Email: currently use the Proton app. I’m open to switching to a separate client, but the feature to mark read directly from the notification has been a game changer for my notification fatigue, especially with the decryption lag and getting two copies of things as I switch everything off my gmail. I do still want the notification for a lot of things (e.g. credit card payment is due) but I get what I need out of the subject and have no further value to actually opening the whole thing.
- Calendar: also Proton, also open to other clients. Reliability here is important for obvious reasons.
- Messaging: I live where service is bad, so I rely on internet messaging to communicate with family. This can get time sensitive sometimes. I’ll have to talk everyone into a new app since we’re currently on Facebook Messenger (🤢) so I’m not married to a specific app yet. It needs to be able to talk to both Android and iOS. From what I’ve heard, it sounds like Molly is the go-to? That talks to regular Signal, correct?
- Emergency/weather alerts: this is push notifications, right? Currently I’m using Breezy Weather from F-Droid because I like the widget but I’m also not dead set on this one (or can have two apps if necessary).
- Microsoft Authenticator: this is for work. I might just leave it on my old phone though, I expect it will be an ordeal.
- Smart home degoogling is Coming Soon™, if there’s anything I need to keep in mind there. Can home assistant consolidate everything or does it work through vendor apps? (Schlage deadbolts, ecobee thermostat, WiZ lightbulbs, Kasa switches if it matters.)
- I’m guessing call, SMS, and MMS are a dedicated channel with the cell service and are not push notifications, but please correct me if I’m wrong.
- It seems like scheduled notifications e.g. alarms and timers are also not push notifications. I tried a test timer and it worked.
Any guidance from my fellow degooglers would be much appreciated. Thanks!
UPDATE 1: Thanks for all the info everyone! I’ve had work and junk to do the last few days but I’m slowly trying these out.
- Molly is super easy, WebSocket works right out of the box. And I managed to get my family and a couple friends on board without too much fuss.
- Surprised to hear Proton is so Google dependent, that request to support unified push has people complaining that it hasn’t been done for 3 years. You Have Mail seems to do what I hoped for, but if the polling becomes too battery hungry, good news! I’ve been using aliases for everything so switching my backend should be pretty easy.
- Calendar works for ones I add on the phone itself, but if I add one elsewhere (on the computer while I’m talking on the phone for example), I have to be sure to open the calendar at least once before it happens or it won’t register. But apparently that’s also how it works when you do have play services running, and I didn’t notice, so it should be fine.
For my threat model I’m not really concerned with people gaining physical access to my phone, it’s more the surveillance capitalism I’ve got a problem with. So I’d like to be able to keep showing notification contents to myself without showing them to Google.
If properly implemented google should not see your notification “only” metadata (origin, app, timestamp).
I do not use play services on my main profile in Graphene. Here is what works for me:
Email: currently use the Proton app. I’m open to switching to a separate client, but the feature to mark read directly from the notification […]
I use FairEmail and get reliable push notifications for all my e-mail accounts. I do not have proton however, as far as I know you need the subscription to access mail via IMAP.
Calendar: also Proton, also open to other clients. Reliability here is important for obvious reasons.
I think other clients will be difficult here. Proton does not support CalDav (the open standard to sync calendars between devices using numerous applications). Proton also does not support unified push. Getting notifications here will be difficult. However, I would suggest you should try to use the protonmail app in a user profile without play services and see if you get reliable notifications. Some apps have theri own push service implemented when Googles service is unavailable (it will be more battery intensive though). If that does not work, my suggestion would be to use a diffeerent calendar service supporting CalDav (like a small selfhosted Nextcloud instance) and sync that via the android app DavX5.
Messaging: Facebook Messenger
I (have to) use Whatsapp which works okayish with notifications when battery optimization is disabled. I suspect Facebook messenger could work the same, so I would, again, suggest to just try it.
Molly is the go-to? That talks to regular Signal, correct?
Yes, Molly is a compatible fork of the official Signal client. They support Unified push but that requires running a small server to receive your Signal messages. I do however also get reliable notifications without that (more battery intensive).
Emergency/weather alerts:
I guess it depends on the country you are in. But emergency alerts via CellBroadcast are supported in Graphene and do not require Goole Play.
Microsoft Authenticator:
Have you checked if that works at all? The last time I have tried to set it up on a profile without GooglePlayServices it refused to work at all. My suggestion would be to have it on a separate profile with play services (it is healthier to separate work and private life anyways).
Smart home degoogling is Coming Soon™, if there’s anything I need to keep in mind there. Can home assistant consolidate everything or does it work through vendor apps? (Schlage deadbolts, ecobee thermostat, WiZ lightbulbs, Kasa switches if it matters.)
If a device is supported in homeassistant it should be consolidated. I would suggest looking up the ecosystem and homesssistant for details.
I’m guessing call, SMS, and MMS are a dedicated channel with the cell service and are not push notifications, but please correct me if I’m wrong.
Yes, afaik those are separate. They have worked reliably for me without any intervention or Google.
It seems like scheduled notifications e.g. alarms and timers are also not push notifications. I tried a test timer and it worked.
Yes, Googles service is only required for stuff that happens remotely and whose timing you device cannot know about in advance.
Thanks for the breakdown!
I get no notifications for Proton Mail at all in my main profile, even when I open it with existing unread messages. But another commenter suggested You Have Mail, and that seems to work so far. Whether the active polling becomes a battery issue remains to be seen.
Calendar notifications are working as long as I either add the event on the phone or open calendar and let it sync after adding it from elsewhere. That should be a viable workflow, and if not, I’m not married to Proton calendar, it was just easy when I switched to Proton Mail.
Molly is working out of the box with the WebSocket, and this was a good opportunity to get the corpo eyeballs out of the group chats. I even got everybody I talk to to switch pretty easily! Unified Push will be an upcoming learning opportunity. As a dabbling self-hoster, I’m a little hesitant to host anything higher stakes than Jellyfin until/unless I can get a redundant server set up. (In this economy?)
Honestly I have not tried MS authenticator, it looks like it’s only officially available through play store, and an authenticator seems like a dicey thing to get bootleg. Also against company policy, not willing to get fired over this. I’m already planning to keep my old phone as basically a work mp3 player, so the authenticator can also live there without much extra trouble.
You can use ntfy.
Does this work for messenger in a shelter work profile?
For my notification needs I need only unified push with Mozilla sunup & if that is not an option or if it is not reliable I use websocket. The latter has battery life issues, but some services have very poor unified push servers.
For Proton Mail I use You Have Mail, but you have to trust them when linking your account.
Otherwise, activate Unified Push wherever you. Install ntfy and activate it. Browsers like Fennec and IronFox support Unified Push, for example.
You Have Mail is working great, thanks for the tip! Hopefully the active polling doesn’t become a battery issue, but I’m usually near a charger so I’m not too worried about wringing every possible minute out of this thing.
I mangled the FOSS Proton Bridge equivalent, Hydroxide, a while ago to deliver mail notifications via ntfy.
I’ve since moved away from Proton and Github, so the repo on Codeberg is in a bit of sad state. Don’t know if Proton has changed their API since the latest update, probably has.
The idea is however solid, use the Proton API to check for new mail and then call ntfy on a certain topic.
Its generally only corpo backed / play store apps that use play services for push notifs.
Signal > Molly in websocket mode solves the messenger issue.
Proton mail you may be able to set up with a third party service - from memory you cant use any other app.
Proton calendar should be local notifications? Test a reminder out like you did with the timer.
Emergency alerts are done through cell service and are unaffected.
Weather alerts will be dependant on what app you choose but if its FOSS you should be able to use ntfy and unifiedpush or local notifications.
Microsoft authenticator can live in the seperate work profile and realistically doesnt need push notifs - you will open it yourself to log in to shit when needed.
Call and SMS are unaffected - not push notifs.
Timers, Alarms etc are unaffected - local notifs.
Home assistant is designed to consolidate all the seperate parts of your smart home through integrations etc. Local notifications can be set up through the companion app for whatever your requirements.
Thanks for the tips!
Molly is easy peasy, works right out of the box, and I got everybody to switch surprisingly easily.
You Have Mail is working for email, but it’s active polling so I’ll have to see how battery goes with that. If it’s Real Bad, I’m already using aliases so switching providers on the backend shouldn’t be too awful.
Calendar seems to be local, I have to open it on the phone after adding events from elsewhere but that seems to be the case with or without play services.
I don’t see settings in Breezy Weather for notification method. Might just download a few different ones and wait for a weather event to occur and see which tells me about it.
Home assistant by default uses and relies on play services for notifications. It’s what allows instant and reliable notifications without also causing significant battery drain.
This can of course be turned off, but it comes with significant warning labels that battery and reliability will suffer. It has to hold a web socket connection, or frequently poll for updates/status.
From my understanding system level support is needed to make this efficient and low battery, but I don’t know if graphene or similar roms provide something like this (or if they even can)? I would also be very interested to know.
I use home assistant on gOS without play services and notifications via whatever means I have set up are instant and cause no significant battery drain.
Ill check to see what my setup is and report back.
Edit:
It is the persistant web socket.
Arguably the few websockets I have running for various apps use less battery than play services.
Home assistant barely shows up in my battery usage when in the background.
That actually sounds great then. It probably also depends on how the phone is used, but that likely applies just the same to play services. I mean comparing if you’re always in WiFi, mostly on mobile or often on bad mobile.
But if it barely shows up for you, that’s good to know. I just remember when first setting up notifications that the options without play services had semi-scary warnings associated with them, which stopped me from using them (and having play services running anyway, it didn’t seem to make sense to not just use them).
I read somewhere that it’s kind of Google propaganda that you have to choose between them and a dead battery, and a lot of app developers bought into it. Active polling will obviously use up some battery, especially with bad service. But if I read right, a WebSocket is just registering an endpoint for the external sender to call with the notifications and then passively listening on that endpoint. It’s not in constant active communication with the sender. So maybe if you have dozens or hundreds of WebSockets open it starts to add up, but I don’t get notifications from that many places anyway, time-sensitive or otherwise.
You can consolidate at your stuff under home assistant. I don’t know enough about smart home brands to tell you which ones work without an app to set it up, but I can tell you often you have to go out of your way to find one that is privacy oriented and doesn’t report data home to their servers for no reason. I would suggest esphome if you want to make your own smart devices, or search for a list of good home assistant, privacy focused products. I got a esp32c6 to play around with some of my ZigBee/matter devices but I need to replace my hub and a few products like the orginal old hue bulbs.
Many products you can set it up once with their app and move it over to home assistant, but I’m trying to eliminate all sources of spyware from my life. Even if its just a WiFi outlet where the data they obtain from me is minimal or not that important.
I don’t use calendar app, or weather, my home assistant server would ideally handle all of that, and I should be able to sync all of our houses calenders together. I’m just scared to commit to the idea of opening ports into our house and keep putting it off. I bought a new travel router saying I’ll work on it when it gets here and I’ll set up the router as a access portal to the server which I probably won’t even get around to.
Thanks for the tips! I don’t think I can keep up with making my own devices though.
which I probably won’t even get around to.
Story of my life fr. I bought an FTP security camera like 9 years ago, still not installed. And it took me so long to just install the contact sensors I bought that I wasn’t even done before I found out they’re completely useless 🫠
They don’t seem to support active state checks, they just report state changes to the app and it uses that. So if the battery dies while the window is closed it will forever report that window being closed regardless of actual state. And it only sends one low battery notification, so you better not miss it or forget, or you won’t even know your state is stale.
Also I’m pretty sure one of them got fried due to having the window open while it was raining, which is pretty suboptimal for a window sensor.
So basically don’t get Stitch by Monoprice.

