Installing Windows 10 ARM64 Into Lumia 950 XL: Read This Guide Carefully
Installing Windows 10 ARM64 Into Lumia 950 XL: Read This Guide Carefully
Installing Windows 10 ARM64 Into Lumia 950 XL: Read This Guide Carefully
Overview
Read this guide carefully.
Following this Guide, you can currently get a working Windows 10 installation. However, you should now that there are
a lot of features that won't work. Installing Windows 10 on your Phone will make it unsuitable for almost any normal
usage. No phone, no Wi-Fi, or camera. Thus, this guide is only intended for testing purposes.
This guide is only suitable for Lumia 950 XL. For Lumia 950 non-XL phones, please check the correct OneDrive folder.
NOTICE: To use it, you will need a pack of files called “Core Package”. It’s not publicly available. Ask us about it by joining
Telegram group. Also, you can ask for help regarding WoA Installer. We’re open for helping new members!
Current status
Check the status of the features with the following lists.
Working features
• SD Card
• Wi-Fi (WLAN)
• Accelerated Graphics (GPU). Minor issues with transparencies in Windows UI.
• Touch
• Microphone
• Wired charging (USB-C)
• Wireless charging (tested on Lumia 950)
• Dual boot (with Windows 10 mobile)
• Battery meter
• Bluetooth (Only working in Lumia 950 XL)
• USB-C host (partially, still under development)
• Display Dock (Only USB and charging, no display connections currently work)
• Audio playback
They work as hard as they can and we rely on them. Please, be patient. This project involves a great complexity and
fixing/creating drivers and getting everything working takes a lot of time and effort.
Donations
Donations are welcome. Please, consider giving anything if you support this project. For sure it will help us keep it
alive.
Video guide:
Now available and below is the link (Videos will be uploaded on a continuous basis if there are changes to the existing proce ss): Click
here to visit video guide
• UEFI: https://github.com/imbushuo/Lumia950XLPkg
• WoA Installer for Lumia 950 XL: https://github.com/SuperJMN/Lumia-WoA-Installer
WARNING NOTICE
• The creators of this guide aren't responsible for any damage you might cause to your
phone.
• DON’T DELETE ANY PARTITION ON THE PHONE UNDER ANY CONCEPT
• Don't use this guide if you use your Lumia as your daily phone. Having a spare phone is HIGHLY
RECOMMENDED.
• There is a serious risk of bricking your device if you do something wrong when the phone is on Mass Storage
Mode.
• Don't use this guide on any other phone. The UEFI was made for the MSM8994 and can work on a Lumia 950
(but with additional work as mentioned by Ben Imbushuo).
• It's also recommendable that you
o Are familiar with:
▪ Disk partitioning
▪ BCDEDIT
▪ DISM
▪ DISKPART
o You know:
▪ What's a GUID
▪ What's an ISO and how to mount them
▪ What's a Windows WIM file
▪ You know how to unlock the bootloader of your phone (WPInternals).
Files
Required (core) files
You can download them in the Files Repository.
Alternatively, you can get all the files in our Telegram group: Lumia WOA. Please, join. There you can ask us if you need
help.
WARNING: NEVER USE AOMEI Partition Assistant for this step, since it really causes a big mess in the partition
layout!!
Shrink the partition named Data. We will allocate the space for Windows ARM64 from this partition.
o You can use the built-in Windows Disk Management tool for this step.
o A good size is one which leaves at least 18 GB of remaining space after the resize. This means that the
final Data partition should be around 7.5GB
5. Copy the required boot files to their locations:
a. Copy these files to [MainOS]\EFIESP
• UEFI.elf
b. Copy this file to [MainOS]\EFIESP\EFI\boot
• BootShim.efi
NOTICE: [MainOS] refers to the drive letter of the mounted patition that is labeled "MainOS".
•
6. Start a Windows cmd as Administrator. Remember to replace [MainOS] by the corresponding driver letter in
your PC.
7. Navigate to [MainOS]\EFIESP\EFI\Microsoft\BOOT
TIP: you can rename "BootShim" to "Windows 10" or create another entry with the same steps and
"Windows 10" for the name.
You should replace [BOOTMGR_PARTITION] by drive letter of the EFIESP partition. To see which letter it
has assigned, you can go to the File Explorer. If EFIESP is not there, go to Disk Management and look for it in the
Phone disk. Assign a drive letter to it. Then, put the same letter in the command. So if the drive letter of EFIESP
is M: the command should be:
NOTE: The following steps are needed to be able to choose between different booting options within the Windows Boot
Manager. In the menu, you will be able to select between the entries with Vol+ Vol- buttons.
Please, notice that we are assigning S: to the WOABOOT partition and W: to the Windows partition. If you
mount them to different driver letters, don't forget to replace the ones in the following commands by your
driver letters!
5. Mount the Windows .ISO file using the Windows Explorer (if you are on an older Windows than Windows 10,
use third party tool to mount the ISO file).
6. Open a cmd (as administrator) and go to the root of the drive where the .ISO file is mounted.
7. Apply image with by running
DISM /Apply-Image /ImageFile:sources\install.wim /Index:1 /ApplyDir:W:\
NOTE: this command uses a volume index. We are using 1 by default. However, it may not be the index
you want. If your installation source has more than one volume, you may indicate another index. To list
the volumes, execute:
DISM /get-WimInfo /wimfile:install.wim
Example:
Here, we are using index 1 because we want to apply the Pro edition.
THIS STEP TAKES A LOT OF TIME TO COMPLETE (usually more than 20 minutes)
8. From the Driver Package, extract the folder “Cityman” and “PostOOBE” to a folder in your PC
o For now, we are going to inject ONLY the drivers inside the “Cityman” folder. Do it with this command:
We will install the PostOOBE drivers later. PostOOBE drivers should be installed after the Windows 10 setup
is completed.
This will create the boot files the “WOABOOT” partition we created before.
About the language: we've used the option "/l en-US", but it's optional. You could use any other language code.
You can get a list of the codes here.
Navigate to:
S:\EFI\Microsoft\Boot
bcdedit /store BCD /set {default} testsigning on
bcdedit /store BCD /set {default} nointegritychecks on
Eventually you will see a blue screen, but don’t panic. The system will reboot automatically if you are running
the latest firmware. You won’t encounter Bugcheck in later shutdown / reboot sessions.
14. Once Windows is up and running, go back to Mass Storage mode as mentioned in Step 2.
15. Install additional drivers inside the “PostOOBE” folder using
Dism /Image:W:\ /Add-Driver /Driver:\FULL\PATH\TO\POSTOOBE /Recurse /ForceUnsigned
16. YOU’RE DONE! Enjoy you new full Windows 10 inside your phone
Copy the GUID it gives you and replace in the commands below:
Where [PATH] is the same path where BootShim.efi is located. Run BCDEDIT /STORE BCD to list
the entries. See the screenshot. In the sample, we should use "H:"
4. bcdedit /store BCD /displayorder [LIST OF GUIDS]
i. The List of GUIDs is the elements that will appear in the Boot Menu, so you will have to put here
the GUID of the "BootShim" entry and the "Developer Menu" at least.
ii.
5. bcdedit /store BCD /set [GUID] testsigning on
6. bcdedit /store BCD /set [GUID] nointegritychecks on
7. Reboot the phone
8. Done! The Developer Menu should be there.
Enabling Bluetooth
1. Switch to Mass Storage Mode
2. Inject the drivers from the Testing folder using DISM (like the command executed before)
3. Copy Files\Misc\BTService.reg file into WoA (W: drive), inside a folder that you can access later, like
W:\Users\Public\Documents
4. Boot into WoA.
5. Navigate to the location where you copied BTService.reg file
6. Double tap to import it.
7. Once imported, reboot the device.
8. After reboot, Bluetooth should be fully functional.
TROUBLESHOOTING
• After rebooting to install Windows 10 ARM, you can get a BSOD (Blue Screen of Death) with a message like
o SDBUS_INTERNAL_ERROR (Resolved in later rs5 releases)
Don't panic. Remove the battery, put it back and try to reboot again choosing "BootShim" until the Windows
Setup (OOBE) starts.
If you are running UEFI release 78f1c9d7 (2018.6.8) or higher, you should experience no problem shutting down
or restarting the phone. Earlier releases will encounter either MEMORY_MANAGEMENT or
SOC_CRITICAL_DEVICE_REMOVED Bugcheck.
To-do
• Wi-Fi. Needs complete PCIe initialization
• Bluetooth. The driver needs to be fixed
• Battery. Somehow is working
• Touch. Needs a new logic (working without long press)
• GPU. Requires ADSP drivers (Subsystem)
• Audio. Is ADSP and requires Subsystem
• TrEE. Somehow loading TrEE can corrupt RPMB.
• Subsystem. Crashes with "SOC_SUBSYSTEM_FAILURE"
To restore it:
Go to Power options and uncheck this option (show in the below screenshot) and shutdown will work properly in the
phone.
List of tested models
This is a list of currently tested models – it is not guaranteed that if you have one of these models you will have
success, nor is it guaranteed that you will not have success if you have a different modely
Credits
• Ben Imbushuo (@imbushuo)
• Gustave M. (@gus33000)
• Googulator
• Jeyak
• Kazker (@KazkerSoft)
• Abdel O. Daoudi (@ADeltaXForce)
• José Manuel Nieto Sánchez (@SuperJMN)
• And any other people that helped us out to test and document this Guide. Thank you all!