欢迎光临散文网 会员登陆 & 注册

Surface Duo刷Win11完全攻略

2022-10-31 23:47 作者:lg1313_ZARD  | 我要投稿

白痴级操作,详细的讲解每一步命令的作用,保证看完之后不仅你自己会刷,还能教会别人怎么刷
首先提示:刷机会导致数据丢失,如有必要请备份数据。刷机过程没有风险,除非你误操作造成损坏,如果完全按照流程来,是不可能出现问题的。如果自作主张擅自操作了某些不该操作的东西造成损坏,本人概不负责(当然你没自作主张我也不会负责

[doge])
本教程是基于gus33000的教程编写,用更容易看懂和操作的方式来表达。原文链接:github.com/WOA-Project/SurfaceDuo-Guides/blob/main/InstallWindows-SurfaceDuo1.md
0.准备材料
你需要一台win10以上电脑,parted(分区工具),twrp镜像,大容量模式脚本(msc.sh),uefi镜像,驱动包(SurfaceDuo-Drivers-Full),驱动安装程序(DriverUpdater),启动引导包(DuoBoot.tar),谷歌adb和fastboot工具(platform-tools),Windows 10/11 ARM64装机镜像。以上所提到的文件,除装机镜像外均可在本人网盘分享中获取,本人也会随时更新网盘中的文件,链接:pan.baidu.com/s/1XEJBSjOozd3wkC-Xt7bveQ?pwd=DUO1

网盘

正常来说,打开链接后你能看见这些文件,你只需要下载红框中的这三个文件即可,剩下的没有必要,因为我已经把uefi,twrp,msc.sh等文件都塞进了platform-tools.zip中。如果你的电脑系统是x86或者ARM64架构,那么请下载上面那两个DriverUpdater。你也可以通过原教程的链接来获取这些文件,但是请下载后把文件重命名成和我这个网盘中相同的名称,并塞入解压后的platform-tools文件夹。下载完成后,解压红框中的三个zip文件,记住你保存的路径
装机镜像通过uup获取,链接:uup.rg-adguard.net

uup

打开网站后你应该能看到这样的界面,上面两个选项框是选择windows版本,你可以自行选择,只需要注意你选择的必须是ARM64的版本。下面三个框最好按照我这个图里的选择

选项

选择完成后界面应该会像下图一下

uup

你只需要点击绿框中的文件下载,或者右键另存为即可获得一个cmd文件,双击运行,就可以进行windows装机镜像的下载

cmd

打开后并进行几秒钟的下载后,界面应该是这样的,如果你看不懂,可以直接按enter,即可开始下载镜像,如果你有打开或者关闭一些功能的需求,只需要输入相应的字母并按enter即可,最后仍然是按enter开始下载(例如,你想要在装机镜像中内置net3.5,只需要输入n,再按enter,然后再按一下enter,就会开始下载)。下载完成后会自动打包成iso格式镜像,右键打开方式,使用windows文件资源管理器打开即可
自此准备工作结束,正式开始刷机过程。

1.解锁bootloader
先打开开发者模式(设置→关于→版本号→狂点),然后打开USB调试(设置→系统→开发者选项→USB调试),将你的手机通过数据线连接到电脑。打开准备工作中解压出来的platform-tools文件夹,在地址栏中输入CMD,回车,打开命令提示符窗口

文件夹
输入CMD

大约是这个样子

CMD

下面开始执行命令(注意冒号后面的红字是命令,命令需要一行一行的执行,每一行命令都需要按一次回车,不要一下子复制粘贴一大堆进去)

重启到bootloader:

adb reboot bootloader

解锁bootloader:

fastboot flashing unlock

执行这一步时可能需要确认,按电源键选择确认即可。执行完之后,你的手机会清除数据,然后恢复到初次开机状态,这时候你需要像刚拿到手机时一样,完成各项配置,并再次打开USB调试

2.创建分区
再次重启到bootloader:

adb reboot bootloader

开机到twrp:

fastboot boot twrp.img

进入twrp后,你不需要在手机上进行任何操作,直接继续在命令行里输入命令即可。
将parted导入手机存储,移动到指定位置并给予shell访问权限,然后进入shell:

