Removing Bundled Apps on Android via ADB

August 26, 2019

As you may be aware, Android’s core OS is open source, but device manufacturers make their own tweaks and put their tweaked versions of Android on their phones. These flavours of Android (like Linux distribution flavours) bundle certain apps alongside their UI tweaks, some of which you can remove — and some of which you can only disable.

I am an iOS guy, but I've been known to carry an Android device. I own last year’s Motorola Moto G6, for example, a sub €200 smartphone that allows me to get a feel for stock Android, and have an alternative for my main phone should the need or desire arise. On my Moto G6, some of those bundled, forced apps are LinkedIn and Outlook.

There is a way, assuming you have access to Android’s debugging bridge and developer mode enabled on your phone, to remove packages (apps) for your user account which does more than just disabling them. It actually removes them for a specific user account. Oh, and you don’t need to root your device, or flash any custom ROM in order to be able to do this.

Caveats

At this point, you might be wondering — are there any caveats here? There’s a few.

  1. Since these packages are part of the system image, if you factory reset your device the apps will be there again.
  2. The application might have some hooks and/or integrations into existing functionality of your phone. This could lead to stability issues. (I don’t expect issues if you’re just removing Facebook or LinkedIn, however.)
  3. The application is only removed for the user you specify. If you have multiple users on your phone, you may need to run the removal command for each user.

Using Android Debug Bridge (adb) & Android's Package Manager (pm)

The first steps are to enable the Developer Mode and enable USB debugging. This requires you know the pin code or password of the device, and to trust the device you’re connecting after plugging it into your computer.

You’ll also need to install Android Debug Bridge (adb), and make sure you have enabled USB Debugging in Developer Mode's settings. In a terminal on your computer, you can then remove any packages with the following workflow:

Step 1: Opening a shell

adb shell

This opens a shell session to the connected device. It's like ssh-ing into your phone.

Step 2: Finding out what packages are installed

pm list packages

This shows you a list of installed packages. You can look through this list to see if you see a package you wish to remove.

Step 3: Uninstalling the package

pm uninstall -k --user 0 com.linkedin.android

This will remove the package (app) for your current user and installation. It will say Success in the terminal if you've done this correctly.

Like I’ve said before, it is possible to get these back by installing the apps via the Play Store again, installing an .apk, or by factory resetting your device. Some system updates may also restore these apps.

As for me, this is how I was able to remove Microsoft Outlook and LinkedIn from my Moto G6 without needing to settle for just disabling the apps. I wanted a super minimal Android setup with no extra apps, so this is great.