Hack the Kindle3 đź”—

Posted by MĂ©dĂ©ric Ribreux 🗓 In blog/Debian/

#livres #books #hacking #ebook

Introduction

If you read my 2010 book list, you can see that I have achieved my objective! Actually, I have quite improved the number of books read over a year. As I am now a better reader, I think it was the time to try the eInk concept. When you read lots of book over a year, you need room in your bookcase to store them, even for a short period of time. With an ebook reader, your whole collection can be stored on common mass storage devices. But the reader device needs to be good. That is what I researched…

Finding an ebook reader

It was nearly a nightmare because I tried to find the perfect solution! Here were my needs:

I first found 3 competitors:

But as I searched, I finaly pull back to Amazon Kindle3 for the following reasons:

After one month of search I finally order the Kindle.

About the Kindle3

Well, price was really low, lower than Oyo reader. I ordered it on january and, as everybody was trying to get the same device at the same time, I received it about one month later!!! But the device is really cool: the eInk display is really pleasant. My eyes don't need any glasses at all when I read on the Kindle3! The screen is by far less aggressive than LCDs. I don't order a cover for it because I thought it would be funnier to make it myself (see photo below):

Kindle Home Made Cover

For the moment, my only goal is to read a maximum of public domain books. In France, we've got a large choice of those. I found the same books I used to read during my studies (the classicals): Maupassant, Balzac, Verne, Voltaire, Rousseau, etc…

Two sites do a great job to provide french books in the public domain:

With this new toy, I've completely explosed my number of read books in less than two month. Here is the list:

Those 17 books are only public domain or free/Libre books. So far, I've never activated the wifi connection on my Kindle! I don't need it. I simply push the books found on the web via USB. 17 books in two month compared to about 23 a year ! But I am sure that there is a new toy effect and that I am not going to read so much during the next months.

The real problem of the Kindle as a user point of view is the lack of ePub files support. It is a waste of time to convert from ePub to mobi with Calibre even if you can do multiple conversions with a single click. Furthermore, the Kindle is made as a black box from Amazon: everything is easier if you try the amazon way. You have to connect to wifi in order to register your device. If you don't own a Wifi connexion, you can't change the time. Some menus are displayed only if you are registered, etc… But you can use your Kindle as I do: after all, it is just an ebook reader. You are not forced to use the Amazon Selling Interface.

There is another problem: PDF files have to be formatted to be read on a 6" device! Generally, PDF are build from A4 or A5 documents. In this format, you really can't read them on a so small device: PDFs cannot really be resized, even if the Kindle can zoom it. My guess is that PDF sized to something about 6" diagonal can be read directly with the same comfort than ebook files.

Hack the Kindle3

Despite the reputation of Amazon ("1984" remote content removal) for its non open policy, the Kindle3 is quite "open" to hacking. The operating system is left nearly untouched: it is a GNU/Linux system, driven by Busybox. What is really protected is the Java "Framework" of the Amazon application (even if it is a small capacity device, the main program runs under Java). It is hard to find a way to grab a root shell but once done, you can do whatever you want, there is no real "DRM" system on the operating system.

Why should we hack this machine? For Amazon it is a more convenient way to sell ebooks. But as a point of view, I think it is the hardware that is really cool ! A great screen, quite a few power with the ARMv6 CPU (Freescale iMX353 @ 533Mhz), 3GB of user space, Wifi and USB connexion, a (nearly) complete keyboard. It's size is quite small compared to paper agenda or pocket books, it weights really nothing compared to a laptop and furthermore, it has great autonomy. Nice device ! It could replace nearly everything that needs to be read or printed on paper:

As long as you have the power to code, you can program all of those different applications. And you can see that it is not only a question of selling books, it goes further!!!

Some hackers have already achieve the first part of the "opening" process:

You can download all of them here.

With those programs, you can have root shell access via SSH. Then, you can try to open a terminal with kiterm.

What should be better implemented is a way to deal with the screen. For the moment it seems that there is only a framebuffer (no Xorg).

Build applications

When you have root access via SSH, you can put and execute applications on the Kindle. You need a cross compiling toolchain to produce arm binaries from an x86 platform (GCC is not embeded on the Kindle).

You can use the Emdebian toolchain. I've found a good article on how to install it and there is an official documentation too. As I am far from a cross compilation hacker, I managed to compile an hello world C program and run it with my root access. Non-static programs are hard to port because there is a real difference between glibc on the Kindle (2.5) and the version of Emdebian which is eglibc 2.11. But I am just a newbie and my goals are the following:

For the moment I have to deal with glibc errors !

Making KDK applications

There is another way to produce applications: you can use the Kindle Developement Kit from Amazon. But you have to apply for registration and Amazon can decide whether or not you can be part of the program. Those "native" applications are called Kindlets. Indeed, the objective is focused on money and not on generating the best applications as you can read in the contract. That is why there are no really free/Libre software on the Kindle that uses KDK.

But even if you are not a registered KDK developper, it seems that you still can use it ! A developper managed to understand how to achieve this ! It seems to be not so complex as he states here. He already made two "Kindlets": KIF and Mangle, a manga reader.

Conclusion

The Amazon Kindle is just a (normal) computer with a particular screen. We have the right to use that screen as we want. By porting new applications like traditional Internet communication softwares, we will make this ebook reader a little more than expected…