diff options
author | Apprentice Alf <[email protected]> | 2013-02-04 14:25:25 +0000 |
---|---|---|
committer | Apprentice Alf <[email protected]> | 2015-03-07 14:25:39 +0000 |
commit | 490ee4e5d8f568b3eb84858b22912b07617fc6ee (patch) | |
tree | 07ec03740725a783dfe125d5d8a085bd9ac99526 /DeDRM_Macintosh_Application | |
parent | c23b9034209b8c9448dc298bdc3807fa6933779b (diff) |
tools v5.6.1
Diffstat (limited to 'DeDRM_Macintosh_Application')
-rw-r--r-- | DeDRM_Macintosh_Application/DeDRM ReadMe.rtf | 2 | ||||
-rw-r--r-- | DeDRM_Macintosh_Application/DeDRM.app/Contents/Info.plist | 6 | ||||
-rw-r--r-- | DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/Scripts/main.scpt | bin | 269068 -> 273522 bytes | |||
-rw-r--r-- | DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/k4pcutils.py | 20 | ||||
-rw-r--r-- | DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/kindlepid.py | 16 | ||||
-rw-r--r-- | DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/mobidedrm.py | 25 |
6 files changed, 36 insertions, 33 deletions
diff --git a/DeDRM_Macintosh_Application/DeDRM ReadMe.rtf b/DeDRM_Macintosh_Application/DeDRM ReadMe.rtf index b6f5244..99c6d57 100644 --- a/DeDRM_Macintosh_Application/DeDRM ReadMe.rtf +++ b/DeDRM_Macintosh_Application/DeDRM ReadMe.rtf @@ -41,7 +41,7 @@ Mac OS X 10.5 and above: You do \i not \i0 need to install Python.\ \ -Drag the DeDRM application from from tools_v5.6\\DeDRM_Applications\\Macintosh (the location of this ReadMe) to your Applications folder, or anywhere else you find convenient.\ +Drag the DeDRM application from from tools_v5.6.1\\DeDRM_Applications\\Macintosh (the location of this ReadMe) to your Applications folder, or anywhere else you find convenient.\ \ \ diff --git a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Info.plist b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Info.plist index eee088f..2c12ee2 100644 --- a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Info.plist +++ b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Info.plist @@ -24,17 +24,17 @@ <key>CFBundleExecutable</key> <string>droplet</string> <key>CFBundleGetInfoString</key> - <string>DeDRM 5.6. AppleScript written 2010–2013 by Apprentice Alf and others.</string> + <string>DeDRM 5.6.1. AppleScript written 2010–2013 by Apprentice Alf and others.</string> <key>CFBundleIconFile</key> <string>DeDRM</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleName</key> - <string>DeDRM 5.6</string> + <string>DeDRM 5.6.1</string> <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>5.6</string> + <string>5.6.1</string> <key>CFBundleSignature</key> <string>dplt</string> <key>LSRequiresCarbon</key> diff --git a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/Scripts/main.scpt b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/Scripts/main.scpt Binary files differindex 2108e07..a0000f4 100644 --- a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/Scripts/main.scpt +++ b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/Scripts/main.scpt diff --git a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/k4pcutils.py b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/k4pcutils.py index 476844c..bb9289e 100644 --- a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/k4pcutils.py +++ b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/k4pcutils.py @@ -208,7 +208,7 @@ CryptUnprotectData = CryptUnprotectData() def getKindleInfoFiles(): kInfoFiles = [] # some 64 bit machines do not have the proper registry key for some reason - # or the pythonn interface to the 32 vs 64 bit registry is broken + # or the python interface to the 32 vs 64 bit registry is broken path = "" if 'LOCALAPPDATA' in os.environ.keys(): path = os.environ['LOCALAPPDATA'] @@ -217,17 +217,17 @@ def getKindleInfoFiles(): try: regkey = winreg.OpenKey(winreg.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\\") path = winreg.QueryValueEx(regkey, 'Local AppData')[0] + except WindowsError: + pass + if not os.path.isdir(path): + path = "" + try: + regkey = winreg.OpenKey(winreg.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders\\") + path = winreg.QueryValueEx(regkey, 'Local AppData')[0] + except WindowsError: + pass if not os.path.isdir(path): path = "" - try: - regkey = winreg.OpenKey(winreg.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders\\") - path = winreg.QueryValueEx(regkey, 'Local AppData')[0] - if not os.path.isdir(path): - path = "" - except RegError: - pass - except RegError: - pass found = False if path == "": diff --git a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/kindlepid.py b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/kindlepid.py index 38c5e4e..d16c017 100644 --- a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/kindlepid.py +++ b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/kindlepid.py @@ -8,6 +8,7 @@ # 0.2 Added support for generating PID for iPhone (thanks to mbp) # 0.3 changed to autoflush stdout, fixed return code usage # 0.3 updated for unicode +# 0.4 Added support for serial numbers starting with '9', fixed unicode bugs. import sys import binascii @@ -63,7 +64,7 @@ def unicode_argv(): xrange(start, argc.value)] # if we don't have any arguments at all, just pass back script name # this should never happen - return [u"mobidedrm.py"] + return [u"kindlepid.py"] else: argvencoding = sys.stdin.encoding if argvencoding == None: @@ -92,7 +93,6 @@ def checksumPid(s): return res - def pidFromSerial(s, l): crc = crc32(s) @@ -113,27 +113,27 @@ def pidFromSerial(s, l): def cli_main(argv=unicode_argv()): print u"Mobipocket PID calculator for Amazon Kindle. Copyright © 2007, 2009 Igor Skochinsky" - if len(sys.argv)==2: - serial = sys.argv[1] + if len(argv)==2: + serial = argv[1] else: print u"Usage: kindlepid.py <Kindle Serial Number>/<iPhone/iPod Touch UDID>" return 1 if len(serial)==16: - if serial.startswith("B"): + if serial.startswith("B") or serial.startswith("9"): print u"Kindle serial number detected" else: print u"Warning: unrecognized serial number. Please recheck input." return 1 pid = pidFromSerial(serial.encode("utf-8"),7)+'*' - print u"Mobipocket PID for Kindle serial#{0} is {1} ".format(serial,checksumPid(pid)) + print u"Mobipocket PID for Kindle serial#{0} is {1}".format(serial,checksumPid(pid)) return 0 elif len(serial)==40: print u"iPhone serial number (UDID) detected" pid = pidFromSerial(serial.encode("utf-8"),8) - print u"Mobipocket PID for iPhone serial#{0} is {1} ".format(serial,checksumPid(pid)) + print u"Mobipocket PID for iPhone serial#{0} is {1}".format(serial,checksumPid(pid)) return 0 print u"Warning: unrecognized serial number. Please recheck input." - return 1 + return 1 if __name__ == "__main__": diff --git a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/mobidedrm.py b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/mobidedrm.py index 113f57a..264c175 100644 --- a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/mobidedrm.py +++ b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/mobidedrm.py @@ -66,9 +66,10 @@ # 0.36 - fixed problem with TEXtREAd and getBookTitle interface # 0.37 - Fixed double announcement for stand-alone operation # 0.38 - Unicode used wherever possible, cope with absent alfcrypto +# 0.39 - Fixed problem with TEXtREAd and getBookType interface -__version__ = u"0.38" +__version__ = u"0.39" import sys import os @@ -268,19 +269,22 @@ class MobiBook: self.records, = struct.unpack('>H', self.sect[0x8:0x8+2]) self.compression, = struct.unpack('>H', self.sect[0x0:0x0+2]) + # det default values before PalmDoc test + self.print_replica = False + self.extra_data_flags = 0 + self.meta_array = {} + self.mobi_length = 0 + self.mobi_codepage = 1252 + self.mobi_version = -1 + if self.magic == 'TEXtREAd': print u"PalmDoc format book detected." - self.extra_data_flags = 0 - self.mobi_length = 0 - self.mobi_codepage = 1252 - self.mobi_version = -1 - self.meta_array = {} return + self.mobi_length, = struct.unpack('>L',self.sect[0x14:0x18]) self.mobi_codepage, = struct.unpack('>L',self.sect[0x1c:0x20]) self.mobi_version, = struct.unpack('>L',self.sect[0x68:0x6C]) print u"MOBI header version {0:d}, header length {1:d}".format(self.mobi_version, self.mobi_length) - self.extra_data_flags = 0 if (self.mobi_length >= 0xE4) and (self.mobi_version >= 5): self.extra_data_flags, = struct.unpack('>H', self.sect[0xF2:0xF4]) print u"Extra Data Flags: {0:d}".format(self.extra_data_flags) @@ -290,7 +294,6 @@ class MobiBook: self.extra_data_flags &= 0xFFFE # if exth region exists parse it for metadata array - self.meta_array = {} try: exth_flag, = struct.unpack('>L', self.sect[0x80:0x84]) exth = '' @@ -313,9 +316,7 @@ class MobiBook: # print type, size, content, content.encode('hex') pos += size except: - self.meta_array = {} pass - self.print_replica = False def getBookTitle(self): codec_map = { @@ -406,7 +407,9 @@ class MobiBook: return u"Print Replica" if self.mobi_version >= 8: return u"Kindle Format 8" - return u"Mobipocket" + if self.mobi_version >= 0: + return u"Mobipocket {0:d}".format(self.mobi_version) + return u"PalmDoc" def getBookExtension(self): if self.print_replica: |