adb push parted /sdcard/

adb shell "mv /sdcard/parted /sbin/parted && chmod 755 /sbin/parted"

adb shell


这时候分区工具parted就可以运行了,下面的命令是通过电脑直接传输到Duo内部并执行的。
注意:下面的操作一定要严格执行,否则稍有不慎你就可能会把分区表破坏掉,你的机子就开不了机了。另外不要自作聪明用其它工具进行分区,否则你的分区表一定会被破坏!
运行parted,进入手机磁盘并列出磁盘分区:

parted /dev/block/sda

print


这时候你应该能看到6个分区

分区列表

我这里有8个是因为我已经创建了windows所需的分区,如果你是初次刷机,应该只有6个,并且前5个分区的参数应该和我图里的一模一样,最后一个分区的参数应该是从51.9MB 起始到112GB结束(如果是256G的设备就是到240GB结束),并且名称为userdata
下面需要移除掉userdata分区(即安卓下存储用户数据的分区),并重新创建三个分区,一个是启动引导所需的esp分区,一个是装机所用的windows主分区,一个是为安卓保留的userdata分区(256G的设备需要把112GB替换成240GB)
移除分区6:

rm 6

在从51.9MB起始到564MB结束的位置区间创建esp分区:

mkpart esp fat32 51.9MB 564MB

创建Windows分区:

mkpart win ntfs 564MB 57344MB

(注:这里57344MB可以修改为你自定义的数值,你需要windows分区有多大,就输入多大的数字,比如我输入了80000MB)

创建安卓用户数据分区:

mkpart userdata ext4 57344MB 112GB

(注:同理,如果是256G的设备,就把112改成240,并且你上面57344改成了什么数字,这里也要输入相同的数字,比如我这里是80000)

把分区6设定为EFI系统分区:

set 6 esp on

然后你就可以退出parted了(退出前你可以再print一下,看看是不是正确的建立了分区,如果操作正确,你的分区应该有8个,并且除了大小和起始结束以外的参数跟我上面的差不多),输入:

quit

下面将这些分区格式化成指定格式,并创建目录,以使它们可用:

mkfs.fat -F32 -s1 /dev/block/sda6

mkfs.ntfs -f /dev/block/sda7

mke2fs -t ext4 /dev/block/sda8

mkdir /sdcard/espmnt && mount /dev/block/sda6 /sdcard/espmnt/

退出shell:

exit

下面把DuoBoot.tar导入到手机存储,并将其解压,把其中的uefi启动文件等移动到指定的位置:

adb push DuoBoot.tar /sdcard/

adb shell "tar -xf /sdcard/DuoBoot.tar -C /sdcard/espmnt --no-same-owner"

adb shell "mv /sdcard/espmnt/Windows/System32/Boot/ffuloader.efi /sdcard/espmnt/Windows/System32/Boot/ffuloader.efi.bak"

adb shell "cp /sdcard/espmnt/Windows/System32/Boot/developermenu.efi /sdcard/espmnt/Windows/System32/Boot/ffuloader.efi"


这一步是为了在esp分区中创建uefi启动引导,以进行后面的引导windows开机和进入大容量模式
危险操作到此结束,后面的操作理论上即便出现失误不会对你的手机产生破坏

3.进入大容量模式
进入大容量模式之后,你的手机就会像一块硬盘一样,这样方便你在电脑上进行安装系统等文件操作
把大容量模式脚本(msc.sh)导入到手机,并给予shell访问权限,再用shell加载大容量模式脚本:

adb push msc.sh /sdcard/

adb shell "chmod +x /sdcard/msc.sh"

adb shell "/sdcard/msc.sh"


执行完之后,你的Duo就会进入USB3.0大容量模式,你可以从电脑上直接访问手机磁盘,就像下图我的手机磁盘这样,只不过你的应该是空的,我的已经装好系统了所以有东西

我的手机磁盘

4.安装Windows
进入大容量模式之后,你就可以准备开始装机了
首先需要用diskpart工具给esp分区分配一个卷号,因为esp分区是系统分区,所以你的电脑是默认不会装载这个分区的,只会自动装载windows分区但是你下面需要对esp分区进行操作,所以需要分配一个卷号以进行操作
在命令提示符中输入:

