Restore iPod without iTunes
Ok, so you have an iPod Classic (80, 120 or 160 GB), or a Nano (3G or 4G should work, can't speak for the newer models). You have done something bad to it, like changing the firmware or deleting something you shouldn't have deleted, and you want to bring it to life? Great, that's the article you're looking for!
First, you should try restoring it with iTunes. But it probably won't recognise it, unless you put it in DFU mode. Here's a video on how to achieve this:
https://www.youtube.com/watch?v=Y_bIDtBohnE
Then use iTunes' Restore option. It should actually ask you to do it, just accept it and it would be back to life in a minute or two.
But, .... it doesn't work! What should I do? It's BROKEN!
Calm down, and keep reading...
Contents
Prerequisites
- An iPod (Classic - also known as iPod 6G/7G) (It works for Nanos, but the files are different!)
- Computer with Windows (Linux tutorial coming soon, it's mostly the same except that you don't need to care about drivers, but need to build ipodscsi from source)
- Patience
Files needed
- Zadig
- Python + pyusb + libusb
- ipoddfu.py
- libipoddfu.py
- ipodscsi
Overview of the procedure
- You put the ipod into DFU mode
- You install a custom driver to that device, so ipoddfu can talk to it (exploit a bootrom vulnarability, to be exact)
- You install Python and pyusb
- You send the first stage of the restore firmware (called "DFU") to the ipod using ipoddfu
- The ipod reconnects with a different USB IDs
- You install a custom driver for the new USB device
- You send the second stage of the restore firmware (called "WTF") to the ipod using ipoddfu
- The ipod shows a monochrome disk mode screen
- You repartition the hard disk, upload the new firmware and reboot the ipod - all these three at once using ipodscsi
- Your ipod is working again. Yay!
You're ready? Ok, let's do it!
Steps to restore
Putting the ipod into DFU mode
- Get an USB-to-iPod cable.
- Connect it to your computer.
- Get your ipod.
- Lock the HOLD switch, then unlock it after a second.
- Connect the USB cable to the ipod.
- During the next two steps, disregard what happens on the ipod's screen, just do what we ask you to.
- Hold down MENU+SELECT, and count to 12.
- Release the buttons.
- You're in DFU mode.
Here's a video, to make it more clear: https://www.youtube.com/watch?v=Y_bIDtBohnE
Installing a custom DFU driver
- Download Zadig
- Open Zadig
- Click menu Options -> List all devices
- Select USB DFU Device (the first box of USB ID should be 05AC, the second one depends on the ipod model - 1223 for iPod Classic)
- From the options to the right of the green arrow, select libusb-win32
- Click the large button named Install driver or Replace driver or Reinstall driver (depending on what driver you have installed at the moment)
- Wait for Zadig to complete the installation.
- You're ready for the next step
Uploading the first restore stage (DFU)
- Press the Start menu button
- Type cmd and Press Enter
- In the black window that opens, type cd Desktop and press Enter (in case your Windows installation is localized, type the name of your desktop folder in your language instead)
- Download this file to your Desktop: ipoddfu.py (Right-click, then choose Save link as...)
- And this one, too: libipoddfu.py, make sure you also put it there
- Another one, this time from Apple's servers: x12230000_Recovery.ipsw (I hope they won't delete it at some point, because we can't legally host it on our server)
- Go to your desktop, and rename the ipsw file to zip
- Use your favourite tool to extract the zip, WinZip, WinRAR and 7-zip will do it well, even Windows' integrated ZIP extractor will do.
- Open the extracted folder, and go to Firmware\dfu. There should be a file named WTF.x1223.RELEASE.dfu there. Copy it to the desktop.
- Back in the black window, type:
python ipoddfu.py WTF.x1223.RELEASE.dfu
and press Enter.
You should see the following output:
Connected to S5L8702 Bootrom DFU mode, USB version 1 Upload: ................... done
If you see something different, stop here. Otherwise, go ahead.
Installing a custom WTF driver
- It's the same as the previous driver install, this time the device is named iPod Recovery and the second ID is 1241 for Classic 1G, 1245 for Classic 2G or 1247 for Classic 3G
- Complete the installation, and move to the next step
Uploading the second restore stage (WTF)
- "What the f*ck"? No, probably means Writing The Firmware or Waiting for The Firmware - we never found out. Who cares, anyway.
- Download one of the following files, depending on your iPod model. You can tell it from the USB ID in the previous step.
- For Classic 1G (USB ID 1241), download x12410000_Recovery.ipsw
- For Classic 2G (USB ID 1245), download x12450000_Recovery.ipsw
- For Classic 3G (USB ID 1247), download x12470000_Recovery.ipsw
- As before, rename it to zip and extract it.
- Go inside the folder Firmware/dfu, and copy the file to your desktop. It should be named FIRMWARE.x****.RELEASE.dfu where **** is the USB ID of your ipod at the moment.
- Repeat the previous ipoddfu command, but this time using the name of the file you just copied. For example:
python ipoddfu.py FIRMWARE.x1245.RELEASE.dfu
and press Enter.
You should see the following output: