diff --git a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Info.plist b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Info.plist index 51d226d..a18d8e4 100644 --- a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Info.plist +++ b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Info.plist @@ -24,7 +24,7 @@ CFBundleExecutable droplet CFBundleGetInfoString - DeDRM AppleScript 6.3.3 Written 2010–2015 by Apprentice Alf et al. + DeDRM AppleScript 6.3.4 Written 2010–2015 by Apprentice Alf et al. CFBundleIconFile DeDRM CFBundleIdentifier @@ -36,7 +36,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 6.3.3 + 6.3.4 CFBundleSignature dplt LSRequiresCarbon diff --git a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/__init__.py b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/__init__.py index 1f34cfe..53b1200 100644 --- a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/__init__.py +++ b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/__init__.py @@ -45,6 +45,7 @@ __docformat__ = 'restructuredtext en' # 6.3.1 - Version number bump for clarity # 6.3.2 - Fixed Kindle for Android help file # 6.3.3 - Bug fix for Kindle for PC support +# 6.3.4 - Fixes for Kindle for Android, Linux, and Kobo 3.17 """ @@ -52,7 +53,7 @@ Decrypt DRMed ebooks. """ PLUGIN_NAME = u"DeDRM" -PLUGIN_VERSION_TUPLE = (6, 3, 3) +PLUGIN_VERSION_TUPLE = (6, 3, 4) PLUGIN_VERSION = u".".join([unicode(str(x)) for x in PLUGIN_VERSION_TUPLE]) # Include an html helpfile in the plugin's zipfile with the following name. RESOURCE_NAME = PLUGIN_NAME + '_Help.htm' @@ -148,7 +149,7 @@ class DeDRM(FileTypePlugin): try: open(file_path,'wb').write(data) except: - print u"{0} v{1}: Exception when copying needed library files after {2:.1f} seconds".format(PLUGIN_NAME, PLUGIN_VERSION, time.time()-self.starttime) + print u"{0} v{1}: Exception when copying needed library files".format(PLUGIN_NAME, PLUGIN_VERSION) traceback.print_exc() pass diff --git a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/androidkindlekey.py b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/androidkindlekey.py index 2c539ee..ff8d1ee 100644 --- a/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/androidkindlekey.py +++ b/DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/androidkindlekey.py @@ -16,16 +16,18 @@ from __future__ import with_statement # - and added in unicode command line support # 1.3 - added in TkInter interface, output to a file # 1.4 - Fix some problems identified by Aldo Bleeker +# 1.5 - Fix another problem identified by Aldo Bleeker """ Retrieve Kindle for Android Serial Number. """ __license__ = 'GPL v3' -__version__ = '1.4' +__version__ = '1.5' import os import sys +import traceback import getopt import tempfile import zlib @@ -220,20 +222,30 @@ def get_serials2(path=STORAGE2): userdata_keys = cursor.fetchall() dsns = [] for userdata_row in userdata_keys: - if userdata_row: - userdata_utf8 = userdata_row[0].encode('utf8') - if len(userdata_utf8) > 0: - dsns.append(userdata_utf8) + try: + if userdata_row and userdata_row[0]: + userdata_utf8 = userdata_row[0].encode('utf8') + if len(userdata_utf8) > 0: + dsns.append(userdata_utf8) + except: + print "Error getting one of the device serial name keys" + traceback.print_exc() + pass dsns = list(set(dsns)) cursor.execute('''select userdata_value from userdata where userdata_key like '%/%kindle.account.tokens%' ''') userdata_keys = cursor.fetchall() tokens = [] for userdata_row in userdata_keys: - if userdata_row: - userdata_utf8 = userdata_row[0].encode('utf8') - if len(userdata_utf8) > 0: - tokens.append(userdata_utf8) + try: + if userdata_row and userdata_row[0]: + userdata_utf8 = userdata_row[0].encode('utf8') + if len(userdata_utf8) > 0: + tokens.append(userdata_utf8) + except: + print "Error getting one of the account token keys" + traceback.print_exc() + pass tokens = list(set(tokens)) serials = [] @@ -377,7 +389,6 @@ def gui_main(): import Tkconstants import tkMessageBox import tkFileDialog - import traceback except: print "Tkinter not installed" return cli_main() diff --git a/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/DeDRM_App.pyw b/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/DeDRM_App.pyw index 45c9e06..87b8634 100644 --- a/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/DeDRM_App.pyw +++ b/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/DeDRM_App.pyw @@ -18,8 +18,9 @@ # 6.3.1 - Version bump for clarity # 6.3.2 - Version bump to match plugin # 6.3.3 - Version bump to match plugin +# 6.3.4 - Version bump to match plugin -__version__ = '6.3.3' +__version__ = '6.3.4' import sys import os, os.path diff --git a/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/__init__.py b/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/__init__.py index 1f34cfe..53b1200 100644 --- a/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/__init__.py +++ b/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/__init__.py @@ -45,6 +45,7 @@ __docformat__ = 'restructuredtext en' # 6.3.1 - Version number bump for clarity # 6.3.2 - Fixed Kindle for Android help file # 6.3.3 - Bug fix for Kindle for PC support +# 6.3.4 - Fixes for Kindle for Android, Linux, and Kobo 3.17 """ @@ -52,7 +53,7 @@ Decrypt DRMed ebooks. """ PLUGIN_NAME = u"DeDRM" -PLUGIN_VERSION_TUPLE = (6, 3, 3) +PLUGIN_VERSION_TUPLE = (6, 3, 4) PLUGIN_VERSION = u".".join([unicode(str(x)) for x in PLUGIN_VERSION_TUPLE]) # Include an html helpfile in the plugin's zipfile with the following name. RESOURCE_NAME = PLUGIN_NAME + '_Help.htm' @@ -148,7 +149,7 @@ class DeDRM(FileTypePlugin): try: open(file_path,'wb').write(data) except: - print u"{0} v{1}: Exception when copying needed library files after {2:.1f} seconds".format(PLUGIN_NAME, PLUGIN_VERSION, time.time()-self.starttime) + print u"{0} v{1}: Exception when copying needed library files".format(PLUGIN_NAME, PLUGIN_VERSION) traceback.print_exc() pass diff --git a/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/androidkindlekey.py b/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/androidkindlekey.py index 2c539ee..ff8d1ee 100644 --- a/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/androidkindlekey.py +++ b/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/androidkindlekey.py @@ -16,16 +16,18 @@ from __future__ import with_statement # - and added in unicode command line support # 1.3 - added in TkInter interface, output to a file # 1.4 - Fix some problems identified by Aldo Bleeker +# 1.5 - Fix another problem identified by Aldo Bleeker """ Retrieve Kindle for Android Serial Number. """ __license__ = 'GPL v3' -__version__ = '1.4' +__version__ = '1.5' import os import sys +import traceback import getopt import tempfile import zlib @@ -220,20 +222,30 @@ def get_serials2(path=STORAGE2): userdata_keys = cursor.fetchall() dsns = [] for userdata_row in userdata_keys: - if userdata_row: - userdata_utf8 = userdata_row[0].encode('utf8') - if len(userdata_utf8) > 0: - dsns.append(userdata_utf8) + try: + if userdata_row and userdata_row[0]: + userdata_utf8 = userdata_row[0].encode('utf8') + if len(userdata_utf8) > 0: + dsns.append(userdata_utf8) + except: + print "Error getting one of the device serial name keys" + traceback.print_exc() + pass dsns = list(set(dsns)) cursor.execute('''select userdata_value from userdata where userdata_key like '%/%kindle.account.tokens%' ''') userdata_keys = cursor.fetchall() tokens = [] for userdata_row in userdata_keys: - if userdata_row: - userdata_utf8 = userdata_row[0].encode('utf8') - if len(userdata_utf8) > 0: - tokens.append(userdata_utf8) + try: + if userdata_row and userdata_row[0]: + userdata_utf8 = userdata_row[0].encode('utf8') + if len(userdata_utf8) > 0: + tokens.append(userdata_utf8) + except: + print "Error getting one of the account token keys" + traceback.print_exc() + pass tokens = list(set(tokens)) serials = [] @@ -377,7 +389,6 @@ def gui_main(): import Tkconstants import tkMessageBox import tkFileDialog - import traceback except: print "Tkinter not installed" return cli_main() diff --git a/DeDRM_calibre_plugin/DeDRM_plugin.zip b/DeDRM_calibre_plugin/DeDRM_plugin.zip index 082e508..a64da23 100644 Binary files a/DeDRM_calibre_plugin/DeDRM_plugin.zip and b/DeDRM_calibre_plugin/DeDRM_plugin.zip differ diff --git a/DeDRM_calibre_plugin/DeDRM_plugin/__init__.py b/DeDRM_calibre_plugin/DeDRM_plugin/__init__.py index 1f34cfe..53b1200 100644 --- a/DeDRM_calibre_plugin/DeDRM_plugin/__init__.py +++ b/DeDRM_calibre_plugin/DeDRM_plugin/__init__.py @@ -45,6 +45,7 @@ __docformat__ = 'restructuredtext en' # 6.3.1 - Version number bump for clarity # 6.3.2 - Fixed Kindle for Android help file # 6.3.3 - Bug fix for Kindle for PC support +# 6.3.4 - Fixes for Kindle for Android, Linux, and Kobo 3.17 """ @@ -52,7 +53,7 @@ Decrypt DRMed ebooks. """ PLUGIN_NAME = u"DeDRM" -PLUGIN_VERSION_TUPLE = (6, 3, 3) +PLUGIN_VERSION_TUPLE = (6, 3, 4) PLUGIN_VERSION = u".".join([unicode(str(x)) for x in PLUGIN_VERSION_TUPLE]) # Include an html helpfile in the plugin's zipfile with the following name. RESOURCE_NAME = PLUGIN_NAME + '_Help.htm' @@ -148,7 +149,7 @@ class DeDRM(FileTypePlugin): try: open(file_path,'wb').write(data) except: - print u"{0} v{1}: Exception when copying needed library files after {2:.1f} seconds".format(PLUGIN_NAME, PLUGIN_VERSION, time.time()-self.starttime) + print u"{0} v{1}: Exception when copying needed library files".format(PLUGIN_NAME, PLUGIN_VERSION) traceback.print_exc() pass diff --git a/DeDRM_calibre_plugin/DeDRM_plugin/androidkindlekey.py b/DeDRM_calibre_plugin/DeDRM_plugin/androidkindlekey.py index 2c539ee..ff8d1ee 100644 --- a/DeDRM_calibre_plugin/DeDRM_plugin/androidkindlekey.py +++ b/DeDRM_calibre_plugin/DeDRM_plugin/androidkindlekey.py @@ -16,16 +16,18 @@ from __future__ import with_statement # - and added in unicode command line support # 1.3 - added in TkInter interface, output to a file # 1.4 - Fix some problems identified by Aldo Bleeker +# 1.5 - Fix another problem identified by Aldo Bleeker """ Retrieve Kindle for Android Serial Number. """ __license__ = 'GPL v3' -__version__ = '1.4' +__version__ = '1.5' import os import sys +import traceback import getopt import tempfile import zlib @@ -220,20 +222,30 @@ def get_serials2(path=STORAGE2): userdata_keys = cursor.fetchall() dsns = [] for userdata_row in userdata_keys: - if userdata_row: - userdata_utf8 = userdata_row[0].encode('utf8') - if len(userdata_utf8) > 0: - dsns.append(userdata_utf8) + try: + if userdata_row and userdata_row[0]: + userdata_utf8 = userdata_row[0].encode('utf8') + if len(userdata_utf8) > 0: + dsns.append(userdata_utf8) + except: + print "Error getting one of the device serial name keys" + traceback.print_exc() + pass dsns = list(set(dsns)) cursor.execute('''select userdata_value from userdata where userdata_key like '%/%kindle.account.tokens%' ''') userdata_keys = cursor.fetchall() tokens = [] for userdata_row in userdata_keys: - if userdata_row: - userdata_utf8 = userdata_row[0].encode('utf8') - if len(userdata_utf8) > 0: - tokens.append(userdata_utf8) + try: + if userdata_row and userdata_row[0]: + userdata_utf8 = userdata_row[0].encode('utf8') + if len(userdata_utf8) > 0: + tokens.append(userdata_utf8) + except: + print "Error getting one of the account token keys" + traceback.print_exc() + pass tokens = list(set(tokens)) serials = [] @@ -377,7 +389,6 @@ def gui_main(): import Tkconstants import tkMessageBox import tkFileDialog - import traceback except: print "Tkinter not installed" return cli_main() diff --git a/Other_Tools/DRM_Key_Scripts/Kindle_for_Android/androidkindlekey.pyw b/Other_Tools/DRM_Key_Scripts/Kindle_for_Android/androidkindlekey.pyw index 2c539ee..ff8d1ee 100644 --- a/Other_Tools/DRM_Key_Scripts/Kindle_for_Android/androidkindlekey.pyw +++ b/Other_Tools/DRM_Key_Scripts/Kindle_for_Android/androidkindlekey.pyw @@ -16,16 +16,18 @@ from __future__ import with_statement # - and added in unicode command line support # 1.3 - added in TkInter interface, output to a file # 1.4 - Fix some problems identified by Aldo Bleeker +# 1.5 - Fix another problem identified by Aldo Bleeker """ Retrieve Kindle for Android Serial Number. """ __license__ = 'GPL v3' -__version__ = '1.4' +__version__ = '1.5' import os import sys +import traceback import getopt import tempfile import zlib @@ -220,20 +222,30 @@ def get_serials2(path=STORAGE2): userdata_keys = cursor.fetchall() dsns = [] for userdata_row in userdata_keys: - if userdata_row: - userdata_utf8 = userdata_row[0].encode('utf8') - if len(userdata_utf8) > 0: - dsns.append(userdata_utf8) + try: + if userdata_row and userdata_row[0]: + userdata_utf8 = userdata_row[0].encode('utf8') + if len(userdata_utf8) > 0: + dsns.append(userdata_utf8) + except: + print "Error getting one of the device serial name keys" + traceback.print_exc() + pass dsns = list(set(dsns)) cursor.execute('''select userdata_value from userdata where userdata_key like '%/%kindle.account.tokens%' ''') userdata_keys = cursor.fetchall() tokens = [] for userdata_row in userdata_keys: - if userdata_row: - userdata_utf8 = userdata_row[0].encode('utf8') - if len(userdata_utf8) > 0: - tokens.append(userdata_utf8) + try: + if userdata_row and userdata_row[0]: + userdata_utf8 = userdata_row[0].encode('utf8') + if len(userdata_utf8) > 0: + tokens.append(userdata_utf8) + except: + print "Error getting one of the account token keys" + traceback.print_exc() + pass tokens = list(set(tokens)) serials = [] @@ -377,7 +389,6 @@ def gui_main(): import Tkconstants import tkMessageBox import tkFileDialog - import traceback except: print "Tkinter not installed" return cli_main() diff --git a/ReadMe_First.txt b/ReadMe_First.txt index 5e3ad45..beb7287 100644 --- a/ReadMe_First.txt +++ b/ReadMe_First.txt @@ -1,7 +1,7 @@ Welcome to the tools! ===================== -This ReadMe_First.txt is meant to give users a quick overview of what is available and how to get started. This document is part of the Tools v6.3.1 archive from Apprentice Alf's Blog: http://apprenticealf.wordpress.com/ +This ReadMe_First.txt is meant to give users a quick overview of what is available and how to get started. This document is part of the Tools v6.3.4 archive from Apprentice Alf's Blog: http://apprenticealf.wordpress.com/ The is archive includes tools to remove DRM from: