如何使用adb卸载所有第3方用户应用程序?

问题描述 投票:0回答:4

我正在尝试创建一个脚本,通过

adb
在一次批量操作中检索和卸载所有用户应用程序。有谁知道我怎样才能做到这一点?

我目前可以通过

列出所有第 3 方应用程序
adb shell pm list packages -3

我可以以某种方式将生成的软件包列表定向到

adb
中的卸载命令吗?

android adb xargs
4个回答
23
投票

尝试:

adb shell pm 列出软件包-3 |切 -d':' -f2 | t'
' ' | | xargs -r -n1 -t adb 卸载
  • 第一部分是获取第 3 方应用程序包名称
  • 第二部分是使用分隔符分割包名称
    :
  • 第三部分是用空格代替回车(有时在linux机器上会出现问题,尝试删除这部分并检查你是否遇到它)
  • 最后一张是一一卸载的
      如果没有安装第三方应用程序,
    • r
      选项将阻止 xargs 运行命令
    • n1
      选项是一次将一个结果值作为参数传递给命令
    • t
      用于打印正在执行的命令)

希望有帮助!!!


2
投票

问题出在哪里?可以用这一行来完成:

adb shell "pm list packages -3 | cut -c9- | xargs pm uninstall"

0
投票

MacOS 13.5.2

adb 设备
所附设备列表

068162518J104381    device
adb-068162518J104381-uQtyOp._adb-tls-connect._tcp.  device

adb -s 068162518J104381 外壳

TECNO-CG7n:下午列出软件包-3

package:org.iggymedia.periodtracker
package:com.alibaba.aliexpresshd

TECNO-CG7n:pm 列出软件包-3 |切-c9- | xargs -r -n1 -t pm 卸载

pm uninstall org.iggymedia.periodtracker 
Success

pm uninstall com.alibaba.aliexpresshd 
Success

0
投票

Ramraj的回答, 我还为 Windows 创建了命令:

adb shell "pm list packages -3 | cut -d':' -f2 | tr '\r' ' ' | xargs -r -n1 -t pm uninstall -k"
© www.soinside.com 2019 - 2024. All rights reserved.