72

So, I needed the Semantics Engineering with PLT Redex textbook to complete a homework assignment this week. I needed it in a digital format because I'm going to POPL 2016 tomorrow and I can't have it delivered to me. Hence, I paid $50 for the eBook so that I could complete my homework.

The problem is that I'm using Arch Linux and for some reason Adobe Digital Editions doesn't work for me. During installation it said that it might not work on a 64-bit system. Anyway, I tried to find an alternative solution and I learned that I could read the book using Bluefire Reader on my phone.

And it worked. I can read the book, but I don't want to read the book on my little phone screen. So, I transferred the PDF file that Bluefire Reader downloaded to my laptop in hopes that I could open it using a simple PDF reader. Then I double click on the PDF file with a smirk on my face... and it asks me for a password.

I hope you can understand my frustration. All I want to do is read the book that I legally purchased on my laptop so that I can complete my homework and get on with my life. I tried using other eBook readers like Calibre but it requires that I convert my ACSM file to EPUB using Adobe Digital Editions (which doesn't work for me). What other alternatives do I have?

Aadit M Shah
  • 841
  • 1
  • 6
  • 8
  • You could boot to an android x86 usb and read it there, or install an android vm. – geek1011 Feb 02 '17 at 16:52
  • Another thing which probably would not work, but it is worth a try is https://archon-runtime.github.io/ or ARC welder from Google – geek1011 Feb 02 '17 at 16:53
  • 3
    You can't "convert" an ACSM to EPUB - the ACSM ist just a tiny XML file basically containing a download link for the (probably DRM-protected) file. The fine print also states you did not "purchase" the book, but only a license to read it on the specific platforms on which you can use your ADE login. The only way would to download it on a system on which your ADE works, and then maybe to strip the DRM protection. – jvb May 12 '17 at 07:08
  • @jvb That's not true, it can be done, relatively easily, but I don't think we are allowed to show the way here. – Quidam Sep 12 '17 at 08:28
  • 1
    @Quidam: I know it's theoretically possible that a conversion method could be used for illegal purposes, but that's not what this question is asking. I have a similar situation where I have purchased a book that I'd like to remove the encryption on. I, for one, would like to see the "relatively easy" method listed here as one of the answers. – hackerb9 Apr 14 '18 at 02:19

6 Answers6

47

I created a program called Knock to convert ACSM files to DRM-free EPUB files at the command line:

[user@computer:~]$ knock ./example.acsm
downloading the file from Adobe...
removing DRM from the file...
DRM-free EPUB file generated at ./example.epub

It doesn't use Adobe Digital Editions and it doesn't use Wine. It is completely free and open-source software for native Linux.

BentonEdmondson
  • 585
  • 5
  • 6
  • Worked for me. I had an issue opening it with the epub viewer provided by Calibre which rendered all in black pages, but It was visible in Okular. – Bogdan Oct 12 '21 at 17:56
  • Cool idea and name for the project. Would have been probably easier when the underlying libgourou lib was also python :) – Adam Nov 16 '21 at 02:37
  • It's a bit scary that you tell users to change sysctl without any information on the implications. Anyway, the setting was already enabled on my system, but I still get an error: `$ ./knock-1.1.0-alpha-x86_64-linux epub.acsm` -> `../run: 1: ./nix/store/ml4m2016xm278m8h4w1x3gaayq9kh3p2-startup: not found` `cat /proc/sys/kernel/unprivileged_userns_clone` -> `1` – thomasa88 Dec 28 '21 at 07:36
  • @thomasa88 the latest update removes this requirement. It is now just a normal, static ELF binary. Try it, it should work for you – BentonEdmondson Jun 05 '22 at 04:15
  • Wow, thank you Benton. That tool you wrote is a godsend! – jnns Nov 21 '22 at 19:23
  • 14
    I'm getting a 404 on Github. – Gerard H. Pille Dec 23 '22 at 11:36
  • 1
    As per [Arch's AUR](https://aur.archlinux.org/packages/knock-bin), you can download it from [archive.org](https://web.archive.org/web/20221016161709/https://github.com/BentonEdmondson/knock) – Sparhawk Jan 16 '23 at 02:03
  • @Sparhawk No you can't... none of the releases links work. What you can do is awkwardly download the entire repository one file at a time, manually, and then build it – Jack M Jan 19 '23 at 10:52
  • Instead you can try a fork like [this one](https://github.com/SamuelMarks/knock) and build it from there, although I actually haven't been able to get this software working anyway (it fails with DRM errors when I give it my ACSM) – Jack M Jan 19 '23 at 11:14
  • 3
    @JackM It builds, installs, and work fine for me through the AUR package. I also tried downloading the sources manually as per the [PKGBUILD](https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=knock-bin). This one works fine for me: https://web.archive.org/web/20221020182238mp_/https://github.com/BentonEdmondson/knock/releases/download/1.3.1/knock-1.3.1-x86_64-linux but yeah a fork is probably a better idea. – Sparhawk Jan 19 '23 at 14:22
38

The question is quite old, but people like myself still trip up on DRM locked ebooks. I assume you want to get out of the acsm a DRM-free epub. My instruction is for Ubuntu/Debian using apt-get, but the tools exist for other distros as well. I need a couple of tools in particular: the DeDRM tool for python2.7 and wine. On wine, we will install Adobe Digital Editions, python and pip for windows

  1. Install wine and winetricks because we will run Adobe Digital Editions in wine. By default ubuntu19.10 intalled wine 4 on my machine. Its easier to upgrade to wine5 first. ADE works so much better with wine5.

     sudo apt-get install winehq-stable winetricks winbind
    
  2. Install dotnet40

     winetricks dotnet40 
    
  3. Now download Adobe Digital Editions for Windows and install it:

     wine Downloads/ADE_4.5_Installer.exe 
    
  4. After installing and launching DigitalEditions you will need to authorize you computer or log in with your adobe id if you don`t have one create it for free.

  5. Open in ADE the acsm file. It will download the epub into your user documents folder (e.g., ~/Documents ) in sub dir "My\ Digital\ Editions". Note that the file is still DRM protected.

  6. Now its time to run DeDRM from python wine. Unzip DeDRM tool Version 6.x and locate the adobekey.py file.

  7. Install python, pip and pycryptodome:

     winetricks python27 # this should also install pip
     wine pip install pycryptodome
    
  8. Run adobekey.py from the dedrm you downloaded before with wine python:

     wine ~/.wine/drive_c/Python27/python.exe adobekey.py 
    
  9. You get the adobekey_1.der that you need to run the other script:

     python ineptepub.py adobekey_1.der ~/Path/to/drm_locked.epub your_drm_free_out.epub
    

    For pdfs use 'ineptpdf.py' inststead of 'ineptepub.py'. If you get an error in this step about python, adjust the term 'python', to 'python2' or 'python3'.

  10. You should get the output:

     Successfully decrypted drm_locked.epub as your_drm_free_out.epub
    

Done. Read your epub on any epub reader, e.g., okular, readera, lithium.

To be sure, this is quite a few steps. However, ADE is not a good reader, and the reading experience using wine even worse. I disagree that removing DRM is not legal; for personal use it's perfectly fine to remove DRM from your purchased ebooks. Publishers, of course, have an interest in reducing and controlling access to the material. EFF has some interesting articles on DMCA, DRM, and copyright. Have fun reading.

Adam
  • 489
  • 1
  • 4
  • 7
  • I stopped at step 5. successfully. Thanks for having been so precise in your details!!! This is the best answer to me!! – myselfhimself Mar 25 '20 at 17:02
  • 5
    As of April 10 2020 this solution still works! Legal or not, this is what I needed to do so that my 9 year old could read the ebooks provided by the public library on my e-Reader, instead of on a computer screen or smartphone. I think in this case, given current COVID-19 confinement orders, that bending rules like this is appropriate. The kids have to read! – NWMT Apr 10 '20 at 13:00
  • Thanks for the walkthrough! Two small comments: In step 4, you don't need to register an Adobe ID, you can just authorize the computer. In step 10, if you're dedrming a PDF, use `ineptpdf.py` instead. – Michaël May 21 '20 at 16:32
  • @Michaël, good point. I update that. – Adam May 22 '20 at 18:44
  • Thank you so much! You're a rockstar. One small comment, it seems you no longer need to run `winetricks pip` anymore since pip is already installed – KNejad Aug 29 '20 at 09:36
  • Hi @KNejad, thanks, I updated that. All the credits belong to the DeDRM developers, wine team and Microsoft ^^ (Its amazing that the dotnet 4.0 installation actually works in wine ;) ) – Adam Aug 30 '20 at 10:29
  • If you are using Arch Linux you can use this [script](https://github.com/apprenticeharper/DeDRM_tools/wiki/Installing-on-Arch-Linux-via-WINE) (at first run wine might ate all your ram) After install run ADE and authorizie your computer using Adobe ID. Then run script again with option `2` and it will generate `der` file. After that import `der` file into Calibre plugin and now you can convert epub to mobi without DRM. – piotrekkr Sep 24 '20 at 19:41
  • 1
    Wow, thanks to the original answer and the script above! It actually worked, but with one change. `adobekey.py` only works with Python3, so I replaced it with [this version from the Python2 branch](https://github.com/apprenticeharper/DeDRM_tools/blob/Python2/DeDRM_plugin/adobekey.py) from the DeDRM_tools GitHub. – Kyle Dec 05 '20 at 02:47
  • And for anyone in the future, I updated the Arch script so it will pull the correct Python2 file in the first place. – Kyle Dec 05 '20 at 03:12
  • Hi @kyle, makes sense to me, but I think the main work will work on the main branch. I think its worth to update that wine tutorial for python3 once DeDRM 7 is released. – Adam Dec 06 '20 at 10:32
  • 1
    Agreed, I'm just glad they left a clean break point from Python 2. PyCrypto will need to move to Python 3 as well. I'm watching DeDRM for releases to update the wiki or raise an issue when that times comes. – Kyle Dec 06 '20 at 17:05
  • With python3 (and DeDRM 7 on Calibre 5) you can just `pip install pycryptodome` and don't have to install that huge VCForPython27.msi. – unhammer Jan 27 '21 at 12:59
  • Hi @unhammer, do you mean sonething like: `winetricks python3 && wine python3.exe -m pip install pycryptodome` ? – Adam Jan 28 '21 at 21:14
  • @Adam sounds right, though I tried with in win10 in a vbox (since `wine ADE*exe` gave some error and I had a vbox handy), where I first typed `python` into cmd.exe and it popped up a "Store" for me to install python with, then I just did `pip install pycryptodome` in cmd.exe. ----------------------------------------------------------------------------------------------------------------------------------------- The hoops we jump through, I didn't even notice the book had DRM before I tried opening it :(( 0/5 will not buy again – unhammer Jan 30 '21 at 08:21
  • I guess with wine it will be bit complicated.. Some guys tried that on [stackexchange](https://unix.stackexchange.com/questions/598798/install-python-3-7-on-wine-5-0) too. When I try to install the python.exe with wine-6.0 using `sudo wine Downloads/python-3.9.1.exe` it fails with `[...] Detected Windows 7 [...] Windows 8.1 or later is required to continue installation`. It would be cool to simplify all that installation and run latest DeDRM. For the moment at least ADE4.5 runs stable with wine.. If anyone likes to write an answer how to do it with a windows VM, I will upvote that :) – Adam Jan 31 '21 at 10:46
  • 1
    i tried this in Wine 6 today and was baffled that DigitalEditions.exe kept crashing. Turned out I needed to `apt install winbind`. Perhaps that should be one of the steps now. – hackerb9 Feb 09 '21 at 04:05
  • 1
    hi @hackerb9, you are right. I had winbind installed before, I can reproducce that without it DigitalEditions will crash at startup. – Adam Feb 09 '21 at 19:37
  • Hi @Adam. Just a heads-up that I had to use DeDRM tool Version 6.x for step 9 and Version 7.x for step 10. I don't know why! – sanwablo Feb 26 '21 at 00:01
  • 1
    Hi @sawablo, that's because you probably perform step 9 with wine, while step 10 you can do without wine. – Adam Feb 27 '21 at 07:48
  • Good point, @Adam! Is wine necessary for step 9? Why? – sanwablo Feb 27 '21 at 16:36
  • I think adobekey.py will access data from ADE. The comments in the source code would suggest that: https://github.com/psyrendust/dedrm-ebook-tools/blob/master/DeDRM_Windows_Application/DeDRM_App/DeDRM_lib/lib/adobekey.py Actually steps 6-9 you only need to run the python script in an environment that has access to ADE. That`s why one user suggested to use a virtual machine instead of wine. – Adam Feb 28 '21 at 21:40
  • Could it work in a 64bit-box without enabling multiarch? `#wine Downloads/ADE_4.5_Installer.exe` answers "it looks like wine32 is missing, you should install it. multiarch needs to be enabled first" – Joce Mar 29 '21 at 16:22
  • Hi @Joce, I think it can be best answered here: https://forum.winehq.org/ – Adam Mar 31 '21 at 06:24
  • still working. I had use deDRM 6.x and find that VCForPython file on archive.org – LandoR May 17 '21 at 20:21
  • Hi @LandoR, i just updated the docs. You do not need VCforPython anymore if you install pycryptodome. Maybe thats why microsoft took vcforpython down. – Adam Aug 30 '21 at 18:33
  • This didn't work for me in Fall 2021 as in step `5`, Adobe Digital Editions 4.5.11 didn't produce an `epub` in the `My Digital Editions` directory, but instead a DRMd `pdf` file. – gene_wood Oct 14 '21 at 03:39
  • 1
    Hi @gene_wood, I think the format depends on what you have bought. In case of PDFs you can use in step 9 'ineptpdf.py' inststead of 'ineptepub.py' as written in the description above. You can later convert to Epub, there are many tools for that. Here is a guide for calibre: https://www.lifewire.com/convert-pdf-to-epub-4581324 – Adam Oct 24 '21 at 11:56
  • as DeDRM is not maintained, we can now (May 2023) use the fork https://github.com/noDRM/DeDRM_tools , which has python3 support and everything works well, install dependecies pycryptodome and lxml before use. – Kelvin May 06 '23 at 16:07
8

I will try to list all the solutions I've found.

First one. Tested solution: working, and very easy.

First install Wine on your Linux. Then download Adobe Digital editions. Link to download Adobe Digital editions

Then, install the file you dowloaded from Adobe (It was ADE_4.5_Installer.exe, for me), in the Wine virtual Window. If you don't know how to use wine, see this doc: How to install and use Wine on Linux

Second solution:

Install a virtual Windows on Linux. How to.

Third solution: If you failed to install virtual machine or open with Wine, and if you really need this program, install a dual boot on your computer Windows/Linux. How to dual boot Windows/linux on the same computer

4th solution, use a virtual Android phone (or a real one) and install the Adobe Digital editions for Android. Virtual smartphone software, Memu

You can also try to emulate MacOs, or iOS.

There are solutions to remove the DRM, and so convert the acsm into epub, but there are no legal, so I don't think I'm allowed to write them.

Quidam
  • 243
  • 3
  • 15
  • 4
    As all listed "solutions" require installing the ADE software (on different operating systems), and *downloading* the ePub via ADE with an operational ADE user account... how come you are claiming my comment above to be "not true"? – jvb Sep 12 '17 at 11:13
  • 3
    You seem very susceptible. I was saying "no" to "you can't convert ASCM". I should have say "I disagree" instead of "untrue", but English is not my language. Anyway, it doesn't desserve a downvote from you. Why people seek revenge here rather than peace and communication? It's only replying to a comment to tell my opinion, I didn't kill you nor downvoted you. – Quidam Sep 18 '17 at 08:47
  • "The problem is that I'm using Arch Linux and for some reason Adobe Digital Editions doesn't work for me. During installation it said that it might not work on a 64-bit system." Your solution does not work for the user, as they already said. – Adriano Varoli Piazza Jun 01 '18 at 17:55
5

It's now possible to do this 100% within Linux, without running any emulators or Windows software, even though Adobe don't care about Linux support.

Knock is no longer maintained, however apparently it was just a wrapper around libgourou which is still maintained.

Installing libgourou (on Arch Linux it can be found in the AUR) allows you to download the ACSM file to a PDF or ePub:

# Use your username and password from https://account.adobe.com
# This registers your device so only needs to be done once.
adept_activate -u user -p pass

# Download the ACSM file
acsmdownloader -f myfile.acsm

The downloaded file requires a password to open it, but if you need to open it in a normal viewing application, you can also remove the password:

adept_remove file.pdf

This process allows Linux users to access the same materials as their Windows and Mac friends, even without support from Adobe.

Malvineous
  • 2,501
  • 2
  • 26
  • 35
3

.acsm can only be used with Adobe Digital Editions and stands for Adobe Content Server Manager.

For more information about Adobe Digital Editions please see http://www.adobe.com/products/digitaleditions/faq/

Side note (may not be generally applicable to Digital Editions users): Stated in the agreement (may be of concern in making a program to access .acsm ) for Adobe Content Server section 11.1 you agree not to:

(d) obtain or attempt to obtain any materials or Information through any means > not intentionally made available through the Services;

Interpret this as you will, I will not give you illegal advice.

ALXvirtual
  • 49
  • 6
2

I have also used release of 'knock' downloaded from Web Archive (https://web.archive.org/web/20221020182238mp_/https://github.com/BentonEdmondson/knock/releases/download/1.3.1/knock-1.3.1-x86_64-linux). Worked very well - thank you @BentonEdmontson !

  • I got some error from knock, don't do this, it's not on github so there's nobody to ask about it, but my book has already been checked out from Adobe and downloaded – iopq Mar 27 '23 at 05:20
  • YMMV, as they say - for me it did work, and it was super simple. I will use it next time for sure :) – Łukasz Wiecheć Mar 28 '23 at 08:08