0x192/universal-android-debloater

Universal Android Debloater GUI

DISCLAIMER: Use it at your own risk

Universal Android Debloater GUI

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

This software is still in an early stage of development. Check out the issues, and feel free to contribute!

Summary

This is a complete rewrite in Rust of the UAD project, which aims to improve privacy and battery performance 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 software! 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

  • Archos
  • Asus
  • Blackberry
  • Gionee
  • LG
  • Google
  • Fairphone
  • HTC
  • Huawei
  • Motorola
  • Nokia
  • OnePlus
  • Oppo
  • Samsung
  • Sony
  • TCL
  • Wiko
  • Xiaomi
  • ZTE

Mobile carriers debloat lists

Country Carriers
France Orange, SFR, Free, Bouygues
USA T-Mobile, Verizon, Sprint, AT&T
Germany Telekom
UK EE

How to use it

  • Read the FAQ!

  • Do a proper backup of your data! You can never be too careful!

  • Enable Developer Options on your smartphone.

  • Turn on USB Debugging from the developer panel.

  • From the settings, disconnect from any OEM accounts (when you delete an OEM account package it could lock you on the lockscreen because the phone can't associate your identity anymore)

  • Install ADB:

    LINUX
    • Install Android platform tools on your PC :

    Debian Base:

    Arch-Linux Base:

    Red Hat Base:

    OpenSUSE Base:

    MAC OS
    • Install Homebrew
    • Install Android platform tools

    WINDOWS
    • Download android platform tools and unzip it somewhere. Add the folder to your PATH.

    • Install USB drivers for your device

    • Check your device is detected:

  • Download the latest release of UAD GUI for your Operating System here. Take the opengl version only if the default version (with a Vulkan backend) doesn't launch.

NOTE: Chinese phones users may need to use the AOSP list for removing some stock apps because those Chinese manufacturers (especially Xiaomi and Huawei) have been using the name of AOSP packages for their own (modified & closed-source) apps.

IMPORTANT NOTE: You will have to run this software whenever your OEM pushes an update to your phone as some uninstalled system apps could be reinstalled.

How to contribute

Hey-hey-hey! Don't go away so fast! This is a community project. That means I need you! I'm sure you want to make this project better anyway.

==> How to contribute

Special thanks

  • @mawilms for his LotRO plugin manager (Lembas) which helped me a lot to understand how to use the Iced GUI library.
  • @casperstorm for the UI/UX inspiration.
Issues

Collection of the latest Issues

ll0r3nt3

ll0r3nt3

enhancement
Comment Icon0

It would be nice to add another section called "inactive" or that are only activated at certain times and are not always in the background.

Or maybe add in the descriptions of these, if they are always active or only at certain times.

I have realized that many applications that I debloat are not consuming ram or battery, they are disabled waiting to be called by some api, application or action.

These applications would not make sense to disable, since they may be necessary at certain times and neither battery nor resources are saved.

2urtle

2urtle

bug
Comment Icon1

When trying to run .exe both normally and as administrator a window flashes on momentarily then nothing.

I have only just discovered this product after finding xiaomiADBfastboot tools and looking to see if I could get rid of apps on my motorola.

ll0r3nt3

ll0r3nt3

package::breakage
Comment Icon4

Your phone: <Xiaomi Mi 10T Pro (Happen in miui 12.5 and 13>

Describe the issue After deleting the com.miui.miwallpaper application the phone always takes longer to start (approximately 15 seconds longer)

This has been happening from miui 12.5 to 13 You have a solution? Dont debloat

UAD log No log

ll0r3nt3

ll0r3nt3

package::breakage
Comment Icon1

Your phone: <Xiaomi Mi 10T Pro Miui 13.0.8 EUX>

Describe the issue

After deleting several applications, the "NFC Services" service always stays in the background (even without NFC being active)

I have tried to clear data, cache, debloat the application and restore it and nothing seems to work.

Even with activity manager, it forces the background app to close by restricting it and it stays open.

Start the phone in error proof mode and it kept starting, maybe the process got stuck.

I also deleted the data from google play and google services in case it was something related to gpay but it didn't work

The NFC works correctly, but that's it, it stays in the background and it doesn't happen to others.

I have asked friends who did not debloat and in forums with the same phone and it does not happen to them.

Maybe remove some application that controls that? either maybe some application from the debloat list is making a call to the NFC API and that causes it to not close?

You have a solution?

No :(

UAD log

Deleted list:

android.autoinstalls.config.Xiaomi.qssi com.android.backupconfirm com.android.bips com.android.bluetoothmidiservice com.android.bookmarkprovider com.android.browser com.android.calllogbackup com.android.cellbroadcastreceiver com.android.cellbroadcastreceiver.overlay.common com.android.chrome org.mipay.android.manager com.android.companiondevicemanager com.android.cts.priv.ctsshim com.android.dreams.basic com.android.dreams.phototable com.android.egg com.android.emergency com.android.hotwordenrollment.okgoogle com.android.hotwordenrollment.xgoogle com.android.htmlviewer com.android.inputdevices com.android.managedprovisioning com.android.protips com.android.providers.partnerbookmarks com.android.providers.userdictionary com.android.sharedstoragebackup com.android.simappdialog com.android.soundrecorder com.android.stk com.android.theme.color.cinnamon com.android.theme.color.green com.android.theme.color.ocean com.android.theme.color.orchid com.android.theme.color.purple com.android.theme.color.space com.android.theme.icon.pebble com.android.theme.icon.roundedrect com.android.theme.icon.squircle com.android.theme.icon.taperedrect com.android.theme.icon.teardrop com.android.theme.icon.vessel com.android.theme.icon_pack.rounded.themepicker com.android.thememanager com.android.thememanager.module com.android.traceur com.android.wallpaper.livepicker com.android.wallpaperbackup com.android.wallpapercropper com.bsp.catchlog com.facebook.appmanager com.facebook.services com.facebook.system com.fido.asm com.fido.xiaomi.uafclient com.fingerprints.sensortesttool com.google.android.apps.googleassistant com.google.android.apps.restore com.google.android.apps.setupwizard.searchselector com.google.android.apps.subscriptions.red com.google.android.apps.turbo com.google.android.apps.wellbeing com.google.android.cellbroadcastreceiver com.google.android.cellbroadcastreceiver.overlay.miui com.google.android.cellbroadcastservice com.google.android.cellbroadcastservice.overlay.miui com.google.android.configupdater com.google.android.feedback com.google.android.gm com.google.android.gms.location.history com.google.android.ims com.google.android.marvin.talkback com.google.android.onetimeinitializer com.google.android.partnersetup com.google.android.printservice.recommendation com.google.android.projection.gearhead com.google.android.setupwizard com.google.android.syncadapters.contacts com.google.android.youtube com.mi.android.globalFileexplorer com.mi.globalbrowser com.mipay.wallet.in com.miui.analytics com.miui.audiomonitor com.miui.backup com.miui.bugreport com.miui.cloudbackup com.miui.cloudservice com.miui.cloudservice.sysbase com.miui.compass com.miui.daemon com.miui.face com.miui.freeform com.miui.global.packageinstaller com.miui.hybrid com.miui.hybrid.accessory com.miui.maintenancemode com.miui.micloudsync com.miui.miservice com.miui.mishare.connectivity com.miui.msa.global com.miui.phrase com.miui.player com.miui.qr com.miui.touchassistant com.miui.vsimcore com.miui.weather2 com.miui.wmsvc com.miui.yellowpage com.modemdebug com.netflix.partner.activation com.qti.confuridialer com.qti.qualcomm.datastatusnotification com.qti.qualcomm.deviceinfo com.qti.service.colorservice com.qti.snapdragon.qdcm_ff com.qti.xdivert com.qualcomm.atfwd com.qualcomm.embms com.qualcomm.qti.devicestatisticsservice com.qualcomm.qti.dynamicddsservice com.qualcomm.qti.lpa com.qualcomm.qti.qcolor com.qualcomm.qti.qms.service.connectionsecurity com.qualcomm.qti.qms.service.telemetry com.qualcomm.qti.qtisystemservice com.qualcomm.qti.remoteSimlockAuth com.qualcomm.qti.services.secureui com.qualcomm.qti.services.systemhelper com.qualcomm.qti.uim com.qualcomm.qti.uimGbaApp com.qualcomm.uimremoteclient com.qualcomm.uimremoteserver com.quicinc.voice.activation com.tencent.soter.soterserver com.xiaomi.account com.xiaomi.discover com.xiaomi.glgm com.xiaomi.mi_connect_service com.xiaomi.miaudiovisual com.xiaomi.micloud.sdk com.xiaomi.midrop com.xiaomi.migameservice com.xiaomi.mipicks com.xiaomi.miplay_client com.xiaomi.mtb com.xiaomi.payment com.xiaomi.scanner com.xiaomi.simactivate.service de.telekom.tsc org.ifaa.aidl.manager

mizzunet

mizzunet

Comment Icon2

I debloated several apps. Now, I want one app, com.google.androd.webview to be reinstalled.

But the following execution fails,

Is there a way to reinstall it?

Thanks

Edit: And I can't use pm disable, so I'd be able to enable it

t-legiaw

t-legiaw

package::documentation
Comment Icon8

Your phone: Samsung Galaxy S22 Ultra

Packages documentation to update:

Documentation change

List: Oem Removal: Expert (this can break important features)

com.wssyncmldm

List: Oem :arrow_right: Expert RemovalRecommended :arrow_right: Expert

Current description

Software update\nFetch System OTA updates\nWorks along with com.sec.android.soagent\n"

Proposed description

Software update\nFetch System OTA updates\nWorks along with com.sec.android.soagent\nRequired on Samsung Smartphones for OTA"

Naman-1808

Naman-1808

bug
Comment Icon1

Describe the bug A clear and concise description of what the bug is.

Hello, I have Win7 32 Bit and i get the pop up stated below when i try to instal 'UAD' "The version of this file is not compatible with the version of Windows you're running. Check your computer's system information to see whether you need an x86 (32-bit) or x64 (64-bit) version of the program, and then contact the software publisher."

So pleases assist me up with a solution

a screenshot of pop up issue with UAD

incelynn

incelynn

package::breakage
Comment Icon2

Your phone: Xiaomi 11 Lite 5G NE

Describe the issue Uninstalling com.xiaomi.xmfs causes a bootloop.

You have a solution? Do not uninstall com.xiaomi.xmfs.

UAD log

v3nc

v3nc

package::documentation
Comment Icon0

Samsung Galaxy Tab A7: <sm-t500>

Packages documentation to update:

Documentation chage

List: Oem (manufacturer) Removal: Recommended

Current description

Samsung Wallpapers Wallpaper manager from the launcher. You can remove it and still set a wallpaper from the Gallery. Has INTERNET permission and... ACCESS_MEDIA_LOCATION

Proposed description

Samsung Wallpapers Wallpaper manager from the launcher. You can remove it and still set a wallpaper from the Gallery. Has INTERNET permission and... ACCESS_MEDIA_LOCATION Removing this will prevent you from changing the Material You palette on Samsung devices running Android 12.

RafeeDaBoy

RafeeDaBoy

package::addition
Comment Icon0

Your phone: OnePlus 9RT Packages:

  • [Yes ] I removed all those packages on my phone

Documentation change

com.oplus.athena

List: Oem Removal: Expert

This package kills background processes; removing it will solve delay issues but disable the virtual ram and 'close all' button in the 'recent apps' page

com.oplus.lfeh

List: Oem Removal: Recommended

Seems to be related to the the logging suite.

com.oplus.stdid

List: Oem Removal: Advanced

Needed for tracking battery usage on per app basis

com.oplus.crashbox

List: Oem Removal: Recommended

Sends system failure data to developers.

com.oplus.statistics.rom

List: Oem Removal: Advanced

Allows sending user data (can be opted out of). Breaks search functionality in the Settings app.

com.oplus.appplatform

List: Oem Removal: Advanced

Might be renamed package of com.heytap.appplatform which is related to Oppo's Heytap account services.

com.oplus.atlas

List: Oem Removal: Advanced

Should perform like a free antivirus

com.oplus.exsystemservice

List: Oem Removal: Expert

The screenshot function will stop working when the app is disabled.

KingEik

KingEik

package::breakage
Comment Icon5

Your phone: OnePlus 5T

Describe the issue Removing "com.oneplus.simcontacts" makes the dialer app ("Phone" ; "com.android.dialer") crash if it tries to display the call history. Exception message (from Logcat): "Failed to find provider com.oneplus.simcontacts for user 0; expected to find a valid ContentProvider for this authority"

You have a solution? I would propose moving "com.oneplus.simcontacts" from "Recommended" to "Advanced" or "Expert" and updating the description to reflect the possibility of this issue occuring.

mxmilkiib

mxmilkiib

enhancement
Comment Icon1

Describe the feature you want A log section to note what has been removed since the app started would be handy. I uninstalled something by accident and I'm not sure what it was.

443Port

443Port

package::documentation
Comment Icon1

Samsung Galaxy S8 (My testing phone)

I found a few unlisted applications but for now I did 2 of them { "id": "com.android.messaging", "list": "Oem", "description": "Android messaging app", "dependencies": null, "neededBy": null, "labels": null, "removal": "Advanced" }, { "id": "com.android.screenshot", "list": "Oem", "description": "The android screenshot tool. Probably safe to remove.", "dependencies": null, "neededBy": null, "labels": null, "removal": "Recommended" }

Amriky

Amriky

package::breakage
Comment Icon0

Samsung A42 5G - US version without macro camera

Describe the issue Instantly hangs up after WiFi call is connected

You have a solution? Rebooted after restoring: com.sec.modem.settings com.sec.epdg com.sec.epdgtestapp com.sec.imslogger com.sec.imsservice

Not sure which ones are actually critical to wifi calling

mariubrlu

mariubrlu

package::addition
Comment Icon2

Your phone: Google Pixel 4A

Packages:

{ "id": "app.attestation.auditor", "list": "oem", "description": "Graphene OS auditor", "dependencies": null, "neededBy": null, "labels": null, "removal": "Recommended" }, { "id": "app.grapheneos.apps", "list": "oem", "description": "Graphene OS app updater", "dependencies": null, "neededBy": null, "labels": null, "removal": "Advanced" }, { "id": "app.grapheneos.camera", "list": "oem", "description": "Graphene OS stock camera", "dependencies": null, "neededBy": null, "labels": null, "removal": "Advanced" }, { "id": "app.grapheneos.gmscompat", "list": "oem", "description": "Graphene OS google services compatibility layer", "dependencies": null, "neededBy": null, "labels": null, "removal": "Expert" }, { "id": "app.grapheneos.pdfviewer", "list": "oem", "description": "Graphene OS PDF reader", "dependencies": null, "neededBy": null, "labels": null, "removal": "Recommended" }, { "id": "app.vanadium.webview", "list": "oem", "description": "Vanadium WebView", "dependencies": null, "neededBy": null, "labels": null, "removal": "Expert" }, { "id": "org.calyxos.backup.contacts", "list": "oem", "description": "Calyx OS contact backup", "dependencies": null, "neededBy": null, "labels": null, "removal": "Expert" }, { "id": "org.lineageos.setupwizard", "list": "oem", "description": "Lineage OS setup wizard", "dependencies": null, "neededBy": null, "labels": null, "removal": "Recommended" },

Versions

Find the latest versions by id

0.5.1 - Jul 03, 2022

Since 0.5.0, all changes related to apps are available to users without downloading a new version of UAD as the software directly download the json debloat list from Github. These changes can be tracked in commits with [Pkg] in their name. See the commits

Added

  • [#209] Persistent highlighting when you click on a package

Changed

  • neededBy and dependencies field can now list multiple packages (feature not visible in the UI yet)

Fixed

  • [#286] UAD stuck on "Downloading UAD lists. Please wait" screen

Packaging

  • [#256] Fixed typo in the release name of the noseflupdate variation
  • Bump dependencies

0.5 - Apr 03, 2022

Apps

  • [#115] Added com.tblenovo.lenovotips to the recommended list.
  • [#120] Move Google keyboard to Advanced list (Default keyboards should not be in the Recommended list)
  • [#169 Move com.android.htmlviewer to the Expert list. Removing it bootloop the device on MIUI 12.5.4+.

Huge thanks to @KarlRamstedt for their help in this major debloat list update:

  • [#122] Added a bunch of new packages
  • [#122] A lot of description updates and fixes
  • [#122 | #138] Big revision of the recommendations according to more consistent criteria (see the wiki)

Added

  • [#68] Unselect all button: Let's you unselect all the packages you see on screen (i.e in the current filtered list).
  • [#119] Reboot button: Let's you quickly reboot the currently selected device.
  • [#110] Remote uad_lists.json download: The debloat list is now directly fetched from the main branch of this repo when you launch UAD. This means there is no longer the need to release a new version of UAD for updating the debloat lists! :rocket:
  • [#121] :arrows_counterclockwise: UAD self-update: UAD will now check at launch if there is a new version of itself and enable you to perform the update directly from the app! :rocket:

Changed

  • [#165] UAD now tries every 500ms (for 1min) to initiate an ADB connection until a device is found during FindingPhonesthe loading state.
  • All the init process was reworked and a status message is displayed at each stage (DownloadingList, FindingPhones,LoadingPackages,UpdatingUad Ready) so you know what is happening.
  • Minor UI changes

Packaging

  • Add a no-self-update build for MacOS and Linux. Useful if UAD is distributed into repositories. The update process will then be managed by a package manager.
  • MacOS builds are now also be released as a compressed tarball (like for Linux). You won't need to manually add the executable permission anymore. (more info)

0.4.1 - Jan 31, 2022

Fixed

  • Selection counter never decreasing.

0.4 - Jan 30, 2022

Apps

  • [#92] Added 3 Fairphone packages + 7 Qualcomm packages (thanks @VeH-c)
  • [#87] Added 2 Unihertz packages (thanks @rar0ch)
  • [#52] Added uk.co.ee.myee to the debloat lists (thanks @lawson58).
  • [#58] Added android to the debloat lists with the tag Unsafe.
  • Added 2 new Xiaomi packages to the Recommended list.
  • Multiple package description improvement (thanks @jonas-ott and @felurx for the help)
  • Review of the package lists recommendations. The Recommended debloat list is now safer (less likely to remove something you'd want to keep).

Added

  • [#49] Multi-device support: You are now able to select a device among the list of all ADB connected devices/emulators.
  • [#44] Persistent settings: Settings (only theme for now) are saved to a config file. Its location follows the standards of the different OS.
  • Links to the Github page, wiki, github issues and logfiles in the About page.

Changed

  • [#65] ADB commands now run in parallel and asynchronously! This means no more UI freeze when performing long/many actions! :rocket:
  • UI now updates itself in real time when performing ADB actions (thanks to async & multithreading). Before, it waited for the end of all actions.
  • Logfiles are now located in a more conventional place: cache_dir.
  • Previous logs are no longer overwritten. The logger now only appends to the current logfile of the day (UAD_%Y%m%d.log).
  • Each new day the logger will create a new file on UAD launch.
  • [#78] Disable mode is now only available on Android 6+ because the disable ADB commands do not work without root on older devices. The setting will be greyed-out for those devices.
  • Minor light theme update

Fixed

  • [#50] Resync button flipping theme back to Lupin.
  • [Regression (048e7f)] Weird disabled/greyed action button with older devices (< Android 8.0). Package could be selected but no action was performed.
  • [#78] Packages not being actually uninstalled on older devices (< Android 6.0). Without root we can only use pm block/pm unblock for Android KitKit (4.4) and pm hide/pm unhide on Android Lollipop (5.x).

Packaging

  • For Arch-based users, UAD is now available in the AUR: universal-android-debloater-bin (binary) and universal-android-debloater (from source)

0.3 - Oct 10, 2021

Warning: This is still an alpha release. Read carefully the description of the packages before removing them. Parsing the old lists didn't 100% work. There are some quirks and some packages aren't in the appropriate recommendation list (Recommended, Advanced, Expert, Unsafe)

If the default build doesn't work, try the OpenGL one.


Added

  • Multi-user support (#16): You can now debloat/restore apps for any user of the phone (not only the primary user 0).
    • Multi user mode setting (default to on for Android 5+) allowing to remove packages for all users (a work profile is another user) instead of only the selected user.
    • User switcher (picklist).
  • New themes! (#11) : light, dark and lupin. Lupin theme is now the new default theme. Themes can be changed from the settings.
  • Description field scrollbar: you can now scroll long descriptions (#40).

Fixed

  • [Regression] Unsafe packages can be deleted without enabling expert mode.
  • The refresh button doesn't update settings when a (new) phone is connected.
  • [Regression] Restore buttons are disabled when connecting an Android 8.0 phone.
  • Refresh icon does not appear (#17)

Information - Updated Jul 30, 2022

Stars: 4.2K
Forks: 251
Issues: 141

SUPER Android Analyzer

Secure, Unified, Powerful and Extensible Rust Android Analyzer

SUPER Android Analyzer

Rust core for native Android and iOS apps

The Android build contains a wrapper library, which is imported in the Android app with Carthage

Rust core for native Android and iOS apps

Android Manifest

Unless you explicitly state otherwise, any contribution intentionally submitted

Android Manifest

Pure Rust for Android Proof of Concept

This project's aim is to have Rust code working on Android,with minimal effort by using the apk-rs plugin for Cargo, and also use Rust language...

Pure Rust for Android Proof of Concept

android_system_properties

A minimal rust wrapper over android system properties

android_system_properties

android-activity provides a &quot;glue&quot; layer for building native Rust

applications on Android, supporting multiple android_native_app_glue

android-activity provides a &quot;glue&quot; layer for building native Rust

RAI - Rust Android Ios

Just an study on how to use rust with android and ios

RAI - Rust Android Ios

android-bgfx-rs-example

🦀🤖 Example of bgfx-rs on Android using Rust

android-bgfx-rs-example
Facebook Instagram Twitter GitHub Dribbble
Privacy