Yesterday I decided to create a second profile on my Pixel 5 with GrapheneOS. The idea was that I would only keep Google Play Services (GPS) and Google Play Store (GPS2) there together with WhatsApp (need it go my kids school) and bank apps, and therefore shut down second profile for most of the time. So, I deleted GPS and GPS2 on the main profile and since then, I have Signal Messaging complaining that it requires GPS. I know I ough to probably be complaining with Signal developers, but before I go down that route I just wanted to reassure myself that this is normal behaviour. Presumably, Signal is complaining that it requires GPS only because its the only way it can notify a user that an update is available? I’ve done some minimal tests and it seems to be working normally, despite GPS is not installed on the main profile. I guess I could move to SimpleX and ditch Signal but that would be tough given I spent years convincing people to move to Signal 🙂
Wrong. Signal does not require play services. You can build the apk yourself from the source code, or you can download the prebuilt apk directly from Signal here: https://signal.org/android/apk/
This apk is self-updating and does not require Google Play services to update nor message. If it detects Google Play Services (or OpenGApps/microG), Signal will register you as an Firebase Cloud Messaging user for push notifications. If you do not have those services installed it will use WebSocket connection to the Signal servers instead.
I tried it but ultimately went back to Signal via microG, as the push notifications are half the value of instant messaging - WebSocket was unreliable. I tested about 3 years ago though, so they may have improved their implementation.
So does that mean it will use blobs only if a person has Google Play? Honestly, I don’t really understand the definition of blobs. Tracker code?
In my (limited) understanding of it ‘blobs’ are encrypted blocks of data that are distributed with apps in their APK. The app code internally will then have references to the blobs to indicate start and end locations in the blobs and usually a function that reference serves.
That means less for closed source apps, as they could contain any obfuscated code already - but open source advocates are very skeptical of arbitrary blobs, as they can be used to distribute anything - trackers or malicious code for instance. Their primary function in the Google App store seems to be to distribute signing certificates, encrypted keys and checksums that Google uses to verify the build version and that app is from the Play Store (Google calls this ‘frosting’ the app, going with their Android dessert theme).
So I have not checked, but I imagine the Signal direct-download APK would not have blobs as it’s not been signed/‘frosted’ by Google.
See brief discussion below from IzzyOnDroid devs for additional terms if you’re curious to research further.
https://gitlab.com/IzzyOnDroid/repo/-/issues/491
Signal is my only instant messenger and I can happily report no issues these days with notifications, that said, I never really noticed them previously and have been using for >3 years.
Occasionally we’ll use Signal whilst on a live call, someone will tell us they messaged on Signal and I’ll get the notification immediately - i.e. I knew when it was sent and received.
This is working smoothly on my grapheneos phone and the desktop client across Linux and Windows.
That’s great to hear, I might give it another try. Thanks