View Single Post
Old 03-20-2016, 05:16 AM   #1
peterson
Connoisseur
peterson ought to be getting tired of karma fortunes by now.peterson ought to be getting tired of karma fortunes by now.peterson ought to be getting tired of karma fortunes by now.peterson ought to be getting tired of karma fortunes by now.peterson ought to be getting tired of karma fortunes by now.peterson ought to be getting tired of karma fortunes by now.peterson ought to be getting tired of karma fortunes by now.peterson ought to be getting tired of karma fortunes by now.peterson ought to be getting tired of karma fortunes by now.peterson ought to be getting tired of karma fortunes by now.peterson ought to be getting tired of karma fortunes by now.
 
Posts: 74
Karma: 889004
Join Date: Mar 2014
Device: Kindle PW2
File format of .mbs files

I want to synchronize the last-read position on my Kindle with MoonReader on my Android phone. I haven't been able to find software/hacks for that, so I am looking into doing this myself. Step 1 is figuring out how the Kindle stores the format, step 2 is doing the same for MoonReader, and step 3 the actual syncing (I have a jailbroken Kindle PW2 with some custom scripts and binaries already running, so I am optimistic that I can set something up ala the Kindle writing MoonReader compatible files to Dropbox).

For step 1 I am looking into decoding the mbs files that are in the book.sdr folder(s) on my Kindle. I think I figured out enough to parse it in a quick&dirty way, but a full definition and an explanation of the values would be nicer. Does anybody know any details?

What I have so far:
  • the mbs file is a key-value dictionary
  • there seems to be some kind of type indicator (0..4?)
  • keys are in ascii
  • each key is prefaced with "fe 00 00" and one byte (or "fe 00" and two bytes in big endian?) with the length of the key
  • the "lpr" key seems to store the read position, with the value some fixed numbers (type definitions?) and a string with colon-delimited values where the first two are always identical and quite large, and the third increases by one for every page-flip (but it doesn't match the page number the Kindle shows)

I believe by trial&error I can match the "lpr" values to something, but if anybody has more information already, this would save me some time.
peterson is offline   Reply With Quote