Flashing FFU on Surface Duo 1

Edit This Page

Surface Duo Dual Screen Windows

Files/Tools Needed 📃

PLEASE READ AND BE SURE TO UNDERSTAND THE ENTIRE GUIDE BEFORE STARTING

What you will get 🛒

You will end up with both Android™ and Windows on your Surface Duo. Android™ and Windows will both split the internal storage.

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

If not already done, please first proceed with the Unlocking the Bootloader guide for Surface Duo (1st Gen). Come back once you’re done. If you already followed this guide, please skip the unlocking section.

Getting to FFU Loader

  • Reboot into the Bootloader mode by running this command while inside Android™:
adb reboot bootloader

Surface Duo in Bootloader mode Image of what you should see right now: Surface Duo in Bootloader mode

  • Start by booting the UEFI:
fastboot boot uefi.img
  • Press the Volume Down Key on the side of your device til you see something like shown below on screen:

Surface Duo in FFU Loader mode

Congratulations, you’re now in FFU Loader.

Flashing the Windows FFU Image

  • Open a command prompt where you extracted the FFU-Loader-Tools archive, and run the following commands:
ImageUtility.exe FlashDevice -Path <Path to the FFU File you downloaded>

Surface Duo in FFU Loader mode, flashing

  • You should now see the device flashing on both your computer and on the device, wait til the process is complete. In case the PC complains the device was not found, try using an USB-2 port or cable that downgrades your connection to USB-2, there are known issues with the UEFI that prevent USB-3 from functioning properly at the moment, and will be addressed in a future update.

  • Once done you should be seeing the following screen:

Surface Duo in FFU Loader mode, flashed

  • Now reboot the device, you should be back to the bootloader menu:
ImageUtility.exe RebootDevice
  • In case the bootloader menu does not automatically come up, press the volume down when running above command to be 100% sure you go into the bootloader menu.

  • Run the following two commands:

fastboot set_active other
fastboot set_active other

Reset Android™

If this is your first time flashing this FFU file, please also erase your Android™ userdata partition (this is not required if you already flashed this FFU file, or, you previously installed windows manually using our guides on a 128gb device (256gb users need to follow these commands regardless)) (You will have to setup Android™ again after) If you do not meet above condition, you can directly skip to the boot Windows Step.

  • Let’s first erase the userdata partition and reboot back to Android™
fastboot reboot -w
  • You should now be seeing the Android™ Out of Box Experience (OOBE). Setup your phone to confirm it works correctly.

Android™ - OOBE

  • Assuming your Surface Duo is booted to Android™, plugged to your PC

  • Using the Microsoft Launcher, find the settings app

A1 Android™ - Open Settings

  • Open the Android™ Settings app

A2 Android™ - Settings Opened

  • Scroll down to the about section, and open it

A3 Android™ - Settings About

  • Scroll all the way down til you see the Build Number field

A4 Android™ - Settings About Down

  • Press the Build number field 7 times consecutively, you should first start to see a popup after 3 taps

A5 Android™ - Settings About Down Tap Dev

  • Once done tapping 7 times, you should be seeing this popup instead

A6 Android™ - Settings About Down Tap Dev Done

  • Now go to the System section, you should see a new Developer options section like shown below

A7 Android™ - Settings System with Dev

  • Go to the Developer options section

Android™ Settings System Dev Options

  • Scroll all the way down til you see the “USB debugging” option

Android™ Settings - Dev - Debugging Option

  • And turn on the “USB debugging” option

Android™ Settings - Dev - Debugging Option Confirmation

  • Reboot into the Bootloader mode by running this command while inside Android™:
adb reboot bootloader

Surface Duo in Bootloader mode Image of what you should see right now: Surface Duo in Bootloader mode

Boot Windows 🚀

We are ready to boot for the first time!

Let’s boot the UEFI, from a command prompt:

fastboot boot uefi.img

This step above will be needed every time you will want to boot Windows and needs to be done from the Bootloader mode.

If you did everything right, Windows will now boot! Enjoy!

Note: If the Touch keyboard won’t show up in OOBE, touch somewhere else (to let the text box loose focus) and then touch into the text box again. As an alternative, you can use the On-Screen Keyboard.

Let Windows set itself up, and come back once you’re on the Windows Desktop on your Surface Duo

Note 2: If you get a BSOD (bugcheck screen) during initial setup, you can try erasing both the esp and win partitions using “fastboot erase esp” and “fastboot erase win”, and reflash the FFU file, then it should work. This issue will get fixed in later FFU revisions.

Boot Windows again after initial installation

You’ll have two methods of booting Windows.

  • Manual booting with a PC

    • Pros: You can freely update Android™
    • Cons: You will need a PC to boot to Windows
  • Enabling Dual Boot

    • Pros: You’ll be able to boot Windows directly from the device
    • Cons: Every time you update Android™, you’ll have to follow this guide

In case you want the dual boot option, then follow this guide


In case you want to manually boot each time: (Click to expand) Reboot your device to the Bootloader mode, using adb or from the recovery.

Surface Duo in Bootloader mode Image of what you should see right now: Surface Duo in Bootloader mode

Let’s boot the UEFI, from a command prompt:

fastboot boot uefi.img

This step above will be needed every time you will want to boot Windows and needs to be done from the Bootloader mode.

If you did everything right, Windows will now boot! Enjoy!

Note: If the Touch keyboard won’t show up in OOBE, touch somewhere else (to let the text box loose focus) and then touch into the text box again. As an alternative, you can use the On-Screen Keyboard.


Š 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.