How to Safely Remove Pre‑installed Bloatware from Android Using ADB (No Root)

13 min read Learn a step‑by‑step, no‑root method to identify and uninstall unwanted pre‑installed apps on Android with ADB, while keeping your system stable. October 13, 2026 01:30 How to Safely Remove Pre‑installed Bloatware from Android Using ADB (No Root)

Pre‑installed apps (often called bloatware) take up storage, run background services, and sometimes display unwanted ads. Removing them can free space, improve battery life, and give you a cleaner experience—without the risks of rooting.

Before You Start

Backup your data. Uninstalling a system package only affects that app, but a mistaken removal can break a feature you rely on. Use Google Backup, a local ADB backup, or a trusted third‑party app to save contacts, messages, and app data.

  • Charge your phone to at least 70 %.
  • Connect to a stable Wi‑Fi network (you’ll need to download the ADB platform‑tools).
  • Enable Developer options → USB debugging. On most devices: Settings > About phone > tap Build number seven times, then return to Settings > System > Advanced > Developer options.

Why ADB Works Without Root

ADB (Android Debug Bridge) runs with the shell user, which has permission to invoke the pm uninstall --user 0 command. This tells the package manager to remove the app for the primary user (user 0) while leaving the underlying APK on the system partition. The app no longer appears in the launcher, won’t run, and won’t consume resources, yet the system files stay untouched—so you avoid the bricking risk associated with full system deletions.

Step 1 – Install ADB on Your Computer

The ADB binaries are part of the Android SDK Platform‑Tools package. Follow the sub‑steps that match your OS.

  1. Windows
    • Download the ZIP from https://developer.android.com/studio/releases/platform-tools.
    • Extract the folder to a location you can remember, e.g., C:\adb.
    • Add the folder to your PATH (Control Panel → System → Advanced → Environment Variables).
  2. macOS
    • Open Terminal and run: brew install --cask android-platform-tools (Homebrew required).
    • Homebrew automatically places adb in /usr/local/bin.
  3. Linux
    • On Debian/Ubuntu: sudo apt update && sudo apt install android-tools-adb.
    • On Fedora: sudo dnf install android-tools.

Verify the installation by opening a command prompt (or terminal) and typing adb version. You should see the version number printed.

Step 2 – Connect Your Phone and Verify the Link

  1. Connect the phone to the computer via a USB‑C or micro‑USB cable.
  2. On the phone, a dialog will ask “Allow USB debugging?”. Tap Allow. Optionally check “Always allow from this computer”.
  3. In the terminal, run adb devices. You should see a line like:
    List of devices attached
    1234567890ABCDEF    device
    If you see unauthorized, re‑grant permission on the phone.

Step 3 – List All Installed Packages

To decide what to remove, you need a clear list of packages. The following command prints every package name, one per line:

adb shell pm list packages -f

The output looks like:

package:/system/priv-app/CarrierServices/CarrierServices.apk=com.google.android.carrier

For easier reading, pipe the result to grep (Linux/macOS) or findstr (Windows) and filter by known bloatware vendors (e.g., com.samsung, com.huawei, com.oppo, etc.).

Step 4 – Identify Safe Candidates

Not every pre‑installed app is safe to remove. Removing core services (e.g., com.android.systemui, com.google.android.gms) can break the OS or prevent OTA updates. Use the following checklist:

  • Non‑essential apps: games, carrier‑specific promos, duplicate browsers, OEM‑branded music players.
  • System UI components: avoid anything with systemui, settings, launcher, android in the package name.
  • Google Play Services: never uninstall; many apps depend on it.
  • Device‑admin apps: if an app appears in Settings > Security > Device admin, keep it.

When in doubt, search the package name online before proceeding.

Step 5 – Disable vs. Uninstall

Disabling an app hides it and stops its processes, but the package remains on the system partition. Uninstalling for user 0 removes it from the user profile, which also frees the app’s data directory (/data/data/…).

We recommend the following workflow:

  1. First disable the app to see if any functionality disappears.
  2. If everything works, proceed to uninstall for user 0.

Step 6 – Disable an App (Optional First Pass)

adb shell pm disable-user --user 0 com.example.bloatware

Replace com.example.bloatware with the actual package name. After the command, the app disappears from the launcher and its background services stop.

To re‑enable later:

adb shell pm enable com.example.bloatware

