Hack the Kindle3

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 en 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 searched...

Finding an ebook reader:

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

  • A decent size in order to read "papers" with a small pocket book format. So 5" are excluded !
  • A good eInk display (so eInk Viz or Pearl and not SiPix which is too much grey).
  • Hackable device with GNU/Linux on it.
  • Something that could be open source.
  • A provider who is not a censor !!
  • A fair price.

I first found 3 competitors:

  • Cybook Orizon: A french ereader builder... But the price is very high for what you get ! After searching, I found that it was nearly a rebranded Oyo reader (nearly the same hardware but different container). Furthermore, the fimware were not directly downloadable from Cybook, even if they have a real tradition of releasing their source code. I did not have a way to know if it was an hackable device...
  • Oyo Reader: You can buy it on the french libraries (private) called: France Loisirs. The design is great, price is low (about 150€). The screen is capacitive. After trying an exposed model, I found that the screen was more grey than white (SiPix screen), affecting the reading comfort. But it is an hackable device.
  • Fnac Book: Well, it is a pure rebranded oyo reader that is sold about 50€ more because it has 3G access. So, the Oyo was better (I don't own a cell phone so, I don't need 3G just to order some books).

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

  • Even if Amazon is a real censor, the device is hackable (well, it's hard to do but it's feasable).
  • The price is really low, even if you order it from Amazon.com (it was not sold by amazon.fr).
  • The screen (eInk Pearl), is excellent: good contrast and "fast" sync.
  • Great electric autonomy.
  • You can have a root access.

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 by 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:

  • Les fables (Jean-de-la Fontaine).
  • Contes d'aventures (Arthur Conan Doyle).
  • Contes d'entre chien (Arthur Conan Doyle).
  • La machine à désintégrer (Arthur Conan Doyle).
  • Quand la terre hurla (Arthur Conan Doyle).
  • Le C en 20 heures (Livre framabook).
  • Contes merveilleux (Frères Grimm).
  • Contes du jour et de la nuit (Guy de Maupassant).
  • Contes de la bécasse (Guy de Maupassant).
  • Clair de Lune (Guy de Maupassant).
  • La maison Tellier (Guy de Maupassant).
  • Mercurial: The definitive Guide.
  • Croc-Blanc (Jack London).
  • Une invasion sans précédent (JAck London).
  • Dans l'abîme du temps (Howard Phillips Lovecraft).
  • La machine à explorer le temps (H.G. Wells).
  • J'accuse (Emile Zola).

Those 17 books are only public domain or free/Libre books. So far, I've never activated the wifi connexion 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 shown only if you are registered, etc... But you can use your Kindle as I do: after all, it is 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 resized, even if the Kindle can zoom it. My guess is that PDF sized to something about 6" diag 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. Butas 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:

  • books
  • agenda (with network synchronisation)
  • newsreader
  • RSS Feeder
  • email reader (even answer with the limited keyboard)
  • light picture display device
  • cartographic display for backpacking
  • dictaphone (with the integrated microphone)
  • internet browsing
  • autonomous light and fanless server (perhaps a FreedomBox device even if it is not a plug computer !)
  • etc...

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 a selling books, it goes further !!!

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

  • jailbreak is a simple shell script that permit the user to add some binaries to the root filesystem.
  • Usbnetwork is a hack that derives a native debug command of the Kindle "framework" to start a SSH server (busybox modified to accept everything as valid root password) listening on network over USB.

You can download all of them here: http://www.mobileread.com/forums/showthread.php?t=88004 .

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:

  • Compile kiterm code and make it run on the Kindle (so far the binary I try to compile crash !).
  • "Port" Newsbeuter and Mutt on the Kindle and use them with kiterm !

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...