August 5, 2011
3 min. read
I have purchased many ebooks and created others manually in the .mobi format. This is very easy to load onto my Kindle device to read. Unfortunately, the current Kindle app on the Touchpad does not allow loading ebooks other than downloading from Amazon. This is unfortunate and makes the Touchpad a poor replacement for my Kindle.
I did not know if the Kindle App on the Touchpad could even handle .mobi format files, if I could get them there. Amazon purchased MobiPocket and their original ebook format was only slightly modified .mobi file. I assumed that the reader plugin would understand the .mobi format and I was right.
The books for your Kindle app are stored in the
/media/internal/.palmkindle directory. The book files have strange names such as
B000JMLFLW_EBOK.azw. I’m not sure if this is the same on each device for a given book, but I would assume so. Best guess is that it is just the primary key for that book in Amazon’s DB. This is the file for a free book of Pride and Prejudice by Jane Austen.
There is a subdirectory holding the cover images, called appropriately “coverCache”. Inside there, you will find up to three files of the format:
B000JMLFLW-[small|medium|large].jpg. Large does not exist for all books. Large is 333x500, Medium is 120x180, and Small is 52x78.
I decided to try a copy of John Ringo’s When the Devil Dances that I had purchased from webscription.net. I replaced the original
B000JMLFLW_EBOK.azw with the .mobi format of that book using the same name. Then I saved images for all three sizes with the same prefix. When I ejected the Touchpad, the ebook loaded correctly, but the cover image did not change for the thumbnail style of books display. When I changed to a list view, the image was correct. I had not gone into list mode before, so I am guessing that caching is used to only load images once. This makes sense, as the book cover is not a rapidly changing asset.
At this point I rebooted, to try to uncache the cover image. This worked. I now had a book that looked correct in the thumbnail view.
Tapping on the book loaded When the Devil Dances with an expected title up top of Pride and Prejudice.
The book had no issues being read. So all that is needed is updating the book database to correct the title. That would complete the hack. I have no idea how this will interface with Amazon syncing for distance read. I have turned off syncing before I started messing with this to keep from “mucking things up”.
What this proves is that sideloading non-Amazon sourced books should be fairly trivial to add to the Kindle App. It would just require updating the database to show the new books and loading a .mobi file and cover images. Amazon doesn’t want to.