Bootloader mode on Windows Phone 7
Join the DZone community and get the full member experience.Join For Free
Fair warning: If you decide to play around with the bootloader mode, you might eventually:
1) Reset your phone to the default settings
2) Brick your device
Therefore, you are solely responsible for backing up your data and keeping your device safe. If you are not ready for any of the above, do not try what's described here.
I own a Samsung Taylor - one of those first developer devices that came out when Windows Phone 7 was still int the craddle. It is in no way different by any means compared to other available Windows Phone 7 device out there that are available for regular users, so I am not entirely positive whether what I found is something specific to this device only.
When the device starts, you are able to intercept the startup process and start it in two modes - download and bootloader mode. The bootloader mode allows you to customize some aspects of the device boot process and in particular - to enable KITL (Kernel Independent Transport Layer). If you've worked with Windows CE development before, you probably know that with KITL enabled, you are able to connect to the device from your PC and be able to access the filesystem, regirstry and generally be able to track the system performance.
By default, Windows Phone 7 doesn't really offer this type of capabilities and in this post I am not going to describe the ways to get there (although it seems like Platform Builder would be the way to do it).
To boot my Samsung Taylor in bootloader mode, I have to do the following steps:
1) Turn off the device
2) Hold both the Volume Up and Volume Down buttons pressed, while also holding the power button pressed.
In a couple of seconds you should see the TAYLOR Bootloader Menu appear.
The first option that you will be able to set is the Boot Source. It can be:
- OS Image from NAND
- USBFn Serial
- USBFn Ethernet Bridge
- SLDR MTPz
- USBFn RNDIS
For those who are wondering, NAND is Samsung's NAND Flash. This is the local storage unit and the OS image is obviously pre-loaded. Other sources will require the device to be connected to the PC and I can safely assume that you need an actual signed OS image to be able to load it.
The next option you are able to set is the KITL Device, and here is what you can select:
- USBFn Serial
- USBFn Serial Bridge
- USBFn RNDIS
So if you plan on binding to KITL, make sure that you have the proper connection capabilities.
So once you have this selected, you have to set the way KITL runs. By default, it is set to Disabled, but you can set it to be either Active or Passive. Since Windows Phone 7 is based on a Windows CE kernel, I would go ahead and say that these options follow the same pattern as those were in Windows CE:
I would also definitely recommend reading this before you go any further:
Once you are prompted to select the boot mode, it can be either Cold or Warm. If you select Cold, the phone will be automatically reset to the fectory defaults when loading the image, so as I said - backup your data. Warm boot will apply the settings to the OS for the current session.
Saving settings will mean that the device will boot with the same bootloader options everytime you start it. If you decide not to save those, you will only have the settings you configured for the current session.
Note at the end: HTC Mozart seems to have a similar bootloader mode.
Opinions expressed by DZone contributors are their own.