Android's Dark Age
State of Android
We’re witnessing the enshittification of the Android operating system. Every major contender in the market is trying way too hard to be iPhone, and in doing so, they’ve directly or indirectly contributed to the erosion of what Android was meant to be. If you were not aware: Android is based on Linux. And Linux stands for user freedom, privacy, and, of course, customizability. By dismantling user freedom, companies are spitting in the face of what it was built on.
Samsung, OnePlus, Xiaomi, Huawei etc companies are adopting apple-like behaviors: Batshit heavy UI skins, bloatware, making software updates more restrictive and tighter integration with proprietary services.
More and more companies now follow the trend of locking the bootloader, and many outright refuse to provide unlock codes. Unlocking the bootloader is a crucial first step toward gaining root access, the very thing that gives users full control over their device. So, naturally, by locking that door, they’re restricting root access altogether. Some devices ironically, like Google’s own Pixel line still allow it. But most don’t.
De-Bloat
Without root access, If you still seek some degree of privacy, your best bet is to “De-google” or more specifically “De-bloat” your android system. And replace google services with Free and Open Source Software(FOSS) alternatives.
Note: Free as in freedom, not as in free shwarma.
Years back, I wrote a custom shell script to remove a ton of bloatware from my Huawei device. This naturally included almost everything Google except for Android installer. (Do NOT remove that. You’ll need it for sideloading apps.)
This doesn’t require root access. To debloat your Android device, you’ll need the Android device itself and a PC with Android Debugging Bridge(ADB) installed.
But before removing any core Google services, make sure you’ve already replaced them with FOSS alternatives or you might end up breaking functionality. For example: Replace Google Play Store with Aurora Store, Play services with microg, Chrome with Firefox etc.
This script uninstalls system apps for the current user (
User 0
). Some removals may break functionality or cause instability depending on your ROM or device and may even brick it.If things go south, your only real fallback is a full factory reset. This should return the phone to its stock state and (hopefully) restore removed system apps.
I say this to save my ass but rest assured that long as you are not uninstalling anything crucial you will be good
Step 0: Install adb
This guide will assume you are on any linux distro. Go to Step 1 if you have adb installed.
# Debian/Ubuntu
sudo apt install adb
# Arch Linux
sudo pacman -S android-tools
# Other distros
sudo <package_manager> <install_flag> adb
Step 1: Configure adb
In your phone, turn on usb debugging from developer mode. Then check if adb has detected your device adb devices
If your device is listed, you’re good to go.
Step 2: Create a file with .sh extension for example: debloat.sh touch debloat.sh
and Give it executable permission chmod +x debloat.sh
Step 3: Copy following content inside it.
#!/bin/bash
# Remove packages
packages=(
# This is an Example list.
# DO NOT REMOVE without understanding the consequences and having alternatives/recovery methods
# Always search "safe bloatware list for [your phone model]"
# These are for my Huawei device, but your mileage may vary.
# Remove # to uncomment
# google play services
# if you do not have alternative like microg, do not uncomment
# "com.google.android.gms"
# "com.google.android.gsf"
# other google dependency
# "com.google.android.ext.services"
# "com.google.android.ext.shared"
# play Store
# removing it is fine in most cases just remember to install a foss alternative like aurora Store
# "com.android.vending"
# chrome browser
# "com.android.chrome"
# huawei stock launcher
# if you do not have alternate launcher, do not uncomment
# same saying goes for your devices launcher, do not remove the launcher without an alternative
# "com.huawei.android.launcher"
# huawei dependency
# com.huawei.android.internal.app
# google specifics
"com.google.android.gm"
"com.google.android.googlequicksearchbox"
# other bloats
"vStudio.Android.Camera360"
"com.android.backupconfirm"
"com.touchtype.swiftkey"
"com.swiftkey.swiftkeyconfigurator"
"com.facebook.services"
"com.facebook.system"
"com.facebook.appmanager"
"com.agoda.mobile.consumer"
"com.facebook.katana"
"com.facebook.orca"
"com.booking"
)
for package in "${packages[@]}"; do
echo "Removing $package..."
adb uninstall --user 0 $package
done
# Clear package data
# Clearing data is optional, you may remove this from the script.
for package in "${packages[@]}"; do
echo "Clearing data for $package..."
adb shell pm clear $package
done
Step 4: Heed absolute caution and run the script ./debloat.sh
Step 5: Restart your device adb reboot
Congratulations! You have successfully De-Bloated your device.