How to Remove Bloatware from Android without Rooting via ADB
Android users are sadly all too familiar with carrier bloatware. Whether it’s manufacturer specific apps like Samsung Fitness, or legitimate spyware like Verizon’s AppFlash, manufacturers and carriers don’t seem to get the picture that we don’t want it – they make too much money from selling our personal data to care, regardless.
In many tutorials for uninstalling bloatware, the typical requirement is that your phone is rooted. A few users, like Samsung owners for example, can download paid apsp from Google Play for rootlessly de-bloating their devices – but the mileage may vary with those apps. In this guide, I’m going to show you a recently discovered and absolutely amazing method of removing bloatware from your phone, leaving /system intact, and still allowing you OTA updates from the manufacturer.
Requirements:
- USB drivers for your device
- ADB binary for your OS – see “How to Install ADB on Windows”
- First extract the ADB binary into a folder on your desktop.
- Now you need to enable Developer Mode on your phone, via Settings > About Phone > tap ‘Build Number’ 7 times until Developer Mode is confirmed.
- Go into Developer Options and enable “USB Debugging” for ADB to properly communicate with your device.
- Connect your phone to your PC via USB, and switch the USB mode to “File Transfer MTP”.
- Go into your ADB binary folder on your desktop, hold Shift + Right click and select “Open command prompt here”.
- When the ADB terminal launches, type: ‘adb devices’
- You should receive a prompt on your phone asking for confirmation of the RSA key from ADB, so allow it to continue.
- Now make sure ADB is reading your phone correctly by typing ‘adb devices’ – the terminal should display your device’s serial number.
- If successful, you can now type ‘adb shell’ to create the full ADB connection with your device.
- Now we want to find the list of pre-installed carrier bloatware on your device, so type:
pm list packages | grep <OEM/Carrier/App name>
- Type it without the < > symbols, and change OEM/Carrier/App name to what we’re actually searching for. For example, you would type pm list packages | grep ‘oneplus’ if you have a OnePlus device.
- Now to uninstall a specific package, you type: pm uninstall -k –user 0<name of package>
It’s very important to use the exact commands I specified. We are uninstalling /system apps which can be dangerous, but the method I am showing you does not delete them entirely from your phone – rather what we’re doing is uninstalling them for the current user, because user0 is the default device user. So the apps will remain in /system, but they will not be enabled or launched when you boot up your phone.
This has significant advantages over completely uninstalling /system bloatware, because you will still be able to receive official OTA updates for your device. Furthermore, the apps will return if you perform a factory reset on your device.