How to Completely Remove an Android App Using ADB"

How to Completely Remove an Android App Using ADB

If you are developing an Android or Flutter app, you may sometimes face a strange problem.

You install and test the app directly from Android Studio, VS Code, or Flutter using:

flutter run

Later, when you try to install the same app from the Google Play Store, the installation may fail.

One common reason is a signature mismatch.

The debug version installed from your computer is normally signed using a debug signing key. The version downloaded from the Play Store is signed using your release key or Google Play App Signing.

Android sees both apps as having the same package name but different signatures and may refuse to install the Play Store version over the debug version.

The easiest solution is to completely uninstall the debug version using ADB.


What You Need

You need:

  • A computer with ADB installed
  • USB debugging enabled on your Android phone
  • Your phone connected through USB
  • The package name or application ID of the app

First, check whether ADB can see your phone.

Run:

adb devices

You should see something similar to:

List of devices attached
1234567890    device

If you see unauthorized, check your phone. Android should show an Allow USB debugging popup.

Tap Allow.


Step 1: Find the Package Name of the App

Before uninstalling the app, you need to know its Android package name.

It normally looks something like:

com.example.myapp

or:

org.example.application

There are several ways to find it.

Method 1: Find the Package Using ADB

If you know part of the app or developer name, run:

adb shell pm list packages

This displays all installed Android packages.

The list can be very long, so it is easier to filter it.

On Linux or macOS:

adb shell pm list packages | grep example

Replace example with part of your app name or package name.

For example:

adb shell pm list packages | grep calculator

You may get:

package:com.example.calculator

The package ID is:

com.example.calculator

Method 2: Find the App ID in a Flutter Project

If this is your own Flutter project, open:

android/app/build.gradle

or, on newer Flutter projects:

android/app/build.gradle.kts

Look for:

applicationId "com.example.myapp"

or with Kotlin Gradle:

applicationId = "com.example.myapp"

That is normally the package name you need for ADB commands.


Method 3: Search Installed Packages

You can also search using:

adb shell pm list packages | grep myapp

For example, if your application is called My Notes, try keywords related to the app or developer name.

Once you know the package ID, you can continue.

For this article, I will use:

com.example.myapp

as an example.

Replace it with your actual package name in every command below.


Step 2: Completely Uninstall the App Using ADB

Run:

adb uninstall com.example.myapp

If everything works, ADB should return:

Success

This removes the installed application from Android.

In most cases, it also removes the app’s private data stored under Android’s internal app-data directory.

Now try installing the app again from the Google Play Store.


Step 3: Check Whether the Package Is Really Removed

You can verify that the package is gone.

Run:

adb shell pm list packages | grep com.example.myapp

If nothing is returned, the package is no longer installed.

You can also run:

adb shell pm path com.example.myapp

If the app has been removed, Android should not return an APK path.

When the application is still installed, you may see something similar to:

package:/data/app/~~xxxxx/com.example.myapp-xxxxx/base.apk

If there is no package path, the app has been removed.


Step 4: Remove Possible External App Folders

Normally, adb uninstall is enough.

However, some applications may create files inside Android’s shared or external storage.

You can try removing these folders too:

adb shell rm -rf /sdcard/Android/data/com.example.myapp

Also check:

adb shell rm -rf /sdcard/Android/media/com.example.myapp

And:

adb shell rm -rf /sdcard/Android/obb/com.example.myapp

Again, replace:

com.example.myapp

with your real package ID.

On newer Android versions, access to some /Android/data/ folders is restricted.

You may therefore get a permission error for some of these commands.

That is normally not a problem. The most important command is still:

adb uninstall com.example.myapp

Why Does This Happen With Flutter Debug Apps?

When you run:

flutter run

Flutter builds a debug APK.

That application is normally signed using the Android debug keystore.

The Play Store version is signed differently.

For example:

Flutter Debug Build
        ↓
Debug Signing Key
        ↓
com.example.myapp


Google Play Version
        ↓
Play App Signing / Release Key
        ↓
com.example.myapp

Both apps have the same package ID:

com.example.myapp

but they have different signing certificates.

Android normally does not allow an app signed by one key to directly replace an app signed with another key.

Uninstalling the debug version solves this because there is no existing signature to compare when the Play Store installs the application again.


What If adb uninstall Fails?

Sometimes you may see something like:

Failure

or another package-manager error.

One possible reason is that the app exists under another Android user or profile.

Android supports multiple users, guest accounts, secure folders, and work profiles.

First, list the Android users:

adb shell pm list users

You may see something like:

UserInfo{0:Owner:...}
UserInfo{10:Work profile:...}

User 0 is normally the main Android user.

Check whether the package exists for user 0:

adb shell pm list packages --user 0 | grep com.example.myapp

If it exists, remove it using:

adb shell pm uninstall --user 0 com.example.myapp

Check a Work Profile or Second User

Suppose:

adb shell pm list users

shows another user with ID 10.

Check that user:

adb shell pm list packages --user 10 | grep com.example.myapp

If the package appears, remove it:

adb shell pm uninstall --user 10 com.example.myapp

Replace 10 with the actual user ID shown on your device.


Optional: Reboot the Phone

After removing the debug app, you normally do not need to reboot.

But if the Play Store still behaves strangely, you can reboot the phone using:

adb reboot

After the phone starts again, open the Google Play Store and install the app.


Quick Command Summary

First check the phone:

adb devices

Find the package:

adb shell pm list packages

Or search for it:

adb shell pm list packages | grep example

Uninstall it:

adb uninstall com.example.myapp

Verify removal:

adb shell pm list packages | grep com.example.myapp

Check whether an APK path still exists:

adb shell pm path com.example.myapp

Optional external storage cleanup:

adb shell rm -rf /sdcard/Android/data/com.example.myapp
adb shell rm -rf /sdcard/Android/media/com.example.myapp
adb shell rm -rf /sdcard/Android/obb/com.example.myapp

Check Android users:

adb shell pm list users

Remove the app from a particular user:

adb shell pm uninstall --user 0 com.example.myapp

Important Warning

Be careful when using:

rm -rf

Always double-check the package name before running the command.

For example, do not accidentally modify the command so that it points to a broader Android directory.

Only remove the specific application’s folder:

/sdcard/Android/data/YOUR.PACKAGE.NAME

Conclusion

If you regularly test Android or Flutter apps directly from your computer, you may occasionally end up with a debug-signed application installed on your phone.

When the Play Store version uses the same package name but a different signing certificate, Android may refuse to install or update it.

In most cases, the solution is simply:

adb uninstall YOUR.PACKAGE.NAME

Then verify that the package is gone and install the application again from Google Play.

For Flutter developers, this is a useful ADB command to remember whenever a locally installed debug build conflicts with the published Play Store version.

Leave a Comment

Your email address will not be published. Required fields are marked *