Sunday, 26 April 2009

Unlocking an iPhone for non-O2 SIMs

So I finally joined the 21st century, boosted my Apple nerd cred, and got a funky phone to boot. An iPhone is now in my posession! So far so good, except for one small problem - I have 12 months left on my Orange contract and I don't really want to pay all that off now just to get an O2 contract. I need a way to get the iPhone to work with my Orange SIM.

Enter ... QuickPWN and PWNTools! These two excellent apps allow you to unlock and jailbreak your iPhone in style and comfort. It's not as straightforward as just following the instructions, though, so allow me to elaborate a bit.

In order to unlock the iPhone, you need to build a custom IPSW package using PWNtools. This is because QuickPWN only builds a firmware to jailbreak the phone, rather than unlock it. For that, you need to replace to boot loader as well as the firmware. Ick. To build an unlocked boot loader, you need to have a copy of bl46.bin from somewhere.

My first experiment in building a custom IPSW with PWNTools went well, right up until I tried to install it. While trying to install the image using iTunes, I got the dreaded "Error 1600". Nobody knows what that actually means, but it's bad. However, there is a solution!

The trick is to use QuickPWN first, following the instructions to get the jailbroken firwmare onto the phone. This will jailbreak the phone, but unless you have an O2 SIM, the actual phone functions will be disabled. However, this makes the phone receptive to unlocked firmware packages. Open iTunes with the phone in normal mode and option-click the Restore button. Pick your custom PWNTools firmware and install it. Works fine, no errors (1600 or otherwise) in sight!

Being a bit of a purist, I didn't really want a jailbroken iPhone, and I would like to have the normal Apple logo back on the boot screen (it gets replaced with a pineapple by QuickPWN). I used QuickPWN and PWNTools with iPhone firmware 2.1 to unlock the phone. The beauty of this is that iTunes automatically installed the 2.2.1 firmware update. The new bootloader, complete with SIM unlock, is still there, but I have a genuine, non-hacked Apple firmware.

Obviously (or maybe not), using the PWNTools results in a phone that's already activated. Once you've got the new firmware on there, all you need is to plug it in and let the phone set up wizard do its thing to link it with your iTMS account so the App store works.

One thing to note is that it's quite easy to get the phone out of the development mode if it gets stuck by holding down the Home and Power buttons for 10 seconds. You can then just power up as normal, although you'll probably be left with a phone that thinks it needs activating. It's basically back to square one, but that's as good a place as any to have another crack at it.

Obviously, I do not advocate the hacking, cracking or generally buggering about with iPhones. If you brick your phone, don't come crying to me. On the other hand, it worked fine for me, and even when I had firmware that made the phone appear bricked, it could always be rescued by flashing a "real" firmware using iTunes.

Silverlight ... ouch!

For some reason, several places on the web with streaming video (e.g. ITV player) have gone with Microsoft's Silverlight for the interface. I have no idea what Silverlight is like as a platform, but I do know that it's a really bad choice for streaming video.
The main problem I have with it is that, on a 6MB/s ADSL connection, I get skip free performance from the likes of youtube and the BBC iplayer. Silverlight players, not so much. 0% left in the buffer every 30 seconds or so for even small videos, and there is no apparent way to change the buffer settings.
If anyone knows how I can make Silverlight less crappy, please to be posting comments!