kindle-touch-jailbreakKindle 4/Touch Jailbreak

Information

What does the jailbreak do? All it does is open the door to unsigned modifications by installing a developer key into the device. It does not modify any existing files and it only writes one new file.
It does NOT do anything useful or noticeable other than this. You must find and install modifications that extend the device (the jailbreak only allows that to be possible.)

This jailbreak works on the Kindle 4 and Kindle Touch. If you have a Kindle 3, Kindle 2, or Kindle DX, check out my jailbreak for these older devices.

Thanks to ixtab for finding out this method of jailbreaking.

After installing the jailbreak, there is NO side effects at all (battery life, stability, etc). However, because you are no longer limited to Amazon’s sandbox, you could potently damage your device by installing modifications that are improperly coded or by incorrectly using the modifications. Just a warning.

Installation

This jailbreak is designed for usage on both the Kindle 4 and Kindle 5 (Touch) and packs in three different methods of jailbreaking into one package. Please follow the methods in order if one doesn’t work.

Method 1:

  1. Plug in the Kindle and copy “data.tar.gz” to the Kindle’s USB drive’s root
  2. Safely remove the USB cable and restart the Kindle (Menu -> Settings -> Menu -> Restart)
  3. After the Kindle restarts, you should see a new book titled “You are Jailbroken”, if you see this, the jailbreak has been successful. If you DON’T see this, continue.

Method 2:

  1. Restart the Kindle again (Menu -> Settings -> Menu -> Restart)
  2. After the Kindle restarts, you should see a new book titled “You are Jailbroken”, if you see this, the jailbreak has been successful. If you DON’T see this, continue.

Method 3:

  1. Plug in the Kindle and copy “data.tar.gz” to the Kindle’s USB drive’s root
  2. Create a blank text file named “ENABLE_DIAGS” and save it on the Kindle’s USB drive’s root
  3. Remove the USB cable and restart the Kindle (Menu -> Settings -> Menu -> Restart)
  4. Once the device restarts into diagnostics mode, select “D) Exit, Reboot or Disable Diags” (using the touchscreen or 5-way keypad)
  5. Select “R) Reboot System” and “Q) To continue”
  6. You should restart back into diagnostics mode, select “D) Exit, Reboot or Disable Diags”
  7. Select “R) Reboot System” and “Q) To continue”
  8. You should restart back into diagnostics mode, select “D) Exit, Reboot or Disable Diags”
  9. Select “D) Disable Diagnostics” and “Q) To continue”

If you wish to run a shell script after the jailbreak process, create a file named “runme.sh” on the root of the Kindle’s USB partition. Use this like a regular shell script. Make sure to remount root as read-write if you plan to modify the file system. It is safe to run the jailbreak multiple times.

Important Notices

  • Packages on the Kindle Touch cannot work on the Kindle 4 as is and vice versa!
  • Again, the jailbreak itself does NOTHING except open the door for other packages.
  • Do not expect the jailbreak to remove ads, I don’t know why so many people ask me that.
  • If you have a Kindle Touch, you should try some of my Kindle mods: SSH (see usbnetwork in downloads below), custom screensavers, and GUI launcher (including screen rotation).

Installing Packages

You should NOT copy any packages until AFTER the jailbreak is successful. To install a package that you obtained as a .bin file, copy it to the Kindle’s USB drive’s root. Then go to Menu -> Settings -> Menu -> Update Your Kindle to install.

Uninstallation

If you wish to uninstall the jailbreak, it is recommended that you first uninstall all packages first because you cannot run any other uninstallers after removing the jailbreak.

  1. Plug in the Kindle and copy the uninstaller .bin for your device to the Kindle’s USB drive’s root (update_jailbreak_X.Y_k4_uninstall.bin = Kindle 4, update_jailbreak_X.Y_k5_uninstall.bin = Kindle Touch)
  2. Safely remove the USB cable
  3. On the device, go to Menu -> Settings -> Menu -> Update Your Kindle

Development

Development for the Kindle is usually done in one of two ways.

Java Kindlets

Kindlet is the “official” way of writing Kindle applications. These are known as “Kindle Active Content” and are written in Java either using the official SDK or unofficially imported JARs.

More information on writing unofficial Kindlet

After creating your Kindlet, you must sign it with the jailbreak Kindlet key to run it on any Kindle that installed this jailbreak.

