Android Debug Bridge (adb) 是一个命令行工具,充当电脑与安卓设备或模拟器之间的通信桥梁,开发者常用它进行调试、安装应用、管理设备及传输文件等操作。
在开始之前,请务必理解,使用 adb
删除应用程序(尤其是系统应用)是一项高级操作,存在风险,操作不当可能导致设备功能异常、系统不稳定甚至无法开机(俗称“变砖”)。强烈建议普通用户优先通过设备的“设置”>“应用”进行常规卸载。 本指南仅适用于有特定需求且了解风险的用户。
adb
(Android Debug Bridge) 是一个功能强大的命令行工具,它是 Android SDK(软件开发工具包)的一部分,它允许你通过 USB 连接(或网络)从电脑与 Android 设备进行通信,执行各种调试和管理任务,包括安装和卸载应用程序。
为什么需要用 adb
删除程序?
通过设备设置卸载应用是最简单安全的方法,但在某些情况下,adb
卸载是必要的:
- 卸载顽固的预装应用/系统应用 (Bloatware): 很多设备预装了用户无法通过常规方式卸载的运营商或厂商应用。
adb
可以移除这些应用(需谨慎!)。 - 卸载导致设备无法正常操作的应用: 如果某个恶意应用或故障应用导致设备卡在启动界面、设置崩溃等,无法进入系统界面进行卸载,
adb
可能是解决方案。 - 批量卸载应用: 对于开发者或高级用户,可以通过脚本结合
adb
命令批量卸载应用。 - 卸载设备所有者/配置文件所有者应用: 在企业或教育环境中管理的设备,可能需要
adb
来移除特定配置的应用。 - 卸载残留应用数据: 虽然主要用
adb shell pm uninstall
卸载应用本身,但adb shell
命令可以访问并清理更深层的残留数据(需 root 权限更彻底)。
准备工作:
- 在电脑上安装 ADB 工具:
- 下载并安装 Android SDK Platform-Tools,这是 Google 官方提供的工具包,包含
adb
和fastboot
。 - 最便捷的方式:访问 Android 开发者网站 下载对应你操作系统(Windows, macOS, Linux)的 Platform-Tools 包。
- 解压下载的 ZIP 文件到一个容易找到的文件夹(
C:\platform-tools
或~/platform-tools
)。
- 下载并安装 Android SDK Platform-Tools,这是 Google 官方提供的工具包,包含
- 在 Android 设备上启用 USB 调试:
- 打开设备的“设置”。
- 找到“关于手机”或“关于设备”(通常在设置最底部)。
- 连续点击“版本号”7次,直到看到“您已处于开发者模式!”的提示。
- 返回设置主菜单或进入“系统”>“高级”,现在你应该能看到“开发者选项”。
- 进入“开发者选项”。
- 找到“USB 调试”选项并启用它。
- (重要) 首次连接时,当用 USB 线将设备连接到电脑,设备屏幕上会弹出“允许 USB 调试吗?”的提示框。勾选“始终允许使用这台计算机进行调试”,然后点击“确定”,这是建立信任关系的关键一步。
- 连接设备: 使用 USB 数据线将 Android 设备连接到电脑,确保数据线质量良好且能传输数据(不仅仅是充电)。
- 打开命令提示符/终端:
- Windows: 打开之前解压
platform-tools
的文件夹,在地址栏输入cmd
然后按回车,或者按住 Shift 键 + 鼠标右键点击文件夹空白处,选择“在此处打开命令窗口”或“在此处打开 PowerShell 窗口”。 - macOS/Linux: 打开“终端”(Terminal),使用
cd
命令导航到你解压platform-tools
的目录(cd ~/platform-tools
)。
- Windows: 打开之前解压
核心 adb
卸载命令:
卸载应用的核心命令是 adb shell pm uninstall
。pm
(Package Manager) 是 Android 系统管理应用包的工具。
步骤详解:
-
验证连接:
- 在打开的命令行窗口(位于
platform-tools
目录)中,输入以下命令并按回车:adb devices
- 如果一切设置正确,你会看到类似以下的输出:
List of devices attached XXXXXXXXXXXXXXXX device
- 这表示你的设备已被
adb
识别,如果只看到List of devices attached
下面没有设备,或者显示unauthorized
,请检查:- USB 线是否连接好且支持数据传输。
- USB 调试是否已启用。
- 设备上是否弹出了“允许 USB 调试”的提示并已点击“确定”和勾选“始终允许”。
- 电脑上是否安装了正确的 USB 驱动程序(对于某些品牌设备可能需要单独安装)。
- 在打开的命令行窗口(位于
-
查找目标应用的包名 (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"
- Windows:
- 输出可能类似:
package:com.facebook.katana
。com.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
就是包名。
- 每个 Android 应用都有一个唯一的包名(
-
执行卸载命令:
- 一旦你确定了要卸载应用的精确包名,使用以下命令进行卸载:
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 驱动。
- A: 检查 USB 调试是否开启;检查 USB 线;检查设备是否弹出授权提示并点击“允许”和“始终允许”;尝试重启 adb 服务 (
- 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)则恢复更复杂,可能需要刷机。
- A: 使用
- Q: 如何彻底删除应用数据(即使应用已常规卸载)?
- A:
adb uninstall
主要卸载应用本身,要深入删除残留数据(通常在/data/data/<package_name>
和/sdcard/Android/data/<package_name>
),通常需要 root 权限 并使用adb shell
进入设备命令行手动删除 (rm -rf /data/data/<package_name>
)。操作极其危险,仅限专家。 常规恢复出厂设置也能清除所有用户数据。
- A:
adb shell pm uninstall -k --user 0 <package_name>
是使用 ADB 卸载 Android 应用程序(包括禁用预装应用)的核心命令,关键在于准确获取应用的包名并谨慎操作,尤其是对系统应用,务必理解风险,优先使用系统设置进行常规卸载,此方法无需 root 权限,但移除系统应用的效果是用户层面的禁用。
免责声明: 使用 adb
命令修改系统存在风险,本文提供的信息仅供参考,操作不当造成的设备损坏或数据丢失,作者及发布平台概不负责,请自行承担风险,并在操作前备份重要数据。
引用说明:
- 本文所述
adb
及pm
命令的功能和参数基于 Android 开源项目 (AOSP) 官方文档和开发者资源。 - Android Debug Bridge (
adb
) 官方文档: https://developer.android.com/studio/command-line/adb (间接参考,具体pm
命令细节通常在 AOSP 源代码或 Shell 命令文档中更详细)。 - Android Package Manager (
pm
) 命令参考可通过在设备adb shell
中运行pm help
或pm uninstall --help
获取。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6733.html