Difference between revisions of "IPSW File Format"

From The iPhone Wiki
Jump to: navigation, search
(Firmware Folder)
m (a bit of a rewrite)
Line 1: Line 1:
'''IPSW''' ('''iP'''od¹ '''S'''oft'''W'''are) Files have the Magic Number 504B0304 (PK\003\004) and thus are [http://en.wikipedia.org/wiki/ZIP_%28file_format%29 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.
+
'''IPSW''' ('''iP'''od¹ '''S'''oft'''W'''are) Files have the Magic Number 504B0304 (PK\003\004) and thus are {{wp|ZIP (file_format)|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]]/[[iPad]]/[[Apple TV]] [[firmware]] to the end-user.
  +
  +
<sup>1</sup>The IPSW files are used starting from the iPod 1G, even though they have [http://www.freemyipod.org/wiki/Firmware a different format than] iOS-based devices.
   
¹The IPSW files are used starting from the iPod 1G, even though they have [http://www.freemyipod.org/wiki/Firmware a different format than] iOS-based devices.
 
 
== IPSW Contents ==
 
== IPSW Contents ==
  +
* [[Restore Ramdisk]]
 
  +
* [[Update Ramdisk]] (Firmware 1.0 didn't contain an Update Ramdisk as there is no official firmware to update from)
=== root folder ===
 
  +
* [[Disk Image Formats|Filesystem Ramdisk]] (the largest .dmg file)
*[[Restore Ramdisk]]
 
  +
* [[Kernelcache|kernelcache.release.XXXXXXX file]] (application processor specific i.e [[S5L8900]], [[S5L8920]], [[S5L8720]], [[S5L8922]], [[S5L8930]], [[S5L8940]])
*[[Update Ramdisk]] (Firmware 1.0 didn't contain an Update Ramdisk as there is no official firmware to update from)
 
  +
* BuildManifest.plist (first appeared in firmware 3.0?)
*[[Disk Image Formats|Filesystem Ramdisk]] (the largest .dmg file)
 
  +
* Restore.plist file
*[[Kernelcache|kernelcache.release.XXXXXXX file]] (application processor specific i.e [[S5L8900]], [[S5L8920]], [[S5L8720]], [[S5L8922]], [[S5L8930]])
 
  +
* ''Firmware\''
*BuildManifest.plist (first appeared in firmware 3.0, I guess)
 
  +
** ''all_flash\''
*Restore.plist file
 
  +
*** ''all_flash.XXXXX.production\'' (hardware specific i.e. [[M68ap]], [[N82ap]], etc.)
 
  +
**** [[S5L File Formats#IMG2|IMG2]]/[[IMG3 File Format|IMG3]] files
*\Firmware (Folder)
 
  +
**** manifest
 
=== Firmware Folder ===
+
** \dfu (Folder)
*\all_flash\all_flash.XXXXX.production (Folder - hardware specific i.e. [[M68ap]], [[N82ap]], [[N88ap]], [[N45ap]], [[N72ap]], [[N18ap]], [[K48ap]])
+
*** [[iBEC]].XXXXX.DFU (hardware specific i.e. [[M68ap]], [[N82ap]], etc.)
  +
*** [[iBSS]].XXXXX.DFU (hardware specific i.e. [[M68ap]], [[N82ap]], etc.)
*\dfu (Folder)
 
  +
*** [[WTF]].XXXXX.DFU (hardware specific i.e. [[M68ap]], [[N82ap]], [[N45ap]], [[N72ap]] - currently not present in firmwares for the [[N88ap|iPhone 3GS]] and later, because it is mostly used to patch issues with the DFU mode that was burned into the bootrom)
*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 is the bootloader. Only in the iPhone 4 firmware.)
 
  +
** 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 is the bootloader. Only in the iPhone 4 firmware.)
 
=== all_flash.XXXXX.production Folder ===
 
*[[S5L File Formats#IMG2|IMG2]]/[[IMG3 File Format|IMG3]] files
 
*manifest
 
 
=== 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 [[N88ap|iPhone 3GS]] and later, because it is mostly used to patch issues with the DFU mode that was burned into the bootrom)
 
   
 
== Example ==
 
== Example ==
 
This is a ls -alR of an extracted iPhone 3GS 3.0 Firmware IPSW.
 
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 .
<pre>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
drwxrwxrwx 5 m staff 170 18 Jul 07:34 ..
 
-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 12777796 22 Mai 16:59 018-5306-002.dmg
+
-rw-r--r-- 1 m admin 21097 22 Mai 17:29 BuildManifest.plist
-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
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 admin 1763 22 Mai 17:10 Restore.plist
+
-rw-r--r--@ 1 m staff 4695492 22 Mai 14:32 kernelcache.release.s5l8920x
  +
-rw-r--r--@ 1 m staff 4695492 22 Mai 14:32 kernelcache.release.s5l8920x
 
  +
./Firmware:
 
  +
total 16
./Firmware:
 
  +
drwxr-xr-x@ 5 m staff 170 17 Jun 07:11 .
total 16
 
  +
drwxr-xr-x@ 4 m staff 136 22 Mai 13:39 dfu
 
  +
./Firmware/all_flash:
 
  +
total 16
./Firmware/all_flash:
 
  +
drwxr-xr-x@ 4 m staff 136 18 Jun 02:10 .
total 16
 
  +
drwxr-xr-x@ 16 m staff 544 22 Mai 13:43 all_flash.n88ap.production
 
  +
./Firmware/all_flash/all_flash.n88ap.production:
 
  +
total 1320
./Firmware/all_flash/all_flash.n88ap.production:
 
  +
drwxr-xr-x@ 16 m staff 544 22 Mai 13:43 .
total 1320
 
drwxr-xr-x@ 16 m staff 544 22 Mai 13:43 .
+
drwxr-xr-x@ 4 m staff 136 18 Jun 02:10 ..
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 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 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 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 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 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 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 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 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 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 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 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 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 20484 22 Mai 13:24 needservice.s5l8920x.img3
+
-rw-r--r--@ 1 m staff 47876 22 Mai 13:24 recoverymode.s5l8920x.img3
  +
-rw-r--r--@ 1 m staff 47876 22 Mai 13:24 recoverymode.s5l8920x.img3
 
  +
./Firmware/dfu:
 
  +
total 416
./Firmware/dfu:
 
  +
drwxr-xr-x@ 4 m staff 136 22 Mai 13:39 .
total 416
 
-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
drwxr-xr-x@ 5 m staff 170 17 Jun 07:11 .
+
drwx------@ 11 m staff 374 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 18 Jun 02:10 all_flash
+
drwxr-xr-x@ 4 m staff 136 22 Mai 13:39 dfu
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@ 5 m staff 170 17 Jun 07:11 ..
+
drwxr-xr-x@ 16 m staff 544 22 Mai 13:43 all_flash.n88ap.production
drwxr-xr-x@ 4 m staff 136 22 Mai 13:39 .
+
drwxr-xr-x@ 5 m staff 170 17 Jun 07:11 ..
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:30 iBEC.n88ap.RELEASE.dfu
+
-rw-r--r--@ 1 m staff 104772 22 Mai 13:36 [[iBSS]].n88ap.RELEASE.dfu
-rw-r--r--@ 1 m staff 104772 22 Mai 13:36 iBSS.n88ap.RELEASE.dfu
 
</pre>
 

Revision as of 03:17, 27 October 2011

IPSW (iPod¹ SoftWare) Files have the Magic Number 504B0304 (PK\003\004) and thus are Template:Wp 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/iPad/Apple TV firmware to the end-user.

1The IPSW files are used starting from the iPod 1G, even though they have a different format than iOS-based devices.

IPSW Contents

  • 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, S5L8940)
  • BuildManifest.plist (first appeared in firmware 3.0?)
  • Restore.plist file
  • Firmware\
    • all_flash\
      • all_flash.XXXXX.production\ (hardware specific i.e. M68ap, N82ap, etc.)
    • \dfu (Folder)
      • iBEC.XXXXX.DFU (hardware specific i.e. M68ap, N82ap, etc.)
      • iBSS.XXXXX.DFU (hardware specific i.e. M68ap, N82ap, etc.)
      • 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)
    • 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 is the bootloader. Only in the iPhone 4 firmware.)

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