diskpart

这时候应该会弹出一个请求管理员权限的窗口,然后就打开了diskpart工具,就像这样

diskpart


接下来的命令需要在diskpart中执行
在diskpart中列出你电脑上插入的所有磁盘:

list disk

列出磁盘后,你需要找到你的Duo的磁盘是哪一个。应该很好找,因为大小都是一样的,比如128G的就是100GB出头大小,256G的就是200多GB,你只要看见哪个磁盘的大小跟这俩数字差不多,那大概率就是这个了,例如我的就是磁盘2

diskpart


如果你实在找不到,就先拔掉数据线,然后list disk,再插上数据线,然后list disk,看看多出来了哪个,那就肯定是这个了
找到Duo的磁盘后,选中这个磁盘,输入:

select disk 你的Duo的磁盘的编号

(注:例如我的是磁盘2,我就输入select disk 2)
然后再列出所选磁盘的分区:

list partition

你应该能看到8个分区,理论上应该就跟之前在parted里print出来的一样,其中6是esp分区,7是win分区,8是安卓数据分区。如果不一样,并且你确认前面没操作错的话,你需要自己确认哪个分区对应哪个分区,这也不难确认,因为那那几个分区的大小都是明确的,esp分区是488MB,win分区就是你划的大小

分区列表

如图所示,488MB大小的分区6就是esp分区
选中esp分区:

select partition 6

(如果你的不是6你就换成对应的esp分区的编号)
分配一个卷号:

assign letter=?:

注:将?替换成任意可用字母,例如我这边已经有了C: D: E: F: G:五个盘,我就可以给这个esp分区分配一个H:,视情况而定,如果你实在不知道分配成什么字母好,那就输入assign letter=Y:,给esp分区划到Y盘

我的磁盘
给esp分区分配卷号

理论上win分区应该已经被自动装载了,所以不需要手动分配,但是如果没有被自动装载,那么你就需要按照上面给esp分区分配卷号的方法,如法炮制,给win分区也分配一个卷号
下面我用Y来代指esp分区的卷号,X来代指win分区的卷号,你自己在操作的时候,可以自己任意分配字母,想要省事的话也可以就按照我这个,把两个分区分别分配成X和Y。如果你用的字母不是X和Y,那么你就需要记住你用的是什么字母,用esp分区所分配的卷号替换掉Y,用win分区的卷号替换掉X进行操作
下面开始安装Windows
再打开一个命令提示符窗口,这次需要以管理员身份打开。如果你不知道怎么打开管理员权限的CMD窗口,建议善用Windows搜索功能,在Windows搜索中输入CMD,就会出来如下界面,点击“以管理员身份运行”即可

Windows搜索
管理员CMD窗口

下面用dism工具部署镜像,在新打开窗口中输入:


dism /apply-image /ImageFile:"你装载装机镜像的盘\sources\install.wim" /index:1 /ApplyDir:X:\

例如我把它装到了F盘,

我就输入dism /apply-image /ImageFile:"F:\sources\install.wim" /index:1 /ApplyDir:X:\
这时候dism就会开始部署镜像到你的Duo的win分区,大概需要5-10分钟(如果你连接的是USB3.0的话,2.0则可能慢一些),等执行结束后,你的Windows系统就装好了,下面设置启动引导
还是在刚才的管理员权限命令提示符窗口中(为了简便,我把这个窗口成为窗口2,一开始在platform-tools里打开的窗口叫窗口1,后面如果再打开CMD窗口,那就是窗口3),输入:

bcdboot X:\Windows /s Y: /f UEFI

这样,你就成功地设置了用esp分区对Windows进行uefi启动引导,到此安装系统步骤完成,可以进行驱动的安装了

5.安装驱动
找到之前解压的驱动的文件夹,以及你的DriverUpdater所在的文件夹。
打开DriverUpdater文件夹,在地址栏中输入CMD并回车,如下图所示

DriverUpdater
窗口3

打开你解压的驱动文件的文件夹,把地址栏中的地址复制下来,然后在新打开的窗口3中输入:

DriverUpdater.exe -d "粘贴你的驱动文件的地址\definitions\Desktop\ARM64\Internal\epsilon.txt" -r "粘贴你的驱动文件的地址" -p X:\

