Nicolas Pennequin | ca5bb76 | 2008-07-11 16:51:25 +0000 | [diff] [blame] | 1 | zenutils is a collection of utilities for working with firmwares of the Creative Zen range. |
| 2 | |
| 3 | The utilities are split into 3 categories: |
| 4 | 1) update_* |
| 5 | Operates on the Creative firmware updater executable. |
| 6 | 2) firmware_* |
| 7 | Operates on the Creative firmware archive. |
| 8 | 3) zen_crypt |
| 9 | Operates on the parts of the firmware archive which requires cryptography. |
| 10 | |
| 11 | |
| 12 | General usage: |
| 13 | -------------- |
| 14 | A typical use scenario would be: download the firmware updater and run |
| 15 | update_extract on it to obtain the firmware archive which it contains. |
| 16 | Run firmware_extract on the firmware archive to obtain the files |
| 17 | which the firmware archive contains and a make file that can later be used |
| 18 | to create a new firmware archive. Edit* the extracted files of |
| 19 | interest and optionally the associated make file. Create a new firmware |
| 20 | archive by running firmware_make. If a NULL entry is present in the firmware |
| 21 | then it's signature has to be updated running zen_crypt. If on windows, you |
| 22 | can use update_patch to write your newly created firmware archive to the |
| 23 | updater executable which you originally extracted it from. The new updater |
| 24 | will update your player with the modifications you've made. |
| 25 | |
| 26 | * If you're creating or editing executable code, such as the CENC or ©TL entries, |
| 27 | you'll need to use zen_crypt to decrypt and/or encrypt them. |
| 28 | In addition, executable code on some players that use the ©TL entries also needs |
| 29 | to be signed using zen_crypt, prior to encrypting them. |
| 30 | Encrypting FBOOT and FRESC is not supported, as these contain the executable |
| 31 | code that makes up the critical Rescue Mode software, contained in flash. |
| 32 | As opposed to CENC and ©TL which ultimately ends up being stored in the players |
| 33 | filesystem as a file named Jukebox2.jrm. |
| 34 | |
| 35 | |
| 36 | Important: |
| 37 | ---------- |
| 38 | The only entries required in a firmware archive is CINF and if present, NULL. |
| 39 | Including either FBOOT, FRESC or EXT0 in your firmware archive is not advised, |
| 40 | the first two are required for the Rescue Mode software operation and EXT0 is |
| 41 | unknown, but given that it's contents is sent to an internal device named mcu0, |
| 42 | the consequences of failure could be fatal to your player. |
| 43 | |
| 44 | |
| 45 | Supported players: |
| 46 | ------------------ |
| 47 | zen_crypt supports signing, verification, decryption and encryption on the |
| 48 | following Creative Zen players: |
| 49 | Vision:M (default if no player is specified) |
| 50 | Vision W |
| 51 | Micro |
| 52 | MicroPhoto |
| 53 | Sleek |
| 54 | SleekPhoto |
| 55 | Touch |
| 56 | Xtra |
| 57 | |
| 58 | The other utilities are not player specific and may work on players not listed. |
| 59 | Although the Vision:M is the only player I've fully tested. |
| 60 | |
| 61 | |
| 62 | Building the sources: |
| 63 | --------------------- |
| 64 | The source code uses the CMake (www.cmake.org) build system. |
| 65 | Once you've installed CMake, you'll need to run it to produce make files for |
| 66 | your system. I would recommend producing the make files within in the 'build' |
| 67 | directory of this package. Which can be done by typing: |
| 68 | zenutils\build\>cmake -g "Visual Studio 8 2005" .. |
| 69 | (for msvc8 on windows) |
| 70 | or: |
| 71 | ~zenutils/build/$ cmake -g "Unix Makefiles" .. |
| 72 | (for various 'nixes) |
| 73 | The windows example will produce a solution file for msvc8. |
| 74 | The 'nix example will produce a makefile which can be built using make. |
| 75 | |
| 76 | The executables will be placed within the 'bin' directory, once built. |
| 77 | |