-
A Windows PC
-
TWRP image:
File Name | Target Device |
---|---|
surfaceduo1-twrp.img | Surface Duo (1st Gen) |
surfaceduo2-twrp.img | Surface Duo 2 |
Warning
- Read the entire guide before starting. Make sure you understand all of what you're going to do!
- If you see a warning and/or error during the process, it is not normal. Contact us on telegram if you see anything odd, but do not continue or proceed on your own, you will break things further.
- Don't rerun the commands if you interrupt the process. You may break things.
- Do not run all commands at once.
- Do not commit any typo with any commands.
- Be familiar with command line interfaces.
- When using TWRP, it is normal and expected for the phone to be detected as a Xiaomi phone or an Asus phone and for touch to not work.
Here's how to acquire the Android SDK Platform Tools: Click to expand
First, start by going to the Android Platform SDK download page on your computer.
Once on the page, scroll a little bit down til you see the link to download the platform tools for Windows.
Click on it, an EULA will open like below:
Scroll all the way down (after reading it if that's your thing)
Tick "I have read and agree to above terms conditions"
And click download
Save the file on your computer, and extract the zip file by opening it, and selecting extract all.
Assuming your Surface Duo is currently booted into Android™️, connect it to your PC with a USB cable and open a command prompt.
- First, we need to reboot into the Bootloader mode, to do so, run this command on your pc:
adb reboot bootloader
Your Surface Duo will reboot into the Bootloader mode.
Image of what you should see right now: Surface Duo in Bootloader mode
- In order to retrieve the current active slot, run this command on your PC:
fastboot getvar current-slot
A line with the text 'current-slot:' will appear. The value can be a or b.
Take note of your slot, we´ll assume it is b
- For the rest of this guide we´ll assume the current slot is
b
and we want to retrieve theboot
partition
- We need to boot into TWRP, to do so, run the following command on your PC:
For Surface Duo (1st Gen):
- 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.
For Surface Duo 2:
- 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 surfaceduo2-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.
Your Surface Duo will boot into TWRP, touch will not work and the device will say it is locked. This is completely normal and expected.
- We need to open a shell to issue commands directly to the phone. To do so, run the following command on your PC:
adb shell "setenforce 0"
adb shell
You are now able to issue commands directly to your phone via your PC.
- Now, we need to find the location of our boot partition, as it is different for each device. To do so, run the following command on your PC:
ls /dev/block/platform/soc/
If you're lucky, you'll get only one line of output:
Take note of all the lines that get output from this command. In my case, it's only one and it is 1d84000.ufshc
.
- Next we need to retrieve our mount point for our partition, to do so, run this command:
ls -al /dev/block/platform/soc/[the last line we took note of]/by-name/
In my case: ls -al /dev/block/platform/soc/1d84000.ufshc/by-name/
- This is going to output a lot of lines, with each partition name having its mount point. Look for the line that says
boot_[your slot]
:
- Now let's take note of its mount point, in my case:
/dev/block/sde26
.
Let's make an image of the partition:
dd if=/dev/block/[your mount point] of=/tmp/boot.img
In my case: dd if=/dev/block/sde26 of=/tmp/boot.img
.
- Now let's exit the shell and pull the boot.img from the device, to do so, run the following command on your PC:
exit
adb pull /tmp/boot.img
If you did everything correctly, you will now have your boot.img
. Enjoy! 🥳
© 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.