[2022-07-03] [v0.5.1] Universal Android Debloater

Search This thread

w1nst0n_fr

Member
Dec 27, 2019
45
125
github.com
Universal Android Debloater

v0.5.0.png

This is a complete rewrite in Rust of the UAD bash script.

DISCLAIMER : Use this software at your own risk. I am not responsible for anything that could happen to your phone.


Summary
I try to maintain a universal tool which removes bloatwares on any Android phones by using ADB.

The main goal is to improve battery performance and privacy by removing unnecessary and obscure system apps. This can also contribute to improve security by reducing the attack surface.

Packages are as well documented as possible in order to provide a better understanding of what you can delete or not. The worst thing which could happen is removing an essential system package needed during boot causing then an unfortunate bootloop. After about 5 failed system boots, the phone will automatically reboot in recovery mode and you'll have to perform a FACTORY RESET. So make a backup first!

In any case, you can NOT brick your device with this script ! That's the main thing, right ? :)

Features
  • Uninstall/Disable and Restore/Enable system packages
  • Multi-user support (e.g apps in work profiles)
  • Export/Import your selection in uad_exported_selection.txt
  • Multi-device support: you can connect multiple phones at the same time
  • All your actions are logged so you never forget what you've done

NB : System apps cannot really be uninstalled without root (see the FAQ)

Universal debloat lists
  • GFAM (Google/Facebook/Amazon/Microsoft)
  • AOSP
  • Manufacturers (OEM)
  • Mobile carriers
  • Qualcomm / Mediatek / Miscellaneous

Manufacturers debloat lists
  • Asus
  • LG
  • Google
  • Fairphone
  • Huawei
  • Motorola
  • Nokia
  • OnePlus
  • Oppo
  • Samsung
  • Sony
  • Xiaomi

Mobile carriers debloat lists
  • French carriers: SFR / Orange / Free / Bouygues
  • US carriers: T-mobile / Verizon / AT&T / Sprint
  • German carriers: Telekom
  • UK: EE

How to use

Acknowledgement
 
Last edited:

kurtn

Senior Member
Jan 28, 2017
4,552
2,014
Small town in Bavaria
I try extreme google debloat on Samsung A3 2017. First check was OK. Debloater 2.1 with standard settings GFAM worked fine. Factory reset completely restored all the bloatware.

Second try:
Install f-droid and hacker's keyboard before install
$ adb push F-Droid.apk /storage/emulated/0
$ adb push org.pocketworkstation.pckeyboard_1041001.apk /storage/emulated/0
Replace all #"com.google with "com.google in /lists/Google.sh
Debloat GFAM
Reboot is OK. Playstore still there, but can be deactivated. Samsung_bloat can't be debloated.
Sometimes I get the message Google play services has stopped.
F-Droid can install apps. They run.
Galaxy store can't get deactivated.

Edit: debloating webview was no good idea. I've got many crashes of antennapod app. Restoring helped.
 
Last edited:

kurtn

Senior Member
Jan 28, 2017
4,552
2,014
Small town in Bavaria
Noob solution: copy Samsung list into Google list and debloat GFAM. Looks good. Only headlines are now says four times Samsung.
GMS debloat fails with some device policy error.

Next noob trick
$ adb shell
a3y17lte:/ $ pm uninstall com.google.android.gms
Failure [DELETE_FAILED_DEVICE_POLICY_MANAGER]
a3y17lte:/ $ pm disable-user com.google.android.gms
Package com.google.android.gms new state: disabled-user
 
Last edited:

Maybeyou

Member
Mar 18, 2020
47
7
Hi, thank you for this nice thread, exactly what I was looking for.
Possibly a solution for google play services:
I did deactivated the Google play services on Samsung a20 without computer by entering settings app, then "biometric and security" then "other security settings" then "device admin apps" and unselect "find my device", then head over apps in settings and "show system apps, then search for Google play services and now it can be disabled,
For samsung apps you can deactivate it by deactivating "galaxy store"
Perhaps the user must do that before running the code.
HOPE you can manage to translate that into your code language, and integrate it into your script, so we can all enjoy it.
 
Last edited:
  • Like
Reactions: kurtn

kurtn

