刷机的时代其实早已过去,但对于一些老旧的设备来说,刷机是令其焕发新生的一种方式。
前言
笔者最近重新从iPhone切换到搭载Android系统的小米Redmi Note 13 Pro+,原来作为Android系统备用机(以防iOS不支持一些功能)的小米8 SE完全失去了作用,小米8 SE发布于2018年,距今已有5年,MIUI的更新也已经停止在MIUI 12.5。为了找回当年刷机的快感,同时给老设备续命一波,笔者决定为小米8 SE刷入其他的Android系统。
小米8 SE搭载了高通骁龙710处理器,这款处理器在当时出货量较大,开源方案得到了较多关注,包括LineageOS。LineageOS为小米8 SE适配了基于最新Android 13的LineageOS 20,而官方的方案则停留在了Android 10,笔者为了追求体验,决定刷入LineageOS 20。
准备工作:解锁BL
小米8 SE的BL解锁需要申请,笔者在2018年购买时已经解锁过,因此不需要再次申请。如果需要申请,可以参考小米官方的解锁教程。目前解锁工具仅支持Windows。
全是坑:折腾fastboot
fastboot无法刷写
笔者最开始尝试在Arch Linux上使用fastboot,但是将手机连接后尝试wipe super
和刷入recovery时发现,手机完全没有相应,电脑上相应的fastboot wipe-super /var/tmp/xm8selineage/super_empty.img
和fastboot flash recovery recovery.img
命令执行时完全卡住不动,没有任何输出。
笔者后来尝试换到Windows上操作,发现一旦使用fastboot命令操作,手机就会显示press any key to shutdown
,无法进行刷写。
9008的尝试
笔者以为是手机fastboot的问题,于是尝试使用9008模式刷写,解锁后的手机进入9008模式不用短接,只需要在fastboot模式下连接电脑并执行:
fastboot oem edl
然而比较麻烦的是,如前所述,要想执行自fastboot重启的命令必须要使用Linux(Windows使用fastboot会直接显示press any key to shutdown
),而9008模式刷机又只支持Windows操作系统,因此笔者需要先在Arch Linux上执行fastboot oem edl
,然后重启到Windows尝试刷写。
Windows下连接进入9008模式的手机后,在设备管理器中可以看到高通9008的COM10
端口,打开小米的刷机工具也确实能够看到设备,但是在刷写的时候总是会因为尝试写入超时而报错,不能正常刷写。
解决
根据一些检索到的信息,某些设备的fastboot模式要求必须连接到电脑的USB 2.0端口。笔者的电脑并没有USB 2.0端口,笔者也没有USB 2.0的集线器,因此不能直接尝试。
在Windows下,有一个解决方案是建一个内容如下的批处理文件,并以管理员身份执行:
@echo off
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\18D1D00D0100" /v "osvc" /t REG_BINARY /d "0000" /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\18D1D00D0100" /v "SkipContainerIdQuery" /t REG_BINARY /d "01000000" /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\18D1D00D0100" /v "SkipBOSDescriptorQuery" /t REG_BINARY /d "01000000" /f
pause
执行以后,笔者发现使用fastboot命令在Windows下可以正常刷写。
刷入LineageOS
在LineageOS官网上已有完成的刷写教程。首先需要从下载页中下载刷写所需要的recovery.img
、super_empty.img
和形如lineage-xxx.zip
的卡刷包。
先刷入super_empty.img
:
fastboot wipe-super super_empty.img
然后刷入recovery.img
:
fastboot flash recovery recovery.img
然后重启到recovery模式,刷入卡刷包:
fastboot reboot recovery
在recovery模式下,选择Apply update
,然后选择Apply from ADB
,然后在电脑上执行:
adb sideload lineage-xxx.zip
刷入完成后,在Recovery中清除所有用户数据,然后重启即可。