例如我解压在了这里,我就打开SurfaceDuo-Drivers-Full文件夹,并把地址栏中的地址复制下来(如下图)

驱动文件

然后我就可以粘贴进去,输入DriverUpdater.exe -d "C:\Users\18761\Desktop\SurfaceDuo-Drivers-Full\definitions\Desktop\ARM64\Internal\epsilon.txt" -r "C:\Users\18761\Desktop\SurfaceDuo-Drivers-Full" -p X:\
这样就可以进行驱动的安装了,等待过程完成后,驱动就安装完毕了,但先别急着开机(我知道你很急,但是你先别急[doge]),你还需要启动测试模式,不然你是开不了机的,因为驱动都不是官方驱动,所以过不去签名验证,开机就会蓝屏

这时跳转回窗口2,输入:

bcdedit /store "Y:\EFI\Microsoft\BOOT\BCD" /set "{default}" testsigning on

这样就把默认的开机模式更改成为测试模式了,现在你可以开机了,但是你最好再等一下(我知道你非常急,但是你先别急[doge])


6.启用启动引导菜单以访问开发者菜单
继续回到窗口2,输入:

bcdedit /store "Y:\EFI\Microsoft\BOOT\BCD" /create /application bootapp /d "Developer Menu"

执行完这一步后,你会得到一个GUID,GUID是什么你可以自己百度一下,我就不多说了,总之你会得到这样的一串字符“{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}”,把这段字符连同外面的大括号一同复制下来备用
然后输入:

bcdedit /store "Y:\EFI\Microsoft\BOOT\BCD" /set "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" nointegritychecks on

bcdedit /store "Y:\EFI\Microsoft\BOOT\BCD" /set "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" path \Windows\System32\boot\developermenu.efi

bcdedit /store "Y:\EFI\Microsoft\BOOT\BCD" /set "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" inherit {bootloadersettings}

bcdedit /store "Y:\EFI\Microsoft\BOOT\BCD" /set "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" device boot

bcdedit /store "Y:\EFI\Microsoft\BOOT\BCD" /displayorder "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" /addlast

bcdedit /store "Y:\EFI\Microsoft\BOOT\BCD" /set "{bootmgr}" displaybootmenu yes

注:自行把{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}替换成你刚才复制下来的那段GUID
这些操作是为了在启动菜单中添加开发者人员菜单等选项,具体我就不一一说明了,也没有意义
完成这些之后,我们的刷机工作可以说是彻底完成了

7.开机
回到窗口1,输入:

adb reboot bootloader

fastboot boot uefi.img


这样你就使用uefi镜像进行开机了,目前为止,以后你每一次开机都需要这么执行执行一遍(由于Duo的启动方式不同于别的手机,所以无法将uefi.img固化到启动槽中以实现内部双启动,只能另寻他法,而这个“他法”,目前gus还没有提供,所以目前为止只能双系统,但是单启动),首次开机之后,你可能会重启一到几次,这是正常的,每次重启你都需要执行一下上面两步。然后直到系统彻底安装完成,进入桌面,至此大功告成!

7.5复制校准文件和传感器的配置文件
这一步需要在首次开机完成后才能执行。
我的建议是跳过这一步,这基本上是没用的。如果你想操作一下,那么我建议你先root一下手机,root的操作我可以参考我之前发的帖子:www.coolapk.com/feed/40472244?shareKey=NTIxZGU1YWJjNGEyNjM1ZmRkYzQ~&shareUid=23408038&shareFrom=com.coolapk.market_12.5.0
root完成之后,使用x-plore文件管理器(自行下载,或者你有别的文件管理器也行)打开/mnt/vendor/persist文件夹,把里面的sensors文件夹复制出来,回到Windows系统,或者大容量模式,把sensors文件夹覆盖粘贴到C:\Windows\System32\Drivers\DriverData\QUALCOMM\fastRPC\persist中(如果是大容量模式那就不是C,你自己判断,别告诉我你找不到你手机的磁盘在哪里)

彻底结束,大功告成!


Surface Duo刷Win11完全攻略的评论 (共 条)

分享到微博请遵守国家法律