N72AP

From The iPhone Wiki
Revision as of 02:26, 20 September 2008 by ChronicDev (talk | contribs)
Jump to: navigation, search

This is the 2nd Generation iPod Touch

Model: n72ap Application Processor (OS Chip): s5l8720x

Decryption of it's Ramdisks, iBoot, LLB, Kernel, and friends

The application processor has a new GID key in it, so you can't decrypt kbags from it on any other device than itself. So, you pretty much will not even be able to make a pwned IPSW, let alone decrypt the RootFS, unless a low level (like, bootrom/kernel/iBoot) exploit is found. From there, it can be used to run code to decrypt the kbags so that we can in turn decrypt the files, and then to run code to actually pwn the device.

Bootrom exploit = No Go

DFU in the iPod Touch 2 is now 0x1227, so basically they took the patched up WTF and burned it into the bootrom, meaning the bootrom stack overflow is a no go...other methods are being tested though, no word on if they work yet...

Notes

-It has a new GID key.

-iBoot seems to map itself at 0xFF00000.

-LLB is encrypted, which is new.

-The s5l8900 WTF is still in the firmware strangely enough, but there is no n72ap WTF.

-It uses the same KBAG method, but as previously stated, it has a new GID key so nothing can be decrypted at the time without allowing unsigned code.

Internals

See: n72ap (Internals) - Remarkably it has a Bluetooth Chip, shown by iFixit, but apparently it may only be used for Rf transmission to the Nike+ kit.

Device IDs

0x1227 = DFU Mode (Basically WTF 2.0 burned into bootrom)
0x1281 = Recovery Mode (iBEC) as well as the iBSS used when communicating with DFU mode

Communication with DFU

  1. Put the device in DFU mode.
  2. Upload the iBSS found in the firmware ipsw to DFU.
  3. Unplug the device from the USB cable, wait a little bit, and the screen should turn white. At this point, plug it back in.
  4. Spawn a shell with it, to clarify, you can use anything that can talk to 0x1281 (Recovery Mode 2.0), as DFU mode itself can only let you upload files to it and does not allow commands to be sent to it.
  5. Do a test command to make sure everything is properly working. For example, type 'bgcolor 255 0 0' without the 's and the screen of the device should turn from white to red
  6. If the screen color changes, congrats, you can now communicate with the iPod Touch 2G at DFU level :)

Implementation

A tool called 'iRecovery' is in the works. When finished, it will most likely be released with source. All that we need to do is get two things working:

  1. We need to be able to have two way communication with 0x1281. This will allow us to talk to iBSS and receive a response, so if something isn't working we will know why
  2. Fix uploading files to 0x1281 feature, if it is broken (we don't know, because we can't yet get a response from 0x1281 to see what our problem is

The command list will be as follows:
./iRecovery -f <file> - Send a file to 0x1227 (DFU 2.0) ./iRecovery -s - Spawn a shell with 0x1281 (If you are in DFU, remember to follow the above steps to be able to actually spawn the shell) ./iRecovery -b <file> - Send a file to 0x1281 (Could be broken)