diff options
author | Björn Stenberg <bjorn@haxx.se> | 2002-03-28 14:28:17 +0000 |
---|---|---|
committer | Björn Stenberg <bjorn@haxx.se> | 2002-03-28 14:28:17 +0000 |
commit | 68ee35c679b680cd7083e40a630ca065f14c7c75 (patch) | |
tree | 2b873b33b8a613a62379947d1a7cae0a91867c34 /www/tools.t | |
parent | 5c983fc7c56b723af4b8abe84862ec6dbad72292 (diff) |
Minor updates
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@54 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'www/tools.t')
-rw-r--r-- | www/tools.t | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/www/tools.t b/www/tools.t index e8d5f33054..c1c72b6044 100644 --- a/www/tools.t +++ b/www/tools.t @@ -3,6 +3,23 @@ <h2>Descrambler / Scrambler</h2> +<p>The archos.mod file is scrambled, but luckily not using encryption. + +<p>Each data byte is inverted and ROLed 1 bit. +The data is then spread over four memory segments. The two least significant bits of the address is used as segment number and the rest as offset in the segment. So, basically: + +<ul> +<li>segment number = address % 4 +<li>segment offset = address / 4 +<li>segment length = imgsize / 4 +</ul> + +<p>A 6-byte header is added to the beginning of the scrambled image: +<ul> +<li>32 bit length (big-endian) +<li>16 bit checksum +</ul> + <p>I've written a small utility to descramble the firmware files: <ul> <li><a href="descramble.c">descramble.c</a> - 1835 bytes - The source code (pure ANSI C, should work everywhere). GPL licensed. |