Following are the steps that I took to uninstall bloatware from my Samsung M30s phone without root.
- Phone (I use Samsung Galaxy M30s)
- PC (I used Linux)
- Data cable (I use Type C)
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.
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
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
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
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.