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 thewget -i [text file]
command.
- The Windows Phone Common Packaging and Test Tools, the Flight Signing Token and optionally,
developermenu.efi
and themicrosoft.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 thatG:\
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 andTESTSIGNING
andFLIGHTSIGNING
are on, although Windows Phone 8.1 Update 2 removes theTESTSIGNING
requirement, requiring only the token to be present andFLIGHTSIGNING
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 (
spkr
orcbsr
) 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
) or0x80070490
(ERROR_NOT_FOUND
) when attempting to useGetDULogs
orIUTool
, 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.