How-to

How to uninstall system apps on Android with ADB (and bring them back)

List packages, disable them, remove them for your user with pm uninstall, restore them with install-existing, and the safety rules that keep a phone working.

By
MySystemApp editors
Checked
25 October 2026
Read time
4 min

Settings can disable many preinstalled apps, but not all of them. ADB, Google's command-line tool for Android, can disable or remove almost any package for your user account, without root. It is also completely reversible if you follow a few rules. This guide assumes ADB already works; if not, start with how to set up ADB.

What can ADB do that Settings can't?

ADB talks to the phone's package manager directly. That gives you three things Settings lacks:

  • It can disable apps whose Disable button is hidden or greyed out.
  • It can remove an app for your user, which hides it more completely than Disable.
  • It can list every package on the phone, so you can review them all at once.

It cannot delete files from the system partition. Nothing you do here is permanent, which is exactly why it is safe to try.

How do I find the package name?

Every command needs the package name, such as com.samsung.android.app.spage, not the display name. List them all:

adb shell pm list packages

Useful filters:

adb shell pm list packages -s     # system packages only
adb shell pm list packages -3     # apps you or a store installed
adb shell pm list packages -d     # disabled packages
adb shell "pm list packages | grep facebook"

The quotes in the last line make the search run on the phone, so it works the same on Windows, Mac and Linux. To find the package of an app you can open, open it and run:

adb shell "dumpsys window | grep mCurrentFocus"

Paste the full list into the package-list audit to see a verdict next to each line, or look up a single name with the package lookup.

Should I disable or uninstall?

Start with disable. It is the gentler change and the easiest to reverse.

CommandWhat it doesHow to undo
pm disable-user --user 0Turns the app off for your user. It stays installed but cannot run.pm enable
pm uninstall -k --user 0Removes the app for your user. The system copy stays.cmd package install-existing

Uninstalling for your user also removes the app from Settings lists and stops it receiving updates. Some apps that ignore Disable, or that another app keeps re-enabling, stay gone only when uninstalled this way.

How do I disable a package with ADB?

adb shell pm disable-user --user 0 com.samsung.android.app.spage

The phone answers with a line saying the new state is disabled-user. User 0 is the phone's main user. Test the phone for a day before you change anything else.

To turn it back on:

adb shell pm enable com.samsung.android.app.spage

How do I uninstall a package for my user?

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

A reply of Success means it worked. The -k option keeps the app's data and cache directories, which makes a later restore smoother. The --user 0 part matters: it limits the change to your user, which is the only kind of removal ADB is allowed to make on a system app.

How do I bring a package back?

To restore an app you uninstalled for your user:

adb shell cmd package install-existing com.samsung.android.app.spage

This reinstalls the copy that is still in the system area. If you also disabled it earlier, run pm enable afterwards. Open the Play Store or the maker's store to bring it up to date. To see packages that are removed for your user but still on the phone, add -u to the list command:

adb shell pm list packages -u

Compare that list with pm list packages to find what you removed. A factory reset also brings everything back, but you lose your data with it. Our guide to restoring a disabled system app covers more cases.

What does this not do?

Be clear about the limits before you start:

  • It does not free system storage. The system partition is read-only and keeps its size.
  • It is not permanent. A factory reset restores every app, and a major system update can reinstall or re-enable some of them. See what changes after an Android update.
  • It does not affect other users or a work profile on the same phone. Each has its own user number.
  • It does not root the phone or change the bootloader, so banking apps and system updates keep working.

What are the safety rules?

The commands are reversible, but a phone that will not boot is hard to fix with a command. These rules prevent that:

  1. Check the verdict first. Never remove a package marked Do not remove. That includes com.android.systemui, com.android.settings, the phone and messaging stack, the package installer and the launcher you use. On phones that use Google services, leave com.google.android.gms alone.
  2. Disable before you uninstall. If a disabled app causes no problems for a few days, you can then uninstall it.
  3. Change a few packages at a time and restart the phone between batches.
  4. Write down every package you change. Save your full list before you start:
adb shell pm list packages > before.txt
  1. Keep USB debugging available until you are sure everything works, so you can undo changes.
  2. Leave a work-managed phone alone. Ask your administrator instead.

If an error mentions SecurityException or "cannot change component state", the package is protected; leave it. An error with DEVICE_POLICY_MANAGER means the app is a device admin, which you must turn off in Settings first.

How do I do many packages at once?

Once you know which packages are safe for your phone, a loop saves typing. On Mac or Linux:

for p in com.example.one com.example.two; do adb shell pm disable-user --user 0 $p; done

The audit tool and the debloat checklist write a ready script with only the lines you tick, for Windows or for Mac and Linux. Our brand guides list the packages most people remove, starting with the Samsung list.

Which packages this touches

Safe to disable: com.samsung.android.app.spageDo not remove: com.android.systemuiDo not remove: com.android.settingsKeep: com.google.android.gms

Questions people ask

Does pm uninstall --user 0 delete the app permanently?

No. It removes the app for your user only. The original copy stays in the system area, comes back after a factory reset, and can be restored at any time with install-existing.

Do I need root for these commands?

No. They run through ADB with USB debugging turned on. The phone is not rooted and the bootloader stays locked.

Why does uninstalling not free much space?

The original app lives on the read-only system partition, which does not shrink. You free only the space its updates, data and cache used.

Sources

  1. Android Developers: Android Debug Bridge (adb), package manager commandsDeveloper documentation
  2. AOSP source: PackageManagerShellCommand (pm and cmd package)Android source
  3. Android Help: Delete, disable and manage unused apps on AndroidVendor documentation
  4. Xiaomi Support: Why can't some system software be uninstalled?Vendor documentation
  5. Universal Android Debloater (community package list)Community list

Each source answered when this page was checked on 25 October 2026.

Written and checked by the MySystemApp editors. Something wrong or out of date? Request a correction.