How To Upgrade iPhone/iPod Touch to OS 3.0 With Linux And VirtualBox
A while ago I blogged about how I updated my iPod Touch to iPhone OS 3.0 using Linux and VirtualBox. I’ve also promised a guide, but I did not have the time to write it. Until now, that is…
I’ve actually decided to break up the guide into two parts. In this first part, I will just guide you through how to upgrade your iPhone to the latest firmware from Apple and in the second part of the guide I will document the actual jailbreaking process. The first part is required for the second part, so if you plan to jailbreak you won’t waste any time starting now. Of course, if you want to stay with the official firmware from Apple, then you can finish right after this first part.
But before you begin, I should note what setup I used while writing this guide. If you are using something different, then you might need to change a few things. I’ll leave it up to you to figure out which those are.
- iPod Touch 2G
- VirtualBox 3.0
- Ubuntu Jaunty as a host
- Windows XP SP3 as the VM
And now for the actual guide.
- The first step is to backup you iPhone. In VirtualBox, you will be using a new installation of iTunes which has not been synced with your device yet. If you perform the wrong series of steps during the upgrade, like I did, then you will loose all of your songs and applications. If you payed for any of them, the re-download is free of charge. However it takes time and work to restore all of them… I am not responsible for whatever happens to your iPhone.
- Install VirtualBox 3.0, Commercial Edition. It is very important that you install the commercial edition of VirtualBox and not the open source edition. The OSE does not support USB devices. Also I should note that the commercial edition is only free of charge for personal uses.
- If you are using Ubuntu, then add the following line to the bottom of your /etc/fstab file.
none /proc/bus/usb usbfs devgid=125,devmode=666 0 0
- Run the following command. This will update your devices list with the newly added line.
sudo mount -a
- Install Windows inside VirtualBox.
- Fully shutdown the virtual machine that you just created. Do not just press “Save State”, because in the next step you will need access to the settings.
- Connect your iPhone to your computer via USB.
- Select the virtual machine and press settings.
- In the window that pops up, navigate to the USB section. Make sure that Enable USB Controller and Enable USB 2.0 (EHCI) Controller are checked. The window should look similar to the following screenshot:
- Click the Add Filter From Device button that I am hovering over in the above screenshot. A small box should pop up, in which you select “Apple Inc. iPod” or whatever the appropraite entry is for the iPhone.
- Select the newly added filter and click the “Edit Filter” button over which I’m hovering in the following screenshot.
- In the window that pops up, erase everything except Name and Vendor ID. This is because during the jailbreaking process, the iPhone goes through several different modes, each having a different Product ID.
- Click OK to close both, Edit Filter and Settings, of the windows.
- Start up your virtual machine.
- Install the latest iTunes.
- Open iTunes and follow the messages to upgrade to iPhone OS 3.0. If you setup the filters property, iTunes should automatically detect your iPhone and write out the steps that you need to take to upgrade. Just follow them… And yes, if you have an iPod Touch, there is a $10 fee for the upgrade (but free for iPhone owners).
- After you have upgraded your iPhone, you are done. That is, unless you also want to jailbreak it. If the latter is the case, I will be writing the second part of this tutorial soon.
- Enjoy iPhone OS 3.0!
- Make sure that VirtualBox can detect your iPod or any other USB devices. You can quickly mount them by right-clicking on the USB button in the lower left corner and selecting it. If VirtualBox detected the device, then it should be listed.
Post any problems that you have. If it is something I saw before, I might reply.