With the official SDK, to use the jailbreak Kindlet key:

  1. Open up Eclipse
  2. Open up “Workspace Preferences” in Eclipse
  3. Select the “Kindle Active Content” item
  4. Set the “Keystore Path:” to the “developer.keystore” file found in the “keys” directory of this package
  5. Set the “Keypass:” to “password” (without the quotes)

To manually sign your Kindlet JAR, use the following commands:

jarsigner -keystore /path/to/developer.keystore -storepass password JAR_FILE Kindlet
jarsigner -keystore /path/to/developer.keystore -storepass password JAR_FILE KindletInteractionSupport
jarsigner -keystore /path/to/developer.keystore -storepass password JAR_FILE KindletNetworkSupport

where /path/to/developer.keystore is the actual path to the “developer.keystore” file found in the “keys” directory of this package and JAR_FILE is the name of your Kindlet JAR.

Other Apps

Any other ARM Linux application (Linux ELFs, Shell Scripts, etc) can be installed to the device using a signed update package. This is more advanced, and the developer should take care of startup scripts, framebuffers, GUI, etc. All Kindles run the Linux 2.6 kernel and contains all standard GNU libraries.
To cross compile ARM Linux code, you must use a toolchain. Below are two examples of ARM toolchains that you could use:
http://www.scratchbox.org/ (There is evidence that Amazon uses this)
http://www.codesourcery.com/gnu_toolchains/sgpp/ (I personally use this)

After creating your native application, you can install it on any jailbroken device by creating an update package. It is recommended that you use a packager such as my Kindle Tool (see the project link for more information) to generate these packages. To make an installer package, create a shell script named anything (.sh) in a directory containing all the files in your update. This script will run as root on the Kindle when your update package is installed, so use it to add, remove, or modify files. The working directory for the script is the same directory that the script is in, so everything in the input directory passed to Kindle Tool will be in the update.
If you wish to manually sign update packages (no information is provided, check the Kindle Tool source if you’re curious), the RSA private key for signing jailbreak update packages is provided in the “keys” directory of this archive under “updater_key.pem”.

Also, here is the original Kindle Touch MP3 jailbreak for archival purposes.

Changes

  • 2012-01-28: Update for Kindle Touch 5.0.3 support and Kindle 4 support.
  • 2011-12-09: First release.

37 thoughts on “Kindle 4/Touch Jailbreak

  1. Hello, Yifan Lu, I really hope yu read this. I was really frustrated with my KT, until I read you could Jailbreak it. Now, I did downloaded the Lailbreak 1.0, copied to the “music” fil, disconnected the KT and when I want to play the mp3 it show that “No MP· Files Found”,so, could you please help me with this? I don’t think I am doing anythin wrong, but… I really want the Jailbreak for the future possibilities.

    Please send me an email before Amazon takes action.
    Thanks and go on with your great gifts you have.

    Igmar.

  2. so,im woundering would jail braking my kindle touch effect anything? its suppose to make everything free right? please explain……

  3. My kindle touch keeps resetting and bringing back ads and the jailbreak is reversed. Am I doing something wrong? I didn’t use USBnet, is that needed to prevent resetting?

  4. You can’t reverse the jailbreak without using the uninstaller. I do not support removing ads illegitimately, so you’re on your own there.

  5. Yifan Lu, is it possible to use the jailbreak to alter the software and to visit facebook or google while using 3g on the 3g model?

  6. I thought that the Kindle Touch 3G option was what stood in the way of hooking up to a local library here in Canada. I thought I would just use wifi since our library uses Overdrive. But Amazon made arrangements with US libraries to push library loans through Amazon in Kindle format so this won’t work after all. This device is suffocating.

  7. I have a KT. Does it hurt or disable anything about the Kindle? And is their anything I can actually do with it jailbroken?

  8. Mark, dude, did you read what Yifan wrote?
    * After installing the jailbreak, there is NO side effects at all (battery life, stability, etc). However, because you are no longer limited to Amazon’s sandbox, you could potently damage your device by installing modifications that are improperly coded or by incorrectly using the modifications. Just a warning.

  9. Hi. Nathan’s idea is really good.
    I’d like to be able to watch movies on the Kindle.
    And can you unlock full colour mode?

  10. theres no point in jailbreaking the kindle touch…….if you want full color and video and whatnot go get a fire js’ :)

  11. Hi, just got my KT, software version 5.1.0. Neither of the 3 methods is working!? :-( (

    BTW: Germany :-)

  12. Thanks a lot, Yifan Lu, both for the jailbreak and for your clear explanation about how to use it.
    And… I appreciated a lot the Copyleft at the bottom of this page too – may I suggest that you also have All Wrongs reVERSed? ;-)

  13. I tried to follows Method 1. I copied the “data.tar.gz” to the Kindle’s USB drive’s root and thn reboot it. But unfortunately it stuck on the main screen (boy sitting under a tree).

    Any suggestion, what went wrong ? how to recover it

  14. I tried to follows Method 1. I copied the data.tar.gz to the Kindle’s root and thn reboot it. But unfortunately it stuck on the main screen (boy sitting under a tree).

    Any suggestion, what went wrong ? how to recover it

  15. hi,
    i tried method 1
    failed
    i tried method 2
    failed
    i tried method 3
    failed?!
    i used to use this jailbreak until
    update 5.1 came out
    i had to uninstall it then tried installing it on version 5.1,
    now its not working…
    any ideas?

  16. Same for me, I have a KT with 5.1 firmware and none of the three methods work. I copy the gz file and reboot, the Kindle just reboot and do not even try to update anything (and the .gz is still there in the folder, not deleted).

    I tried the method 3 with the empty file, it does not even boot the kindle into diag mode, it just reboots it as usual.

    I would like to JB it just to use custom screensavers. Too bad Amazon does not allow this ^^

    Thanks

  17. In the method 3 important things is creating blank text file “ENABLE_DIAGS”. It must be without file extension.

  18. Tried all three methods. Third one started to work but I could not get out of diagnostic mode. I got report that an device_—.xml file was missing and then it froze up. No hard resets, no thing worked. the — is because I cannot remember the rest of the file name. Now i have to get it serviced.

  19. Mine is now stuck on the diag screen. It did complain about the missing xml file when I tried to exit diag mode. I hope it will unfreeze in a while…

  20. The third method on the link I provided, yes, and it worked. The third method on this current page does not work, perhaps because the xml directory is missing.

  21. For people who do not want to follow my link, here is the universal method, which work for all firmware versions including the latest 5.1.0…

    Universal method

    1. Download and unzip the jailbreak.
    2. Plug in the Kindle and copy data.tar.gz to the Kindle’s USB drive’s root
    3. Create a blank text file named ENABLE_DIAGS (note: no file extension!, i.e., it’s not ENABLE_DIAGS.txt or so) and save it directly on the Kindle’s USB drive’s root (not in a subdirectory)
    4. Create the directory diagnostic_logs in the Kindle USB drive root directory
    5. Create a blank text file named device_info.xml inside that diagnostic_logs directory
    6. Safely remove the Kindle from USB and restart it (Menu -> Settings -> Menu -> Restart)
    7. Once the device restarts into diagnostics mode, select “D) Exit, Reboot or Disable Diags” (by tapping on the appropriate entries)
    8. Select “R) Reboot System” and “Q) To continue”
    You should see the Jailbreak screen and the device should restart back into diagnostics mode; Select “D) Exit, Reboot or Disable Diags” again
    Select “D) Disable Diagnostics” and “Q) To continue”
    9. Now the Kindle should reboot into the normal firmware and it should be jailbroken. You can safely delete the diagnostic_logs folder on the Kindle USB drive.

  22. Oh and btw dunno if it is important or not but I did not use the notepad, textpad, or any other text editor to create the blank xml and enable_diags file. I’m on Mac OS X, I used the terminal, and for instance to create the enable_diags blank file I did “touch ENABLE_DIAGS”. This is a unix command.

  23. I did everything as instructed and Step 7 still does not work.

    Just to make sure, the “Kindle’s USB drive’s root” is just opening the kindle or do I have to go somewhere else?

    I am Kindle Touch 5.1.0.

    Can someone help me?

  24. Not working for me either (KT 5.1.0). Perhaps there is a way to run the patch in a debug mode and pipe it to a log file in order to find out what went wrong. Not really keen to fiddle with my KT and brick it :)
    BTW. I’ve just bought the KT with the 5.1.0 installed on it. Perhaps that might be a difference to people who updated to 5.1.0.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>