Rockbox

Tasklist

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

Attached to Project: Rockbox
Opened by Dave Chapman (linuxstb) - Wednesday, 16 September 2009, 17:37 GMT
Last edited by Dave Chapman (linuxstb) - Tuesday, 13 October 2009, 08:59 GMT
Task Type Patches
Category Rbutil
Status Closed
Assigned To Dave Chapman (linuxstb)
Operating System iPod Nano
Severity Low
Priority Normal
Reported Version Version 3.3
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

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:

http://l4n.clustur.com/index.php/iLoader

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:

http://l4n.clustur.com/index.php/IBugger
This task depends upon

Closed by  Dave Chapman (linuxstb)
Tuesday, 13 October 2009, 08:59 GMT
Reason for closing:  Accepted
Additional comments about closing:  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.
Comment by Dave Chapman (linuxstb) - Saturday, 10 October 2009, 11:46 GMT
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
Comment by Dave Chapman (linuxstb) - Sunday, 11 October 2009, 13:10 GMT
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 - http://linuxstb.cream.org/rockbox/ipodpatcher-nano2g.zip

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).

Loading...