Sunteți pe pagina 1din 12

Installing Windows 10 ARM64 into Lumia 950 XL

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.

Feel free to improve/fix this Guide with additional information

Option 1: Fully-Automated tool: WoA Installer for Lumia 950 XL


If you have a Lumia 950 XL with an unlocked Boot Loader, we have created a tool to make things even easier.

It’s called WoA Installer.

You can download it from here: https://github.com/SuperJMN/WoA-Installer

Please, read carefully the information on the project page!

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!

Option 2: Manual installation


Continue reading this Guide to find the manual steps. They require more time.

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

Not working features


• Cellular Networking (Data Connection)
• Automatic orientation
• Automatic brightness
• Camera
• NFC
• External display connections via USB-C-HDMI

Currently, there are people working hard to enable them.

• Ben Imbushuo (@Imbushuo)


• Gustave M. (@gus33000)
• Googulator

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.

• Ben Imbushuo (@imbushuo). Donate


• Googulator. Donate
• Jérémie Melchior (@jaymelbe). Donate
• José Manuel Nieto Sánchez (@superjmn). Donate

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

Related GitHub Projects


You can follow the current status and check for updates in the following GitHub repositories:

• 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).

Other preliminary considerations


• The BCD part is quite sensitive. Be really careful when executing any step that involves executing BCDEDIT.
• This guide is intended for use with Lumia 950 XL (only).
• This guide can be used on a Lumia 950 by removing one driver
• Remember: In case your device is on a boot loop or not booting at all, don't worry. Most of times this can be
solve flashing an original FFU again either with WPInternals or with Windows Device Recovery Tool, so you can
start over. As long as you don't delete vital partitions, your phone can be recovered from almost any bad state.

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.

List of core files:

• BootShim.efi (more info)


• UEFI.elf ( UEFI). For Lumia 950, there is another version of the UEFI.elf that you should use.
• Windows ARM 64 installation media (this is usually an .ISO file)
➢ You can get it from this URL.
➢ Take into consideration that certain Redstone 5+ builds can cause BSODs (as noticed by @imbushuo).
However, the latest RS5 flights seem to be fixed.
➢ We recommend you to install build 17686 (or build 17134)
1. Select the language
2. Select the edition (don’t forget that we have to choose the ARM64 architecture, not to be
confuse with AMD64!)
3. Select Download with aria2 and then convert
4. Extract the .zip into a folder (without spaces in the path) and execute the cmd. Once it finishes,
convert it to .ISO (or install.wim)
• A Driver Package: packages can be downloaded from this only folder:
https://drive.google.com/drive/folders/13lrwP7Lc_OLSMxpjhjkaLDrnwM5Cy2Wz
Optional files
• Developer Menu Application (developermenu.efi):
o It will allow to switch to Mass Storage Mode directly on the phone without the need of a computer.
o Check this link for more info
o The detailed steps to get it are under the section named "Adding Developer Application Menu" around
the end of the guide.
• TIP: It’s recommended that you add Developer Menu as soon as you enter Mass Storage Mode. This way, you
can switch to this mode from the phone itself instead of doing it from WPInternals.

Installing Windows 10 ARM


Stage 1: Getting a working AARCH64 UEFI
1. Fully charge your phone! You don't want to run out of battery in the middle of any process. It's risky, at least.
2. Unlock your phone's bootloader using the tool WPInternals 2.48
• Don't forget that, in order to unlock your bootloader, your phone should have a compatible Windows
Phone 10 build. Check the compatible builds first! In case your version isn't compatible, you will have to
flash a compatible version. Stock firmware with OS Build 10.0.10586 typically works fine. A full OOBE
before unlocking is recommended to prevent infinite gear from occurring.
• If you don't know how to do it, just ask us (Telegram group).
3. Switch to Mass Storage Mode
o It's recommended that you make a backup in this mode prior to any modification. After it, please boot
Windows Phone 10 again to check the battery %.
4. Disk Partitioning.

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

This is the BCD EDITING PART!! Take care.

a. Do a backup of the [MainOS]\EFIESP\EFI\Microsoft\BOOT\BCD file. Copy it in a safe place on your PC


to recover if something goes wrong.
b. bcdedit /store BCD /create /d "BootShim" /application BOOTAPP
• It will give you a new GUID for the newly createad entry. Save it!
• We will reference this GUID with the tag [GUID] (marked in green), so you can identify it better
inside the commands. Whenever you see it in the instructions below, put the GUID that was given
by the command.

TIP: you can rename "BootShim" to "Windows 10" or create another entry with the same steps and
"Windows 10" for the name.

c. bcdedit /store BCD /set [GUID] path \EFI\boot\BootShim.efi


d. bcdedit /store BCD /set [GUID] device partition=[BOOTMGR_PARTITION]

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:

bcdedit /store BCD /set [GUID] device partition=M:

e. bcdedit /store BCD /set {bootmgr} displaybootmenu on

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.

f. bcdedit /store BCD /deletevalue {bootmgr} customactions


