Yet another reverse engineering blog

Showing posts with label mobipocket. Show all posts
Showing posts with label mobipocket. Show all posts

Tuesday, March 10, 2009

Kindle 2 tidbits

I’ve been a bit busy recently and couldn’t follow my favorite ebook forum Mobileread.com as closely as I wanted. Also, it seems to have exploded with the release of Kindle 2. I don’t have the device myself and don’t plan to buy it, but I did notice a few things when skimming the forums.

1) Firmware updates
Apparently Amazon didn’t change the obfuscation for the firmware updates and an enterprising person patched my update maker for K2 to make an “update” which sets up a custom screensaver (apparently the K1 shortcut have been disabled).

2) USB network
Apparently K2 includes a USBnet module which can be enabled with a debug command. This allows, for example, to use a PC internet connection instead of Whispernet, or to connect to services running on the Kindle. Telnet is possible, but it needs to be installed on the device first.

3) Kindle for iPhone
Amazon released an iPhone application, and it is now possible use an iPhone or iPod touch instead of Kindle to buy and read ebooks from Amazon. Someone was quick to discover that a small change in kindlepid.py allows one to produce a PID for the iPhone and read library books (or remove DRM from purchased books) the same way as with Kindle. A few days later Amazon removed serial numbers from the “Manage my Kindle” page, probably to try closing this “hole”. It worked for about two hours.

P.S. I did find some time to work on my scripts.
1) Updated kindlepid.py and kindledfix.py to support iPhone serials and fix the metadata corruption problem. Download.
2) Made a combined Kindle firmware update tool. It can extract a firmware update or make a new one, for Kindle 1 or Kindle 2 (K2 untested). Download.

Wednesday, December 12, 2007

Mobipocket books on Kindle

We've known for some time already that Amazon's AZW files are actually Mobi files, but Amazon didn't share Kindle's Mobi PID which would allow one to buy encrypted Mobi books for Kindle.
Well, I've discovered the algorithm used to generate the PID and was able to use it on Fictionwise, but there was another catch. AZW files have a flag set in the DRM info which is not present in books bought from other vendors. After fixing that, I could read the book on Kindle.

Linked archive includes two Python scripts.

kindlepid.py generates Mobi PID from Kindle serial number. You can then add this PID at a Mobipocket vendor site and redownload books with Kindle's PID enabled. It's possible that some vendors will refuse this PID, as it has an asterisk in place of the traditional dollar sign (Fictionwise works fine).
kindlefix.py "fixes" a Mobi book so that it can be read on Kindle. It should already include Kindle's PID (which you need to specify too). The script will output the fixed book with .azw extension.

Kindle Mobipocket tools 0.1 0.2
Mirror