Step 7 – Uninstall the App for the Current User

  1. Run the uninstall command:
    adb shell pm uninstall --user 0 com.example.bloatware
  2. If the command returns Success, the app is gone for the primary user. It still resides on the system partition, but it will not be re‑installed on the next reboot.
  3. Verify by checking the app list:
    adb shell pm list packages | grep com.example.bloatware
    No output means the package is no longer visible to the user.

Repeat the uninstall step for each bloatware package you wish to remove.

Step 8 – Verify System Stability

After uninstalling a batch of apps, perform a quick sanity check:

  • Reboot the device (adb reboot or power‑cycle manually).
  • Open Settings and browse the usual sections (Battery, Apps, Network) to ensure nothing is missing.
  • Launch a few everyday apps (camera, messaging, browser) to confirm they start normally.

If you notice missing functionality, you can restore the package (see Step 9).

Step 9 – Restoring an Accidentally Removed App

Because the APK stays on the system partition, you can reinstall it for the user with a single command:

adb shell cmd package install-existing com.example.bloatware

If the command fails (e.g., the package was removed in a previous OTA), you’ll need to flash the original factory image or use a backup made before the removal. That is why the initial backup step is critical.

Step 10 – Automating the Process (Optional)

For power users who want to clean multiple devices, you can script the uninstall list. Below is a minimal Bash example (Linux/macOS):

#!/usr/bin/env bash
# List of known bloatware packages (add or remove as needed)
BLOATWARE=(
  "com.samsung.android.app.appsedge"
  "com.samsung.android.game.gamehome"
  "com.oppo.quicksearch"
  "com.huawei.android.launcher"
)
for pkg in "${BLOATWARE[@]}"; do
  echo "Uninstalling $pkg…"
  adb shell pm uninstall --user 0 "$pkg"
done

Run the script while the phone is connected. Always review the BLOATWARE array first; an incorrect entry can cause unwanted side effects.

Troubleshooting Common Issues

Device Not Detected

  • Make sure USB debugging is enabled and the prompt is accepted.
  • Try a different USB cable or port.
  • On Windows, install the OEM USB driver (often found on the manufacturer’s site).
  • Run adb kill-server && adb start-server to reset the daemon.

Permission Denied or "Operation not allowed"

  • Some OEMs lock the pm uninstall command for certain apps. In that case, you can only disable them.
  • Check if the device is enrolled in a corporate device‑owner profile; that can block uninstall commands.

App Returns After OTA Update

  • System updates often reinstall removed packages. Keep a list of your uninstall commands and re‑run them after a major OTA.
  • Alternatively, flash a custom recovery and create a persistent init.d script (requires rooting, beyond the scope of this guide).

Unexpected Crashes or Missing Features

  • If a feature stops working, identify which package you removed and reinstall it using the command from Step 9.
  • Use adb logcat while reproducing the issue to see if a missing service is being called.

Safety Warnings

Never uninstall core Android framework packages. Removing com.android.systemui, com.android.phone, or com.google.android.gms can render the device unusable or prevent OTA updates.

Back up before you begin. A mis‑typed package name can lead to loss of essential functionality that may require a factory reset to recover.

OTA updates may restore removed apps. Keep your uninstall script handy to re‑apply after a major update.

Edge Cases & Manufacturer Specifics

  • Samsung devices often hide some bloatware under the com.samsung namespace. Samsung’s Knox security may block uninstall for certain carrier apps; disabling is the only safe option.
  • Pixel phones have fewer OEM apps, but the com.google.android.apps.turbo (Pixel Launcher) cannot be removed without root.
  • Android 12 and later introduced stricter package visibility. The pm uninstall --user 0 command still works, but the list of packages returned by pm list packages may omit hidden system apps unless you add the --show-hidden flag.

Final Checklist

  1. Backup contacts, messages, and app data.
  2. Enable USB debugging and install ADB on your computer.
  3. Connect the phone, verify adb devices shows device.
  4. List packages and identify bloatware you are comfortable removing.
  5. Optionally disable first, then uninstall with pm uninstall --user 0.
  6. Reboot and verify normal operation.
  7. Keep a script of uninstall commands for future OTA updates.
  8. Know how to reinstall any accidentally removed app using cmd package install-existing.

By following this method you gain full control over the apps that run on your Android device, without the need for a risky root process. The changes are reversible, safe for most mainstream phones, and can be repeated whenever a new bloatware package appears after an update.

User Comments (0)

Add Comment
We'll never share your email with anyone else.