adb是什么安卓工具?

Android Debug Bridge (adb) 是一个命令行工具,充当电脑与安卓设备或模拟器之间的通信桥梁,开发者常用它进行调试、安装应用、管理设备及传输文件等操作。

在开始之前,请务必理解,使用 adb 删除应用程序(尤其是系统应用)是一项高级操作,存在风险,操作不当可能导致设备功能异常、系统不稳定甚至无法开机(俗称“变砖”)。强烈建议普通用户优先通过设备的“设置”>“应用”进行常规卸载。 本指南仅适用于有特定需求且了解风险的用户。

adb (Android Debug Bridge) 是一个功能强大的命令行工具,它是 Android SDK(软件开发工具包)的一部分,它允许你通过 USB 连接(或网络)从电脑与 Android 设备进行通信,执行各种调试和管理任务,包括安装和卸载应用程序。

为什么需要用 adb 删除程序?

通过设备设置卸载应用是最简单安全的方法,但在某些情况下,adb 卸载是必要的:

  1. 卸载顽固的预装应用/系统应用 (Bloatware): 很多设备预装了用户无法通过常规方式卸载的运营商或厂商应用。adb 可以移除这些应用(需谨慎!)。
  2. 卸载导致设备无法正常操作的应用: 如果某个恶意应用或故障应用导致设备卡在启动界面、设置崩溃等,无法进入系统界面进行卸载,adb 可能是解决方案。
  3. 批量卸载应用: 对于开发者或高级用户,可以通过脚本结合 adb 命令批量卸载应用。
  4. 卸载设备所有者/配置文件所有者应用: 在企业或教育环境中管理的设备,可能需要 adb 来移除特定配置的应用。
  5. 卸载残留应用数据: 虽然主要用 adb shell pm uninstall 卸载应用本身,但 adb shell 命令可以访问并清理更深层的残留数据(需 root 权限更彻底)。

准备工作:

  1. 在电脑上安装 ADB 工具:
    • 下载并安装 Android SDK Platform-Tools,这是 Google 官方提供的工具包,包含 adbfastboot
    • 最便捷的方式:访问 Android 开发者网站 下载对应你操作系统(Windows, macOS, Linux)的 Platform-Tools 包。
    • 解压下载的 ZIP 文件到一个容易找到的文件夹(C:\platform-tools~/platform-tools)。
  2. 在 Android 设备上启用 USB 调试:
    • 打开设备的“设置”。
    • 找到“关于手机”或“关于设备”(通常在设置最底部)。
    • 连续点击“版本号”7次,直到看到“您已处于开发者模式!”的提示。
    • 返回设置主菜单或进入“系统”>“高级”,现在你应该能看到“开发者选项”。
    • 进入“开发者选项”。
    • 找到“USB 调试”选项并启用它。
    • (重要) 首次连接时,当用 USB 线将设备连接到电脑,设备屏幕上会弹出“允许 USB 调试吗?”的提示框。勾选“始终允许使用这台计算机进行调试”,然后点击“确定”,这是建立信任关系的关键一步。
  3. 连接设备: 使用 USB 数据线将 Android 设备连接到电脑,确保数据线质量良好且能传输数据(不仅仅是充电)。
  4. 打开命令提示符/终端:
    • Windows: 打开之前解压 platform-tools 的文件夹,在地址栏输入 cmd 然后按回车,或者按住 Shift 键 + 鼠标右键点击文件夹空白处,选择“在此处打开命令窗口”或“在此处打开 PowerShell 窗口”。
    • macOS/Linux: 打开“终端”(Terminal),使用 cd 命令导航到你解压 platform-tools 的目录(cd ~/platform-tools)。

核心 adb 卸载命令:

卸载应用的核心命令是 adb shell pm uninstallpm (Package Manager) 是 Android 系统管理应用包的工具。

