J. R. Swab

The microG Project

Categories: [Technology]
Tags: [open-source], [android], [privacy]

Back in September of 2017 I wrote a post titled, "I De-Googled My Phone ~ The Experiment". It was my first full-length post on the STEEM blockchain. In that post, I recapped my experience using an Android phone without any Google services. It was strange at first but became normal sooner than I expected.

To achieve a 'Google free' mobile device, I chose to install Lineage OS. This is a version of Android that is as close to free and open source as possible. The reason it cannot be one hundred percent free and open is due to some code tied into the GPS or other sensors. This is what is referred to as 'binary blobs.' Simply, it is code that cannot be removed or converted to a free and open source version.

Lineage OS is available for a lot of devices, but anyone looking to strip down their Android device will need to unlock their phone's bootloader. After the bootloader is unlocked, the next step is to flash a new recovery program. I am on Linux, so the last few times I chose to do this, I used the Android SDK and the terminal. The process may be a bit more difficult on Windows, but please do your own research.

That is the most difficult part of making any Android device 'Google free.' If the process is not done correctly, we run the risk of bricking our phone or tablet. This makes it a paperweight and no longer a usable phone. Even if the phone does not get bricked, it may still enter a boot loop. In that case, we need to run through the steps, making sure not to miss any of them. Clearly this process is not for the weak of heart.

Running Without Google

The first week was the most painful after switching from one hundred percent on the Google bandwagon to no Google Play Services at all. This was expected, and by the time I made the switch I was already using a lot of apps from f-Droid. This made 'the dip' a little easier, but it would never be perfect.

All the Google apps like YouTube, Google Maps, and the Play Store won't even load without the services installed. This was not a surprise since they are apps made by Google. It makes sense to not let their apps load without the Play Services. They have an incentive to keep the services around. If you or I want to use any Google app, we need the services.

Most other apps run well without Google Play Services, and some lose their core functionality. One such app was SnapChat, which threw me for a curve ball. 'Authy,' the two-factor authentication app will not work. Luckily for me, I moved all my 2FA's over to 'andOTP' before making the switch.

One app that worked just fine but with limited functionality was LastPass. The wonderful auto-fill feature does not work without Google Play Services. Another is Discord; for some reason we need to have the services installed for Discord to send us notifications. Out of all the apps I use on a daily basis, those are the ones I remember having a slight setback.


Android is a Linux-based operating system that is open source. However, now we have a proprietary system that is baked into the ecosystem of Android. This system is made up of the Google Play Services. When we download Lineage OS we get the parts of Android that are released as the "Android Open Source Project." Since it is open source, it cannot contain the Play Services and stay open.

After using my Android device for about four to five months without the Google Services, I discovered the microG Project. This paragraph on their site is what pushed me to try it out:

Free software users got extended application support, privacy-caring users can reduce or monitor data that is sent to Google and especially older phones can expect some battery life improvements. microG is not only used on real devices, but also replaces Google tools in test emulators and is even used in virtual mobile infrastructure.

In order for me to use this 'FOSS' version of the Google Play Services, I had to install a different version of Lineage that allowed for some special features. These features allow microG to run as intended and give back the functionality missed by removing the closed sourced version.

microG uses the following utilities:

  • Service Core (GmsCore) is a library app, providing the functionality required to run apps that use Google Play Services or Google Maps Android API (v2).
  • Services Framework Proxy (GsfProxy) is a small helper utility to allow apps developed for Google Cloud to Device Messaging (C2DM) to use the compatible Google Cloud Messaging service included with GmsCore.
  • Unified Network Location Provider (UnifiedNlp) is a library that provides Wi-Fi-based and cell-tower-based geolocation to applications that use Google’s network location provider. It is included in GmsCore but can also run independently on most Android systems.
  • Maps API (mapsv1) is a system library, providing the same functionality as the now deprecated Google Maps API (v1).
  • Store (Phonesky) is a frontend application providing access to the Google Play Store to download and update applications. Development is in the early stage and there is no usable application yet.

My Approach

I chose to enable all the microG replacements that did not require me to log into my Google account. This was to see what level of convenience would exist while still keeping a low amount of pings to the Google servers. It has been about a month running microG, and all the issues I was having seem to be fixed.

Discord now sends me notifications when I am messaged directly or mentioned in any of the chats I am a part of. LastPass also auto-fills my passwords and usernames again! That alone makes it worth the effort. Having LastPass do all the dirty work for me saves so much time.

If anyone is currently running an Android device without Google Play Services and needs some functionality back for ease of use, I recommend microG. Even if you have to reinstall Lineage or another version of Android, it is worth the effort and time to set the device up.

I was content with what I had, and only had minor frustrations since removing the Google Play Services. I dealt with the bugs and lack of convenience, but with microG this experiment got a lot easier.

Ways to support the blog.

If you are an email kind of nerd you can sign up for mine here.

You can donate to this site from my Liberapay account if you so choose. If you want a more passive way to support this site, use this link when shopping on Amazon; it kicks some of Amazon's profit to me at no extra cost to you.