Document:Installing Windows Phone update packages

Prerequisites[edit | edit source]

The following prerequisites needed to install Windows Phone update packages must be satisfied:

  • The update packages of the build the user wishes to install
    • wget can be used to download all of the update packages present in the text file by using the wget -i [text file] command.
  • The Windows Phone Common Packaging and Test Tools, the Flight Signing Token and optionally, developermenu.efi and the microsoft.tools.studyid1510 package, downloadable here
  • The Windows Phone Cab Filter tool (WPCabFilter)
    • Application requires .NET Runtime 5.0 - downloadable here
  • The device's stock FFU, WPInternals to dump the EFIESP partition and OSFMount to mount the EFIESP partition if the 2nd bootloader unlock method is used
  • If the update packages are a delta, the desired phone must first be on the same build that the delta was designed for - for example, Windows 10 Mobile build 11103 can only be installed by pushing the delta packages while being on build 11102.

Precautions[edit | edit source]

  • Installing builds with this method is a process that must be taken with extreme care, and is specifically targeted towards devices running Windows Phone 8 or later. The devices which you use to install these builds are your responsibility, and the guide author(s) will not be held liable for potential damage towards your Windows phone.
  • For non-beta update packages, like build 10586.11, the update packages can be simply downloaded, filtered and pushed, as they do not require the flight signing token nor the StudyId1510 package to be present.
  • This guide assumes that C:\ is the user's Windows disk partition and that G:\ is the Lumia's MainOS partition.
  • Some update packages are not complete. This can be seen when viewing the amount of lines in the build's update package text file (usually, there should be around 300-500 packages) and for the presence of the microsoft.mainos.production package. If these requirements are not met, the build cannot be installed using those specific update packages and other packages must be used instead.
  • Windows 10 Mobile update packages that use the older .spkg format can only be installed on top of Windows Phone 8.1 Update 1 if the token is present and TESTSIGNING and FLIGHTSIGNING are on, although Windows Phone 8.1 Update 2 removes the TESTSIGNING requirement, requiring only the token to be present and FLIGHTSIGNING to be on. Packages using the newer Windows side-by-side component-based servicing mechanism (.cbs) can only be installed on top of an existing Windows 10 Mobile build, e.g. build 11081 to 11107.
  • If a file conflict error occurs, it is necessary to remove the package causing the conflict. This can be done by running a removal (spkror cbsr) package for the build the device is currently running to remove the conflicting file.
  • It is recommended to always use the Canonical packages of builds if they are available and complete.
  • In case you get errors such as 0x80070032 (ERROR_NOT_SUPPORTED) or 0x80070490 (ERROR_NOT_FOUND) when attempting to use GetDULogs or IUTool, it is advised to unplug any USB Flash Drives or other devices using MTP connections, then retry the commands that failed before.

Instructions[edit | edit source]

This guide assumes that the Windows Phone Common Packaging Tools have been installed and the rest of the files have been extracted to an easily accessible place.

Bootloader unlock method 1 (Easiest, Lumia only, but causes issues with delta packages)

After the Lumia's bootloader is unlocked, select "Manual mode" in WPInternals and then "Boot mass storage mode", then, navigate to G:\EFIESP\EFI\Microsoft\Boot\policies (if the folder is not present, create it) and place the flight signing token (SbcpFlightToken.p7b) in the directory. If a "Nokia" folder is also present in G:\EFIESP, navigate to G:\EFIESP\Nokia\Security and place the token in that directory as well.

After placing the token, open an elevated command prompt window and execute the following comand:

bcdedit /store G:\EFIESP\EFI\Microsoft\Boot\BCD /set {default} FLIGHTSIGNING on

Restart the phone by holding down the Volume down and power buttons and follow the guide in "Pushing the update packages to the device".

Bootloader unlock method 2 (Harder, Lumia only, does not cause issues with delta packages)

