How to Uninstall Carrier/OEM Bloatware Without Root Access
More and more carriers and OEMs are locking down their devices and installing various pieces of bloatware onto our smartphones and tablets. Admittedly, bloatware is a rather subjective term and can range from Samsung’s own messaging application to Google’s own music player application to even actual spyware like DT Ignite. Because many of our phones and tablets are locked down, it can be difficult to uninstall or even disable some of these pre-installed system applications.
We generally see smartphones and tablets setup this way because the OEM or the carrier wants to maintain control of the devices they sell. Sometimes they get paid for each application they pre-install on the smartphones they sell. Then there are times when they can even make more money from the diagnostic and usage data these applications can collect on your phone. At the end of the day though, carriers and OEMs do this for both additional revenue and control of the platform.
There are some debloater applications in the Play Store for certain OEMs, which is nice, and there are also some dedicated XDA community members here that put together tools which can help get rid of these as well. It’s rare to see a universal solution for this task, though, and today’s guide will walk you through how to manually uninstall these system applications without root access. All you need is a few simple ADB commands in a command prompt.
Guide – Uninstall Any System App
Video tutorial by TK
- Install the USB drivers for your device (Google has a list of some universal USB drivers here)
- Download the ADB binary for your particular OS (Windows, Mac, Linux)
- Extract the zip file into a folder that you can quickly access.
- On your phone, go to Settings and tap on About Phone. Find the Build Number and tap on it 7 times to enable Developer Options.
- Now enter Developer Options and find USB Debugging. Enable it.
- Plug your phone into the computer and change it from “charge only” mode to “file transfer (MTP)” mode.
- On your computer, browse to the directory where you extracted the ADB binary.
- Launch a Command Prompt in your ADB folder. For Windows users, this can be done by holding Shift and Right-clicking then selecting the “open command prompt here” option.
- Once you’re in the command prompt/terminal, enter the following command:
- You will see that the system is starting the ADB daemon. If this is your first time running ADB, you will see a prompt on your phone asking you to authorize a connection with the computer. Grant it.
- Now if you re-run the adb devices command, the terminal will print the serial number of your device. If so, then you’re ready to move on.
- Enter the following command:
- Execute the “
pm list packages | grep '<OEM/Carrier/App Name>'” command (without quotes) to find package names.
- ALTERNATIVELY: You can also easily find the package name of an installed system application by installing the App Inspector app on your phone. I prefer doing it this way so you know exactly what the app name is of the application that you are about to uninstall.
- Execute the command like so: “
pm uninstall -k --user 0 <name of package>” command (without quotes) to uninstall a specific system application.
As a word of warning, uninstalling system applications can be dangerous so please know what you’re getting rid of before you complete these steps. Failing to do so could result in your phone becoming unusable until you perform a factory reset. Of course, by removing any given system application, another system application that may depend on it may also break so be careful what you remove. But if something does go wrong, you can always perform a factory reset to bring things back to the way they were. However, there’s an even easier way to bring back an app you uninstalled, here’s how:
How to Re-Install an Uninstalled App
- Open a command prompt or terminal window, and enter the following command:
adb shell cmd package install-existing <name of package>
This works because applications truly aren’t being fully uninstalled from the device, they are just being uninstalled for the current user (user 0 is the default/main user of the phone). That’s why, if you omit the “–user 0” and “-k” part of the uninstall command, the command won’t work. These two flags respectively specify that the system app will only be uninstalled for the current user (and not all users, which is something that requires root access) and that the cache/data of the system application will be preserved (which can’t be removed without root access). Therefore, even if you “uninstall” a system application using this method, you can still receive official OTA updates from your carrier or OEM.
Using this method, my editor was able to uninstall the Huawei HiVoice application that came pre-installed on his Chinese Honor Note 8 smartphone, thus allowing him to instead default to Google Assistant when long-pressing the home button. Other users have been reporting that this method allowed them to uninstall the application responsible for serving advertisements on their Amazon Prime exclusive Moto G smartphones.
This article was updated on 2/24/19 at 2:44PM ET to add a new way to restore uninstalled applications, brought to our attention by XDA Senior Member Vordx.