如何从设备上的命令行卸载Android应用程序

问题描述 投票:24回答:6

我可以使用adb uninstall <package_name>从我的计算机上卸载设备上的应用程序,但我想对实际设备上的脚本执行相同的操作。

我也尝试使用android.intent.action.DELETE运行am意图,但它会提示用户进行确认。

鉴于设备已植根,是否可以在设备上运行命令以卸载应用程序而无需用户操作/确认?

android command-line root uninstall
6个回答
40
投票

尝试使用pm command

pm uninstall <package_name>

要么

pm uninstall -k <package_name>

删除包后,-k标志会保留数据和缓存目录。

我自己没有测试过,但我不认为这应该显示警告信息。


11
投票

adb shell pm uninstall *your.package.name*

对我有把戏。


3
投票

要强制卸载系统用户应用程序:

使用:

adb shell pm uninstall --user 0 <package_name>

2
投票

我卸载了一些系统启动器失败了(例如NovaLauncher)在这种情况下我建议使用“禁用”而不是“卸载”:

pm disable <package_name>

结果,当你有几个启动器时,你可以从启动器列表中隐藏这个系统启动器(sys app)


1
投票

某些应用无法卸载,因此在命令下方会出现错误:

adb shell pm uninstall package_name
Failure [DELETE_FAILED_INTERNAL_ERROR]  

尝试运行disable命令,

adb shell pm disable package_name
Package package_name new state: disabled 

0
投票

从设备中删除任何应用程序的简单命令,请尝试以下操作:

 pm uninstall --user 0  

此命令将强制从设备中删除该应用程序。


0
投票

如果你想重新安装为用户删除的包(即pm uninstall --user 0),没有root:

pm install --user 0 $(pm dump <package name> | awk '/path/{ print $2 }')

这将找到卸载的软件包的.apkpm dump <package name>并搜索以path:开头的行以获取.apk的路径(请注意pm path <package>不适用于已卸载的应用程序)并使用pm install --user 0安装它(注意pm install没有--user参数不会'工作)。

这适用于任何系统应用程序,这是pm disable-user <package>的一个很好的替代品,它仍然允许您通过设置轻松启用应用程序。例如,您可以卸载Play商店(pm uninstall --user 0 com.android.vending)并且无法在默认的非root设备上启用/安装任何应用程序,而无法访问adbpm

© www.soinside.com 2019 - 2024. All rights reserved.