Kindle Jailbreak
A guide to jailbreaking your Kindle plus cool thing to do with it: extentions, ads removal, alternative reader and more.
JailBreaking your device gives you full control over it. This allows extra customization, ads removal, additional features and more. My main reasons to jailbreak the Kindle are the ability to set custom screensavers (even the cover of the book that I'm reading), use KOReader and wirelessly sync the books with Calibre.
I bought the Kindle on Amazon, it's the most basic one available there. We will get back to this later, but if you buy it on Amazon be sure to deselect the option Link device to your Amazon account to simplify setup.
In this way the Kindle will not be automatically connected to the WiFi and doesn't update.
Note that my model is a 10th gen Kindle Basic, here also referred by KT4
. To check what model you have look here.
First Setup
It's really important to keep the Kindle offline so that it can't update it's firmware to a recent (patched) version. Later we will block the updates but for now keep it offline at all time. During the setup it will ask to connect to the WiFi, you can just tap any network, go back and skip the registration. Now in "Settings" > "Device Options" > "Device Info" check the firmware version. My Kindle came with version 5.13.6
installed. Since the latest version supported by the jailbreak is 5.14.2
I manually updated it. If your Kindle firmware version is ≥ 5.14.3
you can't jailbreak it via software, only via serial port (seems fun).
Update to 5.14.2
Download the firmware for your model directly from the Amazon website (Internet Archive to the rescue, the live page contains download links only for the latest firmware)
Here is the direct download link for my specific model. If Amazon stop hosting the firmware I've included a .tar.gz
file containing all the files that I needed at the end of this post. To update the Kindle, connect it to the PC and place the downloaded .bin
file in the main folder. Disconnect it and then go to "Settings" > "Device Options" > "Update Your Kindle" (the path may be different depending on the firmware version). It should start the update process and in the end reboot. Now onto the fun part: the actual JailBreak.
JailBreak
From now on it's important to know the exact model of the Kindle. You can do so by looking up the firsts character of the Serial Number ("Settings" > "Device Options" > "Device Info") here. For me it's G090VB Kindle Basic 3 (2019) Kids Edition KT4, KT4KE
. This means that the code-name for my model is KT4
.
Before following any guide online read all of it before starting. This way you get a general understanding of the process and you can be sure you have the technical skills required. This also apply to this article! To get a general idea first read this two posts:
Follow the WatchThis tutorial. Note that for the 3th step of the "Jailbreak" chapter, my specific combination of model and firmware version means that the .zip
file that I need to copy is KT4-5.14.2.zip
. It's inside the archive watchthis-jailbreak-r03.zip/watchthis-release/KT4/KT4-5.14.2/
. After step 5 eject the Kindle and press Done. It didn't work for me (Application Error), that's expected, just follow step 8. Follow the rest of the tutorial and you should have a jailbroken Kindle. From now on almost all download link can be found here:
Going back to the Open Sesame! tutorial, keep following it but skip "Making sure your JB survives updates" and continue with "Installing custom packages". Follow the instruction to extract the archive at the top-level folder. Download the archive, the file I used is MR Package Installer | kual-mrinstaller-1.7.N-r18896.tar.xz
. MRPI (MobileRead Package Installer) is used to install .bin
files (packages): place them in the top-level folder mrpackages
and then use the command ;log mrpi
or "KUAL" > "Helper" > "Install MR Packages" to install them.
To install KUAL, download the coplate version (my file KUAL (coplate) | KUAL-e3deabf-20220213.tar.xz
), extract Update_KUALBooklet_e3deabf_install.bin
and install it as described in the Open Sesame! tutorial. You should see a rocket while it's installing KUAL.
Now it's time to get back to the skipped chapter "Making sure your JB survives updates": download the hotfix (K5 JailBreak Hotfix | JailBreak-1.16.N-FW-5.x-hotfix.zip
), extract the .bin
and install it with MRPI.
Packages & Extensions
A full list of available package and extensions can be found here. The most important are all in "Tools Snapshots of NiLuJe's hacks" under "Packages targeting the Kindle 5" and "KUAL & KUAL extensions".
You can install KUAL extensions simply by extracting the archive in the top-level folder. The one I installed:
- GNU Awk Installer
- Helper
- KUAL+
- BatteryStatus
To install packages refer to their specific thread, but in general all you need to do is put the .bin
in the top-level folder mrpackages
and then "KUAL" > "Helper" > "Install MR Packages". The one I have installed:
- Python 2.7 & Python 3.9
- ScreenSavers Hack (useless/disable if using KOReader)
- USBNetwork Hack
- renameotabin
The package renameotabin
is fundamental in blocking the OTA updates: it renames the executables responsible for the download of the updates blocking them. After this package in installed and activated ("KUAL" > "Rename OTA binaries" > "Rename") the Kindle can be connected to the WiFi.
The package USBNetwork Hack
allows to SSH in the Kindle. This gives access to the terminal as the root user. My settings ("KUAL" > "USBNetwork"): SSH enabled at boot, allowed (and restricted) over WiFi, OpenSSH. Once enabled, use telnet
to connect to the Kindle, set the root password with passwd
and add your public key to /mnt/us/usbnet/etc/authorized_keys
. You can then simply connect with ssh root@kindleIP
For more information on this package check his link in the bulleted list.
Remove LockScreen ads
Some Kindles can come with "Special Offer" (SO): for a lower price you get advertisement on the lockscreen and in the homepage. They are activated once you register the Kindle with the Amazon account. If you have a SO Kindle, the ads on the screensaver can get really annoying. But since it's a topic that actively undermine Amazon's business model, I will not explain the details on how to remove the lockscreen ads. Now, with that said, you can figure out the procedure by looking at this post:
To run the commands use SSH previously setup and reboot the Kindle at the end. If it worked you should see the stock lockscreen.
KOReader
It's a document viewer for E-Ink devices with support for a ton of file formats, plugins, Calibre integration, custom dictionaries and more. And it's both open source and written in an interpreted language, so we can easily modify the code without compiling it. To install it refer to the KOReader wiki, but it's just a matter of extracting it to the top-level folder of the Kindle. With a little bit of tweaking it can even display custom screensaver (for example the cover of the current book) even on SO devices. Since this is normally disabled by KOReader if the device is SO, modify (via SSH or connecting via USB) the file /mnt/us/koreader/frontend/device/kindle/device.lua
(the folder koreader
is the one extracted in the top-level folder when installing it) and change the isSpecialOffers()
function to always return false, like this:
local function isSpecialOffers()
return false
end
After restarting KOReader, the option to enable the custom screensaver is in "Settings" > "Screen" > "Screensaver" (Use document cover as screensaver). Remember to do this modification every time that KOReader is updated as it overwrites the file.
Another cool feature is dictionary support, allowing to use multiple dictionaries. You can even create/convert and use your own glossary with pyglossary
, useful for single book dictionary (LOTR). To install a dictionary simply put it's folder in /mnt/us/koreader/data/dict
. You can find a ton of them in the correct format (StarDict) here. I use an english monolingual one based on Wiktionary with 726,212 words and an italian one.
The integration with Calibre is super useful: once set up, it allows you to menage the library on the device and wirelessly send books from the Calibre library to the Kindle.
To automatically start KOReader with the last opened file, while in the file browser mode, in the "Reader Menu" (cabinet icon) > "Start with" select last file.
You can also sync progress on all KOReader devices, really useful since sometimes I read on my phone.
If enabled, automatic night mode can tweak the screen brightness and invert colors (white text on dark background) based on the sun position.
If you want to resize the book covers, you can find the screen resolutions/aspect ratio of all models in this table. In my case, for the 10th gen Kindle Basic, the screen resolution is 600x800
.
It's also possible to update KOReader via OTA and I suggest updating regularly since new features are often added. After the update is completed reboot the Kindle.
Future firmware updates
Jailbreak survives firmware updates and resets but only with special precaution: check this post for the steps to follow. This means that you can keep updating your Kindle (remember to disable renameota
if you want OTA updates or update manually like done before), just be sure to follow the steps in the post. Note that firmware version ≥ 5.14.3
can't (easily) be jailbroken. So if something goes wrong and you loose the JB you are stuck waiting for a new JB that support the latest firmware. For this reason I'm currently staying on version 5.14.2
and blocking updates.
Misc
You can find all the file that I used here: fabricemonasterio.dev/files/kindle.tar.gz.
As always all the links present in this article are archived using Wayback Machine.