2021-06-28 – How I managed to degoogle Android
Google holds a monopoly as the "no. 1 technology corporation" in the world; however, how do you think they are making 5 million euros per hour? Advertising doesn't pay that much and the products they sell neither. So Google does a smart thing: targeted advertising, which means they need to analyze every movement, every word and everything we do.
There is one kind of device we always carry with us that Google can use as this data source. This device is like a portable computer, it can do pretty much everything; it's a smartphone. There are open-source and/or free alternatives like the famous Ubuntu Touch, Plasma Mobile or the Android Open-source Project; but we are not going to talk about them now.
To break the Google monopoly, some (including me) may want to remove Google from their phone, to find that you simply cannot do that. But you cannot do that because Google doesn't want users to break their phone, and there is a way! The way that I will use normally doesn't void your warranty (you should check with the manufacturer to make sure), and can be easily reverted by resetting the phone.
For the purpose of testing this article, I used the 2017 Nokia 6, because I don't want to have to reset my main phone. Because yes, this cannot be undone without resetting your phone
Prerequisites
Before anything, note that this is not garanteed to work on non-stock Android versions. I tested this on a Nokia phone with a near-stock Android. You should check out the « Alternatives » section at the end for more details.
First, make sure you know how to enter your phone into the recovery mode. This is usually done by pressing the power button and one of the volume keys at the same time when you turn on your phone. If you are unsure, you should check your phone's manual (either online or physically), which should have instructions on how to reset it if it can't boot.
It is really important that you know how to enter the recovery mode. Removing system applications from your phone can break it, make it unstable or prevent it from getting updates. Because we don't touch the system partition (the one that contains the Android system), you can un-break your phone simply by resetting it into the recovery mode.
Then, you should have the Android Debug Bridge (ADB) installed on your system. On many Linux distributions, it's fairly easy. On Windows and macOS it is a bit more difficult. You should check online for instructions depending on your system.
Also, if you use a text password (not a PIN code) as your screen lock, you should remove it. It may break because we are removing the GBoard keyboard, which may be the only keyboard on your phone. Removing the keyboard prevents you from entering a password when your phone boots.
Very important: Copy your calendar and contacts locally (on your phone). If you have any, remove all the Google accounts linked to your phone; and remove administrator permissions from the Find My Device app. To be safe: remove all Google accounts and disable administrator permissions for all apps.
In general: completely reset your phone before doing these steps.
Finally, you should know a bit how to use the command line. On Windows, I recommend using PowerShell (because the DOS-like command prompt is... meh). You need to know how to use the adb
command to connect, disconnect and reboot your phone; we will touch a bit on that later.
Note that all the commands start with adb
. It will work on Windows' DOS-like command prompt but won't on PowerShell; you will need to use .\adb.exe
instead
Hunting for apps
What I did now (which you won't have to do) is especially search for Google apps that have unneccessary permissions and see what they do.
Did you know that the Google Play Services app re-adds its permissions itself if you remove some (for example the Phone permission is automatically added back if you remove it).
I came up with this nice list of packages that I will remove one by one:
com.android.vending
com.google.android.apps.googleassistant
com.google.android.calendar
com.google.android.apps.wellbeing
com.google.android.calculator
com.google.android.ims
com.android.chrome
com.google.android.contacts
com.google.android.apps.docs
com.google.android.apps.tachyon
com.google.android.apps.nbu.files
com.google.android.apps.wallpaper
com.google.android.gsf
com.google.android.inputmethod.latin
com.google.android.gm
com.google.android.googlequicksearchbox
com.google.android.onetimeinitializer
com.google.android.apps.books
com.google.android.music
com.google.android.apps.magazines
com.google.android.videos
com.google.android.apps.play.games
com.google.android.deskclock
com.google.android.apps.maps
com.google.android.marvin.talkback
com.google.android.apps.photos
com.google.android.gms
com.google.android.syncadapters.contacts
com.google.android.tts
com.google.android.tag
com.google.android.dialer
com.google.android.youtube
com.google.android.apps.gms.policy_sidecar_aps
com.google.android.partnersetup
com.google.android.configupdater
com.google.android.setupwizard
com.google.android.apps.turbo
com.google.android.backuptransport
com.google.android.ext.services
com.google.android.ext.shared
com.google.android.feedback
com.google.android.printservice.recommendation
com.google.android.apps.messaging
com.google.android.keep
com.google.android.markup
And there were some additional apps that came with my phone that I wanted to remove:
com.evenwell.fmradio
(some FM radio app, useless anyway)com.hmdglobal.camera2
(the camera app, gonna replace that)com.hmdglobal.support
(a support app that tells you about your warranty and all that stuff)
You may find more by digging into the installed packages on your phone. Make sure you don't remove com.google.android.packageinstaller
and com.google.android.webview
as this may break your phone!
Removing the apps
To remove the apps, you need to use the adb uninstall
command. But, for system apps, ADB will try to remove it from the system partition (which will fail because we don't have root privileges here); so we need to add the --user 0
flag (replace 0
with your user ID, which you can find using the adb shell am get-current-user
command if your phone is running Android 7 or newer).
So our command will look like this:
But this one is likely to fail because we didn't enable USB debugging on our phone.
Enabling USB debugging
Pretty obvious, but you need to turn your phone on, and enter your password. If you haven't enabled USB debugging yet, follow these steps:
First, go to the Settings app. If you have multiple users on your phone, you need to be an administrator user
Then, go down to « System », and to « About phone »
Go right to the bottom of the page, and press « Build number » until it says that you are a developer
After you've done that, go back to the « System » page and you should see « Developer options »
Click on that, enable USB debugging and accept the warning.
Then, connect the phone to your PC using an USB cable, and do the adb shell
to make sure everything is working. Your phone may pop with a message telling you whether you want to allow your computer to control your phone. Check to always allow from this computer and click « Accept »
Once you see a shell prompt (line ending with $
), you are ready! Press Ctrl+D to get out of that, and let's move on.
Actually do the stuff
Take note of every package name I mentioned before, and do this command:
(of course, don't forget to replace <package name>
with the actual package name)
It should say Success
. If it says Failure [not installed for 0]
or something like that, you can safely ignore that (it just means that the app is not installed).
Once you are done, you need to reboot your phone to flush all the Google garbage from it. Simply do adb reboot
and you should be ready to go! Leave your phone plugged in, we will need it for the next steps.
Fun thing: if, like me, your phone comes with all sort of Google stuff, there will be nothing else than settings to play with.
What to do next?
There is no keyboard! How are we gonna do?! No panic, because I have a solution! If you are running Android 4.4 or later, you can download SimpleKeyboard (click the « Download APK » button and not « Download F-Droid », we will do this later)
Since you don't have access to any app store anymore, you cannot install apps (unless you are crazy and want to install APK files one by one). So, we will use F-Droid for that purpose. Download the APK to some place on your computer (I recommend the folder your command line prompt is at the moment).
Now we should have both F-Droid and SimpleKeyboard APKs, install them to your phone using this command:
(replacing F-Droid.apk
with the name or full path to the F-Droid APK and rkr.simplekeyboard.inputmethod_87.apk
with the name or full path to the SimpleKeyboard APK if you saved any of them somewhere else).
The F-Droid and SimpleKeyboard icon should appear on your app launcher, and you are finally ready to go!
Launch SimpleKeyboard, follow the steps to enable it, and enjoy plenty of open-source apps with extended battery life (because yes, removing Google garbage makes your phone do less things in the background) and more performance.
How does it compares?
Your phone is now faster! And some may say it is dumber, but actually it's not much than usual. You can enjoy plenty of apps from F-Droid, and it can be overwelming sometimes when you are new to this whole "alternative apps" thing.
That's why I give you a small list of apps to start with, that will help replace stock Google apps like the phone or SMS app. All of these are available on F-Droid:
Some « Simple » apps have features locked behind the « Simple Thank You » app, which you can also install from F-Droid. KDE apps are actually pretty unstable and buggy on Android, use with caution!
Quickstep (the default AOSP launcher) stopped working correctly for me so I installed Lawnchair, for which you can get the APK file here (the F-Droid version is not up to date).
Alternatives
As mentioned earlier, removing Google stuff from your phone makes it more unstable and/or less secure (due to the fact that on some phones, such as Google's own Pixel phones and the phone I tested, the OTA updates depends on the Google services), and can potentially break it.
There are alternatives that do void your warranty (there are a few that doesn't, but take this as a general warning and wait until your warranty expires before messing around with your phone's system), and that requires more knowledge on how to use ADB, Fastboot and your phone's recovery.
This solution is pretty simple: use a custom Android version. On Android 8 and later, if your phone supports Treble (it should if it released with Android 8, the one I used for testing doesn't so it is not supported), you can install a Generic System Image (we will talk a bit about that in another article), including some from Google that doesn't include the Google services, or else you can flash a regular image, either via OTA updates or directly using Fastboot and raw system images.
On Google Pixel, there is GrapheneOS which purpose is to have a secure and non-Google operating system for your phone. Otherwise, you should check out custom Androids for your specific phone. Note that Alicia doesn't especially recommend Lineage OS due to its lack of security (e.g. the fact that it uses userdebug images), and any custom Android that uses userdebug images or require an unlocked bootloader, so use GrapheneOS or CalyxOS (probably Alicia will touch about that later on) whenever you can.
So, is it a good idea?
If it doesn't break your phone, definitely. Removing the Google things from your phone makes it last longer (in terms of battery life), and makes it more responsive because it uses less RAM and less CPU. BUT it exposes it to security breaches as you probably won't get new updates
However, note that this will require you to adapt. Discord and some other app doesn't have open-source alternatives (for example, Reddit, Twitter and YouTube does; and it's against Discord's TOS so there won't be any) so you will have to use these in the browser.
If this article interested you, let me know by DMing me over on Twitter, I may do a follow-up article with a single script that does all that stuff.
Last updated