mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-23 15:30:45 -04:00
77 lines
2.6 KiB
Plaintext
77 lines
2.6 KiB
Plaintext
APNX
|
|
----
|
|
|
|
apnx files are used by the Amazon Kindle (firmware revision 3.1+) to
|
|
map pages from a print book to the Kindle version. Integers within
|
|
the file are big-endian.
|
|
|
|
|
|
Layout
|
|
------
|
|
|
|
bytes content comments
|
|
|
|
4 00010001 Format identifier. Value of 65537 little-endian.
|
|
4 start of next The offset after ending location of the first header.
|
|
Starts a new sequence of header info
|
|
4 length Length of first header
|
|
N first header String containing content header
|
|
Starts next sequence
|
|
2 unknown Always 1
|
|
2 length Length of second header
|
|
2 page count Total number of bytes after second header that
|
|
represent pages. This total includes bytes that
|
|
are ignored by the pageMap.
|
|
2 unknown Always 32
|
|
N second header String containing the page mapping header
|
|
4*N padding The first number given in the page mapping header indicates the number of 0 bytes.
|
|
4*N page list
|
|
|
|
|
|
Content Header
|
|
--------------
|
|
|
|
The content header is a string enclosed in {} containing key, value pairs.
|
|
|
|
content comments
|
|
|
|
contentGuid Guid.
|
|
asin Amazon identifier for the Kindle version of the book.
|
|
cdeType MOBI cdeType. Should always be EBOK for ebooks.
|
|
fileRevisionId Revision of this file.
|
|
|
|
Example:
|
|
{"contentGuid":"d8c14b0","asin":"B000JML5VM","cdeType":"EBOK","fileRevisionId":"1296874359405"}
|
|
|
|
|
|
In devices with KF8 support, we're seeing an extended content header (which seems to be required by some FW versions for KF8 files, like FW 3.4):
|
|
|
|
format Mobi version. MOBI_8 for KF8, MOBI_7 for legacy mobi files.
|
|
acr Palm DB name
|
|
|
|
Example:
|
|
{"contentGuid":"f2fc7597","asin":"B003M68YKM","cdeType":"EBOK","format":"MOBI_8","fileRevisionId":"1342776186889","acr":"CR!1F5WDHWWVN4Y78MA87Z13H9K6RKE"}
|
|
|
|
Page Mapping Header
|
|
-------------------
|
|
|
|
The page mapping header is a string enclosed in {} containing key, value pairs.
|
|
|
|
content comments
|
|
|
|
asin The ISBN 10 for the paper book the pages correspond to
|
|
pageMap Three value tuple. Looks like: "(N,N,N)"
|
|
1) Number of bytes after header that starts the page numbering sequence
|
|
2) unknown
|
|
3) unknown
|
|
|
|
Example:
|
|
{"asin":"1906694184","pageMap":"(4,a,1)"}
|
|
|
|
|
|
Page List
|
|
---------
|
|
|
|
The page list is a sequence of offsets in the uncompressed HTML. Each
|
|
value is the beginning of a new page. Each entry is a 4 byte big endian
|
|
int. The list is ordered lowest to highest. |