导论
无论打开浏览器、Bilibili 还是酷安,搜索“某台设备”“刷机”的时候,往往蹦出来的都是一个动辄 40 分钟又臭又长且毫无结构可言的视频教程、一个不知道从哪复制来的排版混乱错别字遍布的教程,再加上一个不知道从哪拿来的百度网盘链接,里面是一个“终极无敌傻瓜式一键刷机包”。
发布这样教程的作者往往自己都不明白原理,甚至缺乏基本的计算机常识,分不清“脚本、软件、指令、代码”,更不要提没有剪辑和没有结构化表达了。
这样的教程真的有用吗?
或许对于一个什么也不懂的小白,点开就能用是好事儿,但这样的教程到底是在帮助小白,还是让更多人变成小白?当网上充斥着这样低创的教程,真正想了解的人又该从何下手?
今天借着把一台小米平板 2 从 Windows 刷回 Android 的机会,我想来谈一谈什么是我心中的,有用的教程。
什么是好教程?
结构化表达和自包含
一部好的教程,它应该做到结构化的表达和自包含。
实际上来说,是很少有用户需要完整地从头到尾阅读一遍教程。所以比起教程,我更愿意叫它速查手册,它是允许用户忽略上下文进行跳读的,只选择自己需要的环节,教程也应该成立。
举个例子来说,在 bilibili 上搜索视频教程,你会发现大多数视频时长都在 30 分钟以上,这不是因为内容有多硬,而是作者没有结构化表达,导致整个视频分不成任何章节,因为所有东西都是耦合的。甚至于视频本身就是用手拿着手机拍电脑,想到什么说什么。
这里点一下,然后等一会儿啊,这里报错了,我以前也遇到过,重启一下试试
这样的“教程”自然就谈不上有用,它作为分享经验的价值就不高,更不要说作为教程了。
此外,应该有的错误处理也绝大多数都不提,在小米平板 2 上出现 bootloader error 03 是个普遍现象,虽然屏幕上说了点击音量上下执行操作,但是你不提到读者就会以为是意外情况而不敢点。
排版和剪辑
很多发表在视频平台或者小米社区上的教程普遍都有这个问题。
对于视频平台来说就是全程举着手机拍电脑,拍了半个小时甚至四五十分钟。视频本身作为教程的媒介,这是没问题的,虽然不方便速查,但方便跟着做。但这样的教程怎么跟着做?镜头乱晃,重点没有停留,视频中夹杂着大量无意义的空白,甚至拍不到关键的东西。
对文字来说就是排版混乱,尤其是小米社区上的教程,明显是不知道从什么地方复制来的:

