Updating multiple iPhones with a single iOS 4.2 download

After a number of years of roughly 200MB upgrades for my iPhone 3G and then iPhone 4 I was shocked when the latest iOS 4.2 update weighed in at just over 600MB. Added to the gut punch was the fact that I had to upgrade 2 iPhones now – yes, my wife has joined the cult.

What is iTunes actually downloading ?

iTunes makes it really easy to upgrade your iPhone but I wanted to be able to download the update once and use it to upgrade both phones.

01 - New version available

iTunes hides all the details from you – so how was I going to get at the iOS 4.2 firmware update file (.ipsw) ?

Use the proxy luke !

An HTTP proxy is a tool every developer should know how to use. I use Charles on Mac OS X. Fire up Charles to force all the HTTP traffic through a proxy and then click on the Update button in iTunes to start the download.

02 - iTunes

The other major factor in downloading this update only once is clearly visible in the status column. My ADSL router was on its way out and I just couldn’t get decent download speeds at the time. Thank goodness those days of darkness are behind me now – I’m very happy with my new LinkSys Dual-Band Wireless-N ADSL2+ Modem Gigabit Router. But I digress …

03 - Charles HTTP Proxy

The iOS 4.2 firmware update file (.ipsw) that iTunes was downloading is clearly visible in Charles:

We now have the complete URL for the file and can download it outside of iTunes. Stop the iTunes download as its purpose had now been served.


I use curl when downloading large files and since it is bundled in Mac OS X there is no extra download or installation required.

04 - Curl download file

The "-C –" switch combination tells curl to automatically calculate where to resume the transfer. This ensures that if the connection drops or is reset you can resume the download where you left off.

The "-O" switch tells curl to save the download to a local file with the same name as the remote file.


Fire up iTunes and hold down the option key while clicking on the Update button.

 01 - New version available

05 - Option update

The file selection dialog will open. Select the iOS 4.2 firmware update file (.ipsw) you have just downloaded.

06 - Select file

All the next steps will be familiar since they are all part of the standard steps for iOS updates.

07 - Update

Confirm that your iPhone has been updated.

08 - Updated

Now repeat the Install steps for each of your iPhones that you want to update.

3 thoughts on “Updating multiple iPhones with a single iOS 4.2 download

  1. This is exactly what I want to do but I am having some issues with using curl. I’ve tried several different variation of the coding and it doesn’t work for me. I don’t know if it matters, but I am one of several users on the computer. My beginning part of the code looks a little different and ‘downloads’ isn’t there, no matter how I add it I get errors. Any help would be great, this would really help me save my limited bandwidth. Thanks

    1. Make sure you are using the following:

      curl -C – -O http://……..

      Ensure you have all the dashes and that you have the letter O – not the number 0 before the url.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s