
到手一台小米手机第一件事通常不是贴膜而是看着满屏用不上的预装应用叹气。真正想删的时候又发现桌面长按只能“卸载更新”或者干脆没有卸载选项。MIUI 一直到现在的澎湃 OS 都保留了 ADB 调试通道用 ADB 命令可以绕过桌面限制把系统自带软件真正移除出当前用户桌面。我会把小米手机通过 ADB 删除自带软件的整套流程从头讲一遍从原理、环境到具体命令都有还会附上我这些年踩坑总结出来的“先冻结再卸载”思路希望能让手里正拿着小米/红米手机、想精简桌面的朋友少走弯路。1. 为什么选择 ADB 而不是 root 或第三方工具很多人一听说“删除系统应用”第一反应就是 root或者去找各种“一键卸载”App。我的建议是先别急着 root先用 ADB 试试。原因很简单ADB 删除自带软件操作的其实是 Android 本身的“用户隔离”机制。系统固件里的应用仍然在系统分区没有被改动只是你在当前用户空间里看不到它了。用专业一点的话说就是在 user 0 这个用户上执行了 uninstall 或者 disable 操作。1.1 ADB 的原理与优势ADB 全称 Android Debug Bridge中文叫安卓调试桥。它通过手机开启的“USB 调试”通道让电脑向手机系统发送指令。在删除应用这件事上最核心的指令是 pm也就是 PackageManager 包管理工具。执行adb shell pm list packages可以查看系统里已安装的应用执行adb shell pm uninstall --user 0可以让某个包从当前用户空间卸载。为什么说这种方式安全因为系统应用的实际安装文件还在系统分区里ADB 并没有权限去删除那些文件。--user 0卸载相当于在“应用信息-卸载”之外多走了一步把应用从当前用户视图里彻底移除。系统分区没有改动所以误删之后还可以通过cmd package install-existing恢复更极端的情况下恢复出厂设置也能把预装应用找回来。这个特性非常关键让 ADB 成为“想精简又不想承担 root 风险”的人群的最佳选择。对比 root 方案root 之后确实可以进入 /system/app 直接把 APK 文件删掉删得也更彻底但代价是微信指纹支付、银行 App 检测到 root 后大概率无法使用系统 OTA 升级容易失败一旦误删核心组件就只能线刷救砖。我身边不少朋友精简手机最后都从 root 转回了 ADB图的就是省心和好恢复。第三方“一键卸载”工具我也试过不少。它们有的需要配合电脑端助手有的需要在手机上安装一个常驻服务真正操作时还是绕不开 ADB只是把命令封装起来。问题在于这些工具通常很久不更新遇到新的 HyperOS 版本可能识别不准确而且捆绑下载的风险也更高。自己用命令行其实就多记几条指令但胜在可控、干净。1.2 用 ADB 清理到底解决了什么问题以小米手机为例。新机开箱后桌面上至少会有小米视频、小米音乐、小米浏览器、小米商城、游戏中心、快应用等一大串应用。这些应用本身不算恶意软件但确实不是每个人都用得上。有的会在后台自启动有的会推送广告有的只是占据桌面图标位置。通过 ADB 删掉之后最直观的变化就是桌面干净了。深入一点说某些推送服务不再运行后台耗电也会明显下降。尤其是在中低端红米机型上内存和存储空间本来就紧张精简之后流畅度差异挺明显的。我帮朋友清理过一台红米 Note 系列删除十几个预装应用后亮屏续航差不多多了一个多小时当然这里面有机型本身使用习惯的因素但后台自启应用变少了确实能感觉到变化。这个方案适合这几类人不喜欢折腾 root、担心银行支付或指纹支付被系统检测的用户只是想清理掉明显用不上的 App 的普通用户愿意花十分钟配置一次环境、之后一劳永逸的人。反过来如果完全不想碰命令行那也用不着强行学 ADB直接用系统自带的“应用管理”能卸多少算多少。2. 准备工作一次配好 ADB 环境写 ADB 教程之前我一直强调环境配置要一次到位。很多朋友卡在第一步手机连上电脑后adb devices死活看不到设备多半是开发者选项和 USB 调试没开对或者电脑端的驱动和工具没装明白。2.1 手机端开启开发者选项与 USB 调试不同系统版本的入口略有差异旧版 MIUI设置 → 我的设备 → 全部参数 → 连续点击“MIUI 版本”7 次。新版 HyperOS设置 → 我的设备 → 全部参数 → 连续点击“HyperOS 版本”7 次。如果系统提示“您已处于开发者模式”说明之前已经开启过不需要重复操作。接下来进入“设置 → 更多设置 → 开发者选项”把“USB 调试”打开。部分版本还会有“USB 调试安全设置”选项如果只是删除自带软件一般不需要打开。另外小米有些机型在首次开启开发者选项时要求登录小米账号这是机型策略按提示操作就行。开启之后不建议马上关闭“USB 调试”否则每次连接电脑都要重新授权。连接电脑时建议用原装数据线手机解锁亮屏选择“传输文件MTP”模式。虽然“仅充电”模式有时也能调试但 MTP 模式更稳定。第一次连接时手机会弹出“是否允许 USB 调试”的授权框记得勾选“始终允许”否则第二次连接又会卡在授权这一步。2.2 电脑端安装 ADB 工具ADB 工具其实不用“安装”它只是一个可执行文件的集合。最稳的方案是下载 Google 官方发布的 platform-tools 压缩包解压后就能用。千万不要去下载那些来历不明的“ADB 工具包”我见过有的压缩包里捆绑了脚本和驱动夹带私货完全没必要冒这个险。Windows 用户有两种用法。第一种把 platform-tools 解压到某个固定目录比如 C:\platform-tools然后打开这个文件夹在地址栏输入 cmd 回车就能在当前目录下执行 adb 命令。第二种把 C:\platform-tools 添加进系统环境变量 Path这样在任何终端窗口都能直接执行 adb。我个人更推荐第二种配一次就再也不用管路径问题了。macOS 用户可以用 Homebrew 安装命令行执行brew install android-platform-tools。Linux 用户可以sudo apt install android-tools-adb。也可以用官方 platform-tools 包解压后直接使用。环境配好后打开终端输入adb version如果能看到版本号说明工具已经就绪。如果提示“adb 不是内部或外部命令”十有八九是环境变量没配好回到上一步检查路径。2.3 连接设备并验证授权手机连接电脑后终端执行adb devices正常情况下会输出类似这样的一行xxxxxxxx device看到 device 状态就说明连接成功。如果看到unauthorized说明手机上的授权弹窗被忽略或者点了拒绝需要重新拔插数据线或者到开发者选项里选择“撤销 USB 调试授权”重新弹窗后勾选“始终允许”。如果执行adb devices之后列表完全是空的不用着急。按顺序排查开发者选项是否打开、手机是否亮屏、USB 线是否支持数据传输、电脑端是否被第三方手机助手占用了调试端口。可以先执行adb kill-server再执行adb start-server把 ADB 服务重启一次往往能解决端口被占的问题。3. 安全删除自带软件的实操清单环境准备好之后接下来最关键的就是搞清楚哪些应用能删、哪些不能删。这一步很重要直接决定后面会不会出问题。3.1 先学会查看应用包名在运行卸载命令前必须先知道目标应用的包名。包名是 Android 应用在系统里的唯一标识形态类似于 com.miui.video。查看包名的方法很简单终端执行adb shell pm list packages手机会返回当前用户下所有已安装应用的包名数量可能有几百行。想快速找到小米自带应用可以用关键词过滤adb shell pm list packages | grep miui如果用的是 Windows 命令提示符没有 grep 命令可以用 findstradb shell pm list packages | findstr miui把过滤条件换成 xiaomi、android 等关键词都能帮你缩小范围。看到类似 com.miui.video 的包名就基本能确定是哪个应用了。如果还不确定可以用adb shell dumpsys package 包名查看更详细的信息包括版本号、权限、安装时间等。我自己的习惯是先 grep 出 miui 和 xiaomi 两个关键词再逐个对照桌面图标确认避免删错。3.2 一张表看懂小米系统应用的处理建议下面是我平时帮人清理时常用的参考表。需要注意一点不同机型和不同系统版本之间包名可能有细微差别执行删除之前先用pm list packages核对一遍。应用名称常见包名我的处理建议小米视频com.miui.video可卸载小米音乐com.miui.player可卸载小米浏览器com.android.browser多数人可卸载但部分系统页面调用 WebView 时依赖它小米商城com.xiaomi.shop可卸载小米有品com.xiaomi.youpin可卸载小米钱包com.mipay.wallet谨慎处理需要用 NFC 刷公交或银行卡请保留小米游戏中心com.xiaomi.gamecenter可卸载MIUI 系统广告组件com.miui.systemAdSolution建议先冻结快应用服务框架com.miui.hybrid谨慎处理部分网页唤起和快捷功能依赖它服务与反馈com.miui.bugreport可卸载系统诊断com.miui.miservice可卸载执行卸载命令时如果提示Failure [not installed for 0]说明这个包本来就不在当前用户下不用管。提示Failure [not allowed to uninstall]说明系统层面禁止卸载不要硬来可以试试后面的冻结方案。有一点想单独提醒很多教程喜欢把“小米社区”“小米商城”这类应用列进必删清单这没问题。但像“小米钱包”这种涉及到 NFC 支付的应用如果你平时坐公交、刷门禁经常用删了反而麻烦。精简的边界应该由你的实际使用习惯决定而不是照搬别人的清单这点后面还会再强调。3.3 千万别乱动的核心系统组件清单一列出来最容易出现的误操作就是删得太猛把一些名字看起来像“多余服务”的系统组件也删了。下面这些千万别乱动删了之后轻则功能异常重则系统崩溃。com.android.systemui系统界面负责状态栏、通知栏、锁屏交互。删了基本黑屏或者无限重启不是开玩笑。com.android.phone电话应用以及运营商网络服务。删了之后通话、短信、移动数据都可能直接失效。com.android.settings系统设置。桌面入口藏起来只是表象系统内部很多页面都会崩。com.miui.securitycenter安全中心。它整合了权限管理、垃圾清理、网络诊断、应用锁等一堆功能删了之后系统层面会出现各种连锁问题有的版本会反复弹“安全中心已停止”。com.android.providers.contacts / com.android.providers.media联系人和媒体存储。它们看起来不起眼实际是数据仓库删了之后联系人读取、相册扫描都会出问题。com.xiaomi.finddevice查找设备。删了之后手机丢失就少了远程定位和锁定能力。我判断一个应用能不能删通常看两点如果包名里带 miui 或 xiaomi而且对应一个独立 App大部分可以安全删除如果包名里带 android 或 providers通常要紧一些别乱动。当然这不是绝对标准像 com.android.browser 这个默认浏览器很多人删了没问题但也确实有系统页面调用它。所以比较保守的做法就是拿不准的先冻结确认不影响使用再考虑卸载。4. 完整操作流程与核心命令解析环境配好包名也查清楚了接下来就可以真正动手了。这一部分我会把命令一条一条拆开讲避免你复制过去之后不知道发生了什么。4.1 卸载与恢复的一对命令卸载命令的核心是pm uninstall。在小米手机上大部分系统应用需要带--user 0参数表示只对当前主用户执行卸载。示例adb shell pm uninstall --user 0 com.miui.video命令执行后手机会返回 Success 或 Failure。出现 Success说明当前用户空间里已经移除成功桌面上对应的图标会消失。如果显示 Failure后面通常会跟着具体原因比如包名不存在、应用不允许卸载等。因为系统应用的实际安装包还在系统分区所以恢复也非常简单adb shell cmd package install-existing com.miui.video这条命令的作用是把系统分区里已有的应用重新安装回当前用户。返回 Success 表示恢复成功图标会重新出现在桌面。相比去应用商店重新下载这条命令不需要网络速度也快几乎秒回。另外adb shell pm list packages -d可以列出当前用户下被停用或卸载的应用方便你确认哪些包已经处理过。这个命令在整理清单时很有用。4.2 冻结比卸载更适合新手如果你对某个应用是否要删还有犹豫我建议先别急着卸载改用冻结。冻结命令是adb shell pm disable-user --user 0 com.miui.systemAdSolution恢复冻结可以用adb shell pm enable com.miui.systemAdSolution冻结和卸载的差别可以用下面这张表说明对比项卸载 uninstall冻结 disable-user桌面图标消失消失或变灰恢复方式cmd package install-existingpm enable系统更新后可能重新安装一般不会自动解冻应用数据可能被清除完整保留操作风险中等更低我个人的做法是新拿到一台手机前两三天先正常使用留意哪些应用频繁弹通知、后台占用高。把目标清单确定下来后先用 disable-user 冻结等一周左右确认没有任何异常再把冻结命令换成 uninstall 执行一遍。尤其是像 com.miui.systemAdSolution 这类负责广告和推荐的组件冻结之后通知栏会明显清净但完全不伤及系统功能这种情况下一直保持冻结状态也没问题。4.3 批量脚本系统更新后一键清理每次系统更新后之前删除的应用可能又回来了。与其每次都手动输入命令不如准备一个批量脚本更新完后直接跑一遍。下面给 Windows 和 mac/Linux 两种示例。Windows 下建一个 clean_miui.bat内容如下echo off adb wait-for-device for %%p in ( com.miui.video com.miui.player com.miui.bugreport com.xiaomi.shop ) do ( echo Uninstall %%p adb shell pm uninstall --user 0 %%p ) pause把脚本里的包名换成你在自己手机上查到的实际包名双击运行即可。执行过程中个别包返回 Failure 不影响脚本继续最后会统一显示结果。macOS 或 Linux 下建一个 clean_miui.sh#!/bin/bash packages( com.miui.video com.miui.player com.miui.bugreport com.xiaomi.shop ) adb wait-for-device for p in ${packages[]}; do echo Uninstall $p adb shell pm uninstall --user 0 $p done保存后赋予执行权限chmod x clean_miui.sh ./clean_miui.sh脚本的好处是系统大版本更新、恢复出厂设置、换新手机后都能快速重建一个干净的桌面环境。我把常用脚本存在网盘里换手机时直接拉下来改几个包名就能用比每次上网翻教程省心很多。5. 常见问题与排查技巧实录ADB 操作本身不算复杂但实际使用中经常出现一些小问题。这一部分我把遇到过的、还有身边朋友问得最多的几种情况整理一下。5.1 adb devices 显示空白手机连不上这个问题排在所有问题第一位90% 的情况出在三个地方第一数据线。很多第三方线只能充电不能传输数据插上去手机显示在充电但电脑端完全识别不到。换原装线或者确认能传文件的线再试。第二授权弹窗被忽略。手机插上电脑后如果锁屏或者没有注意看屏幕授权弹窗很容易一闪而过或被系统折叠这时候手机端悄悄拒绝授权ADB 自然连不上。重新拔插保证手机亮屏看到弹窗后勾选“始终允许”。第三电脑端端口被占用。一些手机助手、模拟器、甚至某些开发工具会占用 ADB 默认的 5037 端口执行adb kill-server再执行adb start-server重启 ADB 服务往往能解决问题。Windows 下如果设备管理器里看到带黄色感叹号的 ADB Interface说明驱动没装好。可以在设备管理器里右键选择“更新驱动”手动指向 platform-tools 目录里的驱动文件或者安装系统对应的 USB 驱动后重试。5.2 出现 unauthorized 或 offline 状态adb devices显示 unauthorized意思是设备连上了但电脑没有得到授权。解决办法是到手机“开发者选项”里找到“撤销 USB 调试授权”点击确认然后重新拔插数据线。手机会再次弹出授权框这次记得勾选“始终允许”。如果出现 offline通常代表连接不稳定。先重新插拔换一个 USB 接口特别是台式机建议插主板后置接口前置接口和 USB Hub 容易出问题。也可以执行adb kill-server和adb start-server重启服务。如果还是 offline重启手机再连基本就能恢复。5.3 误删应用后的恢复技巧误删之后不要慌先执行恢复命令adb shell cmd package install-existing 包名大多数系统预装应用都可以通过这条命令恢复因为卸载的只是当前用户视图系统分区里的原始应用和签名都还在。如果返回 Success打开应用抽屉就能看到图标回来了。如果恢复失败先检查包名有没有拼错再看看pm list packages -d里有没有这个包。还可以试试冻结的反向操作pm enable 包名。绝大多数误删情况用这两条命令都能救回来。万一真的恢复不了最后的兜底方案是备份好个人数据然后恢复出厂设置。系统自带的预装应用会在恢复出厂后全部回来代价是手机上的照片、聊天记录等需要提前备份。5.4 系统更新后清理结果“失效”很多朋友遇到过这个问题头天刚把应用删干净第二天系统更新完删掉的应用又回来了。这是正常现象因为 OTA 更新时系统会把预置应用重新安装回当前用户。不要因此去折腾关闭系统更新保持系统安全更新优先级远高于少几个 App。可行的解决方案是清理清单整理成一个脚本或者备忘录等系统更新后花两分钟重新执行一遍。我自己的习惯是手机系统提示“检测到新版本”后先不急着更新等更新完重启稳定了再跑一次清理脚本顺手检查有没有新出现的预装应用。6. 我的精简习惯与最终建议6.1 我的日常精简节奏处理过太多台小米/红米手机之后我现在的节奏比较固定。新手机到手先正常用两三天打开“设置-应用管理-正在运行”看看哪些应用常驻后台、哪些一直在弹通知目标清单基本就有了。再对照包名列表确认一遍先把可疑的应用冻结而不是直接卸载。等到一周左右确认冻结后系统没有任何异常再把冻结命令换成卸载命令执行一遍脚本。这个流程看起来慢但胜在稳妥。系统更新后如果应用复活重新跑一遍脚本就行整个过程不需要重新学习命令。6.2 给新手的三个建议第一先备份再动手。特别是微信聊天记录、相册、便签这类重要数据精简手机前备份一次哪怕最后用不上备份心里也踏实。第二拿不准的不要删先冻结。冻结和卸载在结果上很接近但恢复成本完全不同。第三保留一份自己的命令清单和包名列表。每个人的使用习惯不一样别人觉得没用的应用你可能天天用所以别直接照搬别人的“删除清单”自己做排查、下结论养成这个习惯后你会发现系统精简这件事真的不难。