The iPhone Wiki is no longer updated. Visit this article on The Apple Wiki for current information. |
IPSW File Format
IPSW (iPod¹ SoftWare) Files have the Magic Number 504B0304 (PK\003\004) and thus are ZIP Archives. They can be modified with typical zip/unzip tools (i.e. change extension to .zip and double click). An IPSW File is used to deliver the iPod Touch / iPhone firmware to the end-user.
¹The IPSW files are used starting from the iPod 1G, even though they have a different format than iOS-based devices.
Contents
IPSW Contents
root folder
- Restore Ramdisk
- Update Ramdisk (Firmware 1.0 didn't contain an Update Ramdisk as there is no official firmware to update from)
- Filesystem Ramdisk (the largest .dmg file)
- kernelcache.release.XXXXXXX file (application processor specific i.e S5L8900, S5L8920, S5L8720, S5L8922, S5L8930)
- BuildManifest.plist (first appeared in firmware 3.0, I guess)
- Restore.plist file
- \Firmware (Folder)
Firmware Folder
- \all_flash\all_flash.XXXXX.production (Folder - hardware specific i.e. M68ap, N82ap, N88ap, N45ap, N72ap, N18ap, K48ap)
- \dfu (Folder)
- ICE3_XX.XX.XX_BOOT_02.06.Release.bbfw (Contains the baseband and the bootloader. X stands for a number. This is the baseband version. 02.06 ist the bootloader. Only in the iPhone 4 firmware.)
all_flash.XXXXX.production Folder
dfu Folder
- iBEC.XXXXX.DFU (hardware specific i.e. M68ap, N82ap, N88ap, N45ap, N72ap, N18ap, K48ap)
- iBSS.XXXXX.DFU (hardware specific i.e. M68ap, N82ap, N88ap, N45ap, N72ap, N18ap, K48ap)
- WTF.XXXXX.DFU (hardware specific i.e. M68ap, N82ap, N45ap, N72ap - currently not present in firmwares for the iPhone 3GS and later, because it is mostly used to patch issues with the DFU mode that was burned into the bootrom)
Example
This is a ls -alR of an extracted iPhone 3GS 3.0 Firmware IPSW.
total 608400 drwx------@ 11 m staff 374 17 Jun 07:11 . drwxrwxrwx 5 m staff 170 18 Jul 07:34 .. -rw-r--r--@ 1 m admin 281214976 22 Mai 17:10 018-5302-002.dmg -rw-r--r--@ 1 m admin 12769604 22 Mai 16:59 018-5304-002.dmg -rw-r--r--@ 1 m admin 12777796 22 Mai 16:59 018-5306-002.dmg -rw-r--r-- 1 m admin 21097 22 Mai 17:29 BuildManifest.plist drwxr-xr-x@ 5 m staff 170 17 Jun 07:11 Firmware -rw-r--r-- 1 m admin 1763 22 Mai 17:10 Restore.plist -rw-r--r--@ 1 m staff 4695492 22 Mai 14:32 kernelcache.release.s5l8920x ./Firmware: total 16 drwxr-xr-x@ 5 m staff 170 17 Jun 07:11 . drwx------@ 11 m staff 374 17 Jun 07:11 .. drwxr-xr-x@ 4 m staff 136 18 Jun 02:10 all_flash drwxr-xr-x@ 4 m staff 136 22 Mai 13:39 dfu ./Firmware/all_flash: total 16 drwxr-xr-x@ 4 m staff 136 18 Jun 02:10 . drwxr-xr-x@ 5 m staff 170 17 Jun 07:11 .. drwxr-xr-x@ 16 m staff 544 22 Mai 13:43 all_flash.n88ap.production ./Firmware/all_flash/all_flash.n88ap.production: total 1320 drwxr-xr-x@ 16 m staff 544 22 Mai 13:43 . drwxr-xr-x@ 4 m staff 136 18 Jun 02:10 .. -rw-r--r--@ 1 m staff 44996 22 Mai 13:08 DeviceTree.n88ap.img3 -rw-r--r--@ 1 m staff 67908 22 Mai 13:12 LLB.n88ap.RELEASE.img3 -rw-r--r--@ 1 m staff 9604 22 Mai 13:15 applelogo.s5l8920x.img3 -rw-r--r--@ 1 m staff 19716 22 Mai 13:15 batterycharging0.s5l8920x.img3 -rw-r--r--@ 1 m staff 24900 22 Mai 13:16 batterycharging1.s5l8920x.img3 -rw-r--r--@ 1 m staff 76100 22 Mai 13:16 batteryfull.s5l8920x.img3 -rw-r--r--@ 1 m staff 56772 22 Mai 13:16 batterylow0.s5l8920x.img3 -rw-r--r--@ 1 m staff 65348 22 Mai 13:17 batterylow1.s5l8920x.img3 -rw-r--r--@ 1 m staff 20356 22 Mai 13:17 glyphcharging.s5l8920x.img3 -rw-r--r--@ 1 m staff 19332 22 Mai 13:18 glyphplugin.s5l8920x.img3 -rw-r--r--@ 1 m staff 178500 22 Mai 13:21 iBoot.n88ap.RELEASE.img3 -rw-r--r--@ 1 m staff 341 22 Mai 13:43 manifest -rw-r--r--@ 1 m staff 20484 22 Mai 13:24 needservice.s5l8920x.img3 -rw-r--r--@ 1 m staff 47876 22 Mai 13:24 recoverymode.s5l8920x.img3 ./Firmware/dfu: total 416 drwxr-xr-x@ 4 m staff 136 22 Mai 13:39 . drwxr-xr-x@ 5 m staff 170 17 Jun 07:11 .. -rw-r--r--@ 1 m staff 104772 22 Mai 13:30 iBEC.n88ap.RELEASE.dfu -rw-r--r--@ 1 m staff 104772 22 Mai 13:36 iBSS.n88ap.RELEASE.dfu