After the Lumia's bootloader is unlocked, select the Dump function in WPInternals and dump the EFIESP partition of the Lumia's stock FFU. After doing so, mount the EFIESP.bin file that was dumped via OSFMount (disable read only mode and use the direct writing mode) and paste the token file (SbcpFlightToken.p7b) into EFIESP\efi\Microsoft\Boot\policies (if the folder isn't present, create it). If a "Nokia" folder is also present in G:\EFIESP, navigate to G:\EFIESP\Nokia\Security and place the token in that directory as well.

Once done, unmount the EFIESP.bin file in OSFMount and power off the Lumia, then select "Interrupt boot process" in WPInternals, and plug the Lumia into the computer. Once the Lumia is in Flash mode, select the Flash function in WPInternals, and use the "Flash partition manually" feature to flash the modified EFIESP.bin file. After doing so, interrupt the process with WPInternals again and select "Manual mode", then "Boot mass storage mode", and execute the following command in an elevated command prompt window:

bcdedit /store G:\EFIESP\EFI\Microsoft\Boot\BCD /set {default} FLIGHTSIGNING on

Restart the phone by holding down the Volume down and power buttons and follow the guide in "Pushing the update packages to the device".

Interop unlock method (Windows 10 Mobile only, Lumia and other devices)

The device must be Interop Unlocked and have the Interop Tools app installed.

In the Registry feature of the Interop Tools app, navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MTP and select the DataStore key. Read the key's data by selecting the "Read Data" option, and then change the string to C:\EFIESP and press "Write Data". Connect the phone to a computer, navigate to Windows\System32\Boot and rename the resetphone.efi executable to something else. Afterwards, replace the executable with developermenu.efi (rename it as resetphone.efi) and disconnect the phone from the computer. The user can now also restore the previously modified string in Interop Tools from C:\EFIESP back to C:\Data\Users\PUBLIC.

Power off the device, and plug it back into the computer while holding down the Volume down button. Once developer menu loads, select the "USB Mass Storage Mode" option, and navigate to G:\EFIESP\EFI\Microsoft\Boot\policies (if the folder is not present, create it), then place the flight signing token (SbcpFlightToken.p7b) in the directory. If a "Nokia" folder is also present in G:\EFIESP, navigate to G:\EFIESP\Nokia\Security and place the token in that directory as well.

After placing the token, open an elevated command prompt window and execute the following comand:

bcdedit /store G:\EFIESP\EFI\Microsoft\Boot\BCD /set {default} FLIGHTSIGNING on

The resetphone.efi executable can also be replaced with its original counterpart in this mode if the user wishes to do so.

Restart the phone by holding down the Volume down and power buttons and follow the guide in "Pushing the update packages to the device".

Pushing the update packages to the device[edit | edit source]

After following either of the three methods listed above, open an elevated command prompt window, connect the device to a computer, navigate to C:\Program Files (x86)\Windows Kits\10\Tools\bin\i386 and execute the following command:

getdulogs -o C:\PATH\TO\ANY\FOLDER

Then, navigate to the directory that was specified in the command, open the .cab file present in that directory and copy the InstalledPackages.csv file to the folder that WPCabFilter is extracted in. Once done, enter that folder in the same command prompt window and run the command:

WPCabFilter.exe C:\PATH\TO\UPDATE\PACKAGES X:\PATH\TO\ANY\FOLDER

WPCabFilter will now filter the packages based on the ones installed on the device.

On the device itself, set the Date and Time to the build's compile date and afterwards, navigate to the same Windows Kits directory and push the update packages to the device using this command:

iutool -V -p C:\PATH\TO\FILTERED\PACKAGES

If a beta build such as build 11069 is being installed, the studyid1510 package must be installed or else the update will fail while in UpdateOS. This can be done by running the same command as above, albeit with a folder containing just the studyid1510 package instead of the filtered update packages. If an update error occurs, the logs for the update can also be accessed by using the getdulogs command and opening the ImgUpd.log file inside of the cabinet.

The device will now begin to install the build. In certain cases however, after the phone exits out of UpdateOS, the phone will not be able to boot, and will appear to bootloop instead. To fix this, hold down the volume down button while booting until an exclamation mark is shown on screen. Then, press the following button combination: volume up, volume down, power, volume down. The device will now reset and will boot into the out-of-box experience.