Skip to content
forked from NiLuJe/KindleTool

Tool for creating/extracting Kindle updates and more

Notifications You must be signed in to change notification settings

K0K0/KindleTool

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KindleTool

usage:

  • KindleTool md [ <input> ] [ <output> ]

Obfuscates data using Amazon's update algorithm.
If no input is provided, input from stdin
If no output is provided, output to stdout

  • KindleTool dm [ <input> ] [ <output> ]

Deobfuscates data using Amazon's update algorithm.
If no input is provided, input from stdin
If no output is provided, output to stdout

  • KindleTool convert [options] <input>...

Converts a Kindle update package to a gzipped TAR file, and delete input

Options:
	-c, --stdout                Write to standard output, keeping original files unchanged
	-i, --info                  Just print the package information, no conversion done
	-s, --sig                   OTA V2 updates only. Extract the package signature.
	-k, --keep                  Don't delete the input package.
	-u, --unsigned              Assume input is an unsigned package
  • KindleTool extract <input> <output>

Extracts a Kindle update package to a directory

  • KindleTool create <type> <devices> [options] <dir|file>... [ <output> ]

Creates a Kindle update package
You should be able to throw a mix of files & directories as input without trouble.
Just keep in mind that if you feed it absolute paths, it will archive absolute paths, which usually isn't what you want!
If input is a single tarball (".tgz" or ".tar.gz") file, we assume it is properly packaged (bundlefile & sigfile), and will only convert it to an update.
Output should be a file with the extension ".bin", if it is not provided, or if it's a single dash, output to stdout.
In case of OTA updates, all files with the extension ".ffs" or ".sh" will be treated as update scripts.

Type:
	ota                         OTA V1 update package. Works on Kindle 3 and older.
	ota2                        OTA V2 signed update package. Works on Kindle 4 and newer.
	recovery                    Recovery package for restoring partitions.

Devices:
	OTA V1 packages only support one device. OTA V2 packages can support multiple devices.

	-d, --device k1             Kindle 1
	-d, --device k2             Kindle 2 US
	-d, --device k2i            Kindle 2 International
	-d, --device dx             Kindle DX US
	-d, --device dxi            Kindle DX International
	-d, --device dxg            Kindle DX Graphite
	-d, --device k3w            Kindle 3 Wifi
	-d, --device k3g            Kindle 3 Wifi+3G
	-d, --device k3gb           Kindle 3 Wifi+3G Europe
	-d, --device k4             Kindle 4 (No Touch)
	-d, --device k5w            Kindle 5 (Kindle Touch) Wifi
	-d, --device k5g            Kindle 5 (Kindle Touch) Wifi+3G
	-d, --device k5gb           Kindle 5 (Kindle Touch) Wifi+3G Europe (Spain, at least)
	-d, --device k5u            Kindle 5 (Kindle Touch) Unknown (4th device code found in Touch official updates)

Options:
	All the following options are optional and advanced.
	-k, --key <file>            PEM file containing RSA private key to sign update. Default is popular jailbreak key.
	-b, --bundle <type>         Manually specify package magic number. Overrides "type". Valid bundle versions:
                                  FB01, FB02 = recovery; FC02, FD03 = ota; FC04, FD04, FL01 = ota2
	-s, --srcrev <ulong|uint>   OTA updates only. Source revision. OTA V1 uses uint, OTA V2 uses ulong.
                                  Lowest version of device that package supports. Default is 0.
	-t, --tgtrev <ulong|uint>   OTA updates only. Target revision. OTA V1 uses uint, OTA V2 uses ulong.
                                  Highest version of device that package supports. Default is ulong/uint max value.
	-1, --magic1 <uint>         Recovery updates only. Magic number 1. Default is 0.
	-2, --magic2 <uint>         Recovery updates only. Magic number 2. Default is 0.
	-m, --minor <uint>          Recovery updates only. Minor number. Default is 0.
	-c, --cert <ushort>         OTA V2 updates only. The number of the certificate to use (found in /etc/uks on device). Default is 0.
                                  0 = pubdevkey01.pem, 1 = pubprodkey01.pem, 2 = pubprodkey02.pem
	-o, --opt <uchar>           OTA V1 updates only. One byte optional data expressed as a number. Default is 0.
	-r, --crit <uchar>          OTA V2 updates only. One byte optional data expressed as a number. Default is 0.
	-x, --meta <str>            OTA V2 updates only. An optional string to add. Multiple "--meta" options supported.
                                  Format of metastring must be: key=value
	-a, --archive               Keep the intermediate archive.
	-u, --unsigned              Build an unsigned package.
  • KindleTool info <serialno>

Get the default root password
Unless you changed your password manually, the first password shown will be the right one.
(The Kindle defaults to DES hashed passwords, which are truncated to 8 characters.)

  • KindleTool version

Show some info about this KindleTool build

  • KindleTool help

Show this help screen

notices:

  1. Kindle 4.0+ has a known bug that prevents some updates with meta-strings to run.
  2. Currently, even though OTA V2 supports updates that run on multiple devices, it is not possible to create an update package that will run on both the Kindle 4 (No Touch) and Kindle 5 (Kindle Touch).

// kate: indent-mode cstyle; indent-width 4; replace-tabs on; remove-trailing-space off; replace-trailing-space-save off;

About

Tool for creating/extracting Kindle updates and more

Resources

Stars

Watchers

Forks

Packages

No packages published