
1. 为什么Mac用户刷小米手机总在第一步就卡住如果你手上是一台Mac又恰好想把手里的小米手机刷个机、降个级、或者救个砖那你大概率已经体会过那种教程全是Windows截图自己对着终端一脸懵的窘境。Windows上有各种一键刷机工具图形界面点几下就完事但Mac这边尤其是M系列芯片的Mac很多老教程里的工具根本跑不起来甚至连驱动都装不上。这不是你操作有问题而是整个生态对Mac用户确实不够友好。这篇内容就是专门写给Mac用户的。不管你是想给小米手机刷个开发版、降回稳定版、还是手机变砖了想救回来核心流程都绕不开两个东西ADB和fastboot。前者负责在系统正常运行状态下跟手机通信后者负责在系统起不来的时候跟手机底层通信。Mac上这两个工具的安装方式、驱动处理、连接逻辑跟Windows完全不一样坑也集中在这里。我前后用Mac给小米手机刷过不下十次机从Intel芯片的MacBook Pro到M2的Mac mini都试过踩过的坑包括但不限于homebrew装到一半报错、adb命令找不到设备、fastboot进去就卡在press any key、手机明明连着却显示unauthorized。这些问题看起来吓人但本质上都是几个固定环节没处理对。下面我会把整个流程拆开从环境准备到刷机执行每一步都告诉你为什么这么做、Mac上有什么特殊处理、以及我实际踩过的坑怎么绕过去。适合读这篇的人手上有Mac、有小米手机、想自己动手刷机但被各种报错劝退的普通用户。不需要你懂编程但需要你愿意打开终端敲几行命令。整个过程我会尽量说人话把每个命令背后的逻辑讲清楚这样你遇到变体情况也能自己判断。2. Mac上搭建ADB与fastboot环境的完整路径2.1 为什么Mac装ADB比Windows麻烦Windows上装ADB通常是下载一个压缩包解压后把路径加到环境变量里再装个通用驱动就完事了。Mac上没这么直接因为macOS对USB设备的访问权限管理更严格而且不同芯片架构Intel和Apple Silicon对二进制文件的兼容性要求不同。更关键的是Mac上没有一个官方的ADB安装包你得通过包管理器或者手动配置来搞定。目前Mac上装ADB最主流的方式是Homebrew。Homebrew是macOS上的包管理器相当于一个命令行版的应用商店你敲一行命令它就能帮你把软件下载、安装、配置路径全部搞定。但问题在于很多新手在装Homebrew这一步就卡住了尤其是网络环境不理想的时候那个安装脚本会卡在Downloading...半天不动最后报一个看不懂的错误。2.2 Homebrew安装报错的几种典型情况和处理先说你最可能遇到的在终端里粘贴Homebrew官网那行安装命令回车之后卡住或者报错。常见报错有这么几类第一类是连接超时提示Failed to connect to raw.githubusercontent.com或者类似的域名。这不是你网络坏了而是安装脚本需要从某些域名拉取文件这些域名在国内访问不稳定。处理方式有两种一是多试几次有时候换个时间段就通了二是手动把安装脚本下载下来再执行。具体做法是先用浏览器打开Homebrew的安装脚本地址把内容保存成一个.sh文件然后在终端里用bash执行这个本地文件。这样跳过了脚本下载环节成功率会高很多。第二类是权限报错提示Permission denied或者Operation not permitted。这通常是因为你直接用了sudo去执行安装脚本而Homebrew明确不建议用root权限安装。正确的做法是以普通用户身份执行安装过程中它会让你输入密码来获取必要的权限。如果你之前用sudo装过一半建议先把/opt/homebrewApple Silicon或/usr/local/HomebrewIntel目录清理干净再重来。第三类是Xcode Command Line Tools缺失。Homebrew依赖这个工具集如果没装安装过程中会提示你先装。处理很简单终端里敲xcode-select --install会弹出一个图形界面让你确认安装点确认等它下完就行。这个工具集有几个G下载时间取决于网速但只需要装一次。装好Homebrew之后安装ADB和fastboot就一行命令brew install android-platform-tools这个包里同时包含了adb和fastboot两个命令。装完之后你在终端里敲adb version如果能看到版本号输出说明环境就绪了。如果提示command not found那说明Homebrew的路径没加到你的shell配置文件里。Apple Silicon的Mac需要把/opt/homebrew/bin加到PATHIntel的Mac通常是/usr/local/bin。具体操作是编辑~/.zshrc文件macOS默认shell是zsh在里面加一行export PATH/opt/homebrew/bin:$PATH然后执行source ~/.zshrc让配置生效。2.3 不用Homebrew的备选方案如果你实在搞不定Homebrew或者不想在电脑上装包管理器还有一个更直接的办法手动下载Android SDK Platform Tools。去Android开发者官网找到SDK Platform Tools的下载页面下载Mac版的压缩包解压到一个你记得住的目录比如~/android-tools。然后在终端里cd到这个目录就可以直接用./adb和./fastboot来执行命令。这种方式的好处是不依赖任何包管理器坏处是每次用之前都得先cd到那个目录或者你得自己把路径加到环境变量里。对于只是偶尔刷一次机的用户来说手动下载反而更省事因为跳过了Homebrew安装这个最大的坑。提示不管你用哪种方式装完之后一定要在终端里验证一下。敲adb version和fastboot --version两个都能正常输出版本号才算环境真正就绪。很多人跳过这一步后面连不上手机就开始怀疑人生其实问题就出在环境根本没装好。3. 手机端设置与Mac连接的实际操作细节3.1 开发者选项和USB调试的正确打开方式环境装好只是第一步手机这边也得做对应设置。小米手机打开开发者选项的方式是设置 → 我的设备 → 全部参数 → 连续点击MIUI版本或澎湃OS版本七次直到提示您已处于开发者模式。然后回到设置 → 更多设置 → 开发者选项找到USB调试并打开。这里有个细节很多人忽略小米手机在开发者选项里还有一个USB调试安全设置这个选项允许通过USB调试修改权限或模拟点击。如果你只是刷机不开这个也行但如果你后面要用ADB做一些高级操作建议一并打开。另外USB安装这个选项也建议打开否则某些操作会被系统拦截。还有一个容易被忽略的点小米手机连接Mac时默认的USB连接模式可能是仅充电。你需要下拉通知栏找到USB连接方式的提示把它改成传输文件或MTP。虽然ADB和fastboot不依赖MTP模式但改成传输文件模式有助于系统正确识别设备减少连接不稳定的情况。3.2 Mac上识别小米手机设备的排查链路手机设置好了用数据线连到Mac上接下来就是最容易出问题的环节Mac到底认不认这台手机。你可以先在终端里敲adb devices如果输出里出现了一串设备序列号后面跟着device那恭喜你连接正常。但实际情况往往是以下几种异常情况一列表为空。终端只输出List of devices attached然后什么都没了。这说明Mac根本没识别到手机。先检查数据线有些便宜的数据线只有充电功能没有数据传输能力。换一根原装线或者确认支持数据传输的线再试。如果线没问题检查手机上的USB调试是否真的打开了有时候开关是开的但实际没生效关掉再打开一次。情况二显示unauthorized。这说明Mac识别到了手机但手机没有授权这台电脑进行调试。正常情况下手机屏幕上会弹出一个允许USB调试吗的对话框你点允许就行了。如果没弹窗可能是之前误点了拒绝并且勾选了一律允许。解决办法是在开发者选项里找到撤销USB调试授权点一下然后重新插拔数据线弹窗就会再次出现。情况三显示offline。这个状态比较麻烦通常是因为ADB版本和手机系统版本不匹配或者ADB服务卡住了。先试adb kill-server然后adb start-server重启ADB服务。如果还不行检查你的android-platform-tools是不是最新版老版本的ADB对新的澎湃OS或MIUI版本兼容性不好。情况四Apple Silicon Mac上完全没反应。如果你用的是M1、M2或M3芯片的Mac有时候需要额外处理。先确认你用的数据线是USB-A转Type-C还是Type-C转Type-C某些第三方线缆在Apple Silicon Mac上兼容性有问题。另外macOS的系统完整性保护SIP在某些情况下会拦截对USB设备的底层访问但正常刷机场景下不会触发不用急着去关SIP。3.3 fastboot模式的进入与驱动问题ADB连接正常之后刷机通常需要进入fastboot模式。小米手机进入fastboot的方式是关机状态下同时按住音量减键和电源键直到屏幕上出现一只兔子在修安卓机器人的画面这就是fastboot模式。或者在ADB连接正常的情况下终端里敲adb reboot bootloader手机会自动重启进入fastboot模式。进入之后在终端里敲fastboot devices如果能看到设备序列号说明fastboot连接正常。但Mac上这里有个经典坑fastboot devices没有任何输出。这通常是因为Mac没有加载正确的USB驱动。Windows上需要装小米的USB驱动Mac上虽然不需要额外装驱动但有时候系统会把fastboot设备识别成一个未知设备。处理办法先敲system_profiler SPUSBDataType看看Mac的USB树里有没有识别到设备。如果能看到一个跟手机相关的条目但fastboot devices还是没输出试试换一个USB口最好是直接插在Mac机身上的口不要用扩展坞。扩展坞的USB控制器有时候会导致fastboot设备识别异常。如果换了口还不行重启Mac再试一次这个听起来很蠢但确实有效因为macOS的USB子系统偶尔会抽风。还有一个细节小米手机在fastboot模式下屏幕上会显示press any key to shutdown之类的提示。这时候你按Mac键盘上的任意键是没用的因为那个提示是针对手机物理按键的。不用管它只要fastboot devices能识别到设备就可以继续操作。4. 刷机包选择与刷机方式的核心逻辑4.1 小米刷机包的几种类型和适用场景小米手机的刷机包主要分两大类线刷包和卡刷包。线刷包是通过fastboot在电脑上刷入的通常是一个.tgz压缩包解压后里面有一堆.img文件和刷机脚本。卡刷包是通过手机Recovery刷入的通常是一个.zip文件放到手机存储里用Recovery安装。线刷包的特点是刷得彻底相当于把整个系统分区全部重写一遍适合降级、救砖、或者从其他系统版本跨版本刷。卡刷包的特点是方便不需要电脑但刷之前需要先解锁Bootloader并刷入第三方Recovery而且某些情况下卡刷包不能跨版本降级。对于Mac用户来说我建议优先考虑线刷因为Mac上跟fastboot打交道虽然一开始麻烦但一旦环境配好线刷的流程反而比卡刷更可控。卡刷需要你先在手机上操作Recovery而小米的官方Recovery对卡刷包有签名验证非官方包刷不进去你还得先刷第三方Recovery多了一步。4.2 解锁Bootloader的前置条件和等待期不管你用哪种刷机方式小米手机都有一个绕不开的前置步骤解锁Bootloader。小米从很多年前开始就对Bootloader解锁做了严格限制不是你想解就能立刻解的。解锁流程大致是在小米官网申请解锁权限然后下载小米解锁工具登录你的小米账号连接手机等待解锁。但关键在于小米对新账号有一个等待期通常是7天有时候是14天甚至30天具体取决于你的账号状态和小米当时的政策。这个等待期内你不能解锁只能等。而且解锁工具官方只提供了Windows版Mac用户怎么办有两个办法一是找一台Windows电脑专门用来解锁解锁完之后再用Mac刷机二是用社区维护的跨平台解锁工具但这类工具的安全性和可靠性需要你自己判断我不做推荐。我自己的做法是借了一台Windows笔记本解锁完之后就再也没用过那台电脑。解锁Bootloader会清空手机所有数据所以解锁之前一定要备份。小米的云服务可以备份一部分但照片、微信聊天记录这些最好手动导出来。解锁之后手机开机会显示一个解锁标志这是正常的不用慌。4.3 线刷工具在Mac上的替代方案Windows上小米官方提供了MiFlash这个线刷工具图形界面选好刷机包点一下就行。Mac上没有官方工具但线刷的本质其实就是一系列fastboot命令你完全可以手动执行。一个典型的线刷包解压后里面会有一个flash_all.sh脚本Mac和Linux用和一个flash_all.bat脚本Windows用。你只需要在终端里cd到解压目录然后执行chmod x flash_all.sh ./flash_all.sh这个脚本会自动执行一系列fastboot命令把各个分区依次刷入。整个过程可能需要几分钟到十几分钟取决于刷机包大小和USB传输速度。刷完之后手机会自动重启第一次开机时间会比较长耐心等就行。但这里有个坑有些刷机包里的flash_all.sh脚本写死了fastboot的路径或者用了Windows风格的换行符在Mac上执行会报错。遇到这种情况你可以手动打开脚本看看里面的命令把路径改成你系统里fastboot的实际路径或者直接用dos2unix命令转换换行符。如果脚本实在跑不起来也可以手动一条条执行fastboot命令虽然麻烦但最可控。注意刷机过程中绝对不要拔数据线也不要让Mac进入睡眠状态。建议在系统设置里把睡眠时间临时改成永不或者用caffeinate命令让Mac保持唤醒。刷机刷到一半电脑睡了手机大概率变砖。5. 刷机过程中那些教程不会告诉你的坑5.1 fastboot连接不稳定的几种表现和应对刷机过程中最怕的就是fastboot连接突然断掉。表现是脚本执行到某一步卡住不动或者终端报error: cannot open device之类的错误。这种情况一旦发生手机可能处于一个分区刷了一半的状态非常危险。导致fastboot连接不稳定的原因有几个一是USB线质量差尤其是那种又细又长的线数据传输稳定性很差二是USB口供电不足特别是用扩展坞的时候三是Mac的USB子系统在高负载下出现异常。我的应对策略是刷机前换一根短而粗的原装数据线直接插在Mac机身的USB口上不要用扩展坞。刷机过程中不要同时跑其他吃USB带宽的任务比如外接硬盘拷贝大文件。如果刷到一半真的断了不要慌重新进入fastboot模式重新执行刷机脚本。fastboot刷机是可重入的只要硬件没坏重新刷一遍通常能救回来。5.2 刷机后无法开机或卡在开机画面的处理刷完机第一次开机卡在小米Logo或者开机动画这种情况我也遇到过几次。原因通常是数据分区没有清除干净旧系统的残留数据和新系统冲突。解决办法是进入Recovery模式做一次双清清除数据/恢复出厂设置。小米手机进入Recovery的方式是关机状态下同时按住音量加键和电源键。进入之后选择清除数据 → 清除所有数据确认后等它完成再重启。这个过程会清掉手机里所有用户数据所以刷机前备份真的很重要。如果双清之后还是卡开机那可能是刷机包本身有问题比如下载过程中文件损坏。重新下载刷机包校验一下MD5或SHA256值确认文件完整后再刷一次。还有一种可能是刷机包和手机型号不匹配比如把Redmi的包刷到了小米数字系列上这种低级错误新手很容易犯下载前一定看清楚型号。5.3 ADB unauthorized和offline的深度排查前面提到了unauthorized和offline的基本处理但有些情况更顽固。比如你明明点了允许USB调试但adb devices还是显示unauthorized。这时候可以试试先在终端里执行adb kill-server然后在手机上撤销USB调试授权再执行adb start-server最后重新插拔数据线。这个顺序很重要因为ADB的授权状态是缓存在服务端的不重启服务端有时候授权更新不过来。如果offline状态反复出现检查一下你的ADB版本。在终端里敲adb version如果版本号低于30建议升级。老版本ADB对Android 12以上的系统兼容性有问题而小米的澎湃OS基于Android 13或14老ADB很容易出状况。用Homebrew的话brew upgrade android-platform-tools就能升级到最新版。还有一个隐藏坑Mac上如果同时装了多个版本的ADB比如之前手动下载过一个后来用Homebrew又装了一个终端里调用的可能是老版本。用which adb看看实际调用的是哪个路径下的adb如果不是你预期的那个调整PATH顺序或者把多余的删掉。6. 刷机之外的ADB实用技巧与日常维护6.1 用ADB抓日志定位手机问题刷完机之后如果手机有异常比如某个应用闪退、系统卡顿可以用ADB抓日志来分析。命令是adb logcat ~/Desktop/log.txt这个命令会把手机的系统日志实时输出到桌面上的log.txt文件里。你操作手机复现问题然后按CtrlC停止抓取把日志文件发给懂行的人看或者自己搜索关键词。日志里通常会有明确的错误信息比如FATAL EXCEPTION后面跟着具体的异常堆栈。如果日志太大可以加过滤条件。比如只看错误级别以上的日志adb logcat *:E ~/Desktop/error_log.txt这样只抓Error级别及以上的日志文件会小很多定位问题也更直接。6.2 ADB截图和文件传输的日常用法ADB不只是刷机用的日常也有很多实用场景。比如截图adb exec-out screencap -p ~/Desktop/screenshot.png这个命令直接把手机屏幕截图保存到Mac桌面不需要在手机上操作。对于做教程、记录问题、或者手机屏幕坏了但还能用ADB的情况非常有用。传文件也很方便。从Mac传到手机adb push ~/Desktop/file.zip /sdcard/Download/从手机拉到Macadb pull /sdcard/Download/file.zip ~/Desktop/这些命令在手机屏幕失灵或者触摸不灵的时候特别管用你可以完全通过Mac来控制手机的文件系统。6.3 无线调试的配置和注意事项ADB还支持无线调试不需要数据线。配置方式是先通过USB连接手机终端里执行adb tcpip 5555然后查看手机的IP地址设置 → 关于手机 → 状态信息 → IP地址假设是192.168.1.100接着执行adb connect 192.168.1.100:5555连接成功后就可以拔掉数据线通过WiFi继续用ADB。无线调试的好处是方便坏处是稳定性不如有线刷机这种高风险操作绝对不要用无线。无线调试适合日常的日志抓取、截图、文件传输这类低风险操作。提示无线调试的端口默认是5555但有些小米手机在重启后会重置这个设置需要重新用USB执行一次adb tcpip 5555。另外手机和Mac必须在同一个局域网内跨网段连不上。7. 我个人的几条实战心得刷机这件事说难不难说简单也不简单。Mac用户面对的最大障碍其实不是技术本身而是信息不对称——大部分教程默认你用Windows遇到Mac特有的问题时没人告诉你怎么办。我自己的经验是把环境搭建这一步做扎实后面的事情就顺了。ADB和fastboot装好、验证通过、手机能正常识别这三个条件满足了刷机流程本身其实就是等进度条走完。另外刷机前一定要想清楚为什么要刷。如果只是觉得系统卡先试试恢复出厂设置或者清理存储空间不一定非要刷机。刷机有风险数据无价备份永远不嫌多。我见过太多人刷到一半发现没备份照片最后到处找数据恢复工具那个过程比刷机本身痛苦十倍。最后说一个细节刷机完成后建议把开发者选项里的USB调试关掉除非你经常需要用ADB。一直开着USB调试会增加安全风险尤其是手机连到公共充电桩的时候。这个习惯我养成了好几年虽然麻烦一点但安心。