Skip to content

Latest commit

 

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Donate Build Status License: GPL v3

Android Debloater (ADB)

Debloat Android phones and Android TV devices through a single Bash script and ADB.

The script is intentionally conservative by default: it primarily disables packages instead of uninstalling them, which is safer to recover and typically safer for OTA updates.

📑 Table of Contents

✨ Features

  • Detects connected Android devices through ADB and exits early when none are available.
  • Distinguishes device type (Phone versus TV) through package heuristics.
  • Installs alternative applications on phones when they are absent (Aurora Store, F-Droid, selected Fossify apps, Breezy Weather).
  • Disables a substantial multi-vendor package set (Google, Samsung, Xiaomi, Asus, Oppo/OnePlus, and others).
  • Uninstalls only a small, explicit subset of packages.

🚀 Usage

Basic Run

chmod +x android-debloater.sh
./android-debloater.sh

Recovery Commands

Re-enable a package:

adb shell pm enable --user 0 <package.name>

Reinstall an uninstalled system package (when still present in the system image):

adb shell pm install-existing --user 0 <package.name>

List disabled packages:

adb shell pm list packages --user 0 -d

⚠️ Known Limitations

  • The script is non-interactive and executes immediately.
  • Some package groups include core applications (dialer, contacts, messaging, camera, file manager), which can alter expected device conduct.
  • Certain entries are uninstalled (not only disabled).
  • Package availability differs by OEM, ROM, and Android version.
  • APK download links in the provisioning section can become stale over time.

🖥️ System Requirements

  • OS: Linux, macOS, or a compatible shell environment with ADB available
  • Runtime tools: adb, wget, bash
  • Device state: USB debugging enabled and ADB authorisation accepted on the target device

🛠️ Development

Requirements

  • Bash
  • Android Platform Tools (adb)
  • ShellCheck
  • wget

Setup

Debian/Ubuntu:

sudo apt update
sudo apt install -y android-tools-adb wget

Arch Linux:

sudo pacman -Syy
sudo pacman -S android-tools wget

Validate the ADB connection:

adb devices

Run

bash ./android-debloater.sh

Continuous Integration

GitHub Actions validates every push and pull request targeting master. Reproduce the validation locally with:

shopt -s globstar nullglob
shellcheck **/*.sh --severity error

🏗️ Architecture

See the architecture documentation for the current system boundary, runtime flow, integration contracts, and design constraints.

🤝 Contributing

You are welcome to bring any suggestion, feedback or modification to this project.

When doing so, please:

  • Maintain cross-platform compatibility
  • Maintain the pull requests as focused and consistent with the existing code style
  • Maintain your branch up-to-date with master
  • Revise the documentation when behaviour changes
  • Properly test all changes

💝 Helping out

Discovered a problem or have a suggestion? Open an issue!

If you find this project useful, consider funding it or starring ⭐️ it on GitHub!

Donate

📄 License

This project is being distributed under the GNU General Public License v3.0 or later. See LICENSE for details.

About

Bash script for debloating Android devices using ADB.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages