Last week I uploaded the source-code of Windows Phone Internals to Github. And I promissed that I would also release the code of some tools. The most important tool that helped me is ARM-patcher.
When I started developing Windows Phone Internals, I faced a problem: a lot of files on the phone need to be patched. This is a problem for multiple reasons. The patches need to be distributed. If I would bundle all patched files with the Windows Phone Internals, then I would be infringing copyright. And I really want to play by the rules, so that is not an option. It would also mean that the release of Windows Phone Internals would become huge over time. Another problem I faced is that it is really not easy to make a lot of patches in ARM binaries. Finding what you need to change is one thing, but editing the bytes to make it represent your changes is quite difficult. So I needed to make this easier for myself.
I created ARM-patcher. It can load a binary and then I can simply enter some code. It will output the patched binary, but it will also add the patch to an XML-file. I embed the XML-file in Windows Phone Internals and it will be used by the Patch Engine. The Patch Engine from Windows Phone Internals can apply and remove the patches on the binaries it finds on your phone. This way I don't infringe copyright and the tool makes it a lot easier to code the patches. But even with this tool, it takes me about 4 hours of work to create all necessary patches for one OS update.
The tool now targets Windows ARM32 binaries. But if you would need it for other platforms, like Windows ARM64, or for other OS'es, it should not be much work to change the code to make that work.
The source-code of ARM-patcher can be found here: https://github.com/ReneLergner/Patcher
Since I released to code from Windows Phone Internals to Github, I got a lot of positive feedback. Thanks for that to everyone! But since then @gus33000 did a lot of work on Windows Phone Internals too. I really appreciate that, and we are working hard on a new release with all his work added to it.
I uploaded all the source-code of Windows Phone Internals to Github. I also created some tooling which helped me developing Windows Phone Internals. I will upload this to Github too somewhere soon. I will still do some development, but don't have much time for it lately. So I hope other developers and hackers can contribute too. If Microsoft will ever release a Surface phone, I will have a new challenge and work on that. Maybe I will try to hack an iPhone in the meantime, LOL. The source of Windows Phone Internals can be found here: https://github.com/ReneLergner/WPinternals
It took some time for me to finish this version. The reason is that I'm moving to a new home, which obviously takes a lot of planning and effort. But I wanted to release this version for the Windows Mobile enthusiasts that are still around, because it contains many fixes and some new features. And it also supports recent builds of Windows Mobile. This version will also allow you to create Custom ROM's with highly customizable partition lay-outs. More details about the changes are in the Readme.txt. You can download WPinternals 2.5 from the Download-section. Have fun.
Since the release of Windows Phone Internals 2.3 many people have started experimenting with their Lumia phones! I love it. Here are a few of them:
Also some nice experiments with UEFI:
But there were also some people having trouble unlocking their phones. I collected logs and asked quite a few people to do tests for me. The result is version 2.4. There are no new features in this version. There are only fixes. Here's the changelog:
Disabling Root Access could result in a BSOD on some phones.
Unlocking the bootloader on some Lumia 950's and 950 XL's could result in a BSOD on the phone. Windows Phone internals detected this and reverted the changes. This version will prevent this situation and should unlock all Lumia 950's and 950 XL's correctly now.
Sometimes the driver for mass storage mode fails to start properly on PC. This could stall the unlock process of Windows Phone Internals. This version properly detects the failing driver, reverts the changes and informs the user. The user can retry to unlock the phone after the phone booted properly again.
The commannd-line interface of WPinternals.exe is working properly now.
The "Restore bootloader" function can now properly restore the original bootloader, when the unlock process was interrupted for some reason.
While scanning for a flashing profile, Windows Phone Internals could end up interrupting the process due to an exception. The exception is handled properly and the process should finish correctly now.
- FIX (experimental):
Reset Protection Protection: The Reset Protection Response Data is backed up when the bootloader is unlocked. And it is restored when you restore the bootloader.
Regression bug: Restore Bootloader was not working properly anymore on Lumia x2x devices.
After unlocking the bootloader, the iris scanner does not work anymore on Lumia 950 and Lumia 950 XL. This is a limitation of SecureBoot Unlock v2. SecureBoot Unlock v2 removes all policies and this also disables the iris scanner. Windows Hello does not work properly anymore. To fix the problem you can restore the bootloader.
Due to the complexity of SecureBoot Hack v2, unlocking mounted ROM images is only possible for Lumia's with bootloader Spec A. For Lumia's with bootloader Spec B you can create Custom ROM's with Root Access using the "Build and capture" technique, as described on the Getting started page.
- Many other improvements.
Windows Phone Internals version 2.4 can be downloaded from the download page on this site. Enjoy!