-{\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470
+{\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf600
{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset134 STHeitiSC-Light;}
{\colortbl;\red255\green255\blue255;}
+{\*\expandedcolortbl;;}
\paperw11900\paperh16840\vieww12000\viewh15840\viewkind0
\deftab720
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\qc\partightenfactor0
\f0\b\fs24 \cf0 DeDRM ReadMe
\b0 \
+\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\qj\partightenfactor0
+
+\b \cf0 \
+\
+DeDRM is now a 64-bit application for Mac OS X 10.6 and later.
+\b0 \
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\partightenfactor0
\cf0 \
-\
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\partightenfactor0
\b \cf0 First Use for Mac OS X 10.9 and later\
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\partightenfactor0
-\b0 \cf0 The application is not signed, so the first time you run it you will need to change your security options, or hold down the option key when double-clicking on the icon, or control-click or right-button to get the contextual menu to open it.\
+\b0 \cf0 The application is not signed, so the first time you run it you will need to change your security options, or hold down the option key when double-clicking on the icon, or control-click or right-button to get the contextual menu to open it. For later versions, after trying to run it once, you may need to go to the security options of the control panel and give explicit permission for this application to be run.\
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\partightenfactor0
\b \cf0 \
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\qj\partightenfactor0
-\b0 \cf0 \
-\
-DeDRM is an application that packs all of the python dm removal software into one easy to use program that remembers preferences and settings.\
+\b0 \cf0 DeDRM is an application that packs all of the python dm removal software into one easy to use program that remembers preferences and settings.\
It works without manual configuration with Kindle for Mac ebooks, Adobe Digital Editions Adept ePub and PDF ebooks, and Barnes & Noble NOOK Study ebooks.\
\
To remove the DRM of Kindle ebooks from eInk Kindles, other Barnes & Noble ePubs, eReader pdb ebooks, or Mobipocket ebooks, you must first run DeDRM application (by double-clicking it) and set some additional Preferences, depending on the origin of your ebook files:\
\
Once these preferences have been set, you can drag and drop ebooks (or folders of ebooks) onto the DeDRM droplet to remove the DRM.\
\
-This program uses notifications, so really needs Mac OS X 10.8 or above. It will not work on Mac OS X 10.4 or earlier. It might work on Mac OS X 10.5-10.7, but the latest Kindle for Mac does not support those System versions.\
-\
+This program uses notifications, so really needs Mac OS X 10.8 or above.\
\
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\partightenfactor0
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.6.0 archive from Apprentice Harper's github repository: https://github.com/apprenticeharper/DeDRM_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.6.2 archive from Apprentice Harper's github repository: https://github.com/apprenticeharper/DeDRM_tools/
The is archive includes tools to remove DRM from:
For instructions, see the obok_plugin_ReadMe.txt file in the Obok_calibre_plugin folder.
-DeDRM application for Mac OS X users: (Mac OS X 10.4 and above)
+DeDRM application for Mac OS X users: (Mac OS X 10.6 and above)
---------------------------------------------------------------
This application is a stand-alone DRM removal application for Mac OS X users. It is only needed for people who cannot or will not use the calibre plugin. KFX support has not been tested yet.
For instructions, see the "DeDRM ReadMe.rtf" file in the DeDRM_Macintosh_Application folder.
-N.B. Mac OS X 10.4 users need to take extra steps before using the application, see the ReadMe.
-
DeDRM application for Windows users: (Windows XP through Windows 10)
------------------------------------------------------------------
This folder contains python scripts that create or extract or fetch encryption keyfiles for Barnes and Noble, Adobe Digital Editions, Kindle for Mac/PC and old versions of Kindle for Android.
Kindle_for_Android_Patches
-Definitely only for the adventurous, this folder contains information on how to modify the Kindle for Android app to b able to get a PID for use with the other Kindle tools (DeDRM apps and calibre plugin).
+Definitely only for the adventurous, this folder contains information on how to modify the Kindle for Android app to b able to get a PID for use with the other Kindle tools (DeDRM apps and calibre plugin).
Kobo
Contains the standalone obok python script for removing DRM from kePubs downloaded using the kobo desktop application.
import shutil
-SRC_DIR = 'src'
-CONTRIB_BASE = 'contrib'
-BUILD_BASE = 'build'
-DIST_BASE = 'dist'
-
+DEDRM_SRC_DIR = 'dedrm_src'
+OBOK_SRC_DIR = 'obok_src'
+SHELLS_BASE = 'contrib'
def make_calibre_plugin():
+ calibre_plugin_dir = os.path.join(SHELLS_BASE, 'DeDRM_calibre_plugin')
+ core_dir = os.path.join(calibre_plugin_dir, 'DeDRM_plugin')
- contrib_dir = os.path.join(CONTRIB_BASE, 'calibre')
+ shutil.copytree(DEDRM_SRC_DIR, core_dir)
+ shutil.make_archive(core_dir, 'zip', core_dir)
+ shutil.rmtree(core_dir)
- build_dir = os.path.join(BUILD_BASE, 'DeDRM_calibre_plugin')
- core_dir = os.path.join(build_dir, 'DeDRM_plugin')
- plugin_name = os.path.join(build_dir, 'DeDRM_plugin')
- shutil.copytree(contrib_dir, build_dir)
- shutil.copytree(SRC_DIR, core_dir)
+def make_obok_plugin():
+ obok_plugin_dir = os.path.join(SHELLS_BASE, 'Obok_calibre_plugin')
+ core_dir = os.path.join(obok_plugin_dir, 'obok_plugin')
- shutil.make_archive(plugin_name, 'zip', core_dir)
+ shutil.copytree(OBOK_SRC_DIR, core_dir)
+ shutil.make_archive(core_dir, 'zip', core_dir)
shutil.rmtree(core_dir)
def make_windows_app():
+ windows_app_dir = os.path.join(SHELLS_BASE, 'DeDRM_Windows_Application')
+ core_dir = os.path.join(windows_app_dir, 'DeDRM_App', 'DeDRM_lib', 'lib')
- contrib_dir = os.path.join(CONTRIB_BASE, 'windows')
-
- build_dir = os.path.join(BUILD_BASE, 'DeDRM_Windows_Application')
- core_dir = os.path.join(build_dir, 'DeDRM_App', 'DeDRM_lib', 'lib')
+ # delete any existing core_dir
+ try:
+ shutil.rmtree(core_dir)
+ except OSError:
+ pass
- shutil.copytree(contrib_dir, build_dir)
- shutil.copytree(SRC_DIR, core_dir)
+ shutil.copytree(DEDRM_SRC_DIR, core_dir)
def make_macos_app():
+ macos_app_dir = os.path.join(SHELLS_BASE, 'DeDRM_Macintosh_Application')
+ core_dir = os.path.join(macos_app_dir, 'DeDRM.app', 'Contents', 'Resources')
- contrib_dir = os.path.join(CONTRIB_BASE, 'macos')
- build_dir = os.path.join(BUILD_BASE, 'DeDRM_Macintosh_Application')
- core_dir = os.path.join(build_dir, 'DeDRM.app', 'Contents', 'Resources')
-
- shutil.copytree(contrib_dir, build_dir)
-
- _, dirs, files = next(os.walk(SRC_DIR))
+ # Resources already exists - copy contents to contents.
+ _, dirs, files = next(os.walk(DEDRM_SRC_DIR))
for name in dirs:
shutil.copyfile(
- os.path.join(SRC_DIR, name),
+ os.path.join(DEDRM_SRC_DIR, name),
os.path.join(core_dir, name)
)
for name in files:
shutil.copy2(
- os.path.join(SRC_DIR, name),
+ os.path.join(DEDRM_SRC_DIR, name),
os.path.join(core_dir, name)
)
-def make_obok_plugin():
-
- build_dir = os.path.join(BUILD_BASE, 'Obok_calibre_plugin')
- core_dir = os.path.join(build_dir, 'obok_plugin')
- plugin_name = os.path.join(build_dir, 'obok_plugin')
-
- shutil.copytree('Obok_calibre_plugin', build_dir)
- shutil.make_archive(plugin_name, 'zip', core_dir)
-
-
-def make_misc():
-
- for name in ('Other_Tools',):
- shutil.copytree(name, os.path.join(BUILD_BASE, name))
- for name in ('FAQs.md', 'README.md', 'ReadMe_First.txt',):
- shutil.copy2(name, os.path.join(BUILD_BASE, name))
-
-
def make_release(version):
-
- try:
- shutil.rmtree(BUILD_BASE)
- except OSError:
- pass
-
make_calibre_plugin()
make_windows_app()
make_macos_app()
make_obok_plugin()
- make_misc()
release_name = 'DeDRM_tools_{}'.format(version)
- release_path = os.path.join(DIST_BASE, release_name)
- return shutil.make_archive(release_path, 'zip', BUILD_BASE)
+ return shutil.make_archive(release_name, 'zip', SHELLS_BASE)
if __name__ == '__main__':