Safely Disable or Uninstall System Apps on Android Using ADB (No Root)

9 min read Learn a step‑by‑step, no‑root method to disable or uninstall unwanted system apps on Android using ADB, with safety warnings and troubleshooting tips. October 01, 2026 22:00 How to Safely Disable or Uninstall System Apps on Android Using ADB (No Root)

Pre‑installed system apps (often called bloatware) can waste storage, drain battery, or show unwanted notifications. On a non‑rooted device you cannot remove them through the Play Store, but Android’s package manager can disable or uninstall them for the current user via ADB. This tutorial shows you how to do it safely, explains the differences between disabling and uninstalling, and gives you recovery steps if something goes wrong.

Before you start

  • Charge your phone to at least 60 %. A sudden power loss while issuing ADB commands can leave the device in an unstable state.
  • Back up important data. Disabling a core service (e.g., Google Play Services) may affect app functionality.
  • Install the latest Android Platform‑Tools on your computer.
  • Enable Developer options → USB debugging on the phone (Settings > About phone > Tap Build number 7 times, then Settings > System > Developer options).
  • Connect the phone via USB and verify the connection with adb devices. You should see a device ID listed as device.

Understanding the two commands

Android’s package manager offers two relevant actions:

  • pm disable-user --user 0 <package_name> – hides the app from the launcher and prevents it from running, but the APK remains on the device. This is reversible.
  • pm uninstall -k --user 0 <package_name> – removes the app for the primary user while keeping the data directory (-k) in case you want to reinstall later. The APK is gone for that user, but the app can be restored with cmd package install-existing.

Both commands affect only the current user (usually user 0). System updates will restore the app, so you may need to repeat the process after a OTA.

Step‑by‑step procedure

  1. Identify the package name of the app you want to target.

    Open a command prompt and run:

    adb shell pm list packages -s | grep -i "partial_name"

    Replace partial_name with a keyword from the app’s title (e.g., gallery or weather). The output looks like package:com.samsung.android.gallery. Copy the part after package: – that is the full package name.

  2. Decide whether to disable or uninstall.

    Use disable for apps that other apps depend on (e.g., a carrier‑specific dialer). Use uninstall for apps that are truly optional (e.g., a pre‑installed game).

  3. Execute the command.

    For disabling:

    adb shell pm disable-user --user 0 com.samsung.android.gallery

    For uninstalling:

    adb shell pm uninstall -k --user 0 com.samsung.android.gallery

    If the command succeeds you’ll see Success. If you get Failure [UNKNOWN_ERROR], the app is likely a protected system component.

  4. Verify the result.

    Run the following to see the current state:

    adb shell pm list packages -d | grep com.samsung.android.gallery

    If the package appears in the disabled list, it’s been disabled. If it disappears from the installed list entirely, it’s been uninstalled for the user.

  5. Optional: Re‑enable or reinstall later.

    To re‑enable a disabled app:

    adb shell pm enable --user 0 com.samsung.android.gallery

    To reinstall an uninstalled app (data retained):

    adb shell cmd package install-existing com.samsung.android.gallery

Common pitfalls and how to fix them

  • "Failure [INSTALL_FAILED_USER_RESTRICTED]" – Some manufacturers lock certain packages (e.g., carrier‑specific dialer). In that case you cannot disable/uninstall without root.
  • App disappears from Settings > Apps but still shows in the launcher. – You may have only disabled the background services; the launcher icon can be hidden manually via Home screen > Edit > Hide app or by using a custom launcher.
  • Device boots into a bootloop after disabling a core service. – Power off, then boot into recovery (usually Volume Up + Power). Use adb reboot from your PC to restart, then re‑enable the app with the command from step 5.

Device‑specific notes

While the ADB commands are universal, the UI paths to enable USB debugging can differ:

  • Pixel / Android stock: Settings > System > Advanced > Developer options.
  • Samsung (One UI): Settings > About phone > Software information > Tap Build number, then Settings > Developer options.
  • Xiaomi (MIUI): Settings > About phone > Tap MIUI version, then Settings > Additional settings > Developer options.

The ADB commands themselves do not change, but some OEMs add a “Disable apps” toggle in Settings that may conflict with your manual disable. If the toggle re‑enables the app after a reboot, repeat the ADB command.

Safety warnings

  • Disabling essential services (e.g., com.android.systemui or com.google.android.gms) can render the UI unusable or break Google Play functionality.
  • Uninstalling an app that other apps depend on may cause crashes. Test by launching a few of your daily apps after each change.
  • All changes affect only the current user. If you add a secondary user or a work profile, the system apps will appear again for that profile.

When to consider rooting instead

If you need to remove deeply integrated packages (e.g., the carrier‑specific Phone app) or want the changes to survive a factory reset, rooting gives you full control via pm uninstall --user 0 with superuser rights. However, rooting voids warranties and introduces security risks, so the ADB method is the safest first step.

Wrapping up

Using ADB you can clean up a cluttered Android experience without rooting. By carefully selecting which apps to disable or uninstall, verifying each change, and keeping a simple recovery plan, you maintain system stability while reclaiming storage and battery life. The same workflow works across most Android devices, making it a reliable tool in any power‑user’s toolbox.

User Comments (0)

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