Introduction: Hacking IPod Firmware From LINUX

Many of you may realize that iPods (5th gen video and lower) can be customized or hacked. Until now, this process was restricted to Windows users, and it is being further developed from Mac; now Linux users will also have that ability.


You have been warned!!

In the picture below, the iPod is a ipod video 30gb (5.5g) It kind of looks like the new 'classic', but it doesn't have to.

Step 1: Getting a Firmware

Technically, downloading any firmware is illegal under Apple's EULA - however, modifying your own isn't (I don't think :P).
Being on Linux, you already know you cant get 'legal' firmware updates from iTunes, but you can get them here. Once you have the firmware file from felixbruns or here, you can start modifying them...

Step 2: IPod Wizard

The generally accepted tool for modifying firmware for iPods is called iPodWizard, and can be downloaded free of charge from the iPodWizard Site. unfortunately it is Windows only, with no development for Linux.

Luckily, Wine allows us to run iPW with almost full functionality. Grab Wine in a format suitable for your distro, for debian users, just type at a prompt: 'sudo apt-get install wine' (without quotes :P).

Once you have wine set up, download the ipod Wizard STANDALONE file, as this saves much time! Run the program through wine as you would with any other windows program (Check the site for your specific command).

Once you have iPW open, choose 'Firmware FIle', as through Wine, it will not recognize your iPod. Actually modifying the firmware with iPW is too broad for this tutorial, so check the forums at the iPod Wizard site for info, and for lots of themes/custom firmware (hosted off-site).

Now that you have any mods/themes loaded, click the 'Write' button, not 'Write to iPod' it will prompt wou about legal implications, click ok :P

You now have a custom firmware file to load to the iPod. Normally iPW takes care of this for you, however it is not able to when running in wine... hence the next step...

Step 3: Uploading the Firmware to the IPod

Ok, so we have our file, but now we need it on our iPod. The ipods generally have two partitions, one for general ipodiness (like music, pictures and videos...) and one hidden one just for firmware.

First mount your device, whether you do so from the terminal of the GUI is your choice, just remember which device it is, eg /dev/sdb2 Not the mount point, but the actual device location. It will be /dev/sdaXY where X is the device letter, and Y is the partition number. it will be 2 generally, but 1 is the one we want, the one that is hidden. my firmware partition is at /dev/sdc1

Now that we have that, we can't just copy the file across, a) because the partition is hidden,. and b) as it is a binary firmware file. This is where the command 'dd' comes into play. You need sudo rights on your machine, as dd accesses devices on block level.

The command we need to use is:
sudo dd if=/path/to/firmware.bin of=/dev/sdXY
Replace the path to the absolute path to the firmware file, and the X and Y to the appropriate values.

Hit enter and enter your password, now wait. It only take a few seconds, but ejecting, unmounting, or pulling the plug now is FATAL. Do Not Do It!!

Wait until it tells you it is complete, it even tells you the speed it transfered at :P.

Finally unmount and eject the iPod, only it will fail and the iPod will reboot immediately. Don't worry, this is normal. Wait for the iPod to load and check the results... then do it all again... There are no limits to the mods you can do, but if you want it back to stock, just dd a fresh firmware from to the iPod and it will be as good as new!

Congratulations, you now have a (almost) unique iPod!!

Final Note, I would recommend having all your data files backed up before flashing firmware, but in general nothing goes wrong music side, and if it does, like displaying no tracks, just plug it into gtkpod, or other ipod management program and rebuild the music database :-)