IPSW File Format

IPSW (iPod[1] 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). IPSWs are used to deliver the device's firmware to the end-user.

Archive Structure

 * Restore Ramdisk
 * Update Ramdisk (some firmwares don't have one due to various reasons)
 * Filesystem Ramdisk (the largest .dmg file)
 * Device Tree (model specific)
 * Kernelcache (model specific; processor specific on pre-A4)
 * BuildManifest.plist (first appeared in iPhone OS 3.0 beta 2)
 * Restore.plist
 * Firmware/
 * all_flash/
 * all_flash.XXXXX.production/ (model specific i.e. M68AP, N82AP, etc.)
 * IMG2/IMG3 files
 * manifest
 * dfu/''
 * iBEC.XXXXX.dfu (model specific i.e. M68AP, N82AP, etc.)
 * iBSS.XXXXX.dfu
 * WTF.XXXXX.dfu (model specific and only for M68AP, N82AP, N45AP, N72AP; not present in firmwares for the iPhone 3GS and later, because it was used to patch issues with the DFU mode that was burned into the bootrom)
 * Baseband (may be one or many files depending on the model)

Example
Here are the contents of the iPhone 3GS 3.0 (7A341) firmware IPSW:
 * (281214976 bytes)
 * (12769604 bytes)
 * (12777796 bytes)
 * (21097 bytes)
 * (4695492 bytes)
 * (1763 bytes)
 * (9604 bytes)
 * (19716 bytes)
 * (24900 bytes)
 * (76100 bytes)
 * (56772 bytes)
 * (65348 bytes)
 * (44996 bytes)
 * (20356 bytes)
 * (19332 bytes)
 * (178500 bytes)
 * (67908 bytes)
 * (341 bytes)
 * (20484 bytes)
 * (47876 bytes)
 * (104772 bytes)
 * (104772 bytes)
 * (47876 bytes)
 * (104772 bytes)
 * (104772 bytes)
 * (104772 bytes)