January 30, 2021 Stardate: 74547.5
Important ~ These instructions are intended to be used with books that you legally purchased from B&N and are trying to backup. Don’t get me in trouble!
These instructions are adopted from Aric Renzo at https://www.aricrenzo.com/2019-12-13-Liberate-Your-Nook-Ebooks/ and are intended to fill in the gaps and/or clarify some steps for total noobs like myself. I am not smart enough to figure these out and all thanks and appreciation go to him.
I’ve rearranged the order of operations from Aric to put the most difficult (IMO) steps in the beginning. This way, if you fail there is no sense in doing the other easier steps.
I usually just look at the last 4-5 digits to verify.
You can follow the installation instructions here — https://developer.android.com/studio/install#Linux.
Copy the .tar.gz file into
Remember you will need root access to be messing around in
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386
How do you know if you are running 64-bit? Type
uname -i and if you see
x86-64 you are.
Let’s fire it up! Within
Next you need a virtual device. I am a total idiot in this area. I have no experience with Android development. But I can tell you that you must have root-access on the device you create, and in order to allow root access you must not use a Google Play image. So what does that mean? That means do not use an image that has the Google Play icon, like this (A).
You can create your own image as others have done, but I just used the
Pixel_3a_API_30_x86 that was present when I started AVD Manager.
Warning ~ You a need a virtual device that is not a Google Play image so that you can access root. This is critical.
A phone will appear and after a couple seconds it will “boot up”. Here’s mine:
If you don’t have root access you did something wrong and there is no point in continuing, so let’s check now.
Open a terminal screen. When you install Android Studio it created an “Android” directory in your home folder. Go there and browser in
You should see a command named
./adb root and you should see something like
restarting adbd as root. If you do not, you are screwed. Go back and figure out what you did wrong. The primary source is that whole “Not a Google Play image thing”.
Now we can get inside the virtual device,
./adb shell. Your cursor should be a pound “#” indicating you are root.
If you are not root, you can’t go into all the necessary directory folders.
Keep this terminal around, we’ll need it later.
In your virtual device, open the Chrome browser. Just navigate with your mouse.
Copy this url
https://apkpure.com/nook-read-ebooks-magazines/bn.ereader/versions and paste into the Chrome browser.
V22.214.171.124so you might as well do the same.
It will ask you to log-in with your username/password. I didn’t take any screenshots of these steps, but it is typical app setup junk.
Then it may ask for credit card information if you don’t already have it setup in your B&N account —like I did not. you can skip this section by scrolling to the bottom of the screen and hitting “Skip”.
Give it a minute and it will download your library. Somewhere it said you can also pull-up on the screen to make it refresh. Here’s what mine looked like. It included the purchased book (upper left) and 5 other free books that I didn’t ask for.
.epub. I instructions on the web about selecting
Download to SD Cardin the settings and such, but I didn’t have to do that.
Go back to the terminal screen where you opened the shell.
Now we need to find that book file we just downloaded. I noticed that the B&N books appear to be in the format
123456789_epub.Vx.epub. That is, a bunch of numbers +\ _epub+a version number+.epub extension.
I found the downloaded book at `/data/data/bn.ereader/files/B&N Downloads/Books/
cchashdata.db. Search for it inside the ADB shell but I would bet it’s in the same directory as where you found the file =
./adb pull /data/data/bn.ereader/databases/cchashdata.db
select hash from cc_hash_data;
To exit the ADB shell press Crtl-D
Note that this hashkey is good for all books purchased at B&N by that account.
sudo apt update && sudo apt install -y libfontconfig libgl1-mesa-glx bash sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin
Install via Software Center
Install via apt-get
sudo apt-get update sudo apt-get install calibre
Open browser and go to DeDRM github page at https://github.com/apprenticeharper/DeDRM_tools/releases
Download the plugin .zip package. I chose to download the latest pre-release at the time (v7.0.3). Just click the zip link in the “Assets” subsection and save.
Click the Preference icon in the tool bar
Scroll down to Advanced and click Plugins
Click “Load plugin from file”
DeDRM_plugin.zip zip package you saved. Click yes and ok to everything.
Back in the Plugins dialog, select “File type” and select “DeDRM”, click the button “Customize plugin”
Select “Barnes and Noble ebooks”
Select “Import Existing Keyfiles”
Browse and select the keyfile you saved, something like
At this point, you can add your book that you downloaded from the virtual device. Remember in my example it was
9780133489293_epub.v2.epub. WIihin Calibre select “Add books”
Browse to and select the epub. Select OK
If you double-click the book to open it and get an error message stating you have DRM then something went wrong.
The goal of this post was to add clarifications to Aric Renzo’s excellent instructions based on what worked for me. These instructions are not for Windows but could probably be adjusted to make work. I’m positive there are other methods of making this work. If there are any mistakes to these instructions feel free to hit me up on twitter.
This is an automated list of software versions used during the writing of this article.
Software Version Ubuntu 20.04.1 Calibre 5.10.1 Android Studio 4.1.2 B&N Reader App .apk 126.96.36.199 DeDRM Calibre Plugin 5.10.1