技术人生

小米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: ❌ 无法识别

准备工作

原始参考教程(@Skr-niao

提前下载并解压,准备好以下文件:

  1. adb工具 https://adbinstaller.com/
  2. 小米解锁工具 http://www.miui.com/unlock/index.html
  3. TWRP https://twrp.me/xiaomi/xiaomimi8.html
  4. parted https://pwdx.lanzoux.com/iUgSEmkrlmh
  5. UEFI https://github.com/edk2-porting/edk2-sdm845/releases (下载boot-dipper.img
  6. PE系统 https://pan.baidu.com/s/1Pgaz-bdTiOKFXGAxgYCX6A 提取码:1234
  7. Dism++ http://www.chuyu.me/zh-Hans/index.html
  8. 骁龙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文件夹即为我们之后要用的驱动包)
  9. 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.imgtwrp.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!

骁龙845 8核CPU被完美识别

A WindRunner. VoyagingOne

留言

您的电子邮箱地址不会被公开。 必填项已用 * 标注