ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Mac刷小米手机全攻略:ADB与fastboot环境搭建及刷机避坑指南

Mac刷小米手机全攻略:ADB与fastboot环境搭建及刷机避坑指南 1. 为什么Mac用户刷小米手机总踩坑用Mac给小米手机刷机的朋友十个里有八个在第一步就卡住了。不是ADB装不上就是fastboot识别不到设备再不然就是驱动装完了系统还是不认。Windows上那些一键刷机工具在macOS上基本全军覆没论坛里翻半天教程照着做还是报错。我自己第一次用MacBook给小米手机刷机的时候光ADB环境就折腾了整整一个下午最后发现是Homebrew安装的platform-tools路径没加到PATH里。这篇内容就是把我这些年用Mac刷小米手机的经验完整梳理一遍。从ADB和fastboot的环境搭建到解锁BL、刷入ROM、处理各种报错每一步都配上我实际踩过的坑和解决方案。不管你是第一次刷机的新手还是之前刷过但被Mac环境折磨过的老玩家都能从这里找到可以直接抄作业的流程。核心关键词就几个Mac、小米手机、刷机、ADB、fastboot围绕这几个点把整个链路讲透。需要提前说明的是刷机本身有风险操作前务必备份好数据。另外小米近两年的机型在解锁BL政策上有变化具体以你手机当前系统版本的实际情况为准。下面的流程基于我手头几台小米机型的实操经验整理不同型号在细节上可能有差异但整体思路是通用的。2. Mac端ADB与fastboot环境搭建全流程2.1 为什么Mac上装ADB比Windows麻烦Windows用户装ADB下载一个压缩包解压双击里面的exe就能用。Mac上没这么简单因为macOS对可执行文件的来源有严格限制从网上下载的二进制文件默认会被Gatekeeper拦截。而且Mac没有Windows那种“设备管理器”来统一管理驱动fastboot模式下识别设备靠的是系统底层的USB驱动一旦有问题排查起来更麻烦。另一个坑是Homebrew。很多人看到教程说brew install android-platform-tools就完事了但实际上Homebrew本身在Mac上安装就可能报错尤其是网络环境不稳定的情况下mac安装homebrew报错这个搜索词热度一直很高。所以我的建议是分两条路走能用Homebrew就用用不了就手动装两条路我都详细说。2.2 方案一通过Homebrew安装platform-tools先确认Homebrew是否已经装好。打开终端输入brew --version如果显示版本号就说明已经装了直接跳到下一步。如果提示command not found那需要先装Homebrew。安装命令官方给的是/bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)但实测下来这个命令在国内网络环境下大概率会卡住或者报错。常见的报错是Failed to connect to raw.githubusercontent.com port 443。遇到这种情况可以换用国内镜像源安装具体方法网上有很多这里不展开。装好Homebrew之后安装platform-toolsbrew install android-platform-tools装完之后验证一下adb version fastboot --version两个命令都能输出版本号就说明装好了。Homebrew安装的好处是路径自动配置好不需要手动改PATH。缺点是Homebrew本身可能出问题而且更新的时候偶尔会把platform-tools搞坏需要重新装。2.3 方案二手动下载platform-tools并配置PATH如果Homebrew实在装不上手动方案更可控。去Google的开发者官网下载platform-tools的Mac版压缩包解压得到一个platform-tools文件夹。把它放到一个固定的位置比如~/Library/Android/sdk/platform-tools。然后配置PATH。Mac上默认终端是zsh配置文件是~/.zshrc。用文本编辑器打开nano ~/.zshrc在文件末尾加上一行export PATH$PATH:~/Library/Android/sdk/platform-tools保存退出后执行source ~/.zshrc再验证adb version和fastboot --version。手动方案的好处是不依赖Homebrew版本自己控制。缺点是需要自己管理路径如果换了终端或者重装了系统配置可能丢失。注意如果你用的是bash而不是zsh配置文件是~/.bash_profile。Mac从Catalina开始默认用zsh但如果你手动改过默认shell需要确认一下当前用的是哪个。2.4 验证ADB和fastboot是否正常工作环境装好后用USB线把小米手机连到Mac上。手机需要先开启开发者选项进入设置找到“我的设备”连续点击“MIUI版本”七次直到提示“您已处于开发者模式”。然后回到设置进入“更多设置”找到“开发者选项”打开“USB调试”。在终端输入adb devices如果一切正常会显示一行设备信息后面跟着device状态。如果显示unauthorized说明手机上还没有授权这台电脑的调试权限需要在手机屏幕上点击“允许USB调试”。如果列表是空的说明连接有问题可能是线的问题也可能是驱动的问题。fastboot模式的验证需要先把手机重启到fastboot。命令是adb reboot bootloader手机会重启并进入fastboot界面屏幕上会显示一只兔子在修安卓机器人。然后在终端输入fastboot devices正常的话会显示设备序列号和fastboot字样。如果什么都没显示那就是fastboot驱动的问题Mac上这个问题比Windows更常见后面会专门讲怎么排查。3. 小米手机刷机核心操作环节拆解3.1 解锁Bootloader的前置条件与操作小米手机刷机的第一步是解锁Bootloader这是所有后续操作的前提。没有解锁BLfastboot模式下无法刷入任何非官方镜像。解锁需要用到小米官方的解锁工具但官方工具只有Windows版Mac用户没法直接用。这就引出一个问题Mac用户怎么解锁BL我的做法是找一台Windows电脑或者虚拟机先完成解锁解锁之后再回到Mac上进行后续操作。因为解锁BL是一次性的解锁之后就可以在Mac上自由刷入了。如果你手头没有Windows环境可以考虑用Parallels Desktop或者VMware Fusion装一个Windows虚拟机只用来跑解锁工具。解锁的具体流程是在小米官网申请解锁权限下载解锁工具手机进入fastboot模式连接电脑工具会自动识别并完成解锁。解锁过程中会清除手机所有数据所以提前备份好。解锁完成后手机会重启开机时会显示“ unlocked”字样。注意小米近两年对解锁BL增加了社区等级和答题要求新机型可能需要等待7天甚至更长的绑定时间。具体政策以你手机型号对应的官方说明为准。3.2 fastboot模式下刷入Recovery和ROMBL解锁之后就可以在Mac上操作了。刷机的核心工具就是fastboot所有操作都在终端里完成。第一步是刷入第三方Recovery常用的有TWRP。下载对应你机型的TWRP镜像文件通常是.img格式。手机进入fastboot模式连接Mac然后执行fastboot flash recovery twrp.img刷入完成后不要直接重启系统否则官方ROM可能会把Recovery覆盖回去。正确的做法是执行fastboot boot twrp.img这样会临时启动TWRP进入TWRP之后再在里面刷入永久Recovery。进入TWRP后可以先做一个完整备份包括系统、数据、Boot等分区。这个备份在后续出问题时能救命。刷入ROM的方式有两种一种是fastboot线刷一种是Recovery卡刷。线刷适合官方完整包卡刷适合第三方ROM。线刷的命令通常是fastboot flash system system.img fastboot flash boot boot.img但不同ROM的刷入方式不一样有些是一键脚本有些需要手动刷多个分区。我的建议是优先看ROM作者提供的说明不要自己瞎猜分区名。3.3 刷机后的首次启动与数据恢复刷完ROM后第一次启动会比较慢因为系统需要重建缓存和初始化数据。小米手机第一次启动可能需要5到10分钟期间屏幕可能黑屏或者卡在开机动画这是正常的不要急着强制重启。首次启动完成后建议先不要恢复数据而是先确认系统基本功能正常WiFi能不能连、相机能不能用、通话有没有声音。确认没问题之后再恢复数据。恢复数据可以用之前TWRP做的备份也可以用小米自带的换机工具。如果你刷的是第三方ROM比如类原生系统可能需要额外刷入GAppsGoogle服务框架和Magiskroot权限。GApps的版本要和ROM的安卓版本匹配刷错了会导致系统无法启动。Magisk的刷入相对简单在TWRP里直接刷入zip包就行。提示刷机后如果遇到无法开机、卡在开机动画的情况先尝试进入Recovery双清清除数据和缓存再重启。如果还是不行可能需要重新线刷官方包救砖。4. Mac刷机常见报错与排查技巧实录4.1 fastboot连接不到设备的排查思路这是Mac用户遇到最多的问题。fastboot devices没有任何输出但手机明明已经进入fastboot模式并且连着线。排查顺序如下第一换线。很多Type-C线只支持充电不支持数据传输尤其是随机附赠的线。换一根确认能传数据的线试试。第二换USB口。MacBook上的USB-C口有时候对fastboot模式的支持不好尤其是通过扩展坞连接的时候。直接插在电脑机身上的口不要用Hub。第三检查fastboot驱动。Mac上fastboot识别设备依赖的是系统自带的USB驱动但有些小米机型需要额外的驱动才能被识别。可以在终端输入system_profiler SPUSBDataType看看USB设备列表里有没有出现小米的设备。如果没有说明系统层面就没认到。第四重启到fastboot的方式。有些机型用adb reboot bootloader进入fastboot后识别不到但关机后按住音量减电源键进入fastboot就能识别。这个差异和机型的bootloader实现有关。4.2 adb unauthorized的解决方法adb devices显示unauthorized说明手机没有授权这台电脑。解决方法看起来很简单在手机上点击“允许USB调试”。但有时候手机屏幕上根本不弹这个提示或者点了允许之后还是显示unauthorized。这种情况通常是ADB密钥的问题。Mac上的ADB密钥存放在~/.android/adbkey和~/.android/adbkey.pub。如果这两个文件损坏或者权限不对就会导致授权失败。解决方法是删掉这两个文件然后重启ADB服务rm ~/.android/adbkey ~/.android/adbkey.pub adb kill-server adb start-server然后重新连接手机手机上会重新弹出授权提示。点击允许后应该就能正常识别了。还有一种情况是开发者选项里的“USB调试”开关需要关掉再打开或者需要撤销USB调试授权后重新授权。在开发者选项里找到“撤销USB调试授权”点一下然后重新连接。4.3 刷机过程中断的处理与救砖刷机过程中最怕的就是中途断开连接比如USB线松了、电脑休眠了、终端被意外关闭了。这种情况下手机可能处于半刷入状态无法正常开机。如果还能进入fastboot模式那就有救。重新连接Mac确认fastboot devices能识别到然后重新刷入完整的官方包。小米官方包通常是一个.tgz压缩包解压后里面有一个flash_all.sh脚本在Mac上可以直接运行chmod x flash_all.sh ./flash_all.sh这个脚本会自动刷入所有分区把手机恢复到官方系统状态。如果连fastboot都进不去那可能需要进入EDL模式9008模式来救砖但EDL模式需要特殊的授权文件普通用户很难操作建议直接找售后。注意刷机前一定要确认电量在50%以上最好插着充电器操作。刷机过程中不要碰USB线不要合盖休眠终端不要关。4.4 常见问题速查表问题现象可能原因解决方法adb devices列表为空USB线不支持数据传输换一根确认能传数据的线adb devices显示unauthorizedADB密钥未授权删除~/.android/adbkey后重启ADBfastboot devices无输出fastboot驱动问题或USB口问题换USB口直插机身不用Hub刷机后卡开机动画数据冲突或ROM不兼容进Recovery双清后重启刷机中途断开USB连接不稳定重新进入fastboot重刷官方包Homebrew安装报错网络问题换国内镜像源或手动安装fastboot flash报错分区名不对或镜像损坏核对ROM说明重新下载镜像5. 刷机前后的数据管理与系统优化5.1 刷机前的完整备份策略刷机会清空手机所有数据所以备份是必须的。但备份不只是把照片拷到电脑上那么简单。我习惯分三层备份第一层是基础数据照片、视频、文档、微信聊天记录。照片视频直接拷到Mac上微信聊天记录用微信自带的迁移功能备份到另一台手机或者电脑上。第二层是应用数据很多应用的数据不在相册里比如笔记类应用、记账类应用。这些需要用应用自带的导出功能或者用小米云服务同步。小米云服务在刷机前可以手动同步一次刷完机后再同步回来。第三层是系统级备份在TWRP里做一次完整的Nandroid备份包括Boot、System、Data、Cache等分区。这个备份存在手机存储或者OTG U盘里刷机出问题时可以直接恢复。Nandroid备份的好处是完整缺点是占用空间大而且跨版本恢复可能有问题。提示TWRP备份默认存在手机内部存储的TWRP文件夹里刷机前把这个文件夹拷到Mac上避免被清空。5.2 刷机后的系统调优与常用配置刷完机之后系统是全新的需要重新配置。我通常会做这几件事第一关闭系统广告。小米的MIUI和澎湃OS里有很多系统级广告刷完机后可以在设置里逐个关闭。主要位置在“设置-密码与安全-系统安全-广告服务”里关闭个性化广告推荐然后在各个系统应用如天气、日历、文件管理的设置里关闭“内容推广”。第二调整动画速度。开发者选项里把窗口动画缩放、过渡动画缩放、Animator时长缩放都调到0.5x系统会感觉流畅很多。第三配置ADB无线调试。小米手机支持ADB无线调试在开发者选项里打开“无线调试”然后可以在Mac上通过WiFi连接手机不需要插线。命令是adb pair 手机IP:端口 adb connect 手机IP:端口配对码在手机的无线调试界面里会显示。无线调试的好处是方便缺点是速度比有线慢刷机这种操作还是建议用有线。第四清理系统数据。刷完机后系统里会有一些残留的缓存和日志可以在Recovery里再双清一次或者用系统自带的清理工具清理一遍。mac系统数据怎么清理这个搜索词热度很高说明很多人对系统存储管理有需求手机端也是类似的逻辑定期清理缓存能释放不少空间。5.3 刷机后的ADB常用命令与日志抓取刷完机后ADB仍然是常用的调试工具。几个高频命令抓取日志adb logcat log.txt这个命令会把手机的所有日志输出到log.txt文件里。如果只想看某个应用的日志可以加上过滤条件adb logcat | grep 关键词截图并保存到电脑adb exec-out screencap -p screenshot.png这个命令直接把截图保存到Mac当前目录不需要先存到手机再拷出来。安装应用adb install app.apk卸载应用adb uninstall 包名传文件到手机adb push 本地文件 /sdcard/目标路径从手机拉文件到电脑adb pull /sdcard/文件路径 本地路径这些命令在刷机后排错、调试、日常使用中都很实用。尤其是adb logcat遇到应用闪退或者系统异常时抓一份日志能快速定位问题。6. 关于刷机这件事的一些个人体会刷机这个事说到底是拿时间换自由。官方系统稳定但限制多第三方ROM自由但坑也多。我用Mac刷小米手机这些年最大的体会是环境搭建比刷机本身更耗时。ADB和fastboot在Mac上的配置一旦搞定后面刷机的操作其实很快十几分钟就能完成。但环境搭建可能会卡住新手一整天。另一个体会是不要追求最新版的工具。platform-tools更新频繁但有时候新版本反而会有兼容性问题。我习惯用一个确认稳定的版本除非遇到必须升级的情况否则不轻易更新。TWRP和Magisk也是同理稳定比新更重要。还有就是刷机前一定要想清楚为什么要刷。如果只是觉得官方系统广告多其实可以通过关闭广告和卸载预装应用来解决不一定非要刷机。刷机的真正价值在于获取root权限、安装类原生系统、或者体验新版本的安卓。如果这些对你来说不是刚需那保持官方系统反而是更省心的选择。最后分享一个小技巧如果你经常刷机可以在Mac上建一个专门的文件夹把常用的工具platform-tools、TWRP镜像、Magisk、常用ROM都放在里面再写一个简单的shell脚本自动配置PATH和检查设备连接。这样每次刷机的时候不用重新折腾环境直接跑脚本就行。我自己写了一个check_device.sh内容就是检查adb和fastboot能不能识别到设备每次刷机前跑一下能省不少事。
返回列表