小米8刷入Win11系统
前段时间极客湾Geekerwan给手机装win11的视频一下子火了,搭载高通骁龙845平台的老设备们都有资格尝试刷入Windows on Arm系统。但彼时由于UEFI的兼容性问题,在米8的设备上触摸屏和USB都无法正常工作,因此在进入PE后无法执行后续的安装操作。近期有大佬(@Renegade Project)为小米设备修复了Acpi表,USB可以被正常识别,我也终于可以用手上闲置的米8整活Win11啦。
工作原理:首先将UEFI伪装成Linux内核被bootloader引导加载,然后借助UEFI正常引导Windows系统的启动。装机过程采用基于Win10制作的PE直接将Win10/11 on Arm系统镜像释放到磁盘中,并安装好所需的驱动程序,最终正常引导启动Win11操作系统。
外设驱动支持状态
Renegade开源驱动支持
小米8 设备代号:dipper
- USB: ✅ 正常工作
- 触控: ❌ 不支持
- 蓝牙: ✅ 正常工作
- 以太网: ✅ 正常工作
- WIFI: ❌ 不支持
- 蜂窝移动数据: ❌ 不支持
- 音频: ❌ 不支持
- 电池及电源管理: ❌ 不支持
- GPU: ❌ 无法识别
准备工作
提前下载并解压,准备好以下文件:
- adb工具 https://adbinstaller.com/
- 小米解锁工具 http://www.miui.com/unlock/index.html
- TWRP https://twrp.me/xiaomi/xiaomimi8.html
- parted https://pwdx.lanzoux.com/iUgSEmkrlmh
- UEFI https://github.com/edk2-porting/edk2-sdm845/releases (下载
boot-dipper.img
) - PE系统 https://pan.baidu.com/s/1Pgaz-bdTiOKFXGAxgYCX6A 提取码:1234
- Dism++ http://www.chuyu.me/zh-Hans/index.html
- 骁龙845平台驱动包 https://github.com/edk2-porting/WOA-Drivers (下载方法:命令行执行
git clone -c core.autocrlf=false https://github.com/edk2-porting/WOA-Drivers
或在GitHub上将项目仓库下载克隆到本地。然后在项目根目录打开PowerShell,执行命令.\extract.ps1 dipper
,命令执行结束后生成out
文件夹即为我们之后要用的驱动包) - Win11 arm64镜像 https://uupdump.net/known.php (进入后选择最新的Win11 arm64完整镜像即可,一路点进去创建下载包并执行包里给的下载脚本,等待下载封装完成,目录中生成最终的iso镜像)
硬件准备:
- 一个type-c接口的USB扩展坞
- 一个U盘,在里面提前拷贝入上面的文件4、6、7、8、9
- 外接USB鼠标、键盘
刷机流程
第一步 安装adb
在自己的操作系统中下载并解压文件1,其中包含了安卓调试桥abd工具和fastboot工具。将解压后的文件夹路径加入环境变量,完成后在命令行中测试。
第二步 解BL锁
首先自己备份好手机数据,解BL锁之后所有的用户数据都将清空。
进入手机MIUI系统,进入“设置 -> 我的设备 -> 全部参数”,连续点击5次“MIUI版本”打开开发者模式。再重新进入“设置 -> 更多设置 -> 开发者选项”,点击“设备解锁状态 -> 绑定账号和设备”更改解锁权限。之后回到“开发者选项”界面,打开“OEM解锁”及“USB调试”开关。
将手机通过USB连接电脑,运行文件2中的miflash_unlock.exe
,根据提示绑定小米账号解锁手机。若出现连接问题可以尝试运行文件2中的MiUsbDriver.exe
安装小米手机驱动程序。
第三步 安装TWRP
仍然将手机连接电脑,打开电脑命令行,输入adb devices
确认手机连接状态。
确认无误后,输入adb reboot bootloader
进入fastboot模式(或者在开机时按住音量下键)。
在电脑命令行中转到存储文件3的文件夹,执行命令fastboot flash recovery twrp.img
(twrp.img
为你下载的TWRP文件名)。
执行成功后继续输入fastboot reboot
,在执行的同时按住手机音量上键,使手机进入刷入的TWRP系统,若出现警告提示直接横划无视即可。
*注意:退出TWRP后,Recovery系统可能会恢复为小米的原生Recovery,若要再次进入TWRP,请重复以上操作。
第四步 划分硬盘分区与格式化
我们用下载的文件4:parted工具来给新系统划分硬盘分区。
使用扩展坞将准备好的U盘连接到手机,在TWRP中勾选“Mount -> USB-OTG”挂载U盘。然后进入“Advanced -> Terminal”,输入cp /usb_otg/parted /sdcard
将parted拷贝到手机内部存储。(该步骤也可在电脑端直接拷贝文件到手机存储根目录下)
将手机重新连接电脑,在电脑操作系统终端中输入adb shell
,进入安卓命令行,然后在命令行中依次执行以下命令。
# 启用parted cp /sdcard/parted /sbin/ && chmod 755 /sbin/parted # 解除挂载data和sdcard umount /data && umount /sdcard # 进入parted环境 parted /dev/block/sda # 查看分区信息,记一下userdata分区的起始和结束位置 p # 下面这步删除的是安卓的userdata分区,请根据上一步的执行结果找到对应的userdata分区号进行删除 rm 21 # 进行硬盘分区,接下来的4条命令分别为UEFI, PE, Win11, 安卓划分分区 # 最后的两个参数分别指定分区的起始位置和结束位置,依旧根据之前的结果自己设置 # 注意不要覆盖已有的分区,esp和pe的大小可以参考我的设置 mkpart esp fat32 1611MB 2100MB mkpart pe fat32 2100MB 5000MB mkpart win ntfs 5000MB 205GB mkpart userdata ext4 205GB 251GB # 设置21(原userdata)分区为esp分区 set 21 esp on
结束后重新打开操作系统命令行,输入adb reboot recovery
重启手机重新进入TWRP。
仍然在电脑上通过adb shell
进入安卓命令行,执行以下命令以完成分区的格式化。
# 分区格式化 mkfs.fat -F32 -s1 /dev/block/by-name/pe mkfs.fat -F32 -s1 /dev/block/by-name/esp mkfs.ntfs -f /dev/block/by-name/win mke2fs -t ext4 /dev/block/by-name/userdata # 挂载PE分区 mount /dev/block/by-name/pe /mnt
接下来写入PE镜像文件:将手机连接U盘,仿照之前操作完成U盘的挂载,并进入TWRP的终端,输入并执行命令cp -r /usb_otg/20h2pe_new/* /mnt
将PE系统(文件6)写入到挂载好的PE分区中。
返回TWRP首页,选择“Reboot -> Bootloader”重启手机到fastboot模式。
第五步 进入PE安装Win11
手机连接电脑,电脑命令行cd进入下载的文件5所在文件夹,执行命令fastboot boot boot-dipper.img
,接下来手机会自行通过UEFI引导启动PE系统,第一次见到Windows图形界面啦。
下面的操作不再需要电脑主机的配合。通过扩展坞将U盘、键盘和鼠标连接到手机进行后续操作,在PE的终端中输入diskpart
准备挂载UEFI的ESP分区,接着在diskpart环境中执行以下命令。
select disk 0 // 选择磁盘0 list part // 查看分区信息 select part 21 // 21为之前的esp分区号 assign letter=Y // 分配盘符 exit // 退出diskpart环境
下面用Dism++释放完整的Win11镜像到硬盘中。打开文件资源管理器,找到U盘中的Dism++(文件7)文件夹,双击启动Dism++ARM64.exe
,点击左上角的“文件 -> 释放映像”,选择U盘中的Win11 ISO镜像文件(文件9),再选择安装路径为D盘根目录,最后勾选“添加引导”,点击确定。等待一会后Win11镜像就释放完成了。
安装驱动:待镜像释放完成后,再点击Dism++左侧的“驱动管理”,点击右下角“添加驱动”,选择文件8中生成的out
文件夹,所有的驱动都会被一并安装。
禁用驱动签名:回到PE的终端中,输入以下命令。
bcdedit /store Y:\efi\microsoft\boot\bcd /set {Default} testsigning on bcdedit /store Y:\efi\microsoft\boot\bcd /set {Default} nointegritychecks on
最后在终端中输入shutdown -s -t 0
来使PE关机。
最后一步 启动Win11
同时长按手机开机键和音量下键,进入fastboot。将手机连接电脑,在电脑终端中输入和之前同样的命令fastboot boot boot-dipper.img
引导启动UEFI。
等待系统开机,大功告成,进入Windows11!