如何从设备上的命令行卸载 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 &lt;package_name&gt;

【讨论】:

【参考方案3】:

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

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

这将找到已卸载包的.apkpm dump &lt;package name&gt;,并搜索以path: 开头的行以获得.apk 的路径(请注意,pm path &lt;package&gt; 不适用于卸载的应用程序)并使用pm install --user 0 安装它(请注意,没有--user 参数的pm install 将不起作用)。

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

【讨论】:

这是一个非常有用但被严重低估的答案。【参考方案4】:

从设备中删除任何应用的简单命令,试试这个:

 pm 卸载 --user 0 

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

【讨论】:

使用超级用户命令强制卸载预装应用。【参考方案5】:

强制卸载系统用户应用:

用途:

adb shell pm uninstall --user 0 <package_name>

【讨论】:

是的,大多数设备为主要用户安装应用程序和卸载命令而不指定用户失败。这就是我在里面用力提到这个词的原因。【参考方案6】:

某些应用程序无法卸载,所以下面的命令给出了错误:

adb shell pm 卸载 package_name
失败 [DE​​LETE_FAILED_INTERNAL_ERROR] 

尝试运行禁用命令,

adb shell pm disable package_namepackage_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] &lt;package_name&gt; 会起作用。 @RaghavSood 你不应该做rm &lt;path to apk&gt; 的事情,因为它会给系统留下很多垃圾,而且这些垃圾仍然会占用存储空间(例如,缓存的apk),如果没有就很难找到系统知识(分散在文件系统周围的东西)。如果你知道自己在做什么,那为什么不直接rm apkfile 不会有任何好处。 感谢您的回答。 .这个对我有用: String cmd = "su -c pm uninstall " + packageName;Runtime.getRuntime().exec(cmd); ... !!! @Frxstrem 如何更新应用程序请给 adb cmets 先生

以上是关于如何从设备上的命令行卸载 android 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何从命令行获取设备的 iOS 版本?

Android Studio Terminal(命令)安装apk

从真实设备卸载 Android Wear 应用程序

从设备上的命令行安装并启动 ipa 签名以进行临时分发

如何使用android sdk tools

ios命令行安装卸载应用