趁着刚刷完还有点记忆赶紧记录一下!

起因:之前 Google Map 老是闪退不以为意,最近发现 Google Photos 等一系列 Google 系产品也无法正常使用。刚开始还以为是网络或者版本问题,再三确认网络顺畅并且无论什么版本都无法使用。折腾到放弃,于是去网上搜了搜 MIUI 12.5 + Google, 结果收获一大堆吐槽,说是这个版本后取消对旧手机的支持了。怎么办呢?

方法一:买新手机。我一般只有在手机卡得不行了或是电池不行才决定换手机,现在的手机尽管用了好几年但性能耗电量依然不错,另外在国内买能支持 Google 服务的手机还得调研很久,即将出国留给我的时间不多了。

方法二:给手机降级。刚开始我还以为恢复出厂设置可以直接降到刚买手机时的版本,但事实上恢复出厂设置后系统等级不变,只能通过刷机降级。

刷机这个词并不陌生,但真正干还是第一次,所以还是提心吊胆的,所幸整个过程很顺利。下面记录一下整个过程,首先提一下背景。

我的设备信息:手机是小米8,电脑是 mac,装有 windows 的虚拟机。

准备刷机工具和线刷包:

  1. 谷歌提供的工具包 直接下载即可
  2. 好心网友们整理的ROM仓库 根据手机型号,刷机方式,版本选择合适的包下载

下载好这两个东西后,把它们并到一起。


小米刷机有两种,一种是线刷,一种是卡刷,我使用的是前者。(在 b 站看到有人通过瞒天过海降级成功,即升级过程中把安装包放到某个路径下,替换掉升级的安装包,这种方法看上去很简单,但感觉风险蛮大的,我就只能看看惊呼一句牛逼)

线刷的第一步,就是解锁 Bootloader。怎么解锁很简单,官方也有工具可供下载,但这个工具只能在 windows 上进行。一开始我不想用虚拟机,但网上推荐的 mac 可用的工具,比如 MiUnlockTool 或是 XiaoMiTool V2 都不可用了,所以最后还是上虚拟机了。

下载好解锁的压缩包解压后,点击一个带有 unlock 的 exe 文件即可打开 Unlock Tool,界面样式如下图所示:

使用 USB 连接你的手机和电脑,注意先把左下角的账号给登录了(我一开始就关机开 Fastboot 模式,结果登录账号需要手机验证码,又重开机重关机 🤦‍♀️)

登录账号后在将手机关机,长按开机键和音量调低键进入 Fastboot 模式(也可以通过终端输入 adb reboot bootloader 进入)

打开电脑的终端,进入下载文件的目录后输入:

$ adb devices 
List of devices attached
e9ca9546	device