先不论内容上的问题,这样的排版,谁能看得下去?
结构化是上一个话题,但想让教程变的结构化,排版和剪辑就是必不可少的一环。在 Markdown 里,我们用多级标题、代码块和列表来方便查阅; 在 Word 里,有比 Markdown 还多的表达方式; 甚至就只是纯 txt,也一样有办法用符号来让表达更结构化。
这都不是什么难事儿,难的是知识必须是结构化的,才有办法结构化的表达。
解释原理和严谨用词
读者可能不会真的需要了解背景知识才能进行操作,但那也不代表不需要解释,更不代表作者本身就不知道就能教别人。
例如在 Intel 设备里为什么需要 DNX?为什么需要加载 loader.efi?为什么需要重建分区表?
这些都是需要解释的问题,大可以解释一句再附上官方链接,这非常有助于想知道的读者了解设备特殊之处并据此自行进行错误排查。
此外严谨用词也是很重要的方面,上述搜索的那些视频教程,指着 bat 叫软件,把存储叫做内存,脚本叫做代码的比比皆是。严谨用词不是为了装,是为了最大程度地缩减歧义。
这也不是要求像写文档那样严谨,把 fastboot 实用工具、控制协议和客户端都叫做 fastboot 工具当然没问题,因为这样不会产生歧义,但分不清软件和脚本,这就是会产生歧义的。如果鼠标指针拍摄的不明显,观众怎么知道说的到底是exe还是bat?
在 Windwos 上双击 fastboot.exe,只会闪一个窗口而已。
工具和资源的提供方式
很多教程都喜欢甩一个百度网盘,甚至更过分的城通网盘。这种方式不利于作者管理和更新,更不利于读者获取。对于百度网盘可能还好,毕竟用客户端下载速度还算正常。但是城通网盘开了最高收益,只要不开 VIP, 10 mb 的文件能让你下 5 分钟,对于线刷包这样动辄上 GB 的大文件,没个两三个小时别想下完。
所以在提供这些文件时,尽量提供官方链接,镜像链接,最后的选择才是自托管。像是 Platform-Tools、Google USB 驱动,这都是会经常更新的东西,用最新的才方便使用新特性和跟进新教程,提供一个吭哧瘪肚下了十分的过时资源,对读者和作者都没有好处。甚至于不如让读者自行寻找来的更方便。
教程本体
工具准备
完成本教程所述的目标,你需要以下工具:
- Platform-Tools(需要 fastboot 实用工具)
- 小米平板 2 的 MIUI 线刷包,任意版本
- 一条数据线
- Google USB 驱动程序 (Windows)
- Intel Android AD 驱动程序 (Windows)
有些教程会说 Intel Android AD 驱动不能在 Windows 11 上工作,这是错误的说法。驱动无法加载是因为 Windows 11 要求驱动程序具有有效的签名,在高级重启中禁用驱动程序强制签名即可(按住 Shift 的同时点击重启)
其中,在 Linux 上:
sudo pacman -S android-tools android-udev在 Windows 上:
winget install -e --id Google.PlatformTools即可安装 Platform-Tools
进入 DNX 并加载 loader.efi
将你的设备完全关机,再同时按住音量上下键和电源键。当屏幕上提示“DNX 请求已收到,松开组合键”时松开组合键,或在屏幕显示黄色的 DNX 模式时松开组合键。用数据线连接设备和电脑。
DNX(Download aNd eXecute)是 Intel 芯片组特有的下载和执行模式,它工作在 Intel CSE Mask ROM 阶段,是系统上电后非常早期的启动环节(在 UEFI 和 CPU 之前)。
如果你是 Windows,请打开设备管理器检查驱动状态,如果状态异常或识别错误,请将手动更新它的驱动程序为 Intel Android AD。Linux 应该即插即用。
解压你下载的 MIUI 线刷包,从其中的找到 loader.efi
fastboot boot <path_to_loader.efi>此时设备端才运行了提供 fastboot 协议接口的环境,PC 上的 fastboot 客户端才能正常通信。
Windows 用户应再次打开设备管理器,检查驱动状态,如果异常或识别不正确,请手动将其更新为 Android Fastboot Interface。
此时你的设备屏幕应该上出现米兔的 Fastboot 图案。
一个便于理解的模式图是:
上电 -> CSE(DNX Triggered) -> DNX -> loader.efi -> fastboot
重建 GPT 分区表
刷入过 Windows 的小米平板 2 通常修改过分区表,Windows 建立的典型分区包括:
- EFI 系统分区(ESP)
- 若干 基本数据分区(Microsoft basic data partition)
分区表保存在 GPT 分区中,所以要先重建分区表使其恢复到 Android 的典型分区。
从解压的线刷包中找到 gpt.bin
fastboot flash gpt <path_to_gpt.bin>此时可以通过
fastboot getvar all来检查分区表。
刷入其他分区
按照次序执行:
fastboot flash bootloader bootloaderfastboot format cachefastboot flash data userdata.imgfastboot flash system system.imgfastboot flash boot boot.imgfastboot flash recovery recovery.img这些指令会刷入其它分区。有时一些包会携带 config、factory、oemvars 和 persistent,如果你需要恢复出厂,用相同的方式刷入这些分区即可。
重启
小米平板 2 的 fastboot 控制协议实现并不标准,如果你需要刷入第三方 recovery,请现在就刷入。如需从 Fastboot 直接重启到 Recovery:
fastboot oem reboot recovery你可能会需要 bootloader error 03,这是因为没有锁定 bootloader,你可以按音量上继续启动,如果不再需要解锁,请按音量下重启到 fastboot,并执行:
fastboot oem verified如果你遇到了 bootloader error 02/01/04,这是因为锁定 bootloader 之后的一些分区被修改过,这时请重新解锁并重新刷入官方分区再锁定。
到这里,教程本身就完成了。
感谢阅读。