本文最后更新于 8 个月前,文中所描述的信息可能已发生改变。
在一次整理房间的时候,无意间找到了自己已经没电关机的备用机:当初花300大洋购买的二手 小米 Max3,以大屏幕、大电池为卖点,买回来纯用来开热点的热点机。其羸弱的性能,打开当前的 3A 大作微信和QQ都要数秒,如果拿来日常使用简直是一种折磨。但其作为我少数苹果全家桶之外的设备,经常被我用来测试一些奇怪的软件和功能。
1. 开端…
在充电的时候,刚好想起来之前网上冲浪的时候见过别人介绍的一个软件:ACCA, 及其一个特殊功能:电池闲置模式,据称可以在充电的时候绕过电池直接给主板供电。这个功能看起来简直是为了让老旧安卓设备化身 24小时服务器的利器啊!但由于只有部分内核才支持,所以直接动身安装测试该功能是否适用于我的 Max3。
由于之前该设备经常被我用来瞎搞,当前正在使用的魔改 ROM 应该是自带 Root 和面具的,但是目前安装的 Magisk 软件已经无法正常打开了:“Magisk 屡次停止运行…”。无奈之下只能选择重刷。在寻找之前使用的魔改 ROM 的作者 “时过境迁” 的时候,发现该作者已经在酷安查无此人了,收藏的帖子也全部 404。这种情况其实在小众圈子还算比较常见,可能是遇到什么网络冲突或者单纯选择退坑删帖。但是由于没有作者的介绍,我望着百度云盘之前存的魔改 ROM 陷入沉思:各种魔改 ROM 的标题五花八门,没有仔细的介绍还真不知道哪个会自带 ROOT 适合养老…
俗称魔改的尽头是原装,找不到作者那只好刷回原版系统了,上小米官网找到 EU 的原版 ROM 后,直接进入之前刷入的 TWRP,欲通过 ADB Sideload 刷机。关于 TWRP:
TeamWin Recovery Project(TWRP)是一个开放源码软件的定制Recovery映像,供基于安卓的设备使用[5][6]。它提供了一个支持触摸屏的界面,允许用户向第三方安装固件和备份当前的系统[7][8][9]。因此,经常在root系统时安装[10],虽然它并不是root之后才能安装。
这时候已经时晚上的 00:30,此时的我很有自信,虽然对安卓刷机狗屁不通,但是仗着有 TWRP 的加持,就算刷死了也可以暂时使用 TWRP 放着做后续处理。
然而,我还是太小看安卓刷机的魅力了…
2. 事故
顺利刷入原版 ROM 后尝试开机,事情开始变得不对劲了起来…
手机卡在彩色的 "MIUI" Logo 很长时间无法启动。在等待将近 20 分钟后,我有点慌了,此时已经接近凌晨一点,我决定放弃刷机,暂时进入 TWRP 保命。然而重启后,长按 “电源 + 音量加”,等待我的不是硕大的 TWRP 字体,而是 Xiaomi 原版的 Recovery 系统。原版的 Recovery 看起来十分精简,只提供了 Wipe data 和 Reboot 选项,此时我还抱有 TWRP 还存在的幻想,以为我只是不小心进入了原版 ROM 什么特殊的功能区里。
多次尝试进入 TWRP 无果后察觉到 寄,看来之前的 TWRP 已经离我而去了。
3. 尝试挽回
TWRP 没了就刷嘛,有电脑有数据线,又不是什么难事。虽然已经凌晨一点,但是总不能让手机卡在 MIUI Logo 亮着屏度过一整夜。电脑 ADB 也早已安装好,直接进入 Fastboot 模式,连上电脑,下载官方 TWRP 准备刷机。我找到数据线,连上我的 Windows11 笔记本上仅有的两个 USB3.0 接口之一 (都是伏笔啊),打开 Powershell 开始刷机。
3.1 USB 驱动…?
PS C:\Users\baiiylu> fastboot.exe devices
PS C:\Users\baiiylu>
开幕雷击,fastboot devices
找不到任何设备,而在 设备管理器 中显示 外接设备带着一个黄色叹号,看起来是没有安装 USB 驱动导致的电脑无法识别 Fastboot 模式的手机。
在网上搜索了数分钟后,得知小米官方软件 Miflash_unlock 自带一个 USB 驱动安装程序,但是新版已经将其移除了。由于我并不需要 Miflash 来解锁 BL,也早已忘记了小米账号,所以从 B站的某位好心人中要到了百度网盘的旧版 Miflash 压缩包,双击包中的 MiUsbDriver.exe
即可安装驱动程序,fastboot 也可以正常识别设备了。
INFO: 字数不多,但找USB驱动耗时约 20分钟…
3.2 Fastboot 刷机报错,无反应
在输入 fastboot.exe flash recovery twrp.img
指令尝试刷入 TWRP 后,powershell 随即卡住。在我意识到刷入一个大小仅为 60MB 左右的镜像并不需要数十分钟后,我发现遇到了第一个问题:没有错误信息,没有任何日志,我甚至不知道他现在到底是正在刷机还是报错了。
第一个浮现在我脑中的是 TWRP 的镜像问题,因为除了这个变量貌似也没有其他可以改变的东西了。我在互联网上下载了数个第三方魔改的 TWRP 镜像,并尝试更换命令逐一尝试,十分钟后,我收集到了好几种不同的错误:
PS C:\Users\baiiylu\Downloads> fastboot.exe flash recovery twrp.img
...卡住...
^C
PS C:\Users\baiiylu\Downloads> fastboot.exe boot .\twrp.img
Sending 'boot.img' (64656 KB) FAILED (remote: 'Requested download size is more than max allowed
')
fastboot: error: Command failed
PS C:\Users\baiiylu\Downloads> fastboot.exe boot .\twrp.img
Sending 'boot.img' (64656 KB) FAILED (Write to device failed (Too many links))
fastboot: error: Command failed
看着这些错误提示仍然一头雾水,这些提示并没有一条明确指出问题出现在哪里,第一条的 'Requested download size is more than max allowed
更是让我莫名其妙,纯本地的指令为什么会出现 请求下载大小大于最大值
这种申请错误的??
不过有了错误提示,上网检索也方便了不少,很快就查明这些问题都是由 数据线/USB3.0/USB接口 导致的,解决问题的办法也很简单,更换数据线,更换使用的 USB 接口, 更换 USB2.0 等。
在2024年,让我现在变出一个 USB2.0 接口的设备看起来不太现实。我翻箱倒柜的在宿舍里找到了四根线,分辨是 杂牌A-C,官方A-C,苹果 C-C,第三方雷电四 C-C,同时在我的电脑上包括 C口 和 A口 的所有的 USB 接口都试了数遍,问题依旧且无法解决。
INFO: 此过程耗时约 1 小时…
这时我终于意识到:使用 外星科技USB3.0 上给这台 MAX3 刷机简直是天方夜谭。我抱着怒火,此时已经接近凌晨两点半,最后的答案是你让我在2024年去找一个 USB2.0 的设备用来刷机?????
这使我想起了 MacBook 的拓展坞,上面貌似有一个 USB2.0 的接口可以使用。 十分钟后,我翻遍了整个宿舍,发现我居然没带拓展坞。
最后决定摆烂,最后一次尝试重启,依旧卡 MIUI 的logo,直接扔进抽屉里开始睡觉。
虽然只充了10%不到的电,不过死不死的,懒得管了。寄了回家直接咸鱼出掉,不给这祖宗找 USB2.0 供着了。
INFO: 总过程耗时约 3 小时,成功把手机刷成了砖,所以在此奉劝大家,不要在晚上(尤其是有点困意的时候)干高风险事情
3.3 (小篇:终)世界十大未解之谜:问题的消失
INFO: 大约 8 小时后…
早上起来,打开抽屉一看,果然已经关机了,应该是没电了吧,我这样想着。顺手长按电源键检查尸体状况。随着一声震动,手机开机,短暂的 MIUI Logo 动画后直接进入了初始化界面。
???我的锅,难道是我等的时间短了?我当时等了将近20分钟都没开机,原来是要我等一晚上??
两分钟后初始化完成,检查手机系统状况,完好无损。
他妈的,又浪费三个小时宝贵的睡觉时间。
4. 不忘初心:继续尝试刷入面具 ROOT设备
开机后直接安装面具开始走经典流程:提取原版 ROM 的 boot.img 进行修补,传到电脑,通过 Fastboot 刷入修补后的镜像。
我盯着眼前的教程:他妈的,还要用 Fastboot 刷入,还是逃不掉 USB2.0 的魔抓。
不过我抱着侥幸心理,仍然提取出了修补后的启动镜像,尝试刷入。果不其然,和之前的的情况都不一样,我又遇到了一个新的报错:
PS C:\Users\baiiylu> fastboot.exe flash boot magisk_patched.img
Warning: skip copying boot image avb footer (boot partition size: 0, boot image size: 35861802).
Sending 'boot' (35021 KB) FAILED (Write to device failed (Invalid argument))
fastboot: error: Command failed
简单搜索,导致的该问题的原因还是一样的:不能用 USB3.0,只能用 USB2.0。
我心中万马奔腾,为了省下数十大洋和一周的快递时间买一个只会用一次的 USB2.0 转换器,不如上网搜索一下有没有民间大神可以解决这个问题。
果然,在 xdaforum 论坛有一个大神提供了解决办法,通过修改注册表强制改变 Windows 对安卓设备连接时的对 USB 处理方式。但是该文章作者直接提到了仅在 Windows10上有效果
EDIT: This unfortunately doesn’t seem to work for Windows 11. It worked reliably under Windows 10 for me, but on Windows 11 it’s back to needing a USB 2.0 hub.
难道,又要白忙活一场了么…
5. USB3.0无法使用 Fastboot 解决方案:果神下场,拯救众生
血压正高时,眼神一瞥,看到了躺在旁边的 Macbook。此时一个想法诞生,Windows 遇到的这些问题,会不会 Mac 上就刚好没有呢?
一开始我并不抱什么希望,毕竟 Windows 上的两个C口我也测试过,并不能解决问题。而 Macbook 上仅有C口,而且我还没有拓展坞。
打开 MacBook 终端,从一堆数据线中随便挑一根 C-C的数据线,随便找一个接口连上手机,将手机进入 Fastboot 模式,通过 fastboot devices
成功认出设备。目前来看,至少 Mac 不用浪费时间找什么USB驱动不是么。直接尝试刷入已经修补后的 启动镜像,一条指令下去直接成功:
➜ ~ fastboot devices
3fd2c431 fastboot
➜ ~ fastboot flash boot magisk_patched.img
Sending 'boot' (35021 KB) OKAY [ 0.760s]
Writing 'boot' OKAY [ 0.243s]
Finished. Total time: 1.091s
➜ ~ fastboot reboot
Rebooting OKAY [ 0.000s]
Finished. Total time: 0.000s
仅耗时一秒,解决了 Windows11 下三个小时解决不了的问题。(虽然大部分情况下是我的经验不够导致的)
但现在我已经成为纯真的 Mac 粉丝了。
一鼓作气,尝试刷入 TWRP,两秒完成:
➜ ~ adb reboot fastboot
➜ ~ fastboot flash recovery twrp.img
Sending 'recovery' (64656 KB) OKAY [ 1.716s]
Writing 'recovery' OKAY [ 0.453s]
Finished. Total time: 2.173s
➜ ~ fastboot reboot
Rebooting OKAY [ 0.000s]
Finished. Total time: 0.000s
➜ ~
不用挑数据线,不用挑接口,不用和傻逼 USB2.0 3.0 斗智斗勇,此时此刻,我对当时选择用 Windows 刷机而不是 Mac 产生了深深的自责和懊悔
回想起这短短三个小时途中遇到的 Windows11 文件管理器卡BUG,疯狂弹窗最后卡死电脑 只能任务管理器强制杀死 Explorer,Powershell 死机只能重开,环境变量默认不生效…原来 Windows 才是最后的恶魔么
6. 白忙活 (完)
Root 后下载 ACCA,进入设置点击测试该系统内核是否支持 “电池闲置模式”,数秒后,弹出提示:“当前内核并不支持该功能”。
戏剧性的结尾,为本篇画上一个完美的问号。