DeDRM for Mac 遇到的问题及解决方案

DeDRM 在重装系统后不正常工作,以下是用到的各种解决方案。

The application “DeDRM.app” can’t be opened.

App 本身的权限问题, DeDRM App will not open on Mac (OSX 10.11.3 / DeDRM 6.3.6a) · Issue #74 · apprenticeharper/DeDRM_tools · GitHub

chmod -R u+x DeDRM.app

ImportError: No module named Crypto.Cipher

# 没什么权限问题是 sudo 解决不了的……
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python get-pip.py

sudo -H python -m pip install pylzma --force
sudo -H python -m pip install pycrypto --force

Could not retrieve Kindle for Mac/PC key.

本问题 Kindle for Mac key 找不到 和「 Found k4Mac kinf2011 file but DrmException: No key found in 0 keys tried. 」都是用此方法解决的,

原因是最新版的 Kindle for Mac(1.25.2 增加了对 64 位操作系统的支持)使用了新的加密方式。之前也有过类似的问题: Dealing with Kindle for PC/Mac 1.19 and KFX in calibre - MobileRead Forums ,里边介绍了一些解决方案,值得参考。

目前看必须退回到上一个版本才行,我的办法是:

  • 完全卸载当前安装的软件
    • CleanMyMac/AppCleaner 卸载 Kindle
    • 删除 ~/Library/Application Support/Kindle/My Kindle Content/ 下的所有内容
    • 删除 DeDRM 的目录 ~/Library/Preferences/com.apprenticealf.dedrm
  • Time Machine 1 里找曾经下载过 App 2

对这个问题感兴趣的可以在 GitHub 上追踪 issue

后记

解决 DeDRM 的问题时,一路遇到了很多问题:

  • macOS 内置了 Python2,而 Py2 糟糕的字符串处理至今都是开发者要填的坑,如 Small fix to bug in K4/Mobi DeDRM with unicode filenames. · apprenticeharper/DeDRM_tools@454286b
  • 网上的内容有笔误,比如上边提的 pycryto -> pycrypto
  • 似乎(关于这一点我无法确认)有的版本的 macOS 内置了 pip,而我的 macOS 前不久重装的就没有 pip(只有我自己安装的 pip3)
  • 网上的答案有保质期,比如查询 pip 的安装时,早些年人们的建议都是 (sudo) easy_install pip,而现在人们应当使用 get-pip.py 或者 brew
  • ……

总之任何信息能不能直接相信,一定要交叉验证并亲手实验一下。

我之所以要弄 DeDRM 的原因很多,重要的有如下两个:

  • 对 Amazon 的不信任:曾经强行抹除用户购买的书籍
  • 不去除 DRM 则无法在排版更加舒服的软件中阅读,如 Marvin 和 iBooks

  1. 曾经在 Windows 上时,我手工在硬盘里维护了一份软件安装目录,存放了所有重要软件的安装包,并维持版本存档。现在 macOS 直接 Time Machine 救了我好多回了。  

  2. 没备份,那没辙了,要么网上去下载(可能有安全风险),要么等 DeDRM 能处理最新的 Kindle for Mac 存储的数据格式。  

Comments
Write a Comment