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.
  • Rust 99%
  • Nix 0.6%
  • Shell 0.4%
Find a file
w1nst0n 4659eb7b0f
Add a self-update feature (#121)
- Add an update button in the About page which links to the Github Releases page
- Display if there is a new version available in the About page
- Display an error if the request to Github failed
- Download the new UAD version and update the software (the hard part)
- Display an update button instead of the `Apps` button if there is an update available
- Add a `no-self-update` cargo feature for this (we don't want auto-update if a package manager already handles this)

The request is done asynchronously, each time you launch UAD or press the About button
The message checking updates... is displayed in the meantime

Update process:
- Download the right release based on the current file name (temp_<release_name>)
- Extract the executable from the tarball for Linux and MacOS release
- Rename the current executable to a temp path and rename the new version as the original file name
- Spawn a new process to run the new (renamed) executable and kill the current one
- Remove the old executable

Acknowledgement:
@tarkah for the inspiration of the self-update code (https://github.com/ajour/ajour/pull/222)
2022-02-09 23:27:13 +00:00
.cargo Use lld (faster) linker for linux builds 2021-10-02 00:00:28 +02:00
.github Refactor workflow and use tarballs for linux builds 2022-01-08 19:42:36 +01:00
resources [Package] Move Google keyboard to Advanced list (#120) 2022-02-05 20:52:43 +01:00
src Add a self-update feature (#121) 2022-02-09 23:27:13 +00:00
.gitignore Add .log files to .gitignore 2021-10-22 23:49:02 +02:00
.gitlab-ci.yml ldd install not needed for cross-compil tasks 2021-10-02 01:18:27 +02:00
Cargo.lock Add a self-update feature (#121) 2022-02-09 23:27:13 +00:00
Cargo.toml Add a self-update feature (#121) 2022-02-09 23:27:13 +00:00
CHANGELOG.md Button to unselect all the packages (closes #68) (#117) 2022-02-04 16:30:27 +00:00
LICENSE Add LICENSE 2021-09-09 14:59:19 +00:00
README.md Fix minor typing errors in the README (#109) 2022-01-31 21:35:13 +00:00

Universal Android Debloater GUI

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

uad_screenshot

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:

$ 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 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.