Jailbreak a Kindle Touch
Even if I bought an ebook reader that better suits my needs, I did not throw away my previous one, as it is still perfectly functional.
A couple of days ago, I tried to start Koreader through KUAL (the Kindle Unified Application Launcher), just to find out that "The permissions to open this item have expired" 🗄️.
Apparently, some certificates have expired.
Fortunately, the developers of KUAL are still alive and maintaining their projects, so I thought it should be enough to update the KUAL package, or just the certificate.
It did not help. On the contrary, at the end of the day, I got a different error message:
"This item is not signed by an authorized developer".
I tried multiple things to no avail.
At one point, I decided to jailbreak the device again. I believe I did it over a dozen years ago. I cannot remember what I did at the time, and I am currently unable to find what I documented. Who knows what the status of my device is, and what the current packages actually expect for working correctly.
What seemed to fix the underlying issue, at least in my case, was to update to the latest OS version of my device, then jailbreak it again, still scratch my head over some steps that did not work as described, and finally, I had a working device with KOReader again!
Why jailbreaking or rooting
For similar reasons one would like to have administrator privileges on an Android phone:
-
install programs not approved by Amazon
-
add support for EPUBs, removing the need to convert between formats or use specialized software for synchronising books
-
a better/classic file manager
-
change screensavers
-
use the kindle as black-white photoframe
-
synchronization over SSH in a local network without depending on external servers
For me, the biggest reason is installing KOReader:
-
it supports epub and CBZ (other formats too, but those are the ones I am most interested in)
-
it can use the cover of the current book as a screensaver
-
it provides a better file manager
Are there any risks?
Contrary to the millions of Android devices, with different revisions of hardware and software, there are not that many Kindle devices. So even if jailbreaks are not that tested, chances of something not working as expected might be lower, as the devices behave the same as they have the same hardware and software.
This does not mean there is no risk. Tutorials might be out of date, or some programs might not be available anymore. Plus, the jailbreak process might require some manual steps that could do wrong.
Preparatory step
First, identify the device.
Through the serial number 🗄️ , it should not be that hard; in my case, it is a Kindle Touch, often abbreviated as KT or K5.
My device had the OS version 5.3.7, but the latest one is 5.3.7.3.
As already mentioned, in my case, updating to 5.3.7.3 helped.
Jailbreak
First, connect the Kindle to the PC; it should be recognized as an external memory device.
From Snapshots of NiLuJe’s hacks download "K5 JailBreak (5.0.x - 5.4.4.2)", extract the file "kindle-5.4-jailbreak.zip", and copy the archived content on the device.
Then eject the Kindle and unplug it from the PC.
On the Kindle, from the home screen, click on ☰, then .
After a couple of seconds, you’ll see the text JAILBREAK at the bottom of your screen.
At this point, reboot the Kindle;from the home screen, click on ☰, the
Install KUAL
From Snapshots of NiLuJe’s hacks, download KUAL (not the coplate version).
Copy KUAL-KDK-2.0.azw2 in the document folder; since I updated to 5.3.7.3, it works again!
KOReader
Go to release page, download the koreader-kindle-v<version>.zip package, and copy the archive folder structure on the device as-is.
Eject the device, and now it is possible to start KOReader from KUAL.
USB Network
I actually never used this functionality, but I guess there is no harm in trying it out at least once. Especially after spending so much time on the device.
The USB network package gives you access over ssh as administrator via cable or WiFi.
The package can be downloaded from Snapshots of NiLuJe’s hacks; after installing the MRI package with KUAL, it is possible to enable the USB network directly from KUAL.
After doing that, if you connect the Kindle to a PC, it will not be recognized as an external memory device anymore.
Contrary to what I’ve found online, executing ifconfig usb0 192.168.15.201 fails because there is no usb0 device.
To get the device name, I executed /sbin/ifconfig; the Kindle Touch created a device named enxee4900000000.
Thus, the following command configures the device and opens a shell as administrator on the Kindle:
sudo ifconfig enxee4900000000 192.168.15.201
ssh root@192.168.15.244
# no password necessary Conclusion
I’ve packaged together for personal use what I’ve used for rooting my Kindle, so that if I ever need to do it again, I do not have to search on sites the information I need.
It is a pity that "security" in modern devices is achieved with digital signatures and certificates; the expiration date is in fact a time bomb.
Earlier this year, Amazon contacted customers using older Kindle models 🗄️, notifying them that older devices will not be able to access the Amazon store
While there is a fair to criticize such a decision, some of the "deprecated devices" are a couple of decades old.
And what does deprecate mean?
Users are complaining because the devices work perfectly… and their device will continue to do so, even without jailbreaking them. What is deprecated is the possibility of using the Amazon services on such devices.
A fairer critique would be to say that Amazon will not let users download e-books anymore, or that the current DRM systems are hurting people who think they are buying digital books.
For multiple reasons, I decided long ago that for me it is better to manage the digital library "manually".
No need for an internet connection, no chances for books to get deleted remotely, longer battery life, fewer surprises, and hopefully no more certificates that expire during my lifetime.
Amazon is not bricking or even soft-bricking the old devices; one needs to realize that depending on external services means that some functionality might change from one day to another.
Also note that most hardware devices are "deprecated" after a much shorter lifespan. Android Phones get some security updates thanks to regulations, but even on PCs, there are not that many updates released from manufacturers (BIOS, drivers, replacement parts, etc.).
As always, it would be nice if when a platform is sunset, it is also opened, so people hacking on it would save so much time, and it would save devices from being tossed away, as thrid-party developers would be able to offer different integration services.
If you have questions, comments, or found typos, the notes are not clear, or there are some errors; then just contact me.