Senior Member
Jan 28, 2017
4,552
2,014
Small town in Bavaria
Hi, I encountered a very small problem today when i tried to share a video to another phone through Wi-Fi Direct, I can't share with wifi Direct, the only available option is bluetooth (see attachment), do you how can I solve this ?
Search your "debloated packages" list for wifi related stuff and restore that. Or make sure both devices are i the same wlan and use an app like TrebleShot or KDE connect
 

w1nst0n_fr

Member
Dec 27, 2019
45
125
github.com
Sorry for the wait!

I'm glad you find my project useful ! :)

Nice approach. Has someone tried to debloat Google play services? Up till now I install GApps free custom ROMs on my phones.

I don't understand your question. If you want to debloat Google Play Services why installing Gapps in the first place ? :confused:

Install f-droid and hacker's keyboard before install [...]
Reboot is OK. Playstore still there, but can be deactivated. Samsung_bloat can't be debloated.
Sometimes I get the message Google play services has stopped. [...]
Edit: debloating webview was no good idea. I've got many crashes of antennapod app. Restoring helped.

Small tip : you can directly do
Code:
$ adb install F-droid.apk

There was a pretty nasty bug in v2.1 which prevented using the "manufacturer lists". Use v2.2.1 (or, better, wait for the v2.3 which should be released within the week!)

If you have the message `Google Play Services has stopped` it means you didn't uninstall the package. Did you uninstall some Google packages in the advanced debloat section ?

Regarding the Google Webview you can uninstall it but a lot of apps will no longer work correctly or even open. Bromite WebView is a good and more private alternative if you really need a Webview (which is a kind of mini web browser for apps which need to display web content btw)


Looks good. Only headlines are now says four times Samsung.
GMS debloat fails with some device policy error.

Hi, thank you for this nice thread, exactly what I was looking for.
Possibly a solution for google play services:
I did deactivated the Google play services on Samsung a20 without computer by entering settings app, then "biometric and security" then "other security settings" then "device admin apps" and unselect "find my device", then head over apps in settings and "show system apps, then search for Google play services and now it can be disabled,
For samsung apps you can deactivate it by deactivating "galaxy store"
Perhaps the user must do that before running the code.
HOPE you can manage to translate that into your code language, and integrate it into your script, so we can all enjoy it.

@Maybeyou is right. You need to uncheck Find My Device from the Device admin apps before trying to uninstall the Google Play Services.

I already mentioned this in the Google.sh file and a script can't do it. It's something you need to do ! I assume a user will read the package description I wrote in the advanced debloat section before doing anything.

Hi, I encountered a very small problem today when i tried to share a video to another phone through Wi-Fi Direct, I can't share with wifi Direct, the only available option is bluetooth (see attachment), do you how can I solve this ?

Mhm... I delete Wifi-direct by default but I'm gonna change this behavior for the next version.

Restore com.samsung.android.allshare.service.fileshare to get Wifi-direct back ;)
 
Last edited:
  • Like
Reactions: Maybeyou and kurtn

kurtn

Senior Member
Jan 28, 2017
4,552
2,014
Small town in Bavaria
@w1nst0n_fr thank you. My first post was not about debloating custom rom from GApps. It was a general question: is the debloater an alternative approach to get a 99% Google free phone. My answer: yes, but you need some luck. You can't know how your phone perfoms afterwards. For custom rom there are tons of reports for each device.
 
Last edited:

Maybeyou

Member
Mar 18, 2020
47
7
Sorry for the wait!

I'm glad you find my project useful ! :)

Mhm... I delete Wifi-direct by default but I'm gonna change this behavior for the next version.
Restore com.samsung.android.allshare.service.fileshare to get Wifi-direct back ;)

Yes this is a great project for me, and I did restore com.samsung.android.allshare.service.fileshare and now wifi Direct is working again. Thanks mate, keep up this great work brother ;)
 
  • Like
Reactions: w1nst0n_fr

w1nst0n_fr

Member
Dec 27, 2019
45
125
github.com
@w1nst0n_fr thank you. My first post was not about debloating custom rom from GApps. It was a general question: is the debloater an alternative approach to get a 99% Google free phone. My answer: yes, but you need some luck. You can't know how your phone performs afterwards. For custom rom there are tons of reports for each device.

