I recently (~4 months ago) upgraded my phone and thought about the following:
- Android is "open source".
- Most apps I already use are open source.
- Instead of the common offerings by giants like Google, I already use a bunch of indie or self-hosted services: Nextcloud, Fastmail, Wallabag...
- I value privacy and security.
That prompted me to seriously look into "de-googling" my device - remove everything proprietary from the core system (ie. Google play services and vendor-specific closed source additions).
The most popular and supported open source Android distribution around today is LineageOS, the successor of Cyanogenmod. Step 1 when updating a phone is to be sure to select one that is well supported by LineageOS, either officially (check https://wiki.lineageos.org/devices/) or by the community (xda developers is a good place to search).
After that, installing the system is as easy as finding the LineageOS and recovery downloads that suit your device, following the instructions to flash them, and voilà. I should note that it's generally recommended to boot up from the stock OS and run all the available system updates before flashing anything. Basically so that lower level things are up-to-date and nasty surprises are avoided when flashing. (Yes I bricked my phone the first time. Moving on.)
Oh so nice! LineageOS is pretty much the AOSP (Android Open Source Project) with minimal added niceties. No bloatware, no uninstallable unnecessary apps, no attempts to make root access difficult, no battery hogging un-disableable Google play services. Beautiful. Clean.
Google play services
Now this means that Google play services, the life support system of most Android phones, the root-access Google-owned administrator user, is not present. YAY! But also ... uh oh what does this mean? From a privacy point of view: perfect. From a security point of view: yes, one less backdoor. From a usability point of view: we'll talk about the issues further down the page.
Now would be a good time to mention the microG Project. This aims to provide an open source re-implementation of the play services, with only the things necessary for other apps to function (ie. no backdoors or battery draining suspicious activity). I didn't use this for two reasons:
- It's still in early development and I couldn't get the push notification service working through it (literally the only reason I wanted it).
- I don't want Google services.
The first major hurdle now is that there is no play store.
In my experience, all core mobile device tools that one needs has a well supported open source implementation available on F-Droid. Podcasts: AntennaPod, maps: OsmAnd~, read-it-later: Wallabag, web browser: Fennec (aka Firefox), calendar and contacts sync: DAVx5, and of course many many more.
The difficulty comes with proprietary apps. Two main difficulties in fact:
- They are only officially distributed on the Play store.
- They usually rely on various services in the Play services suite - maps, push notifications, etc.
The first one is relatively easy to overcome. There are several apps and web sites that act as a proxy between your device and the play store, allowing you to browse, search, and download apks. Supposedly these are safe because you are downloading them straight from the Google play api and they are signed by the developers/play store. I'd still be very careful about installing apps from unfamiliar services, especially if the apps request a lot of privileges.
The second one is a hit and miss situation. Some apps work perfectly fine, gracefully degrading when play services are missing, others blow up in your face, and some politely refuse to operate. Here's some of my experiences:
|Commbank||partially||works for a few seconds, and then crashes. I suspect it crashes whenever it calls one of the missing apis and doesn't handle the error.|
|Crypto.com||no||realizes it's not running from the play store and refuses access with a polite message|
|Discord||yes||no crashes, but no push notifications|
|Airbnb||no||requires the maps api|
I guess the one advantage of these hybrid web apps is that in many cases an app's website works just as well as their "native" Android apps. Airbnb is perfectly accessible from a phone browser. For many services, I don't see the point of an app anyway. Usually they are services that I only need to check every once in a while and I'd rather do that from a desktop/laptop in a web browser anyway (eg. banking). Or they are like Airbnb or Facebook (just an example; I don't have a Facebook account), where there isn't really any advantage of installing a mobile app over using the in-browser web app.
The most annoying issues to deal with are the ones like Crypto.com which actively attempt to prevent you from using it on a de-googled device...
Push notifications are where Google has the strongest hold on Android users. In case you aren't familiar with the term, push notifications refer to getting a notification instantly upon an external event (eg. new mention on Slack). This contrasts with polling for notifications where there could be an arbitrarily large period of time between polls where new notifications aren't received.
Google has neatly painted Android into a corner citing battery life concerns, effectively forcing apps to decide between providing a suboptimal user experience or routing all notifications through Google play services. Android has become increasingly aggressive with killing background apps and limiting how often they can wake in the background, while Google is ramping up their new firebase based push notification service.
This all means that push notification support on a device without Play services is spotty at best. Every app must come up with their own method for implementing it (or ignoring it altogether as is the case for many proprietary apps), and stay on top of Android updates that thwart their attempts.
Here's a listing of apps that I use where it's a good thing to have push notifications, and how they behave on a Play services-free device:
|Riot.im||yes||originally worked with persistent notification to keep connection alive; not sure of state now though|
|Signal||yes||persistent system notification; high impact on battery life|
|Telegram||yes||persistent system notification; flawless; low battery use|
Yes. Dismal. Telegram is the most reliable of them all, so if you need to send me a notification right this minute, that would be the one to use. I can set K-9 Mail to poll imap servers every 5 minutes; I think it has a setting to keep connections open but I'm unsure if that works. A notification within 5 minutes for emails is enough for me anyway.
I guess a good thing that has come out of this is that now, instead of dropping everything and checking my phone for every random message on discord, etc., I find I check them a couple of times a day for anything new and it doesn't become distracting all the time. Because of this, and the fact that a core few apps do provide notifications that are good enough, I can live with it. I think the real test will be when at times where Slack et al. are used a lot for instant messaging in work situations and realtime notifications are important. We'll cross that bridge when we come to it...
Other things I miss
I do use some Google services (docs is excellent for collaborative document editing, I need some things for work, Youtube), and other proprietary apps (Spotify, Slack, Discord, the usual suspects), but their they still work fine on my phone one way or another, or I use them on a desktop in the browser.
Not too far
Going Google-free on a device doesn't mean you need to go all the way down the privacy/security rabbit hole. Often when people suggest alternatives to Gmail, they talk about GPG, Protonmail, etc. I'm happy with paying for Fastmail, which doesn't have all the fancy security guarantees, but is a solid email provider where you are the customer rather than the product. Same goes for most other paid email providers. And yes, TOR is great if you want more web privacy, but if you disable third party cookies, you're already half way there. I'm not trying to downplay these technologies, but I guess I'm saying that every bit you do helps with security/privacy. It's possible to find a comfortable trade-off between usability and security/privacy that suits the threat models you want to protect against.
This details my experience only. I write this in the hope of giving others an idea of what to expect, but isn't designed to be prescriptive.
If you're keen to use Android in all its open source beauty (which is slowly being destroyed by Google's quest to control the ecosystem unfortunately), or reduce dependence on proprietary services, please do your own research. Useful resources include:
- The degoogle subreddit: https://www.reddit.com/r/degoogle/
- #lineageos on freenode irc
I'm pretty happy that now I have a phone fully operational without play services and other unwanted apps or services, and it turns out that it doesn't mean missing much. The open source alternatives are excellent, and I can still access the few proprietary services I still require (albeit with some hiccups). All with the bonus of feeling safer with more privacy and a more secure system.