There are many good reasons of using Android without Google Play Services (the Google's proprietary part of Android operating system), mostly to protect its privacy. Google Play Services contain background processes used by Google not only to provide services (e.g., push notifications, accurate geolocation combining GPS, Wi-Fi and GSM, application installations and updates…) but also to track the device usage (location, used applications, permanent connection to Google servers...).

Custom roms such as the popular LineageOS (community fork of CyanogenMod) propose, by default, a Google-Play-Services-free version, with optional installation of Google Play Services. My current phone is a Fairphone 2, produced by the Fairphone company which sells smartphones with a hardware as fair as possible. In 2016, Fairphone has decided to release a fully open source version of the Android OS: Fairphone Open OS. It is proposed as an alternative to the preinstalled OS that can be easily installed by people concerned about their privacy. As all open-source Android-based operating systems, the Fairphone Open OS does not contain Google Play Services.

F-Droid

A major drawback when you do not have the Google Play Services installed is that you cannot use any of the official Google applications, and, in particular, the Google Play application. As a result, you cannot easily download applications to your phone. This prevents many people of having a phone without Google Play Services. Hopefully, there is a great open-source project, F-Droid, combining an Android application to download and install/update applications with a reference repository, a catalogue of free and open source applications. It allows to find and download many applications and keep them updated nearly as simply as with the Google Play application. Note that you can also use F-Droid on a normal Android phone (with Google Play Services installed and unrooted), to easily find and install open source applications. You just need to allow the installation of apps from unknown sources (warning, this may cause security issues if you install unsure applications).

Install applications from unknown sources

I will not list here all applications from the F-Droid repository I use every day, but you can find there, for example:

  • K-9 Mail, a great e-mail client supporting multiple accounts and protocols.
  • Silence, a SMS/MMS app allowing to exchange also encrypted messages.
  • Firefox. Do I need to present it ?
  • OsmAnd~, a navigation and map viewing application relying on OpenStreetMap.
  • Amaze, a great file manager.
  • Nextcloud, the official application to manage files stored on nexcloud/owncloud servers.
  • DAVdroid, to synchronize calendars and contacts using CalDAV/CardDAV protocols.
  • TTRSS-Reader, a RSS reader for Tiny-Tiny-rss based servers.
  • And many more...

Unfortunately, you cannot find on the F-Droid repository all the applications you want. Only free and open source applications are accepted on the official F-Droid repository, and most mobile applications are not there. You can sometimes find open-source alternatives to your favorite applications (cf above). But many services do not have an alternative application (e.g., your favorite music streaming service, your bank, most public transportation...). Then the solution is generally to use the mobile website (if it exists), which is not always very convenient. You can also use another Android phone (with Google Play application) to download the application you want and share it between the two smartphones either in Bluetooth or in Wi-Fi (and YES, you can also do that with the F-Droid mobile application !).

During months, I used both these techniques to effectively use my Android phone, without Google Play services. Then, I discovered a great open-source project: Gplayweb. Gplayweb allows to easily download applications from Google Play, within a simple responsive web UI. It leverages gplaycli, an unofficial library to download applications from Google Play. Unfortunately, this project has not been updated for a while and I could not use it easily, especially for the F-Droid integration I will present below. So I forked this project on Github in order to use the latest version of both gplaycli and fdroidserver. In order to install it easily, I also wrote a Dockerfile and publish the container on Dockerhub.

Gplayweb interface

With such tool, you have a web interface to easily download applications from Google Play. An optional integration with F-Droid creates a custom F-Droid repository to install/update even more easily the applications you have downloaded through Gplayweb interface, within the F-Droid application.

In order to install it (using Docker), run:

docker run --name gplayweb -p 127.0.0.1:8888:8888 -v ~/fdroid/:/data/fdroid fxaguessy/gplayweb

Then, if you want to access remotely to the created F-Droid repository, using the F-Droid application on your Android phone, run:

docker run --name fdroid-nginx -p 8080:80 -v ~/fdroid/repo:/usr/share/nginx/html:ro nginx

As a result, you can access gplayweb on http://localhost:8888 on your computer and the F-Droid repository on http://your.computer.ip.address:8080. Then, on your Android phone, launch the F-Droid application, go on the menu on the right top, "Repositories", and add new with the nginx-fdroid container ip address.

Add F-Droid repository-1 Add F-Droid repository-2

And... that's it ! You now have a very simple tool to download applications from Google Play, without requiring the privacy-questioning Google Play Services. I use this container on my own server, with docker nginx proxy with the let's encrypt integration, which allows me to have access to this F-Droid repository in HTTPS, from anywhere. If you need more details about this configuration, just let me know in a comment.

However, you should also know that the Google Play Services define new APIs that can be used by applications. As a result, multiple applications available on Google Play will not fully work without Google Play Services. Most applications catch properly the exceptions and the services that need Google Play Services will not work (generally, the geolocation services), but some other applications developed less carefully will directly crash. Anyway, you should prefer, of course, F-Droid free and open-source applications, when available.

Edit: Thanks to the comments of this article, I discovered two alternatives to gplayweb: Yalp Store, an Android application directly downloading the applications from the Google Play (without requiring Google Play Services) and Raccoon, a software to download applications from a desktop computer (which is in my opinion less convenient).



Comments