]> xmof Git - DeDRM.git/commitdiff
Fixes for android key extraction
authorapprenticeharper <apprenticeharper@gmail.com>
Thu, 3 Sep 2015 06:51:10 +0000 (07:51 +0100)
committerapprenticeharper <apprenticeharper@gmail.com>
Thu, 3 Sep 2015 06:51:10 +0000 (07:51 +0100)
DeDRM_Macintosh_Application/DeDRM.app/Contents/Info.plist
DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/__init__.py
DeDRM_Macintosh_Application/DeDRM.app/Contents/Resources/androidkindlekey.py
DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/DeDRM_App.pyw
DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/__init__.py
DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/androidkindlekey.py
DeDRM_calibre_plugin/DeDRM_plugin.zip
DeDRM_calibre_plugin/DeDRM_plugin/__init__.py
DeDRM_calibre_plugin/DeDRM_plugin/androidkindlekey.py
Other_Tools/DRM_Key_Scripts/Kindle_for_Android/androidkindlekey.pyw
ReadMe_First.txt

index 51d226d7693b4fcd3e1e9a1a0e3cabc4c2f9e6d9..a18d8e4e51eade4b3f7f992fd2ec265d6714a773 100644 (file)
@@ -24,7 +24,7 @@
        <key>CFBundleExecutable</key>
        <string>droplet</string>
        <key>CFBundleGetInfoString</key>
-       <string>DeDRM AppleScript 6.3.3 Written 2010–2015 by Apprentice Alf et al.</string>
+       <string>DeDRM AppleScript 6.3.4 Written 2010–2015 by Apprentice Alf et al.</string>
        <key>CFBundleIconFile</key>
        <string>DeDRM</string>
        <key>CFBundleIdentifier</key>
@@ -36,7 +36,7 @@
        <key>CFBundlePackageType</key>
        <string>APPL</string>
        <key>CFBundleShortVersionString</key>
-       <string>6.3.3</string>
+       <string>6.3.4</string>
        <key>CFBundleSignature</key>
        <string>dplt</string>
        <key>LSRequiresCarbon</key>
index 1f34cfe0fe5696399606181c3803a7f8fbb463f9..53b1200c97cd9117f57dfb2b0ca6516316cd0605 100644 (file)
@@ -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
 
index 2c539eea40c4159d6b9aeac2cea4186c037824c1..ff8d1ee5cd0f66cd42dbc1cb7f5316541fb17d2c 100644 (file)
@@ -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()
index 45c9e06a1b88308065c17e5015abdca4f4f0576d..87b863466a28423edd739389aef5153681fd8d35 100644 (file)
@@ -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
index 1f34cfe0fe5696399606181c3803a7f8fbb463f9..53b1200c97cd9117f57dfb2b0ca6516316cd0605 100644 (file)
@@ -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
 
index 2c539eea40c4159d6b9aeac2cea4186c037824c1..ff8d1ee5cd0f66cd42dbc1cb7f5316541fb17d2c 100644 (file)
@@ -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()
index 082e50888b339a0b8bd1f16e00a303de51073104..a64da23e1b9ded09f241d3e95a1b81e7993917df 100644 (file)
Binary files a/DeDRM_calibre_plugin/DeDRM_plugin.zip and b/DeDRM_calibre_plugin/DeDRM_plugin.zip differ
index 1f34cfe0fe5696399606181c3803a7f8fbb463f9..53b1200c97cd9117f57dfb2b0ca6516316cd0605 100644 (file)
@@ -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
 
index 2c539eea40c4159d6b9aeac2cea4186c037824c1..ff8d1ee5cd0f66cd42dbc1cb7f5316541fb17d2c 100644 (file)
@@ -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()
index 2c539eea40c4159d6b9aeac2cea4186c037824c1..ff8d1ee5cd0f66cd42dbc1cb7f5316541fb17d2c 100644 (file)
@@ -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()
index 5e3ad45ea7f2433744931b98630478bb2af58e74..beb72870e382cc8bf23c11b75ecda970d6abe46a 100644 (file)
@@ -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: