I can uninstall an app on the device from my computer using adb uninstall
,
but I\'d like to do the same with a script on the actual device.
To forcefully uninstall the system user apps:
Use:
adb shell pm uninstall --user 0 <package_name>
Simple command to remove any app from the device, try this:
pm uninstall --user 0
This command will forcefully remove that app from the device.
I had fail on uninstall some system launchers (for example NovaLauncher) In this case I recommend to use "disable" instead "uninstall":
pm disable <package_name>
In result you hide this system launcher (sys app) from list of launchers when you have a few launchers
Some Apps can't be uninstalled,so below command gives the error:
adb shell pm uninstall package_name Failure [DELETE_FAILED_INTERNAL_ERROR]
Try to run disable command instead,
adb shell pm disable package_name Package package_name new state: disabled
adb shell pm uninstall *your.package.name*
Did the trick for me.
And if you want to re-install back package removed for a user (i.e. pm uninstall --user 0
), without root:
pm install --user 0 $(pm dump <package name> | awk '/path/{ print $2 }')
This will locate .apk
of the uninstalled package: pm dump <package name>
and search for a line starting with path:
to obtain path to the .apk
(note that pm path <package>
won't work for an uninstalled app) and install it using pm install --user 0
(note that pm install
without --user
argument wont' work).
This works for any system app, this is a good alternative to pm disable-user <package>
which still allows you to easily enable app back via Settings.
For example, you could uninstall Play Store (pm uninstall --user 0 com.android.vending
) and have no way to enable/install any application on default non-rooted device without access to adb
or pm
.