步骤详解:

  1. 验证连接:

    • 在打开的命令行窗口(位于 platform-tools 目录)中,输入以下命令并按回车:
      adb devices
    • 如果一切设置正确,你会看到类似以下的输出:
      List of devices attached
      XXXXXXXXXXXXXXXX    device
    • 这表示你的设备已被 adb 识别,如果只看到 List of devices attached 下面没有设备,或者显示 unauthorized,请检查:
      • USB 线是否连接好且支持数据传输。
      • USB 调试是否已启用。
      • 设备上是否弹出了“允许 USB 调试”的提示并已点击“确定”和勾选“始终允许”。
      • 电脑上是否安装了正确的 USB 驱动程序(对于某些品牌设备可能需要单独安装)。
  2. 查找目标应用的包名 (Package Name):

    • 每个 Android 应用都有一个唯一的包名(com.whatsapp, com.facebook.katana)。adb 卸载需要知道这个包名,而不是你在桌面上看到的 App 名称。
    • 使用 adb shell pm list packages (推荐):
      • 在命令行输入:
        adb shell pm list packages
      • 这会列出设备上安装的所有应用的包名,列表可能很长。
      • 要查找特定应用,可以结合 grep (macOS/Linux) 或 findstr (Windows) 进行过滤,你想找名字里带“facebook”的应用:
        • Windows:
          adb shell pm list packages | findstr "facebook"
        • macOS/Linux:
          adb shell pm list packages | grep "facebook"
      • 输出可能类似:package:com.facebook.katanacom.facebook.katana Facebook 主应用的包名。
    • 使用第三方 App (如 App Inspector, Package Name Viewer 2.0): 在 Google Play 商店搜索并安装这类应用,它们可以直观地显示所有应用的包名。
    • 通过应用商店链接 (网页版): 在 Google Play 商店网页版打开该应用的页面,查看 URL,包名通常在 id= 后面。https://play.google.com/store/apps/details?id=com.whatsapp 中的 com.whatsapp 就是包名。
  3. 执行卸载命令:

    • 一旦你确定了要卸载应用的精确包名,使用以下命令进行卸载:
      adb shell pm uninstall -k --user 0 <package_name>
    • <package_name> 替换为你要卸载的应用的实际包名(adb shell pm uninstall -k --user 0 com.facebook.katana)。
    • 命令参数解释:
      • pm uninstall: 调用包管理器的卸载功能。
      • -k: (可选) 保留应用的数据和缓存目录。如果不加 -k,应用及其数据都会被删除。 通常建议不加 -k 以彻底清除,如果你只是想禁用但保留数据(比如测试),可以加 -k
      • --user 0: 非常重要! 这指定卸载操作针对的是设备的主用户(通常是机主),在大多数非多用户场景下,必须加上这个参数才能成功卸载用户应用,对于系统应用,它通常会将应用从当前用户(0)中移除,而不是从整个系统中物理删除(这通常需要 root 权限),这足以让应用在主用户空间消失且不再运行,达到“卸载”效果。
    • 按下回车执行命令。
    • 成功卸载的输出是:
      Success
    • 如果包名错误或应用无法卸载(如核心系统应用),你会看到 Failure 或具体的错误信息。

卸载系统应用/预装应用 (Bloatware):

  • 对于预装的非核心系统应用(厂商或运营商添加的 App),使用上面相同的命令 adb shell pm uninstall -k --user 0 <package_name> 通常就能将它们从你的用户空间中移除,使其不再显示、运行或更新,效果等同于卸载。
  • 极度重要警告:
    • 切勿随意卸载你不认识的包名! 卸载关键系统组件(如 com.android.phone, com.android.systemui 等)会导致设备立即崩溃、无法启动或基本功能(打电话、锁屏、状态栏)失效,可能变砖!
    • 在卸载任何系统应用前,务必通过搜索确认该包名的具体作用,可以在网上搜索“<package_name> 是什么”或“<package_name> 能卸载吗”。
    • 操作有风险,后果自负,强烈建议备份重要数据。

卸载多用户环境中的应用:

如果你的设备启用了多用户(或工作资料),你需要指定目标用户 ID,首先用 adb shell pm list users 查看用户列表和 ID,然后卸载命令变为:

adb shell pm uninstall --user <user_id> <package_name>

为用户 ID 10 卸载一个应用:adb shell pm uninstall --user 10 com.example.app

