Cross-platform GUI written in Rust using ADB to debloat non-rooted android devices. Improve your privacy, the security and battery life of your device.

Overview

Universal Android Debloater GUI

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

uad_screenshot

This software is still in a 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 at improving 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 worse 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!

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
  • Logging of all your action in the uad.log file

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
  • HTC
  • Huawei
  • Motorola
  • Nokia
  • OnePlus
  • Oppo
  • Samsung
  • Sony
  • TCL
  • Wiko
  • Xiaomi
  • ZTE

Mobile carriers debloat lists

Country Carriers
France Orange, SFR, Free, Bouyges/Sosh
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 developper panel.
  • From the settings, disconnect from any OEM accounts (when you delete 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:

$ sudo apt install android-sdk-platform-tools

Arch-Linux Base:

$ sudo pacman -S android-tools

Red Hat Base:

$ sudo yum install android-tools

OpenSUSE Base:

$ sudo zypper install android-tools

MAC OS
  • Install Homebrew
  • Install Android platform tools
$ brew install android-platform-tools

WINDOWS
> adb devices

  • Download the latest stable release of UAD GUI here.

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 push 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.
Comments
  • Crash on launch

    Crash on launch

    In GitLab by @oksamit45 on Sep 26, 2021, 07:40

    Right, so i found this tool for my LG V40, i downloaded the drivers for it, downloaded, added platform tools to path and tried to launch the software, only for it to crash saying no device attached, any help on this? System is x64

    crash 
    opened by 0x192 37
  • Stuck on Downloading latest UAD lists from github. Please wait...

    Stuck on Downloading latest UAD lists from github. Please wait...

    Describe the bug Stuck on Downloading latest UAD lists from github. Please wait... Documentation is stuck on checking for update.

    Expected behavior A clear and concise description of what you expected to happen. Expected to continue the process to show apps that can be uninstalled.

    You have a solution? What to do to fix the issue. No solution found.

    UAD log Upload the logfile generated by UAD. UAD_20220703.log

    bug 
    opened by gobeard 23
  • How to use this software?

    How to use this software?

    I dont understand how to set up the debloater app. Can i get someone to show me how to open it on my computer? I am really , really lost.

    I saw the app advertised on youtube. I downloaded it but now that it is on my computer I don't understand any of this of how to get it to even start. There are no instructions. I am not a tech or computer guy but I thought I would ask for help. I am not tech saavy and this looks like its above me to know how to start it. I do know the usb debugging is open on my phone so i took care of that. But how do I get this going? Can we get instructions in laymans terms? I cant understand this.

    question 
    opened by TheStonemage 22
  • UAD GUI not downloading new UAD lists

    UAD GUI not downloading new UAD lists

    Describe the bug UAD GUI is stuck at "Downloading latest UAD lists from GitHub. Please wait...".

    Expected behavior I expect the GUI to continue with its normal behavior after downloading the lists.

    You have a solution? No, I do not.

    UAD log Sadly I don't know where it is located... EDIT: I found the log:

    2022-08-05 19:08:59 DEBUG [src\core\update.rs:178] Checking for UAD update 2022-08-05 19:08:59 WARN [src\gui\mod.rs:102] Trying to download remote UAD list 2022-08-05 19:09:29 DEBUG [src\core\update.rs:178] Checking for UAD update 2022-08-05 19:09:29 DEBUG [src\core\update.rs:178] Checking for UAD update 2022-08-05 19:09:31 DEBUG [src\core\update.rs:178] Checking for UAD update 2022-08-05 19:09:32 DEBUG [src\core\update.rs:178] Checking for UAD update 2022-08-05 19:09:34 ERROR [src\core\utils.rs:162] Can't open the following URL:

    UAD_20220805.log

    bug 
    opened by neutrobox 17
  • MIUI 12.5.4.0 update causes bootloop

    MIUI 12.5.4.0 update causes bootloop

    Poco x3 nfc I will tell it from the beginning. So, my already debloated phone (around 60 packages) got a system update (MIUI 12.5.4.0, security update apparently) and I installed the update. Then the phone restarted itself to finish the update, but it entered bootloop. I tried fixes and etc. but didn't work, so I had to factory reset. After setting the phone up again, I debloated (around 30 packages) and restarted the phone again to see if the bootloop was due to debloated packages, and boom, another bootloop. After another factory reset, this time I only uninstalled the apps that showed in app drawer and play store and restarted the phone(I didnt uninstall built-in system packages etc.) . This time there wasnt bootloop. So, if your phone is debloated, dont update it. And if you are going to update, make backup of your files, contacts etc.

    HERE IS THE PACKAGE LIST THAT CAUSED THE BOOTLOOP AND THE ONE THAT DOESNT CAUSE BOOTLOOP IF YOU HAVE THE SAME ISSUE AFTER UPDATING

    safe to uninstall.txt caused bootloop.txt

    DAMN xiaomi, you caused me to lose my contacts and 2fa

    help wanted package::addition 
    opened by gdnzz 15
  • Big list update

    Big list update

    Added a bunch of packages from Oneplus 3/3T and Oneplus 9. Added a bunch of descriptions for packages already in the list. Corrected some erroneous descriptions. Shortened some descriptions and corrected some grammar. Changed "Removal" and "List" for some packages.

    To save you some time and give a taste of my changes, here's some highlights from the list (all of these lacked descriptions or were very wrong):

    com.android.carrierdefaultapp

    This package is a generic solution that allows carriers to indicate when a device has run OOB(Out Of Balance). Android devices that are OOB need carrier mitigation protocols to allow select data through(like to notify users their data/balance is out, or allow them to buy more data through the carrier app). Will probably break that functionality if disabled, but is otherwise safe to disable(should only affect users that are out of data/balance?). https://source.android.com/devices/tech/connect/oob-users

    com.android.ons - Opportunistic Network Service

    From what I can glean in the source code it seems like this provides a list of available networks and assigns each network a priority. I've never seen it run on its own, so this might be part of some automatic network switching setting that I have turned off. https://cs.android.com/android/platform/superproject/+/master:packages/services/AlternativeNetworkAccess/src/com/android/ons/OpportunisticNetworkService.java https://developer.android.com/reference/android/telephony/AvailableNetworkInfo https://cs.android.com/android/platform/superproject/+/master:frameworks/base/telephony/java/android/telephony/AvailableNetworkInfo.java

    com.oneplus.orm

    Seems to be Oneplus' Memory Management System according to a press-kit/-release they made for Android 11 (multiple sites wrote "ORM Memory Management System" word-for-word). Runs in the background as part of the system. Runs even if disabled? Doesn't use any RAM when disabled tho, vs ~50MB when enabled. Seems safe to disable, haven't noticed any negative effects in weeks of use, but I assume it breaks the "RAM Boost" feature (which is pointless anyway IMO). Apk file name: OPOmm, mm = Memory Management?

    com.oneplus.screenrecord - Screen Recorder

    The Android 11 screen recorder with some Oneplus modifications. Runs the "SystemUITileService" when you have it as one of the quicksettings tiles, but doesn't seem to run in the background outside of that. Doesn't have an app icon, but you can create a shortcut to it with the Activity Launcher app. https://f-droid.org/en/packages/de.szalkowski.activitylauncher/

    com.qualcomm.qti.smq - QTR (Qualcomm Technology Reporting)

    Runs on boot. Seems like a telemetry package, supposedly sending hardware & software type, configuration and performance data. Contains a "QtiFeedbackActivity" called "Hardware Feedback". When that hidden activity is launched through Activity Launcher you get a screen showing just a checkbox and this text: "Collecting hardware and software type, configuration, and performance data helps Qualcomm improve next generation device battery life, security, and performance. Untick to disable." Unticking isn't remembered; it's ticked again next time you enter. There's also a "Learn More" link that leads to: http://reporting.qti.qualcomm.com/learnmore_en.html which doesn't load for me.

    Image of activity (obviously can't be included in the list, but figured I'd show it here on Github):

    QTR hidden activity - Cropped

    net.oneplus.launcher - Oneplus Launcher

    Runs in the background as part of the system. Aside from obviously handling the default launcher itself, it also handles the Recents UI on Android 9, the home&recents gestures in Android 11, some submenus in the Settings app and possibly more that I'm unaware of. Probably not a good idea to disable.

    com.google.android.apps.work.oobconfig - Device Setup

    Sets up device to be managed by EMM (Enterprise Mobility Management), which "allows organizations to securely enable employee use of mobile devices". Might also be what does the actual management on your device, if you set it up as a work device. Only seems to run on boot(not in the background after boot) if you haven't set up your device as a work device. I tried to disable it through UAD, but nothing happens? Seems immune to disabling? https://bayton.org/2020/11/google-announce-big-changes-to-zero-touch/ https://bayton.org/docs/enterprise-mobility/android/what-is-android-zero-touch-enrolment/

    com.qualcomm.qti.smq nicely illustrates how useful Activity Launcher can be in combination with a Package Viewer that shows Activities.

    As you saw in one of the new list entries; I've found a way to see running system processes. The Simple System Monitor app with the PACKAGE_USAGE_STATS permission (granted through ADB) is the only way I've found in Android 11. Seeing running system processes also showed some interesting things, like some processes running even while disabled(I assume Uninstall would yield the same result). For example com.qualcomm.location and Dolby & Dirac Sound System services run even if disabled, with RAM usage. I guess some system packages(com.oneplus.orm) rely on access to user-space(which disable/uninstall removes) while others(qualcomm.location/audio systems) don't and run just like normal even when disabled/uninstalled?

    My changes have been over the course of a couple of weeks, but I've taken care to include any changes in recent commits, so nothing should be lost and it should merge nicely with the main branch.

    opened by KarlRamstedt 12
  • Unable to disable or uninstall packages on older android versions

    Unable to disable or uninstall packages on older android versions

    First, thanks a lot for the amazing software, it works very well and I very much appreciate it!! :)

    Lately I've been trying to debloat an old huawei device with android 4.2.2 on it. The UAD interface somehow seems to display the "Disable"/"Uninstall" buttons dimmer, and clicking them does nothing.

    I searched but didn't find documentation on that kind of issue. What could be the reason why it's not working? Thanks a lot for the attention :)

    bug help wanted 
    opened by eauchat 12
  • Add com.miui.notes

    Add com.miui.notes

    Xiaomi POCO F4

    Here is a direct link to the app which states the filename: com.miui.notes https://www.apkmirror.com/apk/xiaomi-inc/miui-notes/

    Here is a screenshot of the app from my phone:
    N

    In the past I used your previous app (the written by someone else, that uses a Jar file) and it had the option to remove this app and it was safe to do so and I did and it had no problems for years. Please add it to the list so I can remove it again from my new Xiaomi phone. Thank you

    Xiaomi | Notes

    https://www.apkmirror.com/apk/xiaomi-inc/miui-notes/

    invalid package::addition 
    opened by h2559 10
  • No Keyboard

    No Keyboard

    Your phone: <Moto G7 Playl>

    Describe the issue I uninstalled all of the suggested packages. Afterward, I have no keyboard on my phone

    You have a solution? I don't know how to fix

    UAD log Upload the logfile generated by UAD. You can hardly be helped without. Where do I find the log file?

    package::breakage 
    opened by kcstandefer 10
  • Error runing on Ubuntu 18.04

    Error runing on Ubuntu 18.04

    How to run uad on Linux? The README.md doesn't actually say. I tried making it executable and running like a shell script but got the following errors. ADB is installed and working.

    ~/Downloads$ ./uad_gui-linux 2021-10-18 20:27:17 WARN [/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/wgpu-hal-0.10.7/src/vulkan/instance.rs:514] create_instance: VkError(ERROR_INCOMPATIBLE_DRIVER) 2021-10-18 20:27:18 WARN [/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/wgpu-hal-0.10.7/src/gles/egl.rs:400] EGL context: -robust access 2021-10-18 20:27:18 WARN [/home/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/wgpu-hal-0.10.7/src/gles/egl.rs:413] unable to create GLES 3.x context: BadConfig

    external::upstream build 
    opened by yeswap 10
  • I can't get permission to uninstall.

    I can't get permission to uninstall.

    I have been trying to get adb to uninstall apps on my Samsung Tablet, but for some reason I get a error saying no users have android permission to uninstall. I added debugging and everything. Can someone help?

    bug 
    opened by Helloeveryone01992877373 9
  • unable to uninstall some apps even when uninstall in ticked in setting related to uninstalling not safe apps

    unable to uninstall some apps even when uninstall in ticked in setting related to uninstalling not safe apps

    Describe the bug unable to uninstall certain bloatwares like themestore or gamespace, which comes with the phone from factory and are neither useful nor will create any issue with my phone if uninstalled. when clicked on uninstall nothing happens A clear and concise description of what the bug is.

    Expected behaviorthe application should have been uninstalled A clear and concise description of what you expected to happen.

    You have a solution? What to do to fix the issue.

    UAD log Upload the logfile generated by UAD.

    bug 
    opened by Glacarious 1
  • UAD doesn't detect Samsung S20 FE

    UAD doesn't detect Samsung S20 FE

    I installed UAD with the necsessary programs on my laptop and plugged my phone in the USB cable (USB debugging is activated), the program tries to search for my phone, but there's always the info "no devices/emulators found".

    Well, I expected it to find my device, so I can delete the software I don't need.

    I tried to redo the searching process, clicking that reboot button etc. Would like to have someone explain to me what I did wrong

    UAD_20230108.log

    bug 
    opened by fishc0p89 2
  • add fonts

    add fonts

    Your phone: SM-A530N

    Packages:

    com.monotype.android.font.applemint
    com.monotype.android.font.tinkerbell
    ...
    
    • [x] I removed all those packages on my phone If not why. Leave the brackets blank and explain why.

    Document each package the best you can

    List: Misc Removal: Recommended

    <com.monotype.android.font.applemint>

    List: <Misc> Removal: <Recommended>

    font

    <com.monotype.android.font.tinkerbell>

    List: <Misc> Removal: <Recommended>

    font

    package::addition 
    opened by bestplayerbot 0
  • The GPL notice in the LICENSE file should not be modified from the original

    The GPL notice in the LICENSE file should not be modified from the original

    https://github.com/0x192/universal-android-debloater/blob/b04d235edfd1453abccbb7a0ed379cf7ec1a48b6/LICENSE#L634-L648

    The idea here is that this notice should be attached to each source file in the program (though it is often put in the README instead), not modified in the LICENSE file itself (in this the GPL is unlike the MIT license and other similar licenses). It's probably a good idea to revert this change to the LICENSE file and instead put the notice somewhere else.

    opened by mhmdanas 0
