Windows Phone

This page collects some useful resources for working with Windows Phones.

Devices
On the different device pages is described how porting was done for the specific device. This can be used to get further information on how to port your device

WindowsPhoneInternals
WPInternals is an open-source tool by an XDA-User that allows you to perform tasks like unlocking bootloaders, enabling root access and flash or backup firmware. Some fixes have been made in the GitHub repository, but no new release has been made yet. The list of supported models on the official site is outdated. See the image on the right for a more up to date list. It runs natively on Windows.

Windows Device Recovery Tool
The Windows Device Recovery Tool is a proprietary tool by Microsoft which lets you recover firmware of Windows devices. It runs natively on Windows.

Android4Lumia
Android4Lumia is a project which aims to built android based custom roms for Lumia phones.

Mainline4Lumia
Mainline4Lumia is a project which aims to bring Linux mainline to Lumia phones.

Mainline4Lumia Website including contact data

LumiaFirmware.com
On LumiaFirmware.com you can find firmware for Lumia Phones.

EDK-II
EDK-II has been ported to various Windows Phones. A porting guide is available here.

Unlocking bootloader
Download WPInternals and Windows Device Recovery Tool.

WPInternals is a tool designed to unlock the bootloader and/or secure boot of select Lumia devices made by Nokia and Microsoft.

Windows Device Recovery Tool is installed because it automatically installs all the drivers WPInternals will need.

Once you have installed both tools, Click on "Unlock Bootloader" and follow the instructions to unlock your phone's bootloader

Enabling Boot Menu

 * Make sure your phone is in mass storage mode and that EFIESP is mounted.
 * Find where EFIESP was mounted, Windows will either mount it in MainOS/EFIESP or with a letter (J:, L:, etc)
 * Anything inside <> needs to be filled in by you, for example:  becomes K:\EFIESP if K: was MainOS and EFIESP was mounted at MainOS/EFIESP
 * Open cmd as Administrator and run the following commands:
 * Turn on displaybootmenu:
 * Set boot menu timeout to 10s:
 * Set displayorder:

Extra steps for phones with a camera button:

 * Devices with a camera button, you can make it so you can choose the boot option using volume keys and camera to select.
 * Unfortunately there is no known way to make power button be select, so phones without a camera button can't use this.

Adding a new BCD entry

 * Make sure your phone is in mass storage mode and that EFIESP is mounted.
 * Find where EFIESP was mounted, Windows will either mount it in MainOS/EFIESP or with a letter (J:, L:, etc)
 * Anything inside <> needs to be filled in by you, for example:  becomes K:\EFIESP if K: was MainOS and EFIESP was mounted at MainOS/EFIESP
 * Open cmd as Administrator and run the following commands:
 * Creating a new entry:
 * Copy the GUID (the squiggly brackets and the stuff inside)
 * Set the efi path:
 * Set the partition the efi file is in:
 * Turn on test signing:
 * Turn off integrity checks:

Extra steps for phones with a camera button

 * Add BCD entry to display order:

Extra steps for phones without a camera button

 * We need to set a volume key to boot our new BCD entry
 * custom:54000001 is for volume up, custom:54000002 is for volume down
 * Set the volkey to boot our bcd entry:

Unbricking devices on EDL mode(QHSUSB_BULK)
This guide is for Spec B devices only. While this process, make sure WPInternals is not running in the background.
 * Install the WDRT if you don't have it.
 * Connect the device to the PC and check how it's detected from device manager. If device is detected as "QHSUSB_BULK" on "Universal Serial Bus Devices", then it's fine. If it's detected as "Qualcomm HS-USB QDloader 9008" on "Serial Devices", select update driver and install "Care Suite Emergency Connectivity" driver. Disconnect device and remove battery after updating driver.
 * Open a CMD and  into WDRT directory (  for 64bit,   for 32bit)
 * Go to lumiafirmware.com and download FFU file and emergency files (.ede and .edp) for your device.
 * Type  to CMD and hit enter, wait for it flashes. When you get , that means it flashed emergency payload and you can continue.
 * When you get red flashing screen, type  and wait for it to flash FFU.