g. bcdedit /store BCD /deletevalue {bootmgr} custom:54000001
h. bcdedit /store BCD /deletevalue {bootmgr} custom:54000002
i. bcdedit /store BCD /displayorder [GUID]
j. bcdedit /store BCD /set [GUID] testsigning on
k. bcdedit /store BCD /set [GUID] nointegritychecks on
l. bcdedit /store BCD /timeout 15
8. You now have the UEFI ready! But you still don't have an OS to boot We need to install the OS, that will be
Windows ARM64. We're doing exactly this in the Stage 2. Please, head over to it.
Stage 2: Installing Windows 10 ARM
Steps
1. Get a Windows 10 ARM64 installation media of (as said in the beginning of this guide).
• We are using a .ISO file. You could use a .wim or .esd file if you know how to deal with them. It's OK as
long as you know how to apply them using DISM.
2. Switch to Mass Storage Mode. You can use WPInternals of the Developer Menu (if you already added it).
• In case you haven’t added the Developer Menu:
1. Go to WPInternals ➔ Phone\Info ➔ interrupt boot-process.
2. After that, reboot the phone and it will be detected.
3. Go to WPInternals ➔ Phone\Manual Mode ➔ Switch to Mass Storage Mode.
3. If you didn't shrink the Data partition before (as part of the above steps) do it now. Windows needs space to be
installed!
4. Open an Administrative Cmd and run DISKPART
a. Select your disk according to what you're seeing in the list with command below
• LIST DISK
• SELECT DISK x (where x should be the number of the disk which represents your phone)
b. Create a new partition of 400 MB named WOABOOT and a reserved partition of 128MB
• create partition efi size=400
• format fs=fat32 quick label= WOABOOT
• assign letter=S
• create partition msr size=128
• format fs=fat32 quick label=RESERVED
c. Create a new partition for Windows (it will be the partition to hold the Windows files). Enter the
following commands.
▪ create partition primary
• Please notice that we don't specify a size for this partition in order to use all the
available space.
• If you followed the Data partition shrink steps above, it should be at least 18 GB.
▪ format fs=ntfs quick label=Windows
▪ assign letter=W

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:

Dism /Image:W:\ /Add-Driver /Driver:\FULL\PATH\TO\Cityman /Recurse


/ForceUnsigned

We will install the PostOOBE drivers later. PostOOBE drivers should be installed after the Windows 10 setup
is completed.

9. Make Windows installation bootable


bcdboot W:\windows /l en-US /f UEFI /s S:

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.

10. Use BCEDIT:


Open command prompt (cmd) as Administrator

Navigate to:
S:\EFI\Microsoft\Boot
bcdedit /store BCD /set {default} testsigning on
bcdedit /store BCD /set {default} nointegritychecks on

11. Reboot your phone (by holding the power button)


12. Choose the "BootShim" boot entry.
13. Windows installation should kick in!
• Please, notice that the first start can take more than 5 minutes.

You should get a screen like this:

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

Adding Developer Application Menu


1. Download this file: https://forum.xda-
developers.com/attachment.php?attachmentid=4416215&d=1518337317
2. Switch to Mass Storage Mode
3. Copy the contents of the .zip file to [MainOS]\EFIESP\Windows\System32\BOOT, where[MainOS] is the drive
letter where the MainOS partition is mounted in your PC.
4. Execute (from: [MainOS]\EFIESP\EFI\Microsoft\BOOT)
1. bcdedit /store BCD /create /d "Developer Menu" /application BOOTAPP
i. TIP: you can change the name "Developer Menu" into whatever you want... E.g. "More"

Copy the GUID it gives you and replace in the commands below:

2. bcdedit /store BCD /set [GUID] path \Windows\System32\BOOT\developermenu.efi


3. bcdedit /store BCD /set [GUID] device partition=[PATH]

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"

Steps for Dual Boot (Windows 10 Phone and Windows 10 ARM)


Requirements
We should modify the BCD in order to show the Windows Loader entry. We removed it from the previous steps because
it wasn't safe to select it until we discovered how to Dual Boot correctly.

To restore it:

• Switch to Mass Storage Mode


• Go to [MainOS]\EFIESP\EFI\Microsoft\BOOT\BCD
• Execute:
bcdedit /store BCD /display order {7619dcc9-fafe-11d9-b411-000476eba25f} /addlast

Restore it with the command

• Totally finish the OOBE process (first start setup)


• Reboot to mass storage mode
• Open DISKPART
• Like the previous time you have to "select" your disk and partition with diskpart
o LIST DISK
o SELECT DISK x (where x should be the number of the disk which represents your phone)
o LIST PARTITION
o SELECT PARTITION y (where y should be the number of the “WOABOOT” partition we created for
the Windows installation, which we assigned the "S:" drive letter)
• Then set the type of the partition that identifies it as a "Microsoft basic data partition" with the following
command (still inside DISKPART)
o Set id=ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
• Reboot
• Dual boot is now working

Enabling Shutdown properly in Windows 10:


Once you are in Windows desktop screen.

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

• Lumia 950XL RM-1116 059X4S5 (Dual SIM)


• Lumia 950XL RM-1116 059X505 (Dual SIM)
• Lumia 950XL RM-1085 059X4T0 (Single SIM)
• Lumia 950XL RM-1085 (Single SIM,Prototype)

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!

S-ar putea să vă placă și