Hacker News new | ask | show | jobs
by stonesweep 1902 days ago
You may be missing the subtle point - the APK provided is the same one from Google Play, which includes the Google SDK encumbered libraries (links? hooks? features?). If you run a libre device without the Google Play store (non-Google android build) then the software cannot function. The code for the client is open source, but the act of compiling it against the required Play store libraries encumbers the final binary. F-Droid requires that all code compile without the Google SDKs in order to be hosted (IIRC).
4 comments

You are being a bit too subtle for many people. I think most reading your post above are going to understand it as claiming that the Signal APK downloadable from Signal's website requires Google Play Services or the Play store in order to run. That is not the case, as any LineageOS user can tell you.
> If you run a libre device without the Google Play store (non-Google android build) then the software cannot function

I think you mean either of two things:

1. running the APK they build on a device without Google Service does not work

2. running the APK they build on a device means it's no longer running only libre software

1. is not true, so I assume you mean 2. I guess that's true, but in practice I think that the compiled dependency doesn't do anything if you don't have the services on your phone (don't quote me on that). It's not free software, but it's still better than the competition.

I think it sort of floats in 2 territory and sort of resembles the LGPL based kernel modules which require a binary firmware blob to run (kind of, not exactly). In order to create the APK, the code must compile against the SDK and encumber it by binding to an API, however if I understand this correctly in Android terms it means a stub of non-free code is now inside your APK, instead of say an external firmware blob. (I am not an Android coder to know the subtle details here)

(I'm aware that the code will try and use Google services, then if it fails it falls back to websocket(?) - so the actual Services don't have to be present, but the compiled APK contains the non-free hooks to use it if present? I tried to use the word encumbered to reflect that)

Others seem to interpret this as your saying that downloading the APK results in non-free code being present on your system, but

> If you run a libre device without the Google Play store (non-Google android build) then the software cannot function.

is just not true. I don't have the Google Play Store (I'm on a non-Google Android build) and Signal functions just fine.

(Well, mostly fine - it has to maintain its own connection because of course it can't use Google's tooling for that, so it supposedly has more battery impact.)

I don't think that is true. The build that is distributed through the site has the Play Store "features" disables and has other things like an auto-update mechanic. When built for the website the build config `PLAY_STORE_DISABLED` set to true.

https://github.com/signalapp/Signal-Android/blob/1f578ebd2c1...