常见问题 (FAQ):

  • Q: 执行 adb devices 后没看到我的设备/显示 unauthorized
    • A: 检查 USB 调试是否开启;检查 USB 线;检查设备是否弹出授权提示并点击“允许”和“始终允许”;尝试重启 adb 服务 (adb kill-server adb start-server);检查电脑 USB 驱动。
  • Q: 卸载命令返回 Failure [DELETE_FAILED_DEVICE_POLICY_MANAGER]

    A: 该应用可能是设备管理员应用,先去“设置”>“安全”>“设备管理员”(路径可能略有不同)中取消其激活,然后再尝试卸载。

  • Q: 卸载命令返回 Failure [DELETE_FAILED_INTERNAL_ERROR] 或其他错误?

    A: 可能包名错误;应用是核心不可卸载的系统应用;或者当前用户没有权限,仔细检查包名,确认应用是否可卸载。

  • Q: 卸载后应用图标还在桌面?

    A: 重启设备通常能解决,桌面图标缓存可能需要刷新。

  • Q: 卸载系统应用后还能恢复吗?
    • A: 使用 adb shell pm uninstall --user 0 的方式卸载系统应用,通常可以通过恢复出厂设置来还原,物理删除系统应用(需要 root)则恢复更复杂,可能需要刷机。
  • Q: 如何彻底删除应用数据(即使应用已常规卸载)?
    • A: adb uninstall 主要卸载应用本身,要深入删除残留数据(通常在 /data/data/<package_name>/sdcard/Android/data/<package_name>),通常需要 root 权限 并使用 adb shell 进入设备命令行手动删除 (rm -rf /data/data/<package_name>)。操作极其危险,仅限专家。 常规恢复出厂设置也能清除所有用户数据。

adb shell pm uninstall -k --user 0 <package_name> 是使用 ADB 卸载 Android 应用程序(包括禁用预装应用)的核心命令,关键在于准确获取应用的包名谨慎操作,尤其是对系统应用,务必理解风险,优先使用系统设置进行常规卸载,此方法无需 root 权限,但移除系统应用的效果是用户层面的禁用。

免责声明: 使用 adb 命令修改系统存在风险,本文提供的信息仅供参考,操作不当造成的设备损坏或数据丢失,作者及发布平台概不负责,请自行承担风险,并在操作前备份重要数据。

引用说明:

  • 本文所述 adbpm 命令的功能和参数基于 Android 开源项目 (AOSP) 官方文档和开发者资源。
  • Android Debug Bridge (adb) 官方文档: https://developer.android.com/studio/command-line/adb (间接参考,具体 pm 命令细节通常在 AOSP 源代码或 Shell 命令文档中更详细)。
  • Android Package Manager (pm) 命令参考可通过在设备 adb shell 中运行 pm helppm uninstall --help 获取。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6733.html

(0)
酷番叔酷番叔
上一篇 2025年7月8日 21:01
下一篇 2025年7月8日 21:26

相关推荐

  • fdisk命令如何快速掌握分区?

    fdisk是什么?fdisk是Linux系统中磁盘分区管理的核心命令行工具,用于创建、删除、调整和查看硬盘分区表,它直接操作磁盘的MBR(主引导记录)或GPT(GUID分区表),适用于机械硬盘、SSD、U盘等存储设备,⚠️ 重要警告(操作前必读)数据备份:分区操作可能导致数据丢失,操作前务必备份重要文件,谨慎选……

    2025年6月28日
    1300
  • 安卓设备如何执行Shell命令?

    使用前提基础环境ADB工具(Android Debug Bridge):电脑端控制安卓设备的官方工具(需开启USB调试),终端模拟器App:如Termux、Terminal Emulator(设备端直接操作),Root权限:部分命令(如修改系统文件)需Root,非必需但扩展功能,开启USB调试进入手机「设置……

    2天前
    300
  • 为什么Linux命令行如此重要?

    在Linux系统中运行命令行操作是日常管理和开发的核心技能,虽然Windows用户习惯使用cmd(命令提示符),但Linux通过终端(Terminal)和Shell(如Bash、Zsh)实现类似功能,且功能更强大,以下是详细操作指南:终端(Terminal):用户输入命令的图形界面窗口(类似Windows的cm……

    6天前
    900
  • 命令行配置危险?误操作恐致网络中断!

    命令行配置(CLI)操作风险高,需专业网络知识,错误命令易导致AP故障或网络中断,操作前务必充分准备,谨慎执行。

    2天前
    500
  • 如何轻松退出top命令?

    退出top命令非常简单:直接按键盘上的q键即可立即退出,按Ctrl+C组合键或Esc键(在某些系统上)也能达到同样效果,这些方法都直接有效。

    2025年7月6日
    800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信