Oh ! I misread you first post actually. You were talking about Gapps free phone. I understand better now!

IMO the most reliable and safest way to get a 99% Google free phone is to install an AOSP custom ROM without Gapps. For the 1% left you need to tinker with DNS, WebView, GPS... (this guide is not bad)

I insist on AOSP custom ROM because a stock-based custom ROM has the same issues as my script. The thing is it is not always possible to unlock the bootloader or to find an AOSP ROM for one's device. This why I created this script.

What is really tedious and not always simple is to document all the packages. There is a LOT of system packages whose the exact function is hard to determine and the consequence of their uninstallation very obscure. When I have the apk I can at least try to reverse-engineer to make some assumptions but it isn't bulletproof.

Yes this is a great project for me, and I did restore com.samsung.android.allshare.service.fileshare and now wifi Direct is working again. Thanks mate, keep up this great work brother ;)

Thanks. :)
 
Last edited:
  • Like
Reactions: kurtn

kurtn

Senior Member
Jan 28, 2017
4,552
2,014
Small town in Bavaria
Oh ! I misread you first post actually. You were talking about Gapps free phone. I understand better now!

IMO the most reliable and safest way to get a 99% Google free phone is to install an AOSP custom ROM without Gapps. For the 1% left you need to tinker with DNS, WebView, GPS... (this guide is not bad)

I insist on AOSP custom because a stock-based custom ROM has the same issues as my script. The thing is it is not always possible to unlock the bootloader or to find an AOSP ROM for his/her device. This why I created this script.
What is really tedious and not always simple is to document all the packages. There are a LOT of system packages whose the exact function is hard to determine and the consequence of their uninstallation very obscure. When I have the apk I can at least try to reverse-engineer to make some assumptions but it isn't bulletproof.



Thanks. :)
Nice promotion! "Hey this is second best" I see quite some advantages over aosp rom.
Better hardware support like camera or graphics acceleration.
Better security due to locked boot loader and latest patches in proprietary components.
Better stability - no hobbyists mess around.
 

rameshhelp

Member
Jan 27, 2017
6
3
hi developer
can u pls screenshot or youtube record the process please? im abit lost with the whole thing. i am aware how to use adb n remove manually bloatwares. unless u could provide the whole lists of bloatwares?
 

netcrk

Member
Jul 23, 2011
33
3
I did "install WSL (Windows Subsystem for Linux) in order to be able to use bash scripts and Install ADB. If you want ADB support everywhere on your PC, you need to add the path of the ADB folder in the system variables"
When i use bash app: bash debloat_script.sh and get error "debloat_script.sh: line 112: adb: command not found"
Plz help me, tnx
 

kurtn

Senior Member
Jan 28, 2017
4,552
2,014
Small town in Bavaria
I did "install WSL (Windows Subsystem for Linux) in order to be able to use bash scripts and Install ADB. If you want ADB support everywhere on your PC, you need to add the path of the ADB folder in the system variables"
When i use bash app: bash debloat_script.sh and get error "debloat_script.sh: line 112: adb: command not found"
Plz help me, tnx
At some point it's easier to run a real Linux system. Dual boot or live usb stick.
 

xradiation

Member
Apr 25, 2020
19
9
- hi guys, i would like to share this exported txt file from 'debloater' which i installed as a magisk module to debloat a samsung phone, in essence debloater works in the same way as the script in the main thread ( thanks @w1nst0n_fr ) other than it can be used locally in termux.
- it took me a while to get the phone to a stable state with multiple tries but i eventually managed to do it.
- I've managed to debloat most of samsung/google junk out including but not limited to google apps, i hope this will help ;)
 

