zenutils is a collection of utilities for working with firmwares of the Creative Zen range.

The utilities are split into 3 categories:
1) update_*
   Operates on the Creative firmware updater executable.
2) firmware_*
   Operates on the Creative firmware archive.
3) zen_crypt
   Operates on the parts of the firmware archive which requires cryptography.


General usage:
--------------
A typical use scenario would be: download the firmware updater and run
 update_extract on it to obtain the firmware archive which it contains.
Run firmware_extract on the firmware archive to obtain the files
 which the firmware archive contains and a make file that can later be used
 to create a new firmware archive. Edit* the extracted files of
 interest and optionally the associated make file. Create a new firmware
 archive by running firmware_make. If a NULL entry is present in the firmware
 then it's signature has to be updated running zen_crypt. If on windows, you
 can use update_patch to write your newly created firmware archive to the
 updater executable which you originally extracted it from. The new updater
 will update your player with the modifications you've made.

* If you're creating or editing executable code, such as the CENC or ŠTL entries,
you'll need to use zen_crypt to decrypt and/or encrypt them.
In addition, executable code on some players that use the ŠTL entries also needs
 to be signed using zen_crypt, prior to encrypting them.
Encrypting FBOOT and FRESC is not supported, as these contain the executable 
 code that makes up the critical Rescue Mode software, contained in flash.
As opposed to CENC and ŠTL which ultimately ends up being stored in the players
 filesystem as a file named Jukebox2.jrm.


Important:
----------
The only entries required in a firmware archive is CINF and if present, NULL.
Including either FBOOT, FRESC or EXT0 in your firmware archive is not advised,
 the first two are required for the Rescue Mode software operation and EXT0 is
 unknown, but given that it's contents is sent to an internal device named mcu0,
 the consequences of failure could be fatal to your player.


Supported players:
------------------
zen_crypt supports signing, verification, decryption and encryption on the
 following Creative Zen players:
  Vision:M (default if no player is specified)
  Vision W
  Micro
  MicroPhoto
  Sleek
  SleekPhoto
  Touch
  Xtra

The other utilities are not player specific and may work on players not listed.
Although the Vision:M is the only player I've fully tested.


Building the sources:
---------------------
The source code uses the CMake (www.cmake.org) build system.
Once you've installed CMake, you'll need to run it to produce make files for
 your system. I would recommend producing the make files within in the 'build'
 directory of this package. Which can be done by typing:
  zenutils\build\>cmake -g "Visual Studio 8 2005" ..
  (for msvc8 on windows)
 or:
  ~zenutils/build/$ cmake -g "Unix Makefiles" ..
  (for various 'nixes)
The windows example will produce a solution file for msvc8.
The 'nix example will produce a makefile which can be built using make.

The executables will be placed within the 'bin' directory, once built.