Releases(0.5.1)
Owner
w1nst0n
w1nst0n
Run all your Linux graphical apps on Android 💖✨✨✨

Waylovely Run all your Linux graphical apps on Android ?? ✨ ✨ ✨ The Android windowing system is different than those in desktop operating systems. In

Waylovely Project 14 Nov 23, 2022
Glue between Rust and Android

deprecated in favor of https://github.com/rust-windowing/android-ndk-rs which works with winit master Android Glue Usage With Docker The easiest way t

Rust Windowing 898 Dec 15, 2022
Android-related tools for building and developing applications 🛠

Rust Android Tools Android-related tools for building and developing applications: Name Description Status aapt2 Android Asset Packaging Tool ✅ bundle

DodoRare 6 Dec 31, 2022
Android / iOS app with shared Rust logic

Rust core for native Android and iOS apps [TODO iOS badge] This is an example that shows how to use a shared Rust core in native Android and iOS apps.

Ivan Schütz 193 Dec 5, 2022
🤖🦀 A rust native replacement for Android's `sdkmanager`

???? A rust native replacement for Android's `sdkmanager`

Traverse Research 13 Dec 13, 2022
Android / iOS app with shared Rust logic

Rust core for native Android and iOS apps [TODO iOS badge] This is an example that shows how to use a shared Rust core in native Android and iOS apps.

