forked from len0rd/rockbox
Fork of rockbox tailored for ipod classic
Several people asked me recently how to decrypt atj2127 firmware. Someone posted on github (https://github.com/nfd/atj2127decrypt) a decrypt utility clearly reverse engineered from some unknown source. The code is an absolute horror but I concluded that ATJ changed very little between ATJ213x and ATJ2127 so I added support for the ATJ2127, credit to this github code that I stole and rewrite (code was under MIT licence). At the same time do some small code cleanups. Note that there is not 100% sure way that I know to distinguish between the two firmware types, so the code tries to do an educated guess to detect ATJ2127. If this does not work, use --atj21217 option. Also note that contrary to the github tool that decrypts and unpack in one go, this tool only does one step at once. So first decrypt: HEX -> AFI, then unpack AFI -> files. I also added for a different version of AFI. Based on AFI files I have, there are, I think, two versions: the "old" ones (pre-ATJ213x) and "new" ones. The tool only supported the new one but for some reason the ATJ2127 uses the old ones without a mostly empty header. Strangely, even this mostly empty header does not seem to follow the old layout as reverse engineered by the s1mp3 project (https://sourceforge.net/p/s1mp3/code/HEAD/tree/trunk/s1fwx/heads.h), so in fact there might be three versions. In any case, only the header is different, the rest of the file is identical so at the moment I just don't print any header info for "old" files. Change-Id: I1de61e64f433f6cacd239cd3c1ba469b9bb12442 |
||
|---|---|---|
| android | ||
| apps | ||
| backdrops | ||
| bootloader | ||
| debian | ||
| docs | ||
| firmware | ||
| flash | ||
| fonts | ||
| gdb | ||
| icons | ||
| lib | ||
| manual | ||
| packaging | ||
| rbutil | ||
| tools | ||
| uisimulator | ||
| utils | ||
| wps | ||
| .gitattributes | ||
| .gitignore | ||
__________ __ ___.
Open \______ \ ____ ____ | | _\_ |__ _______ ___
Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
\/ \/ \/ \/ \/
Build Your Own Rockbox
1. Clone 'rockbox' from git (or extract a downloaded archive).
$ git clone git://git.rockbox.org/rockbox
or
$ tar xjf rockbox.tar.bz2
2. Create a build directory, preferably in the same directory as the firmware/
and apps/ directories. This is where all generated files will be written.
$ cd rockbox
$ mkdir build
$ cd build
3. Make sure you have sh/arm/m68k-elf-gcc and siblings in the PATH. Make sure
that you have 'perl' in your PATH too. Your gcc cross compiler needs to be
a particular version depending on what player you are compiling for. These
can be acquired with the rockboxdev.sh script in the /tools/ folder of the
source, or will have been included if you've installed one of the
toolchains or development environments provided at http://www.rockbox.org/
$ which sh-elf-gcc
$ which perl
4. In your build directory, run the 'tools/configure' script and enter what
target you want to build for and if you want a debug version or not (and a
few more questions). It'll prompt you. The debug version is for making a
gdb version out of it. It is only useful if you run gdb towards your target
Archos.
$ ../tools/configure
5. *ploink*. Now you have got a Makefile generated for you.
6. Run 'make' and soon the necessary pieces from the firmware and the apps
directories have been compiled, linked and scrambled for you.
$ make
$ make zip
7. unzip the rockbox.zip on your music player, reboot it and
*smile*.
If you want to build for more than one target, just create several build
directories and create a setup for each target:
$ mkdir build-fmrecorder
$ cd build-fmrecorder
$ ../tools/configure
$ mkdir build-player
$ cd build-player
$ ../tools/configure
Questions anyone? Ask on the mailing list. We'll be happy to help you!