• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category Rbutil
  • Assigned To
  • Operating System iPod Nano
  • Severity Low
  • Priority Very Low
  • Reported Version Version 3.3
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by linuxstb - 2009-09-16
Last edited by linuxstb - 2009-10-13

FS#10609 - ipodpatcher support for the 2nd generation ipod Nano

This patch is the start of work on adding ipodpatcher support for the 2nd generation ipod Nano

There is currently no functional Rockbox bootloader for Nano 2G (NAND/FTL drivers are yet to be written), so this is being tested with “iloader” from the linux4nano project:

The intended installation method is that the “osos” image in the firmware partition (the main Apple firmware) is renamed to “osbk” and that the bootloader (iloader or, in the future, a Rockbox bootloader) is written to the firmware partition as a new “osos” image.

The “osbk” image will remain unchanged (and still encrypted), and dual-booting will involve the bootloader reading that osbk image into RAM and using the Nano’s hardware crypto unit to decrypt it. This functionality is already in iloader will need to be ported to the Rockbox bootloader.

This first patch just implements the “-wf” and related options (-wfb -rf -rfb) to ipodpatcher - this replaces “osos” with the file to be installed. The generic features like –read-partition, –write-partition, –list etc should all be working as well.

The next step is to implement the main “-a” (add bootloader) functionality which will rename osos and create a new osos with the file to be installed.

Note that any bootloader to be installed on the Nano 2G needs to be encrypted before being passed to ipodpatcher. This needs to be done on an actual ipod, but can then be installed on any ipod (the encryption is generic, and not specific to a device). “iBugger” can be used to perform this task:

Closed by  linuxstb
2009-10-13 08:59
Reason for closing:  Accepted
Additional comments about closing:   Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407

Committed with a few further changes as r23142.

ipodpatcher v4.0 is now released on the download servers, including v1.0 of the Nano2G bootloader.

The attached patch syncs the changes to r23068 and also changes the format of supported files for the Nano2G from “.ipod” to “.ipodx”

.ipod is the format for unencrypted firmware files - e.g. the “rockbox.ipod”. It consists of a 8-byte header containing a checksum and the string “nn2g” .ipodx is the format for encrypted firmware files. The header string contains “nn2x”, then a 2KB hash block, then the encrypted firmware. It is created from a “.ipod” file by the “crypt_firmware” plugin added to Rockbox SVN in r23068

Attached is the first fully-featured ipodpatcher for the 2nd gen Nano. All options should be working, but it needs more testing.

This is renaming the “OSOS " image to “OSBK” and installing the bootloader as a new OSOS image.

Currently the Rockbox bootloader doesn’t dual-boot, but iloader does.(and can read the OSBK image).

Binaries for Windows and Linux (x86), along with iloader in a suitable format (.ipodx) are here -

This includes the latest Rockbox bootloader embedded in the ipodpatcher binary - no extra files are needed to install it.

In order to use ipodpatcher, you need to restore your Nano’s firmware partition to its factory state before using it. Then just run it without any command-line options to install the Rockbox bootloader (select “i” at the prompt).

If you want to install iloader, do “ipodpatcher -a iloader.ipodx”

You can uninstall whichever bootloader is installed by running ipodpatcher and selecting “u” for uninstall (but you don’t need to uninstall before adding a new bootloader - ipodpatcher will just overwrite the existing one).


Available keyboard shortcuts


Task Details

Task Editing