Difference between revisions of "Kindle 2 Hacks"

From ivc wiki
Jump to navigationJump to search
 
(47 intermediate revisions by the same user not shown)
Line 2: Line 2:


Kindle 2 is based on a ARM6 processor and is running Linux with a Java-based front-end. Wireless connectivity is provided by a cellular network, including roaming for international use of the device.
Kindle 2 is based on a ARM6 processor and is running Linux with a Java-based front-end. Wireless connectivity is provided by a cellular network, including roaming for international use of the device.
== Kindle 2 international specifications ==
* Display: E-Ink Vizplex 6" imaging film, 600x800 pixel, 167 dpi, 16-level grey-scale
* Processor: Freescale [http://beta.ivancover.com/kindle2/Freescale_MX31_MX31L.zip i.MX31] Mario ARM1136JF-S 400 MHz, 128 MB DRAM, 8 MB Flash
* Storage: 2 GB internal memory, approx 1.4 GB usable for content
* Connectivity: AnyDATA [http://beta.ivancover.com/kindle2/dtp600w.pdf DPT-600W] HSPA mini PCI-E module, USB 2.0 interface, SIM-card holder
** UMTS 850/1900/2100 MHz, GSM/GPRS/EDGE 850/900/1800/1900 MHz
* Battery: 3.7V 1530 mAh Lithium-polymer battery, 31 grams
* Size and weight: 203.2x134.6x9.1 mm, 289.2 grams
* Designed by LAB126
* Shipping software version: 2.2 (375490138)


== Tricks ==
== Tricks ==
Line 44: Line 55:


Note that for the Kindle2 international there are some packages that are self-sign and installs without any further change, and there are packages that require the [http://beta.ivancover.com/kindle2/update_freekindle-k2i.zip freekindle-k2i] pre-installed. Freekindle will install a new RSA key (our) to the Kindle, the update will fail with '''Error 004''' but this is normal.
Note that for the Kindle2 international there are some packages that are self-sign and installs without any further change, and there are packages that require the [http://beta.ivancover.com/kindle2/update_freekindle-k2i.zip freekindle-k2i] pre-installed. Freekindle will install a new RSA key (our) to the Kindle, the update will fail with '''Error 004''' but this is normal.
In most cases, it's possible to re-compile old packages using a updated Packager if a new Kindle firmware update is released. The RSA key has to be extracted first from the new update.


Python is required to run Packager, use OSX, Linux, cygwin, or ActivePython.
Python is required to run Packager, use OSX, Linux, cygwin, or ActivePython.


* '''Extract package'''<br />Extract the package for the Kindle 2 International<br />''./packager-0.6/kindle_update_tool.py e update_ufh_droid_install-k2i.bin''<br />Extract the content<br />''tar zxvf update_ufh_droid_install-k2i.bin.tgz''<br />Remove all the files you don't need anymore<br />''rm *.sig *.dat *.tgz''
* '''Extract package'''<br />Extract the package for the Kindle 2 International<br />''./kindle_update_tool.py e update_ufh_droid_install-k2i.bin''<br />Extract the content<br />''tar zxvf update_ufh_droid_install-k2i.bin.tgz''<br />Remove all the files you don't need anymore<br />''rm *.sig *.dat *.tgz''


* '''Create package''' - self-signed<br />For Kindle 2:<br />''./packager-0.6/kindle_update_tool.py m --k2 --sign --ex ufh_droid_install-k2 install-droid.sh droid.ttf''<br />For Kindle 2 international:<br />''./packager-0.6/kindle_update_tool.py m --k2i --sign --ex ufh_droid_install-k2i install-droid.sh droid.ttf''<br />For Kindle DX:<br />''./packager-0.6/kindle_update_tool.py m --dx --sign --ex ufh_droid_install-dx install-droid.sh droid.ttf''
* '''Create package''' - self-signed<br />For Kindle 2:<br />''./kindle_update_tool.py m --k2 --sign --ex ufh_droid_install-k2 install-droid.sh droid.ttf''<br />For Kindle 2 international:<br />''./kindle_update_tool.py m --k2i --sign --ex ufh_droid_install-k2i install-droid.sh droid.ttf''<br />For Kindle DX:<br />''./kindle_update_tool.py m --dx --sign --ex ufh_droid_install-dx install-droid.sh droid.ttf''


'''Downloads:'''
'''Downloads:'''
Line 105: Line 118:
'''Downloads:'''
'''Downloads:'''
* [http://beta.ivancover.com/kindle2/Savory-0.07.tar.gz Savory v0.07] - K2i supported
* [http://beta.ivancover.com/kindle2/Savory-0.07.tar.gz Savory v0.07] - K2i supported
* [http://beta.ivancover.com/kindle2/Savory-0.08.tar.gz Savory v0.08] - uninstaller only
* [http://beta.ivancover.com/kindle2/Savory-0.08.tar.gz Savory v0.08] - Installer and Uninstaller only


'''References:'''
'''References:'''
Line 113: Line 126:


==== Unicode Font Hack ====
==== Unicode Font Hack ====
A regular Kindle will only display Latin characters, meaning Cyrillics and Asian Glyphs will not render properly. Also, the normal font can be a bit narrow and hard to read on the Kindle display.
A regular Kindle will only display Latin characters, meaning Cyrillics and Asian Glyphs will not render properly. Also, the normal font can be a bit narrow and hard to read on the Kindle display. The font replacements below will target some of these issues.
 
The default fonts on the Kindle:
* '''Caecilia LT 65/75/66/76''' - Serif, used for the main reading font
* '''Helvetica LT 65/75/66/76''' - San-Serif, used for menus and top bar
* '''KindleBlackbox''' - Mono-spaced, same use as San-Serif above


The difference between Sans-Serif and Serif respectively, Wikipedia images:
The difference between Sans-Serif and Serif respectively, Wikipedia images:
Line 119: Line 137:
http://upload.wikimedia.org/wikipedia/commons/thumb/a/a2/Serif_and_sans-serif_02.svg/209px-Serif_and_sans-serif_02.svg.png
http://upload.wikimedia.org/wikipedia/commons/thumb/a/a2/Serif_and_sans-serif_02.svg/209px-Serif_and_sans-serif_02.svg.png
http://upload.wikimedia.org/wikipedia/commons/thumb/9/99/Serif_and_sans-serif_01.svg/209px-Serif_and_sans-serif_01.svg.png
http://upload.wikimedia.org/wikipedia/commons/thumb/9/99/Serif_and_sans-serif_01.svg/209px-Serif_and_sans-serif_01.svg.png
Some of the font packs below replace Serif with San-Serif fonts, while other keep the typeface (San-Serif, Serif, Mono) as is but change the font style (Droid, Helvetica, Georgia).


'''Downloads:'''
'''Downloads:'''
* [http://beta.ivancover.com/kindle2/UFH_Droid_Sans_2.3.zip Droid Sans Full] - Sans Regular, Bold, Italic, Bold-Italic, for v2.3, self-signed [http://www.mobileread.com/forums/showpost.php?p=669391&postcount=57 thread post]
For firmware v2.3:
* [http://beta.ivancover.com/kindle2/UFH_Droid_Fallback_2.3.zip Droid Fallback Fonts] - Only Sans-Serif regular, but Cyrillic, Chinese, and Japanese are supported, for v2.3, self-signed [http://blogkindle.com/2009/11/unicode-fonts-hack-for-kindle-2-3 kindleblog]
* [http://beta.ivancover.com/kindle2/UFH_Georgia_2.3.zip Georgia] - Serif font, replaces Serif and uses Calibri for Sans-Serif and Mono - [http://www.mobileread.com/forums/showpost.php?p=668959&postcount=41 thread post w/images]
* [http://beta.ivancover.com/kindle2/UFH_Georgia2_2.3.zip Georgia2] - Serif font, bit narrower, darker and larger, and bold doesn't pop as much, replaces Serif and uses FreeSans for Sans-Serif and Mono - [http://www.mobileread.com/forums/showpost.php?p=669457&postcount=61 thread post w/images]
* [http://beta.ivancover.com/kindle2/UFH_Helvetica2_2.3.zip Helvetica2] - Sans-Serif font, bit larger, replaces Serif and uses FreeSans for Sans-Serif and Mono  -[http://www.mobileread.com/forums/showpost.php?p=669457&postcount=61 thread post w/images]
* [http://beta.ivancover.com/kindle2/UFH_HelveticaBL_2.3.zip Helvetica Bold&Large] - Sans-Serif font, large and bold, replaces Serif with bold&large and uses regular Helvetica for Sans-Serif, Kindle default for Mono - [http://www.mobileread.com/forums/showthread.php?t=63582 thread post]
* [http://beta.ivancover.com/kindle2/UFH_GNUFreeFont_2.3.zip GNU FreeFont] - Sans-Serif, Serif and Mono font, Latin and Cyrillic support  - [http://blogkindle.com/2009/11/unicode-fonts-hack-for-kindle-2-3 kindleblog w/images]
* [http://beta.ivancover.com/kindle2/UFH_GNUFreeFont_Sans-Serif_replace_Serif_2.3.zip GNU FreeFont San-Serif] - Sans-Serif and Mono font, replaces Serif with Sans-Serif, same for Sans-Serif, and FreeFont Mono, Latin and Cyrillic support - [http://blogkindle.com/2009/11/unicode-fonts-hack-for-kindle-2-3 kindleblog w/images]
* [http://beta.ivancover.com/kindle2/UFH_Droid_No_Asian_All_Styles_2.3.zip Droid] - Sans-Serif and Serif font, Latin and Cyrillic support, Regular, Bold, Italic, Bold-Italic styles, no Asian support - [http://blogkindle.com/2009/11/unicode-fonts-hack-for-kindle-2-3 kindleblog w/images]
* [http://beta.ivancover.com/kindle2/UFH_Droid_No_Asian_All_Styles_Sans-Serif_replace_Serif_2.3.zip Droid San-Serif] - Replaces Serif with Droid Sans-Serif, Latin and Cyrillic support, all styles, no Asian support - [http://blogkindle.com/2009/11/unicode-fonts-hack-for-kindle-2-3 kindleblog w/images]
* [http://beta.ivancover.com/kindle2/UFH_Droid_Fallback_Cyrillic_Chinese_Japanese_San-Serif_Only_2.3.zip Droid Asian] - Fallback font for Cyrillic, Chinese, and Japanese support, Latin text will have Droid Sans-Serif Regular style only - [http://blogkindle.com/2009/11/unicode-fonts-hack-for-kindle-2-3 kindleblog w/images]
* Universal uninstaller: [http://beta.ivancover.com/kindle2/UFH_Universal_Uninstaller_2.3.zip UFC Universal Uninstaller] - Restores the normal Kindle fonts, no need to use the font package uninstaller
** Additional [https://sites.google.com/a/etccreations.com/kdesignworks/kindlev23fonts list of even more fonts]
** [https://sites.google.com/a/etccreations.com/kdesignworks/Home/font-install-files/AllFont.pdf PDF showing some of the different fonts]


'''References:'''
'''References:'''
* [http://blogkindle.com/unicode-fonts-hack/ KindleBlog Unicode fonts hack]
* [http://blogkindle.com/unicode-fonts-hack/ KindleBlog Unicode fonts hack]
* [https://sites.google.com/a/etccreations.com/kdesignworks/Home K Design Works - Kindle Fonts]
* [https://sites.google.com/a/etccreations.com/kdesignworks/Home K Design Works - Kindle Fonts] - ted-san
* [http://www.mobileread.com/forums/showthread.php?t=63582 Font hacks for the Kindle 2, Kindle International and Kindle DX]
* [http://www.mobileread.com/forums/showthread.php?t=45660&page=2#post446652 Alternate Kindle 2 Font Hack]


==== Screensaver Hack ====
==== Screensaver Hack ====
Line 142: Line 175:
* [http://www.mobileread.com/forums/showthread.php?p=494354#post494354 Kindle DX Screen Saver Hack v0.1]
* [http://www.mobileread.com/forums/showthread.php?p=494354#post494354 Kindle DX Screen Saver Hack v0.1]
* [http://wiki.mobileread.com/wiki/Kindle_2_Screen_Saver_Hack Kindle 2 Screen Saver Hack Wiki]
* [http://wiki.mobileread.com/wiki/Kindle_2_Screen_Saver_Hack Kindle 2 Screen Saver Hack Wiki]
==== Change Screensaver Timeout ====
By default the system will be put into sleep mode after 10 minutes of inactivity. The screensaver will then be activated and the wireless disabled.
To change the timeout value, edit the '''/etc/powerd.conf''' file and change the '''t1_timeout:''' value. To access the file, use either USBNetwork or install the package below.
'''Downloads:'''
* [http://beta.ivancover.com/kindle2/screensaver-timeout-0.1.tar.gz Screensaver Timeout v0.1] - for 2.2, 2.2.1
* [http://beta.ivancover.com/kindle2/screensaver-timeout23-0.2.tar.gz Screensaver Timeout v0.2] - for 2.3, includes uninstaller (Compiled by me, untested)
'''References:'''
* [http://www.mobileread.com/forums/showthread.php?t=48827&page=7#post532339 Any way to disable screensaver]
==== JTAG console ====
A JTAG serial console is can be used to directly send commands to- and read outs from the processor (control and debug). Helpful for understanding and experimentation.
'''References:'''
* [http://igorsk.blogspot.com/2007/12/hacking-kindle-part-1-getting-console.html Hacking the Kindle part 1: getting the console]
* [http://www.mobileread.mobi/forums/showthread.php?t=49942 Kindle DX serial console]


== Firmwares ==
== Firmwares ==
Line 150: Line 202:


'''References:'''
'''References:'''
* http://www.amazon.com/gp/help/customer/display.html?nodeId=200226050 Kindle1 1.2 Instructions]
* [http://www.amazon.com/gp/help/customer/display.html?nodeId=200226050 Kindle1 1.2 Instructions]
* http://www.amazon.com/gp/help/customer/display.html?nodeId=200324680 Kindle2 2.3 Instructions]
* [http://www.amazon.com/gp/help/customer/display.html?nodeId=200324680 Kindle2 2.3 Instructions]
 
== References ==
* [https://sites.google.com/a/etccreations.com/kdesignworks/Home/keyboard-shortcuts Keyboard shortcuts]
* [http://www.geektonic.com/2009/03/kindletips-ultimate-kindle-2-shortcuts.html KindleTips - Ultimate Kindle 2 Shortcuts and Tricks]
* [https://www.lavalite.de/2009/11/22/pictures-of-an-open-kindle-2-international/ Internal pictures of an open Kindle 2 international]
* [http://www.ebookreadersreview.co.uk/category/brands/amazon-kindle/ Amazon Kindle 2 International Version UK Review]
* [http://www.avenard.org/kindle2/ Avenard file index]

Latest revision as of 16:30, 26 December 2009

The Kindle 2 was released in early 2009 and is one of many e-ink based readers. The e-ink technology is currently only capable of displaying grey-scale representation of media.

Kindle 2 is based on a ARM6 processor and is running Linux with a Java-based front-end. Wireless connectivity is provided by a cellular network, including roaming for international use of the device.

Kindle 2 international specifications

  • Display: E-Ink Vizplex 6" imaging film, 600x800 pixel, 167 dpi, 16-level grey-scale
  • Processor: Freescale i.MX31 Mario ARM1136JF-S 400 MHz, 128 MB DRAM, 8 MB Flash
  • Storage: 2 GB internal memory, approx 1.4 GB usable for content
  • Connectivity: AnyDATA DPT-600W HSPA mini PCI-E module, USB 2.0 interface, SIM-card holder
    • UMTS 850/1900/2100 MHz, GSM/GPRS/EDGE 850/900/1800/1900 MHz
  • Battery: 3.7V 1530 mAh Lithium-polymer battery, 31 grams
  • Size and weight: 203.2x134.6x9.1 mm, 289.2 grams
  • Designed by LAB126
  • Shipping software version: 2.2 (375490138)

Tricks

Recovery mode

To enable the recovery mode, reboot and hold the Home-botton when the screen is flashing from black to white.

Connect via USB to a computer and manage the files on the device. Press R to reboot.

Reference:

Log dump

When a custom package is installed (see below) it has to be removed else a firmware update will exit with an error. Use the commands below to create a log file on the USB-drive with information about the error.

Press HOME and any keyboard key to bring up the search field, enter the following:

;debugOn 
;dumpMessages

Connect via USB to a computer and check the log file on the Kindle drive.

An example:

ota_install: C def:patch:patchinfo="/opt/amazon/ebook/config/netfront.ini":checksum failure

References:

Force reboot

Sometimes it's not possible to use the menu to reboot the Kindle. Hold the slider for 15 seconds to force a reboot of the device.

Hacks

Applying Hacks

The modifications found below is installed by utilizing the Kindle update process and signing the packages with the correct certificate.

Download a hack, connect the Kindle to a computer, and extract the Update_kindle2_XXXX.bin from the package. Notice the format of the filename, Update_kindle2 is an indicator that this is a Kindle2 update. Also note that the Kindle2 programmed to look in the root of the USB-drive for any file starting with this suffix when the Update my kindle function is issued. If found during boot-up, the content of the update file will be installed/executed.

A note about official firmware updates, firmware updates perform a checksum on vital system files and if one check fails the update will halt. Therefore an uninstall package is usually provided together with the main package.

Creating Packages

Python application to create and sign Kindle firmware update packages.

Note that for the Kindle2 international there are some packages that are self-sign and installs without any further change, and there are packages that require the freekindle-k2i pre-installed. Freekindle will install a new RSA key (our) to the Kindle, the update will fail with Error 004 but this is normal.

In most cases, it's possible to re-compile old packages using a updated Packager if a new Kindle firmware update is released. The RSA key has to be extracted first from the new update.

Python is required to run Packager, use OSX, Linux, cygwin, or ActivePython.

  • Extract package
    Extract the package for the Kindle 2 International
    ./kindle_update_tool.py e update_ufh_droid_install-k2i.bin
    Extract the content
    tar zxvf update_ufh_droid_install-k2i.bin.tgz
    Remove all the files you don't need anymore
    rm *.sig *.dat *.tgz
  • Create package - self-signed
    For Kindle 2:
    ./kindle_update_tool.py m --k2 --sign --ex ufh_droid_install-k2 install-droid.sh droid.ttf
    For Kindle 2 international:
    ./kindle_update_tool.py m --k2i --sign --ex ufh_droid_install-k2i install-droid.sh droid.ttf
    For Kindle DX:
    ./kindle_update_tool.py m --dx --sign --ex ufh_droid_install-dx install-droid.sh droid.ttf

Downloads:

References:

List

Kindle exec.sh recovery

This install a hook that will execute a exec.sh script located in /documents/system/ in case the GUI front-end is failing to spawn. This is a great way to recover from a bad install or experimentation. USBNetwork could also be used in this case.

Downloads:

References:

USB Network

USBNetwork makes it possible to send data traffic over USB to a computer and further out to the Internet, and also allows access to the Kindle Store if the Kindle is pre-registered via the cellular network. Remote access via telnet and ssh/scp is also included.

Works on Kindle 1, Kindle 2, Kindle 2 international, and Kindle DX.

Network details:

  • Computer: 192.168.2.1 (add the new IP or change the current in network settings)
  • Kindle: 192.168.2.2

Login details:

  • Telnet: User: framework - Password: <none>
  • SSH: User: root - Password: <blank>

Downloads:

References:

Savory Document Processor

This background daemon will automatically convert any epub, lit, odt, rtf, oebzip, fb2 and pdf file into mobi-format that the Kindle can display.

Put the documents in the /documents/ directory on the Kindle. When the conversion is done the original file will be moved to /documents/savory-archive/. Unplug the USB cable to let the daemon resume and identify the new files.

To install, put the savory-image-00x.ext3 file on the root of the Kindle drive in addition to the suitable update_Savory-0.0x-kx.bin file.

Downloads:

References:

Unicode Font Hack

A regular Kindle will only display Latin characters, meaning Cyrillics and Asian Glyphs will not render properly. Also, the normal font can be a bit narrow and hard to read on the Kindle display. The font replacements below will target some of these issues.

The default fonts on the Kindle:

  • Caecilia LT 65/75/66/76 - Serif, used for the main reading font
  • Helvetica LT 65/75/66/76 - San-Serif, used for menus and top bar
  • KindleBlackbox - Mono-spaced, same use as San-Serif above

The difference between Sans-Serif and Serif respectively, Wikipedia images:

209px-Serif_and_sans-serif_02.svg.png 209px-Serif_and_sans-serif_01.svg.png

Some of the font packs below replace Serif with San-Serif fonts, while other keep the typeface (San-Serif, Serif, Mono) as is but change the font style (Droid, Helvetica, Georgia).

Downloads: For firmware v2.3:

References:

Screensaver Hack

This changes the default image shown in sleep mode and makes it possible to display a custom PNG image of your choice.

Install the package and put the images into the new /system/screen_saver/ directory. The preferred image size is 600x800px for Kindle2/2i and 824x1200px for KindleDX.

Downloads:

References:

Change Screensaver Timeout

By default the system will be put into sleep mode after 10 minutes of inactivity. The screensaver will then be activated and the wireless disabled.

To change the timeout value, edit the /etc/powerd.conf file and change the t1_timeout: value. To access the file, use either USBNetwork or install the package below.

Downloads:

References:

JTAG console

A JTAG serial console is can be used to directly send commands to- and read outs from the processor (control and debug). Helpful for understanding and experimentation.

References:

Firmwares

Official firmwares:

References:

References