# How to Install Universal Android Debloater Next Generation: Complete Setup Guide

> Learn how to install Universal Android Debloater Next Generation. Follow our complete guide to set up the tool by compiling from source or downloading binaries.

- Repository: [Universal-Debloater-Alliance/universal-android-debloater-next-generation](https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation)
- Tags: getting-started
- Published: 2026-06-18

---

**Install Universal Android Debloater Next Generation by either compiling the `uad-cli` crate from source with Cargo or downloading pre-built binaries from the GitHub Releases page, then ensure the `uad` executable and Android Debug Bridge (ADB) are available in your system PATH.**

Universal Android Debloater Next Generation (UAD-ng) is a Rust-based open-source tool maintained by the `Universal-Debloater-Alliance/universal-android-debloater-next-generation` repository for removing bloatware from Android devices. The project is organized as a Cargo workspace defined in the root [`Cargo.toml`](https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation/blob/main/Cargo.toml) (version 1.2.0), containing three crates: `uad-core` for ADB communication logic, `uad-gui` for the Iced-based graphical interface, and `uad-cli` for command-line operations. This guide focuses on installing the lightweight CLI variant, which provides full debloating capabilities without GUI dependencies.

## Prerequisites

Before installing UAD-ng, ensure your system meets the following requirements:

- **Rust toolchain** – Required only for building from source. Install via [rustup.rs](https://rustup.rs/) to obtain `cargo`.
- **Android Debug Bridge (ADB)** – Must be installed and accessible in your `PATH`. Verify by running `adb version`.
- **USB debugging enabled** – Your Android device must have USB debugging activated and be authorized for ADB connections.

## Installation Methods

You can install UAD-ng either by building from source or using pre-compiled binaries.

### Build from Source

Building from source ensures you have the latest commits from the main branch. The CLI binary (`uad`) is the recommended target because it lacks heavyweight GUI dependencies and works across all platforms with a Rust toolchain.

1. Clone the repository:

```bash
git clone https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation.git
cd universal-android-debloater-next-generation

```

2. Build the `uad-cli` crate in release mode:

```bash
cargo build --release -p uad-cli

```

3. The compiled binary is placed at `target/release/uad`. Copy it to a directory in your PATH:

```bash
sudo cp target/release/uad /usr/local/bin/

```

### Install Pre-built Binaries

For users who prefer not to compile, the repository's **Releases** page provides pre-built binaries for Windows, macOS, and Linux.

1. Download the appropriate archive for your operating system from the Releases page.
2. Extract the archive to reveal the `uad` executable.
3. Move the binary to a location in your PATH (e.g., `/usr/local/bin` on Linux/macOS or `C:\Tools` on Windows).

## Verification

Confirm the installation succeeded by checking the version:

```bash
uad --version

```

This should output the current version (e.g., `v1.2.0`) as defined in the workspace [`Cargo.toml`](https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation/blob/main/Cargo.toml).

## Basic Usage

Once installed, verify ADB connectivity and explore the tool's functionality:

```bash

# List connected devices

uad devices

# List all packages on the first device (safe dry-run)

uad list --dry-run

```

Typical workflow for debloating:

```bash

# Show packages recommended for removal (Google list)

uad list --removal recommended --list google

# Perform a dry-run first

uad uninstall com.google.android.gms com.google.android.apps.maps --dry-run

# If the plan looks good, actually uninstall

uad uninstall com.google.android.gms com.google.android.apps.maps

```

The `uad-cli` crate leverages the `uad-core` library to fetch remote package definitions from [`src/core/uad_lists.rs`](https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation/blob/main/src/core/uad_lists.rs) and check for updates via [`src/core/update.rs`](https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation/blob/main/src/core/update.rs), ensuring you always have the latest debloat lists without manual intervention.

## Summary

- **Universal Android Debloater Next Generation** is a Rust workspace with three crates: `uad-core`, `uad-cli`, and `uad-gui`.
- **Install via source** using `cargo build --release -p uad-cli` to produce the `target/release/uad` binary.
- **Install via binaries** by downloading from the GitHub Releases page and adding to PATH.
- **Prerequisites** include Rust (for source builds), ADB in PATH, and an authorized Android device.
- The CLI tool provides **dry-run capabilities** (`--dry-run`) to preview changes before uninstalling packages.

## Frequently Asked Questions

### Do I need to install Rust to use UAD-ng?

No, if you download the pre-built binaries from the Releases page. Rust is only required when building from source using `cargo build --release -p uad-cli`. The pre-compiled executables work independently of the Rust toolchain.

### What is the difference between uad-cli and uad-gui?

`uad-cli` is the command-line interface crate located in `crates/uad-cli/` that provides script-friendly operations without GUI dependencies. `uad-gui` uses the Iced library to render a graphical interface but requires more system resources. Both rely on the `uad-core` crate for ADB communication and package parsing logic.

### Where does UAD-ng store its package removal lists?

The application fetches remote package definitions at runtime. According to the source code in [`src/core/uad_lists.rs`](https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation/blob/main/src/core/uad_lists.rs), the tool downloads and parses [`uad_lists.json`](https://github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation/blob/main/uad_lists.json) to determine which packages are safe to remove, recommended for removal, or device-specific bloatware.

### Why does the installation require ADB to be in PATH?

UAD-ng communicates with Android devices exclusively through the Android Debug Bridge protocol. The `uad-core` crate invokes ADB commands to list packages, execute uninstall operations, and manage device state. Without ADB accessible in your system PATH, the `uad` binary cannot establish connections to devices.