Install Windows 10X on Surface Duo 1
Edit This PageTable of Contents
Files/Tools Needed đ
- TWRP image: surfaceduo1-twrp.img
- Parted: parted
- Mass Storage Shell Script: msc.tar
- Windows UEFI (Without Secure Boot): SM8150.UEFI.Surface.Duo.1.No.SecureBoot.zip/uefi_nosb.img
- Platform Tools from Google (ADB and Fastboot)
- The 10X Image Files (
BS_EFIESP.imgandOSPool.img). You can find them here - A Windows PC to execute most of the commands in this guide
PLEASE READ AND BE SURE TO UNDERSTAND THE ENTIRE GUIDE BEFORE STARTING
â If youâre already running Windows 10/11 on your device, you can start from this step: Installing Windows 10X. Please note that youâll remove your Windows Installation if you do it.
â If youâre running an old release of 10X and want to update it or want to reinstall, start from this step: Installing Windows 10X. Youâll lose your 10X data if you follow this guide.
What you will get đ
You will end up with both Android⢠and Windows 10X on your Surface Duo. Android⢠and Windows 10X will both split the internal storage (64GB and 64GB or 128GB and 128GB).
Android⢠will boot normally, and you will have to use a PC to boot Windows when needed, unless you create a dual boot image (explained later).
Steps đ ď¸
Unlocking the bootloader
Backup all your data. You will lose everything you have on Android⢠and will start from scratch.
In Android⢠settings, enable the Developer Settings menu (7 consecutive taps on Build Number), and turn on âOEM Unlockâ and âUSB Debuggingâ inside it.
Assuming your Surface Duo is booted to Androidâ˘, plugged to your PC:
- Open a command prompt on your PC and run this command:
adb reboot bootloader
- You will be rebooted to Surface Duoâs bootloader.
Image of what you should see right now: Surface Duo in Bootloader mode
From there:
fastboot flashing unlock
- You should now be seeing the Android⢠Out of Box Experience (OOBE). Setup your phone to confirm it works correctly.
Congratulations, you successfully unlocked your bootloader.
Assuming your Surface Duo is booted to Androidâ˘, plugged to your PC
Using the Microsoft Launcher, find the settings app
- Open the Android⢠Settings app
- Scroll down to the about section, and open it
- Scroll all the way down til you see the Build Number field
- Press the Build number field 7 times consecutively, you should first start to see a popup after 3 taps
- Once done tapping 7 times, you should be seeing this popup instead
- Now go to the System section, you should see a new Developer options section like shown below
- Go to the Developer options section
- Scroll all the way down til you see the âUSB debuggingâ option
- And turn on the âUSB debuggingâ option
- Reboot back into the Bootloader mode by running this command:
adb reboot bootloader
Image of what you should see right now: Surface Duo in Bootloader mode
Making the partitions
Booting to TWRP
- Plug your phone to your PC, open a command prompt and start by typing the following text, but do not press enter just yet
fastboot boot
- Go find the surfaceduo1-twrp.img file you downloaded earlier, right click it, click âCopy as pathâ
- Then go back to the Command Prompt window we started writing text in previously, and simply, right click on it with your mouse (or long press if youâre on a touch device), you should now see this:
- Now you can press enter
You will now boot to TWRP. Reminder that touch doesnât work on TWRP for now, so youâll have to work through your PC.
- Once inside TWRP, touch will not be working and the device will say it is locked. This is completely normal. Keep the phone plugged to your PC and do these commands ONE BY ONE WITH NO TYPO!:
adb shell "setenforce 0"
adb push <path to parted that was downloaded earlier> /sdcard/
adb shell "mv /sdcard/parted /sbin/parted && chmod 755 /sbin/parted"
adb shell
- Now we are issuing commands directly from inside Surface Duo using the PC.
Dangerous section
Anything in this section is DANGEROUS and may PERMANENTLY damage your phone if you do any step wrong. Please carefully read all warnings and all instructions and make NO MISTAKE. Do not proceed if late at night or tired.
The commands above work like this:
[tool name][partition name in gpt] [file system][starting offset in disk] [ending offset in disk]
So if you want to change the split, all you have to do is to change the â57344MBâ in aboveâs example in both commands.
- Letâs run parted and make the partitions (ONE BY ONE WITH NO TYPO!):
setenforce 0
parted /dev/block/sda
print
Make sure that the last partition listed is numbered 6. If it is not, belowâs commands may DESTROY your phone in a permanent manner
Take note of original sizing, here it was 51.9MB -> 112GB (256GB variant: 51.9MB -> 240GB) and replace every occurence of 51.9MB and 112GB with your original sizing that you noted down (these may not differ, but if they do, replace them)
rm 6
This command creates the EFI system partition for Windows. It is possible parted shows a warning message at this step saying the partition is not properly aligned for best performance. It is safe to ignore such warning
mkpart esp fat32 51.9MB 564MB
This command creates the Windows partition.
mkpart win ntfs 564MB 57344MB
This command creates the Android⢠data partition back.
mkpart userdata ext4 57344MB 112GB
This command sets the ESP partition created earlier as an EFI system partition type.
set 6 esp on
This command leaves parted.
quit
rm 6
This command creates the EFI system partition for Windows. It is possible parted shows a warning message at this step saying the partition is not properly aligned for best performance. It is safe to ignore such warning. (Note: to ignore in parted, just type âiâ (without the quotes))
mkpart esp fat32 51.9MB 564MB
This command creates the Windows partition.
mkpart win ntfs 564MB 114688MB
This command creates the Android⢠data partition back.
mkpart userdata ext4 114688MB 240GB
This command sets the ESP partition created earlier as an EFI system partition type.
set 6 esp on
This command leaves parted.
quit
This will get you out of parted.
We have deleted partition 6, which was the Android⢠userdata partition, and created 3 partitions: an esp partition which will contain the Windows boot files, a win partition that will have Windows, and the last one is the new userdata partition for Androidâ˘, just smaller.
Now letâs make these partitions actually usable:
setenforce 0
mkfs.fat -F32 -s1 /dev/block/sda6
mkfs.ntfs -f /dev/block/sda7
mke2fs -t ext4 /dev/block/sda8
exit
End of the Dangerous section
Installing Windows 10X
Reboot your phone to the Bootloader mode:
adb reboot bootloader
Image of what you should see right now: Surface Duo in Bootloader mode
Now letâs clean the partitions weâve just created with fastboot:
fastboot erase win
fastboot erase esp
And install the 10X images:
fastboot flash esp BS_EFIESP.img
fastboot flash win OSPool.img
This is going to take a while, especially on the second command. As you can see it took me almost 6 minutes. Take a little walk in the meantime.
â If youâre updating or reinstalling from 10X, you can stop here and reboot! Youâre done! â
Completing the Installation
Start by booting TWRP (you might need to manually reboot your device into the Bootloader mode if this gets stuck):
- Plug your phone to your PC, open a command prompt and start by typing the following text, but do not press enter just yet
fastboot boot
- Go find the surfaceduo1-twrp.img file you downloaded earlier, right click it, click âCopy as pathâ
- Then go back to the Command Prompt window we started writing text in previously, and simply, right click on it with your mouse (or long press if youâre on a touch device), you should now see this:
- Now you can press enter
You will now boot to TWRP. Reminder that touch doesnât work on TWRP for now, so youâll have to work through your PC.
- Letâs load the mass storage shell script in order to boot into Mass Storage from TWRP
adb shell "setenforce 0"
adb push <path to downloaded msc.tar> /sdcard/
adb shell "tar -xf /sdcard/msc.tar -C /sdcard --no-same-owner"
adb shell "sh /sdcard/msc.sh"
Surface Duo should now be in USB 3 SuperSpeed (or what the USB-IF currently calls it) Mass Storage Mode.
- Open diskpart:
diskpart
- Run these commands one by one, replacing the IDs with yours:
list disk
sel dis <id of the disk, in my case it is 5>
list partition
sel par <id of the part for the pool showing currently as "Primary", in my case it is 7>
set id=E75CAF8F-F680-4CEE-AFA3-B001E56EFC2D
Weâre done!
- Letâs exit diskpart:
exit
Weâll need a UEFI to boot to Windows 10X.
Boot Windows 10X
- Reboot your device to the Bootloader mode
adb reboot bootloader
Image of what you should see right now: Surface Duo in Bootloader mode
- Once into the Bootloader mode, letâs run the UEFI, which will boot to 10X:
fastboot boot uefi_nosb.img
Done! Youâll now be booted into Windows 10X. â ď¸ First boot will take a bunch of minutes, so WAIT AND DONâT REBOOT!
Š 2020-2024 The Duo WOA Authors
Snapdragon is a registered trademark of Qualcomm Incorporated. Microsoft, the Microsoft Corporate Logo, Windows, Surface, Surface Duo, Windows Hello, Continuum, Hyper-V, and DirectX are registered trademarks of Microsoft Corporation in the United States. Android is a registered trademark of Google LLC. Miracast is a registered trademark of the Wi-Fi Alliance. Other binaries may be copyright Qualcomm Incorporated and Microsoft Surface.
Limited emergency calling
Running Windows on your Surface Duo is not a replacement for a proper phone operating system and does not have emergency calling capabilities.
Hello from Seattle (US), France, Italy.