如何从设备上的命令行卸载 android 应用程序
Posted
技术标签:
【中文标题】如何从设备上的命令行卸载 android 应用程序【英文标题】:How to uninstall an android app from command line on the device 【发布时间】:2013-07-07 13:30:33 【问题描述】:我可以使用adb uninstall <package_name>
从我的计算机上卸载设备上的应用程序,
但我想对实际设备上的脚本做同样的事情。
我也尝试使用am
运行android.intent.action.DELETE
意图,但它会提示用户确认。
鉴于设备已root,是否可以在设备上运行命令以卸载应用程序而无需用户操作/确认?
【问题讨论】:
我认为这只是Android Enthusiasts 的主题。关于基本安装和卸载的问题在 StackExchange 上已被视为题外话 【参考方案1】:尝试使用 adb 命令:
adb uninstall <package-name>
确保您的设备已连接
【讨论】:
【参考方案2】:如果您有一个 root 的 android 设备,那么您可以轻松地从您的设备上卸载预安装的应用程序。我的 OnePlus 设备植根于 Magisk 管理器。
对 Android 设备进行 Root 后,您可以获得设备的管理员权限,因此您可以轻松安装或卸载任何系统应用程序。
但是,命令行方法在大多数情况下也可以使用。我已经在 MIUI 设备上测试了 adb 方法来删除臃肿软件。
你可以关注stackoverflow read this thread....
ADB 命令:pm uninstall -k <package_name>
【讨论】:
【参考方案3】:如果你想重新安装删除的包为用户(即pm uninstall --user 0
),没有root:
pm install --user 0 $(pm dump <package name> | awk '/path/ print $2 ')
这将找到已卸载包的.apk
:pm dump <package name>
,并搜索以path:
开头的行以获得.apk
的路径(请注意,pm path <package>
不适用于卸载的应用程序)并使用pm install --user 0
安装它(请注意,没有--user
参数的pm install
将不起作用)。
这适用于任何系统应用程序,这是pm disable-user <package>
的一个很好的替代方案,它仍然允许您通过设置轻松启用应用程序。
例如,您可以卸载 Play 商店 (pm uninstall --user 0 com.android.vending
),并且无法在没有访问 adb
或 pm
的情况下在默认的非 root 设备上启用/安装任何应用程序。
【讨论】:
这是一个非常有用但被严重低估的答案。【参考方案4】:从设备中删除任何应用的简单命令,试试这个:
pm 卸载 --user 0
此命令将从设备中强制删除该应用程序。
【讨论】:
使用超级用户命令强制卸载预装应用。【参考方案5】:强制卸载系统用户应用:
用途:
adb shell pm uninstall --user 0 <package_name>
【讨论】:
是的,大多数设备为主要用户安装应用程序和卸载命令而不指定用户失败。这就是我在里面用力提到这个词的原因。【参考方案6】:某些应用程序无法卸载,所以下面的命令给出了错误:
adb shell pm 卸载 package_name 失败 [DELETE_FAILED_INTERNAL_ERROR]
尝试运行禁用命令,
adb shell pm disable package_name 包 package_name 新状态:禁用
【讨论】:
【参考方案7】:我在卸载某些系统启动器时失败(例如 NovaLauncher) 在这种情况下,我建议使用“禁用”而不是“卸载”:
pm disable <package_name>
结果,当您有几个启动器时,您会从启动器列表中隐藏此系统启动器(系统应用程序)
【讨论】:
【参考方案8】:adb shell pm uninstall *your.package.name*
为我做了诀窍。
【讨论】:
在我的例子中,当我使用*
来描述包名时,我得到了一个java.lang.IllegalArgumentException
。使用双引号【参考方案9】:
尝试使用pm
command:
pm uninstall <package_name>
或
pm uninstall -k <package_name>
-k
标志在包被删除后保留数据和缓存目录。
我自己没有对此进行测试,但我认为这不应显示警告消息。
【讨论】:
谢谢!(+1) 那行得通。如果简单地调用 pm 失败,则根据情况su -c pm uninstall [-k] <package_name>
会起作用。
@RaghavSood 你不应该做rm <path to apk>
的事情,因为它会给系统留下很多垃圾,而且这些垃圾仍然会占用存储空间(例如,缓存的apk),如果没有就很难找到系统知识(分散在文件系统周围的东西)。如果你知道自己在做什么,那为什么不直接rm apkfile
不会有任何好处。
感谢您的回答。 .这个对我有用: String cmd = "su -c pm uninstall " + packageName;Runtime.getRuntime().exec(cmd); ... !!!
@Frxstrem 如何更新应用程序请给 adb cmets 先生以上是关于如何从设备上的命令行卸载 android 应用程序的主要内容,如果未能解决你的问题,请参考以下文章