Uninstall bloatware from Android

My Samsung Galaxy M30s comes with a lot of bloatware and during each updates, Samsung intorduces new bloatware. Since I wanted to remove them without root, I use this method.

Uninstall bloatware from Android

Following are the steps that I took to uninstall bloatware from my Samsung M30s phone without root.

Requirements

  1. Phone (I use Samsung Galaxy M30s)
  2. PC (I used Linux)
  3. Data cable (I use Type C)

Steps

Connect the phone to the PC

Connect the phone to the PC with the data cable and allow or deny the storage access based on your need since we won't be using that for this purpose.

Enable USB Debugging

Once it is connected, go to your settings and take the developers options and enable the USB Debugging option.

If you don't see the developer options, you will have to enabled that by going to Settings -> About phone -> Software information and tapping the Build number 5 times.

When you enable USB debugging, it might show a confirmation saying that it is for development purpose and all, you can just tap OK.

Install ADB

Use your favourite package manager to install the adb package. I use PopOS which is an Ubuntu based (Debian) OS and it has apt.

sudo apt install adb

Android Debug Bridge is a CLI tool that we use to communicate with the device. It provides a shell interface which we will use in the following steps to run commands.

Authorise the PC

Once ADB is installed run the following command to check if your device is listed

adb devices

Running this command will give the following output

List of devices attached
W5TP428P3MS	unauthorised

You will now be able to see a prompt on your phone asking you if you want to authorise the PC as an USB debugging device. Confirm that and when you run the command again, you should see the following output.

List of devices attached
W5TP428P3MS	device

List the packages

Now we can start running the commands on the ADB shell and it will run inside the device.

For opening the shell, assuming you only have a single device connected, you can run the following command

adb shell

This will give you the following prompt

vignesh@vignesh-asus-pop-os:~$ adb shell 
m30s:/ $

Now you can list the installed packages by running the following command

pm list packages

This will list he packages as follows

vignesh@vignesh-asus-pop-os:~$ adb shell 
m30s:/ $ pm list packages
package:com.samsung.android.provider.filterprovider
package:com.google.android.apps.subscriptions.red
package:com.sec.android.app.DataCreate
package:com.skype.raider
...
...
...

You can use the grep command to find the package of your interest quickly

pm list packages | grep skype

I wanted to remove the Samsung Pay Mini application and hence my grep keyword was "pay", but here I am using Skype as an example

This showed me the exact package name of that application

m30s:/ $ pm list packages | grep skype
package:com.skype.raider

Uninstall the bloatware

Now that you got the package name, you can uninstall the package with the following command

pm uninstall -k com.skype.raider

If this was successful, it will show success, else it will show failed.

Usually it fails because the app you are trying to uninstall would be a system app. So you can only uninstall it for your own user since we don't have the root access.

This is good because if you uninstall an essentail app like an API or OS package, you can easily fix your phone by resetting it.

To uninstall a system app, you have to specify the user option as follows

pm uninstall --user 0 -k com.skype.raider

Conclusion

You should be able to uninstall all the bloatware with this method without root. Just make sure you don't delete any necessary packages. I once made that mistake and had to reset my phone.

Disclaimer: I am not responsible if you damage your phone doing the above steps. It worked for me and hence I have put this blog post for educational purpose.