Attachments

  • import-debloat.txt
    3 KB · Views: 647

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    WTF is the download, there's a description of the program but no download link???????
    It's under assets
    1
    I finally found the download like. I got everything up and running, and I find out that this is a high waste of time. All this does is disable apps, not uninstall them. I don't know if you all know this but you can do the exact same thing right from you phones settings without having to go through all this Bulls**t. Just go to app info on your device and if the app is available to be disabled you can. If an app isn't able to be disabled you can't because it's necessary for you phone to work. This entire things was a fu**ing Hugh waste of time and effort.
    You're actually half right and half wrong. Yes, you're right about the apps not really Uninstall. You're wrong on the part when you said "If an app isn't able to be disabled you can't because it's necessary for you phone to work". I tried to disable a few apps on my phone like YouTube, Google One, and Chrome for example (not really needed for my phone to function) but the option to disable them was not there either. With UAD, I was able to "disable" them.
  • 79
    Universal Android Debloater

    v0.5.0.png

    This is a complete rewrite in Rust of the UAD bash script.

    DISCLAIMER : Use this software at your own risk. I am not responsible for anything that could happen to your phone.


    Summary
    I try to maintain a universal tool which removes bloatwares on any Android phones by using ADB.

    The main goal is to improve battery performance and privacy by removing unnecessary and obscure system apps. This can also contribute to improve security by reducing the attack surface.

    Packages are as well documented as possible in order to provide a better understanding of what you can delete or not. The worst thing which could happen is removing an essential system package needed during boot causing then an unfortunate bootloop. After about 5 failed system boots, the phone will automatically reboot in recovery mode and you'll have to perform a FACTORY RESET. So make a backup first!

    In any case, you can NOT brick your device with this script ! That's the main thing, right ? :)

    Features
    • Uninstall/Disable and Restore/Enable system packages
    • Multi-user support (e.g apps in work profiles)
    • Export/Import your selection in uad_exported_selection.txt
    • Multi-device support: you can connect multiple phones at the same time
    • All your actions are logged so you never forget what you've done

    NB : System apps cannot really be uninstalled without root (see the FAQ)

    Universal debloat lists
    • GFAM (Google/Facebook/Amazon/Microsoft)
    • AOSP
    • Manufacturers (OEM)
    • Mobile carriers
    • Qualcomm / Mediatek / Miscellaneous

    Manufacturers debloat lists
    • Asus
    • LG
    • Google
    • Fairphone
    • Huawei
    • Motorola
    • Nokia
    • OnePlus
    • Oppo
    • Samsung
    • Sony
    • Xiaomi

    Mobile carriers debloat lists
    • French carriers: SFR / Orange / Free / Bouygues
    • US carriers: T-mobile / Verizon / AT&T / Sprint
    • German carriers: Telekom
    • UK: EE

    How to use

    Acknowledgement
    10
    How to contribute

    See here

    How to report bugs

    Open an issue on Github. I rarely respond on this XDA thread.
    3
    I try extreme google debloat on Samsung A3 2017. First check was OK. Debloater 2.1 with standard settings GFAM worked fine. Factory reset completely restored all the bloatware.

    Second try:
    Install f-droid and hacker's keyboard before install
    $ adb push F-Droid.apk /storage/emulated/0
    $ adb push org.pocketworkstation.pckeyboard_1041001.apk /storage/emulated/0
    Replace all #"com.google with "com.google in /lists/Google.sh
    Debloat GFAM
    Reboot is OK. Playstore still there, but can be deactivated. Samsung_bloat can't be debloated.
    Sometimes I get the message Google play services has stopped.
    F-Droid can install apps. They run.
    Galaxy store can't get deactivated.

    Edit: debloating webview was no good idea. I've got many crashes of antennapod app. Restoring helped.
    3
    Hi,

    So I went through with the whole (well documented) debloating instructions and debloated everything there was to debloat until the script said "nothing to debloat :)" on every selectable option. [...] Now the phone wont boot anymore.
    [...] Is this a known issue already? I can be a tester if there are some fixes on the way.

    A new big release (v2.8) is coming soon.

    As for the bootloop, I'm sorry. It seems this only happens (for now) on newer Samsung devices with OneUI 3.0. This is a known issue (see #39). The faulty package seems to be a Google one but hasn't been found yet.

    Only users of those phones can identify it. I can't do anything alone. I would be delighted if you help me on this. Come over to Gitlab. It's easier to track issues. :)

    Any idea why the debloat script won't recognize that I've updated bash to the latest version and set it to default on my MacBook?
    Well... I dunno how I could have failed this but here it is:

    On the 4th line of code, in the if it should be:
    "${BASH_VERSINFO[0]}" < 5 instead of BASH_VERSINFO < 5

    It will be fixed in the next release.