Gizmodo is reporting that the hackers at the iPhone Dev Wiki have successfully unlocked the iPhone…partially. You can’t use that T-Mobile account just yet, but you can use any AT&T SIM card that you choose. This means any pre-paid, Cingular, or AT&T SIM card can be thrown into the iPhone and calls can be made. With the included WiFi the iPhone has, you’re pretty much good to go.
The hack was done using an application called iASign and poking around with the radio chipset for the iPhone. It’s pretty complicated, so hit the jump for the full explanation.
All problems with unlocking lie in the baseband, the radio chipset for the iPhone. The chipset is an S-Gold2, and don’t come in the chat and give us links to PapaUtils, we can’t use them. Now the iPhone only has one lock, a network personalization lock. This lock means the MCC(US=310) and the MNC(AT&T=410) must match the first six digits of the SIM cards IMSI. This check is done in the baseband firmware itself. I’m not really sure where yet, but that isn’t really relevant. The only thing standing in the way of an unlock is the baseband. All the other sim checks are known and can be patched out. We even know the AT command to do the unlock. It’s ‘AT+CLCK=”PN”,0,”xxxxxxxx”‘. But good luck finding those x’s. They are called the NCK, or Network Control Key, and are believed to be unique in everyones phone. Forget brute force(time impractical) and the obvious entries. If you still think bruteforce is a good idea, read this. Further, there is a limit of 3-10 unlock attempts per phone, after which the firmware will “hard-lock” itself to AT&T. So why can’t we just patch the firmware? The firmware, located in the ramdisk at /usr/local/standalone/firmware/ICE03.12.06_G.fls, is signed. See here for what is known about the file. The sig is checked in the baseband bootloader. The updater program, bbupdater, only checks a checksum, which can be changed. The update will take, but then the phone won’t boot because the sigs don’t match.
We worked two solid days on disasseming the radio fw. There are a few backdoors, but none that would lead to an unlock. If you are *good* with disassembling ARM, PM geohot for the idb. We’ve documented a lot of functions pretty well. Although, this firmware is very difficult to work through. I’m 90% sure the password check happens in the function called pwdcheck, but I haven’t found it yet. For all we know there could be a simple algorithm to generate the NCKs that we’ve missed.
Make sense? Yeah, doesn’t mean much to me either. But if the iPhone becomes unlocked, then I just might consider picking one up. Would you?