IPSWs are files used by iTunes to update or restore the firmware on a mobile Apple device. Originally used for classic iPods, the IPSW made its way onto the iPhone, iPod touch, iPad, Apple TV, iPad mini, and Apple Watch. Although IPSWs may seem like magic, they are cleverly disguised .zip
archives. You can read more about the file format of IPSWs here.
Over a year ago, @q3hardcore on Twitter discovered a technical leak from one of Apple's update servers. For reasons unknown, their Amazon S3 bucket was accidentally published publicly. In other words, going to https://appldnld.s3.amazonaws.com presented you with a wall of XML, full of links to files stored on Apple's update server. I did not think to archive the page before it want back to being protected.
Example:
http://appldnld.apple.com/iOS7.1/031-4388.20140310.ZA355/iPad2,1_7.1_11D167_Restore.ipsw
Where appldnld.apple.com
is the domain,
iOS7.1
is the release version,
NOTE: Apple used
iPhone4
for iOS releases between 4.0 to 5.0.1. This applied to all devices, even iPads. I don't know whyiOS4
or something similar was used instead.
031
is the "update ID" (unofficial name),
4388
is the "build ID" (which seems to be unique and related to the update ID? it may be generated when Apple starts building a firmware in-house),
20140310
is the upload date (YYYY:MM:DD / March 10, 2014).
ZA355
is some sort of hash (which seems to always be unique?),
and iPad2,1_7.1_11D167_Restore.ipsw
is the filename of the firmware (iOS 7.1 build 11D167 for the iPad 2 Wi-Fi).
Starting with iOS 8.1.3, Apple uses a slightly different scheme for naming files. Here is an example shown below:
http://appldnld.apple.com/ios8.1.3/031-15466-20150119-8A77FDB0-A005-11E4-9FF7-3A565BAA4ECA/iPhone4,1_8.1.3_12B466_Restore.ipsw
Where appldnld.apple.com
is the domain (still),
ios8.1.3
is the release version,
031
is the "update ID" (unofficial name),
15466
is the "build ID" (which seems to be unique and related to the update ID? it may be generated when Apple starts building a firmware in-house),
20150119
is the upload date (YYYY:MM:DD / January 19, 2015).
8A77FDB0-A005-11E4-9FF7-3A565BAA4ECA
is some sort of longer hash (it appears to be split into 5 parts: 8 values, four values, four values, four values, and 12 values),
and iPhone4,1_8.1.3_12B466_Restore.ipsw
is the filename of the firmware (iOS 8.1.3 build 12B466 for the iPhone 4s).
Update ID tidbits below. OTA updates are NOT included, and many iOS versions for iPhone and iPad have not been added yet. This needs a lot of cleanup. Please don't use this Gist as an official guide or tutorial. This is just an assortment of ideas.
- Documentation for iOS 1.0 through 1.0.2, and 1.1.2 through 1.1.5
- Firmwares for iOS 1.0 - 1.1.5
- Apple TV 2G, marketed 4.0 through 4.2, 4.4
- All documentation for Apple TV 2G, 3G, and 3G Rev A
- iPad 3.x firmware + docs
- iPod touch 2.x docs + iPod touch 2G firmwares
- iPod touch 3.x docs + iPod touch 3G firmwares
- iPod touch 4.0-4.2.1 docs
- iPod touch 4.0-4.3 firmwares
- iPod touch 5.0 firmware
- iPad 1G 4.2.1 firmware and docs
- Documentation for iOS 1.1 and iOS 1.1.1
- Apple TV 2, marketed 4.2.1 through 4.3, and 4.4.1 through 4.4.4
- All Apple TV firmwares marketed 5.0 through 5.2
- All Apple TV firmwares marketed as 6.0 (build 11a469a)
- iPod touch firmwares 4.3.1-4.3.5
- iPod touch Docs for 4.3-4.3.5
- iPod touch docs for 5.x
- iPod touch 5.0.1-5.1.1 firmware
- iPod touch docs 6.0-6.0.1
- iPod touch 5G firmware 6.0-6.1, iPod touch 4G 6.0-6.0.1
- All iPad 4.3-4.3.5 firmwares
- All iPad 4.3-4.3.5 docs
- All iPad 5.x docs
- All iPad firmwares 5.0-5.1.1
- All iPad docs 6.0
- iPad docs for 6.0-6.0.1 for iPad 2, 3, and iPad3,4
- All iPad firmwares 6.0-6.1
- All iPod touch 10.x firmware, excluding 10.3.3 + docs (excluding 10.3.3)
- iPod touch 9.x firmware docs and firmwares 9.0.1 through 9.3.5
- iPod touch 8.x firmware + docs
- iPod touch 7.0.3-7.1.2 firmware and docs
- All Apple TV firmwares, 6.0.2-6.2.1
- All Apple TV firmwares, 6.0 (11a470e and 11a502)
- All Apple TV firmwares, 7.0-7.2.2
- Apple TV 4G 9.x firmware + docs and all 10.x firmware excluding 10.2.2 + docs
- Apple Watch 2.x firmwares
- iPod touch 4G firmware 6.1.6
- iPod touch 4G 6.1.5 and 6.1.6 docs
- All iPhone firmwares 10.0.1 - 10.2.1 and 10.3.2, and docs for 10.0.1 - 10.2.1
- All iPad and iPad mini firmwares 10.0.1 - 10.2.1 and 10.3.2, and docs for 10.0.1 - 10.2.1
- iPod touch iOS 9.0 firmware (excluding docs)
- iPod touch firmware and docs for iOS 7.0 and 7.0.2
- iPod touch firmware and docs 5G 6.1.2,6.1.3
- All Apple TV firmwares 5.2.1 through 5.3
- All Apple TV firmwares marketed as 6.0.1
- iPod touch docs 6.1-6.1.3
- All iPod touch firmware 6.1.2-6.1.3, and 6.1 firmware for iPod touch 4G
- iPod touch 4G firmware 6.1.5
- All iPad 6.1-6.1.3 docs
- All iPad firmwares 6.1.2-6.1.3
- Apple TV 4G firmware 10.2.2
- iPod touch firmware 10.3.3 + docs
- iPhone firmwares 10.3 - 10.3.3, excluding 10.3.2
- iPhone docs for 10.3 - 10.3.3
- iPad and iPad mini firmwares 10.3 - 10.3.3, excluding 10.3.2
- All iPad and iPad mini docs for 10.3 - 10.3.3