$ sh ./flash_all.sh -s e9ca9546
product: dipper
Erasing 'boot'                                     OKAY [  0.105s]
Finished. Total time: 0.107s
Sending 'crclist' (0 KB)                           OKAY [  0.011s]
Writing 'crclist'                                  OKAY [  0.008s]
Finished. Total time: 0.024s
Sending 'sparsecrclist' (0 KB)                     OKAY [  0.004s]
Writing 'sparsecrclist'                            OKAY [  0.000s]
Finished. Total time: 0.011s
Sending 'xbl_ab' (3872 KB)                         OKAY [  0.114s]
Writing 'xbl_ab'                                   OKAY [  0.969s]
Finished. Total time: 1.089s
Sending 'xbl_config_ab' (95 KB)                    OKAY [  0.011s]
Writing 'xbl_config_ab'                            OKAY [  0.642s]
Finished. Total time: 0.659s
Sending 'abl_ab' (152 KB)                          OKAY [  0.009s]
Writing 'abl_ab'                                   OKAY [  0.014s]
Finished. Total time: 0.028s
Sending 'tz_ab' (2016 KB)                          OKAY [  0.057s]
Writing 'tz_ab'                                    OKAY [  0.100s]
Finished. Total time: 0.163s
Sending 'hyp_ab' (387 KB)                          OKAY [  0.013s]
Writing 'hyp_ab'                                   OKAY [  0.021s]
Finished. Total time: 0.040s
Sending 'devcfg_ab' (39 KB)                        OKAY [  0.003s]
Writing 'devcfg_ab'                                OKAY [  0.004s]
Finished. Total time: 0.013s
Sending 'storsec_ab' (20 KB)                       OKAY [  0.012s]
Writing 'storsec_ab'                               OKAY [  0.003s]
Finished. Total time: 0.021s
Sending 'bluetooth' (748 KB)                       OKAY [  0.020s]
Writing 'bluetooth'                                OKAY [  0.034s]
Finished. Total time: 0.060s
Sending 'cmnlib_ab' (368 KB)                       OKAY [  0.013s]
Writing 'cmnlib_ab'                                OKAY [  0.023s]
Finished. Total time: 0.043s
Sending 'cmnlib64_ab' (484 KB)                     OKAY [  0.021s]
Writing 'cmnlib64_ab'                              OKAY [  0.030s]
Finished. Total time: 0.057s
Sending 'modem' (168428 KB)                        OKAY [  4.641s]
Writing 'modem'                                    OKAY [  7.122s]
Finished. Total time: 11.769s
Sending 'dsp' (32768 KB)                           OKAY [  0.942s]
Writing 'dsp'                                      OKAY [  1.428s]
Finished. Total time: 2.375s
Sending 'keymaster_ab' (227 KB)                    OKAY [  0.016s]
Writing 'keymaster_ab'                             OKAY [  0.018s]
Finished. Total time: 0.040s
Sending 'logo' (22064 KB)                          OKAY [  0.593s]
Writing 'logo'                                     OKAY [  0.933s]
Finished. Total time: 1.531s
Sending 'misc' (8 KB)                              OKAY [  0.004s]
Writing 'misc'                                     OKAY [  0.001s]
Finished. Total time: 0.010s
Sending 'aop_ab' (180 KB)                          OKAY [  0.012s]
Writing 'aop_ab'                                   OKAY [  0.015s]
Finished. Total time: 0.033s
Sending 'qupfw_ab' (63 KB)                         OKAY [  0.012s]
Writing 'qupfw_ab'                                 OKAY [  0.005s]
Finished. Total time: 0.024s
Sending 'ImageFv' (22 KB)                          OKAY [  0.004s]
Writing 'ImageFv'                                  OKAY [  0.002s]
Finished. Total time: 0.011s
Sending sparse 'vendor' 1/2 (774192 KB)            OKAY [ 21.266s]
Writing 'vendor'                                   OKAY [  0.001s]
Sending sparse 'vendor' 2/2 (118764 KB)            OKAY [  5.219s]
Writing 'vendor'                                   OKAY [  0.001s]
Finished. Total time: 26.495s
Sending sparse 'system' 1/4 (773588 KB)            OKAY [ 22.248s]
Writing 'system'                                   OKAY [  0.001s]
Sending sparse 'system' 2/4 (772776 KB)            OKAY [ 21.999s]
Writing 'system'                                   OKAY [  0.001s]
Sending sparse 'system' 3/4 (774288 KB)            OKAY [ 21.559s]
Writing 'system'                                   OKAY [  0.001s]
Sending sparse 'system' 4/4 (682100 KB)            OKAY [ 19.569s]
Writing 'system'                                   OKAY [  0.001s]
Finished. Total time: 86.100s
Sending 'userdata' (271072 KB)                     OKAY [  7.479s]
Writing 'userdata'                                 OKAY [ 10.167s]
Finished. Total time: 21.222s
Sending 'recovery' (57609 KB)                      OKAY [  1.525s]
Writing 'recovery'                                 OKAY [  2.463s]
Finished. Total time: 5.557s
Sending 'cache' (120 KB)                           OKAY [  0.006s]
Writing 'cache'                                    OKAY [  0.008s]
Finished. Total time: 0.021s
Erasing 'sec'                                      OKAY [  0.001s]
Finished. Total time: 0.004s
Sending 'cust' (147752 KB)                         OKAY [  4.118s]
Writing 'cust'                                     OKAY [  5.541s]
Finished. Total time: 9.665s
Sending 'boot' (44457 KB)                          OKAY [  1.273s]
Writing 'boot'                                     OKAY [  1.881s]
Finished. Total time: 4.106s
Rebooting                                          OKAY [  0.000s]
Finished. Total time: 0.000s

本以为要等很久,没想到很快就好了。就这样,享受你的降级手机吧~

好心网友整理的适合米 8 降级的线刷包最高是 V12.0.4 版本,所以我就刷了这个版本。之后我尝试用了酷安 xkeyC 大大开发的 X Google Installer 安装三件套,安装完后启动无压力,再也不会出现按了半天没有反应的现象。12.0 这一系列的版本应该都是 OK 的。

温馨提醒:刷机前备份一定要谨慎谨慎再谨慎!我删得太卖力,一不小心把 Tasker 和 Autojs 都直接卸载了,曾经写的自动化脚本就全没了 😭

有舍也有得。除去了微信庞大的聊天记录以及多年不用的 app 后,曾经存储空间占用率 75%,现在只有 10% 不到,非常清爽。趁着全新系统好好调教一下手机,我发现原生的浏览器也没有那么不堪,把广告入口都关闭也还算是清爽;每一次初开应用认真设置权限,做到非必要不给权限;下载个李跳跳远离各种开屏广告;微信聊天记录日日清理,能退的群都退了;管理好 app 的密码,让自己有更好的掌控感;应用断舍离,做到非必要不下载,可以用小程序代替就不下载应用…这样一番处理后,玩手机的体验也似乎改善了不少呢!

祝每一个刷机的人都能成功!