null 193 Dec 5, 2022
Rust implementation of NearbyShare/QuickShare from Android for Linux.

rquickshare NearbyShare/QuickShare for Linux (WIP) How to use rquickshare offers two options for using its file sharing capabilities: command line (CM

Martin André 3 Feb 28, 2024
android-pathfinding

android-pathfinding Android pathfinding dependencies { implementation 'com.github.planet0104:android-pathfinding:1.0.0' } int[][] grid = new i

Jia Ye 1 Dec 17, 2021
Android resource file parsing & writing

arsc arsc is a Rust library that provides the ability to parse and write Android resource file (arsc) [dependencies] arsc = "0.1" Compiler support: ru

Yaxin Cheng 7 Dec 25, 2022
An Android application for ruffle.rs

This is a native Android application for Ruffle. It is in a very early stage. Prebuilt APKs The latest (successful) Actions run (here) should have a d

TÖRÖK Attila 28 Dec 21, 2022
GaiaX dynamic template engine is a lightweight cross-platform solution for pure native dynamic card.

GaiaX dynamic template engine is a lightweight cross-platform solution for pure native dynamic card, developed by Alibaba YouKu technology team GaiaX

Alibaba 774 Dec 22, 2022
Using Rust to create an iOS static library

ObjCrust A modified ObjCrust which uses Rust cross-compiler. Cross-compiler needs to be built first (note: it is on a separate branch now, so don't fo

Valerii Hiora 39 May 10, 2021
A Rust crate to load a shared library into a target process without using ptrace.

Intruducer A Rust crate to load a shared library into a target process without using ptrace. This is a portable rewrite of dlinject. Compatibility It

null 90 Jan 3, 2023
rust on pebble - functional with limited capabilities

Pebble.rs Pebble.rs is a crate that allows rust to be used to develop Pebble applications. It is compatible with SDK 3.0 and is known to work on the a

Andrew Foote 44 Aug 13, 2022
Fable Rust Raytracer - iOS version

Fable Rust Raytracer - iOS version Originally made by @ncave (https://github.com/ncave/fable-raytracer), port to iOS by @delneg Pre-requisites Rust, b

Denis 4 May 2, 2022
APK manifest & resources parser in Rust.

BXMLRS bxmlrs is a Rust library (WIP) for parsing binary Android XML files (AndroidManifest.xml). Usage use bxmlrs::parser; use quick_xml::reader::Rea

null 6 Oct 21, 2023
Cross-platform GUI written in Rust using ADB to debloat non-rooted android devices

Cross-platform GUI written in Rust using ADB to debloat non-rooted android devices. Improve your privacy, the security and battery life of your device.

w1nst0n 6.8k Jan 2, 2023
Android Device Pool - A tool to run device tests against a pool of devices.

adp (Android Device Pool) What is this? A tool to run device tests against a pool of devices. It will 'checkout' a device to run your tests against an

Evan Tatarka 1 Oct 21, 2021
Open-source tool to enforce privacy & security best-practices on Windows and macOS, because privacy is sexy 🍑🍆

privacy-sexy Open-source tool to enforce privacy & security best-practices on Windows and MacOs, because privacy is sexy ?? ?? privacy-sexy is a data-

Subconscious Compute 3 Oct 20, 2022
Tokio based client library for the Android Debug Bridge (adb) based on mozdevice

forensic-adb Tokio based client library for the Android Debug Bridge (adb) based on mozdevice for Rust. Documentation This code has been extracted fro

null 6 Mar 31, 2023