Fixing shelving for books on SD Cards. - Nook Touch General

A long-standing problem with B&N's library has been the failure for books stored on the SD card to persist when shelving them. If the sdcard is removed, or the Nook restarted, then, even though the books haven't actually been removed or modified, they will not show up again under the shelves you created.
Putting aside the fact that shelving on the N2E is a ridiculous process that requires you to alphabetically run through every single one of the books on your device, this is really annoying for someone wishing to avoid being limited by the size of internal storage but who doesn't want to switch library programs and still want to make use of the shelving feature.
I saw there were progress on the infamous 'two sets of highlights and notes' bug, here:
http://forum.xda-developers.com/showthread.php?t=1467429
so prima facie I'm going to assume that this may be a similar problem, and I'm gonna be looking at that. Any advice or opinions to the contrary would be welcome.

LastSilmaril said:
A long-standing problem with B&N's library has been the failure for books stored on the SD card to persist when shelving them.
Click to expand...
Click to collapse
There is a special term (among many) introduced by Microsoft : BugOrFeature (one word).
Lots of companies adopted it since…

ApokrifX said:
There is a special term (among many) introduced by Microsoft : BugOrFeature (one word).
Lots of companies adopted it since…
Click to expand...
Click to collapse
LOL. Indeed!

I agree that the existing shelving is so clumsy that it's unusable. So rather than try to fix bugs in it, IMO it would be more productive to develop a separate, PC-based way to create and maintain shelves on the NST, for example using a Calibre plug-in.
You would have to keep your whole library in Calibre, including B&N materials. Then you could specify which fields of Calibre metadata would be used to construct shelf names, and the plug-in would export the data in a form that could be pushed onto the NST. I'm not sure how to match the items between the NST library and the Calibre library. We would need to look at the NST's version of the library, including its internal unique id in the library_items table, and match that with the Calibre version. That process would have to be easy and repeatable, because I'm reasonably sure that the NST rebuilds its library each time you unmount and remount the sd card (if not more often), and it probably gives each item a new id.
Some progress was made on Automating shelving, where jalfrock revealed the database structures and a method for modifying them via noogie. I think it would be possible to build on that work and very probably to make it more automated by using CWM Recovery rather than noogie to transfer data. Or it might be just as simple to use noogie.
Comments?

Sun_Cat said:
I agree that the existing shelving is so clumsy that it's unusable. So rather than try to fix bugs in it, IMO it would be more productive to develop a separate, PC-based way to create and maintain shelves on the NST, for example using a Calibre plug-in.
You would have to keep your whole library in Calibre, including B&N materials. Then you could specify which fields of Calibre metadata would be used to construct shelf names, and the plug-in would export the data in a form that could be pushed onto the NST. I'm not sure how to match the items between the NST library and the Calibre library. We would need to look at the NST's version of the library, including its internal unique id in the library_items table, and match that with the Calibre version. That process would have to be easy and repeatable, because I'm reasonably sure that the NST rebuilds its library each time you unmount and remount the sd card (if not more often), and it probably gives each item a new id.
Click to expand...
Click to collapse
I was trying to maintain my library in Calibre for a couple weeks, than gave up...
I’m not a book worm, definitely...
Sun_Cat said:
Some progress was made on Automating shelving, where jalfrock revealed the database structures and a method for modifying them via noogie. I think it would be possible to build on that work and very probably to make it more automated by using CWM Recovery rather than noogie to transfer data. Or it might be just as simple to use noogie.
Click to expand...
Click to collapse
Shelves are kept in database.
To update it, you need either:
have sqlite3 on nook and use adb shell + sql scripts
do the same via noogie script automation
via adb: pull database to PC, modify using sqlite3 on PC, push them back.
All above uses database field for auto-shelving only.
If we want to use a book metadata field not presented in database, we need to write an app or script to do it. Not a big deal, except I suck @ UI design (and implementation too).
AFAIR, the SQL script to shelve based on author was posted already.
Question to Renate:
Do you know an [easy] way to pull a book metadata field using android CLI?

The MediaScanner crawler on the Nook doesn't impress me.
It's never found any MP3s. Maybe other people have had other results.
If you borrow books from the library, the return date might be of interest to you.
There is no place in the database and the crawler does not read it.
The same goes for language.
I keep track of my own modest library in my own database using my own crawler,
the results being displayed on my own Library.apk replacement.
I've never actually looked at the stock bookshelves so I have no idea how they work.
Um, what was the question? Extracting metadata?

Renate NST said:
The MediaScanner crawler on the Nook doesn't impress me.
It's never found any MP3s. Maybe other people have had other results.
If you borrow books from the library, the return date might be of interest to you.
There is no place in the database and the crawler does not read it.
The same goes for language.
I keep track of my own modest library in my own database using my own crawler,
the results being displayed on my own Library.apk replacement.
I've never actually looked at the stock bookshelves so I have no idea how they work.
Click to expand...
Click to collapse
Good for you!
Renate NST said:
Um, what was the question? Extracting metadata?
Click to expand...
Click to collapse
Basically, we need unzip a file (content.opf) from .epub and do xml parsing from CLI.

ApokrifX said:
If we want to use a book metadata field not presented in database, we need to write an app or script to do it. Not a big deal, except I suck @ UI design (and implementation too).
Click to expand...
Click to collapse
Right. That's why I suggested a Calibre plug-in, since Calibre already has fields for lots more metadata than the Nook library.
ApokrifX said:
AFAIR, the SQL script to shelve based on author was posted already.
Click to expand...
Click to collapse
See the Automated Shelving link in my previous post.

All this stuff is getting kind of complicated.
It's a question of how many data sources and how you'll resolve them.
You could check in all your books in Calibre (which I've never actually seen),
then exports its database to the Nook so that it will have all the info and shelves.
If you start checking in books directly in your Nook, how will that work?

Sun_Cat said:
Right. That's why I suggested a Calibre plug-in, since Calibre already has fields for lots more metadata than the Nook library.
Click to expand...
Click to collapse
Might be easier to generate shelving [update] script from Calibre plug-in and execute manually than?

Renate NST said:
All this stuff is getting kind of complicated.
It's a question of how many data sources and how you'll resolve them.
You could check in all your books in Calibre (which I've never actually seen),
then exports its database to the Nook so that it will have all the info and shelves.
If you start checking in books directly in your Nook, how will that work?
Click to expand...
Click to collapse
IDK. As I posted earlier, I think the trickiest part will be to match up the two libraries (the NST's and Calibre's) so Calibre knows the unique id for each book in the NST library database. I'm not sure if that's even possible. AFAIK, each time you use Calibre to copy books to the NST, there's no feedback about how the NST is storing them.
Renate, does your custom library app have additional metadata fields compared to stock? If so, then the approach in Automating shelving would work.

Sun_Cat said:
IDK. As I posted earlier, I think the trickiest part will be to match up the two libraries (the NST's and Calibre's) so Calibre knows the unique id for each book in the NST library database. I'm not sure if that's even possible. AFAIK, each time you use Calibre to copy books to the NST, there's no feedback about how the NST is storing them.
Renate, does your custom library app have additional metadata fields compared to stock? If so, then the approach in Automating shelving would work.
Click to expand...
Click to collapse
Calibre does store its own database on the reader so that it know whats already on the device. So matching book etc should not be a problem as long as the book has originally been sent from calibre. If you have stored all your books in calibre and have all the correct metadata. You would be better of using folders rather than catalogs.

Dopedangel said:
Calibre does store its own database on the reader so that it know whats already on the device. So matching book etc should not be a problem as long as the book has originally been sent from calibre.
Click to expand...
Click to collapse
That's a good point, but I'm not sure that's the right conclusion. AFAIK Calibre can only read and write the epub files and its own metadata file. It has no way of knowing the Nook internal library unique id, which is required for the shelves database.
Dopedangel said:
If you have stored all your books in calibre and have all the correct metadata. You would be better of using folders rather than catalogs.
Click to expand...
Click to collapse
You mean telling Calibre how to create the folder structure on the Nook rather than trying to use shelves? That's easy to do without any hacking, but there are two deficiencies compared to shelves:
Each book can be in only one folder. (With shelves it can be on multiple shelves.)
You would have to use the "My Files / Memory Card" part of the native library interface and then navigate the folder structure, which is much clumsier than selecting a shelf.
Or did I misunderstand your suggestion?

Just a thought:
We do have book author in nook DB, but not the series.
We can certainly pool series from book metadata, but that’s PiA.
What we can do is to create folders on nook for series and keep books there.
We can use book folder to shelve by series than.
If a book belongs to more than one series, we can encode it into folder name (horror|chldren) as well
Basically, if doesn’t have to be series, but any attribute you want to shelve on, not included in nook db.
Naturally, we can create shelves on more them one attribute (by author, by series. etc)
Similarly, folder name can have more than one attribute (but I’d prefer to keep it simple)

Or, consider the reader broken and use a different app.
Fbreader sorts books into 36 bins (a-z + 0-9) by first letter of the title or by author name by default.
For me, that's already a very nice start on shelving.
fbreader also reads tags inserted by Calibre if you like.
In order to fully use it on a nook device, you need your BN content to live in the same place as your sideloaded content.
I set that up by linking /data/media to /media or to /sdcard.
/sdcard is handy because it doesnt' require repartitioning to contain a useful amount of space.
I use the BN reader app mostly for magazines, and fbreader for most of my books. Together with fbsync (for synicing across all devices) it works really well.

roustabout said:
Fbreader sorts books into 36 bins (a-z + 0-9) by first letter of the title or by author name by default.
For me, that's already a very nice start on shelving.
fbreader also reads tags inserted by Calibre if you like.
Click to expand...
Click to collapse
Sounds nice, but I would greatly prefer a solution that doesn't require rooting, or at least not rooting with gapps. I had my NST rooted for a while, and I reverted to stock after getting annoyed that most of the apps that interested me didn't work very well and that it was doing so much invisibly behind the scenes.
I don't love the native reader, but I like it well enough that I would rather see if it's possible to transcend some of its limitations.

Sun_Cat said:
That's a good point, but I'm not sure that's the right conclusion. AFAIK Calibre can only read and write the epub files and its own metadata file. It has no way of knowing the Nook internal library unique id, which is required for the shelves database.
You mean telling Calibre how to create the folder structure on the Nook rather than trying to use shelves? That's easy to do without any hacking, but there are two deficiencies compared to shelves:
Each book can be in only one folder. (With shelves it can be on multiple shelves.)
You would have to use the "My Files / Memory Card" part of the native library interface and then navigate the folder structure, which is much clumsier than selecting a shelf.
Or did I misunderstand your suggestion?
Click to expand...
Click to collapse
Well I rooted and installed coolreader on my nook in the first few days after I got it. So never used the nook reader app much. I use coolreader and it built in file explorer. I don't think you need to use google apps to use other apps just root and adb install coolreader although I persoanlly prefer to use google market as its easily allows to get the updated apps and I can read my email etc
I use calibre to send books this way I can find books by genre if I want
Genre\Sub Genre\First Letter\Author\Series\Title.epub
As coolreader scans all the books and makes a database I can also find books by series, Author or Title

LOL. So while I'm glad I spawned this discussion here, I fear we've become sidetracked a bit into lectury non-solutions ('just ditch the reader!' 'use a calibre hack!'). What can I say? I'm stubborn, and want to be able to fix the official, nice-looking interface, flaws and all...even if I don't ultimately end up using it. It's the principle!
In the meantime, there was one link to 'autoshelving' that I think I'll be checking out once I finally make the time to start this project.

Dopedangel said:
I use calibre to send books this way I can find books by genre if I want
Genre\Sub Genre\First Letter\Author\Series\Title.epub
As coolreader scans all the books and makes a database I can also find books by series, Author or Title
Click to expand...
Click to collapse
That's what I'd call "101% organized folder structure"!
Piece of cake to parse and put Title.epub into 5 shelves:
Genre\Sub Genre\First Letter\Author\Series

ApokrifX said:
Piece of cake to parse and put Title.epub into 5 shelves:
Genre\Sub Genre\First Letter\Author\Series
Click to expand...
Click to collapse
Guys,
Where does calibre keeps (Genre, Sub Genre, Series, Series index) fields?
I’ve checked few epubs content.opf
All I see (relevant):
Code:
<metadata…>
<meta name="calibre:rating" content="0.00"/>
<meta name="calibre:series_index" content="1"/>
<dc:contributor opf:role="bkp">calibre (0.6.52) [http://calibre-ebook.com]</dc:contributor>
<dc:subject>Science fiction</dc:subject>
</metadata>
series_index is 1 always for every book in series.
Is there any standard or everyone follows its own rules?
I wrote early, it’s easy to parse files path like Genre\Sub Genre\First Letter\Author\Series\Title.epub
And it’s easy to unzip and parse content.opf too, but without standard, we’d need to keep unique setting for a user, providing every user book comply with the settings...

Related

Rooted Nook Touch: Calibre friendly?

I rooted my N2E, and played around with it a bit, using TN. Then I restored my unrooted backup, because I couldn't seem to find a convenient way to do the one thing I want to do.
I want to wirelessly browse my calibre library, and download books from it to my nook.
I don't care what method is used. Calibre's content server, dropbox, whatever. I just want a convenient way to sideload books from calibre onto my nook without plugging it in.
But I couldn't find a way that would be simpler than just plugging it in and using Calibre's 'send to device' command, so I unrooted and went back to my backup.
Did I miss something?
On my Nook color with CM7 I use the following setup:
- I set up Calibre to mount a folder as a device, pointing to a dropbox synced folder, so that "send to device" sends epubs to dropbox folder.
- I also use calibre2opds to create a dropbox accessible library to browse from any device (it creates also an HTML browsable version).
- on NookColor I use FolderSyncLite to automatically sync the dropbox folder with a folder on sdcard (eg Nook's MyDocuments).
Then I can use sync feature of Mantano Reader to keep its library in sync with dropbox calibre device or simply use Nook which doesn't need an explicit import to use books in its folder.
I plan to replicate this setup on my Nook Touch, which should arrive today
hello,
I'm using Samba server on nook. Then on Windows I mapped nook as a drive and set up calibre to sync with My Files folder. Works like a charm.
PS I'm new around here so I can not post links. Search market for com.funkyfresh.samba
I use a combination of two methods to sync my books with Calibre and reading devices:
Calibre Library in Dropbox -
Syncs between Computers, can download any Calibre book via Dropbox.
I use this for books I don't want to carry around all the time, school books, manuals, etc.
There are multiple apps which will sync specific folders in Dropbox with specific folders on an android device. One of these could work for automatic syncing.
Wired Connection -
I use this for a large updates of my devices library since it's faster than Dropbox.
When I want to immediately sync a new book to read that I've just obtained.
Oooh, goody
GabrialDestruir said:
I use a combination of two methods to sync my books with Calibre and reading devices:
Calibre Library in Dropbox -
Syncs between Computers, can download any Calibre book via Dropbox.
I use this for books I don't want to carry around all the time, school books, manuals, etc.
There are multiple apps which will sync specific folders in Dropbox with specific folders on an android device. One of these could work for automatic syncing.
Wired Connection -
I use this for a large updates of my devices library since it's faster than Dropbox.
When I want to immediately sync a new book to read that I've just obtained.
Click to expand...
Click to collapse
Gives me a good reason to root again. I will try it out, but not until after I sort out the stock 1.1.0 WiFi issues I'm having.
met67 said:
On my Nook color with CM7 I use the following setup:
- I set up Calibre to mount a folder as a device, pointing to a dropbox synced folder, so that "send to device" sends epubs to dropbox folder.
- I also use calibre2opds to create a dropbox accessible library to browse from any device (it creates also an HTML browsable version).
- on NookColor I use FolderSyncLite to automatically sync the dropbox folder with a folder on sdcard (eg Nook's MyDocuments).
Then I can use sync feature of Mantano Reader to keep its library in sync with dropbox calibre device or simply use Nook which doesn't need an explicit import to use books in its folder.
I plan to replicate this setup on my Nook Touch, which should arrive today
Click to expand...
Click to collapse
I know this is an old thread but just want to say thanks for spelling this out. some day I will try and mirror this set-up and may have questions
Do Aldiko and Moon+'s ability to add an OPDS catalog not work on a rooted NST?
I have a server in my basement hosting my library. I use CalibretoOPDS to generate both OPDS and HTML catalogs. It's a 'dead' list, in the sense that there's no decent searching, but I have access to it basically anywhere. I can expose it publicly as I'm using Apache and can easily password protect that directory.
There's a Calibre PHP app, that I may move to, just so I can search my library before downloading.
I also use FolderSync to move audiobooks, music, and pictures to my portable devices. I guess I could add epubs to the list if the above doesn't work.
On my server, I have a root folder for each mobile device, then subfolders for audiobooks, music, etc. I have parallel folders on my mobile devices. I run FolderSync on each mobile devices with 2 'folder pairs' for each matching pair of folders. One is SMB, runs locally every night, the other is SFTP, and runs only on demand.
To move something to a mobile device, I just copy it to the appropriate folder on my server, and everything happens 'automatically' - unless I'm on the road, at which point i have to trigger the synchronization.
BTW, for SFTP on windows, I'm having best luck with Sysax 'Multi Server'. Not open source, but you can get a personal use license for free. (As a side note, Aldiko, and maybe Moon+, allow me to specify a port, so I could, but don't currently, set this up to use a commonly-not-blocked port, like 443. I'll do this if I get blocked. FTP is often blocked, also BTW)
I do all this now for a smartphone and a tablet. I recently decided I wanted a specific-purpose reader with e-ink. The NST jumped right out as the right choice. I'm figuring I'll root mine as soon as I get it and so these same things with it, but I'm just planning to use it as a reader (well and maybe limited browsing as I sometimes do that with my library before downloading via OPDS).
Hoping this is more helpful than confusing.
Calibre settings
this seems to be the best place for this question.
I changed the settings in Calibre as to the sort title appending with a letter so I can have books of a certain type listed at the back-end of the Nook Library but they do not sort that way so I have to put the letter in the actual title does anyone know of a better way to sort books using the following set-up?
Nook touch rooted cynogenmod7
Nook Library
Using Calibre to load books with the generic android device (could not make the nook plugin work) would not send to the right place on the Nook
Thanks for any resonses
Droidatar said:
Nook touch rooted cynogenmod7
Click to expand...
Click to collapse
Are you sure you have a Nook Touch?
Googie2149 said:
Are you sure you have a Nook Touch?
Click to expand...
Click to collapse
Sorry I have the nook color
I have noticed with Calibre it actualy brought my B&N books into the Calibre library, some I can view some I cant. I believe the books I could view were the magazines.
bobkoure said:
[...] I do all this now for a smartphone and a tablet. I recently decided I wanted a specific-purpose reader with e-ink. The NST jumped right out as the right choice. I'm figuring I'll root mine as soon as I get it and so these same things with it, but I'm just planning to use it as a reader (well and maybe limited browsing as I sometimes do that with my library before downloading via OPDS).
Click to expand...
Click to collapse
Your plan is a good one. I have done similar. The biggest problem has been that the NST only runs Android 2.1 eclair, and many of my favorite apps seem to require 2.2 froyo or above. I've had to search around for equivalents in some cases.
Dropsync works very well for file synchronization, within the limitations of Dropbox.
---------- Post added at 10:21 AM ---------- Previous post was at 10:17 AM ----------
tonyx3 said:
[...] I don't care what method is used. Calibre's content server, dropbox, whatever. I just want a convenient way to sideload books from calibre onto my nook without plugging it in.
Click to expand...
Click to collapse
Dropbox + Dropsync works very well for this. I have calibre news feeds set up to download several newspapers and web sites on a schedule. I have a cron job on my home linux server set to grab select titles and move them into dropbox folders (e.g. magazines, newspapers). Dropbox on the server takes care of synchronizing them to the Dropbox cloud.
Each morning, I fire up my NST, enable wireless, and launch Dropsync to synchronize those specific folders.
You could, of course, just synchronize the entire calibre folder, but I like sorting things and limiting what comes down to the latest couple of days worth, so the cron job periodically deletes old stuff from the dropbox folders.
The other nice thing about dropsync is that it is two way. Files I delete on one device (I also have a NOOK color) get deleted off the dropbox folders, then off the other device when I next sync.
I'm using the stock reader, so no syncing of reading positions or any of that nice stuff.
Looks like I might be OK.
FolderSync supports "2.1 and up".
Tasker, "1.6 and up".
Aldiko and Aldiko Sync "2.1 and up"
Moon+ reader "1.6 and up"
EsFileExplorer "1.6 and up" (with a separate version for Cupcake
Root Explorer "1.1 and up" (!)
Dolphin HD "2.01 and up"
Looks like all apps I was thinking of using support 2.1. They may be utterly bad on an e-ink screen, though.
BTW, is that why you're using the stock reader?
bobkoure said:
Looks like I might be OK.
[...]
Tasker, "1.6 and up".
Click to expand...
Click to collapse
I'm using Tasker to only fire up wifi when specific apps run. It works fine, but it is hard to determine whether an app is selected or not in the list. It takes some trial and error.
[...] Root Explorer "1.1 and up" (!)
Click to expand...
Click to collapse
RE works just fine.
BTW, is that why you're using the stock reader?
Click to expand...
Click to collapse
I didn't keep notes, but I recall that there were some ebooks that didn't format as nicely with other readers, or options that were difficult to spot on the e-ink screen. It's mostly just a personal choice thing, though. The other readers do work well.

Nook SImple Touch, Shelves and Calibre

Hi all,
my books are organised in some categories in Calibre - just an extra calibre column.
Now I'd like to transfer this information into my Nook simple touch Shelf: is there a way to do that automaticaly ?
As far as I know ... No. The default software on the nook doesn't do anything with metadata stores in calibre. You can root your Nook and install custom software. Problem (for me) is that replacing the default library app also changes the reader. There are some alternatives on xda, but imo none are as good as the default reader so I've given up on tags. I'll just access the metadata in my girlfriends head. "Babe, what's the sequel to ..." She has it right most of the times.
If there is a standard for metadata in content.opf for series and sequence this could all be worked out easily.
Does Calibre modify EPUBs to put that stuff in?
Renate NST said:
If there is a standard for metadata in content.opf for series and sequence this could all be worked out easily.
Does Calibre modify EPUBs to put that stuff in?
Click to expand...
Click to collapse
I think so. The file size on my nook is the same as on my PC, but date is different (could be changed by transferring it to my Nook with Calibre). A simple compare by fc.exe between the files implies they're different too. Haven't checked with beyond compare or anything like that.
On the computer: Calibre creates a metadata.opf and cover.jpg next to the .epub. There's also a metadata.db and a metadata.opf in the root of the folder with all my epubs.
On the Nook: driveinfo.calibre and metadata.calibre in the root of both drives. In MyFiles\Books\<author> there are only epubs.
I think all the metadata is stored in metadata.db and that the covers are stores in .docthumbs.
There's no content.opf on my Nook (that is, root explorer can't find it).
I think the real problem is that BN does not expect to see .OPF files, and expects the epub to have metadata built in; although it's possible, with Calibre, to suppress OPF creation, BN's metadata parsers don't read the metadata and use it for any visible purpose.
"Problem (for me) is that replacing the default library app also changes the reader. "
On my rooted NST, NSTG I don't replace the default library app. I just make sure to install Button Savior, and bind its "Home" action to my Android launcher - I leave the BN home action intact.
This lets me use the BN reader for those things it's better at (magazines on the NST, for instance) and my own choice of reader (fbreader) for things it's better at - sideloaded epubs run through Calibre.
fbreader reads the tagging, and it also creates a very slick bookshelf workaround - if you view by author or by title, your books are binned for you with one bin per letter of the alphabet or number, for a total of 36 bins without doing any work at all on metadata
The library app and the reader app can be separate. That's not a problem.
Having metadata separate from the EPUB makes things more complicated.
It would be nice if all the metadata were actually in the EPUB.
(EPUBs are only ZIP files. You can unzip them to see the contents.)
My (simplistic) library app is in the signature.
Renate NST said:
The library app and the reader app can be separate. That's not a problem.
Having metadata separate from the EPUB makes things more complicated.
It would be nice if all the metadata were actually in the EPUB.
(EPUBs are only ZIP files. You can unzip them to see the contents.)
My (simplistic) library app is in the signature.
Click to expand...
Click to collapse
It is. I've extracted one and the calibre metadata is stored in content.opf. Does this open possibilities?
rtoussaint said:
Does this open possibilities?
Click to expand...
Click to collapse
Yes, it helps if things are standardized and that Calibre writes it back to the EPUB.
Is there a standard or a custom property in Caliber for series and sequence in series?
How does that appear in content.opf?
Since I get my own metadata right from the EPUB I can do whatever I want.
I was checking the Dublin Core to see what was available.
Renate NST said:
Yes, it helps if things are standardized and that Calibre writes it back to the EPUB.
Is there a standard or a custom property in Caliber for series and sequence in series?
How does that appear in content.opf?
Since I get my own metadata right from the EPUB I can do whatever I want.
I was checking the Dublin Core to see what was available.
Click to expand...
Click to collapse
I prefer to use folders with coolreader but just to help you guys here these are the tags that calibre puts in the content.opf btw IRC coolreader & fbreader both support calibre series data and both are opensource so you can find out how they go about it.
<meta name="calibre:series_index" content="3.0"/>
<meta name="calibre:series" content="Walker Papers"/>
Yes, I just found calibre:series and calibre:series_index.
Unfortunately, Calibre doesn't seem to write this back to the original EPUB.
It only appears in the separate metadata.opf file
Is there a special operation to write it back?
If you transfer files from within Calibre, the content.opf is included in the .epub that's on the Nook.
Another useful one would be genre, stored as: <dc:subject>Thriller</dc:subject>
<dc:subject> tends to be a wasteland.
It seems that the book coders put a zillion things in there.
Ok, here's my little library app with support for series.
I don't really have a lot of series.
Download in signature.
does this apk read the sd card?
Sent from my Slider SL101 using Tapatalk 2
---------- Post added at 04:22 PM ---------- Previous post was at 04:21 PM ----------
Renate NST said:
Ok, here's my little library app with support for series.
I don't really have a lot of series.
Download in signature.
Click to expand...
Click to collapse
does your apk read the sd card?
Sent from my Slider SL101 using Tapatalk 2
Renate NST said:
Ok, here's my little library app with support for series.
I don't really have a lot of series.
Click to expand...
Click to collapse
Oops...
Do you mean my all doesn't work at all? :crying:
My app scans specific directories.
Maybe I should make it configurable.
Code:
/system/media/books
/data/media/B&N Downloads/Books
/media/Books
/media/My Files/Books
/media/Digital Editions
/sdcard/Books
/sdcard/My Files/Books
If your books are not scanned, please tell me exactly what path they are at.
Renate NST said:
My app scans specific directories.
Maybe I should make it configurable.
Code:
/system/media/books
/data/media/B&N Downloads/Books
/media/Books
/media/My Files/Books
/media/Digital Editions
/sdcard/Books
/sdcard/My Files/Books
If your books are not scanned, please tell me exactly what path they are at.
Click to expand...
Click to collapse
My files are locAted /sdcard/my files/ books/ in multiple folders
lahegry said:
My files are locAted /sdcard/my files/ books/ in multiple folders
Click to expand...
Click to collapse
Oh, it doesn't do a recursive scan. I'll have to add that.
Renate NST said:
Oh, it doesn't do a recursive scan. I'll have to add that.
Click to expand...
Click to collapse
Thanks, that's how calibre puts it on
The card
Ok, this should get all your directories, download in signature.
I'll fix the search later to be async with progress.

[Q] Searching for epubs yields less than half

I have an problem with searching for books on my SD card. I rooted my NST with NookManager a few months ago and am most pleased, especially with the wonderful Aardict app. Searching for epub books from the original Nook Library screen still works fine.
But I recently started searching for epub books using the File Manager supplied as part of the rooting process. Every search I do seems to find somewhere between none and less than half the sought-for books, no matter what folder I select. My books are stored on the SD card in an elaborate file structure, up to ten levels deep.
Has anyone else seen this discrepancy? Is there an explanation?
Joydeck said:
My books are stored on the SD card in an elaborate file structure, up to ten levels deep.
Click to expand...
Click to collapse
Why?
I keep my books in a directory called "Books".
Maybe your path length is causing problems.
Renate NST said:
Why?
Click to expand...
Click to collapse
As to why, I usually access my books by subject for non fiction, and by author for fiction. I move down my file structure: typically by genre, sub-genre, sub-sub-genre, author, category, book. For instance: Novelist, 1500-1940, Translated, Tolstoy-Leo, Short Stories, Childhood.epub
I only use Search occasionally.
You may be right about excessive file structure depth. When I search for known extensions only with search root of \sdcard\, I only get jpg files with matching filenames from the .docThumbs folder!
One solution to do super custom indexes is to have them in HTML.
You can generate whatever lists/trees you want and have the links to the EPUBs.

Can't read library books (OverDrive) with 1.2.1?

I haven't heard that anyone has had a problem borrowing library books (with OverDrive) with the Nook 1.2.1?
I've not been able to open library books for a while.
The error message was "User not activated".
Re-activation with the Adobe Digital Editions on the PC proceeded fine but did not fix it.
Now I've got a fix that works fine. (No, stripping the DRM externally was not my solution).
Before I let the cat out of the bag, I'd like to know if this affected others and how they dealt with it.
I'm interested to know this all in depth because some of this might affect how many Adobe licenses you use up.
Maybe this thread would have generated more interest if I had named it "Hacking Angry Birds". :silly:
The stock Nook Reader uses two different kinds of DRM (Digital Rights Management a/k/a encryption).
One variant is for Barnes & Noble purchased books.
The other is the standard Adobe Adept DRM used for borrowing library books with OverDrive.
This is only about the Adobe Adept DRM.
It's not about defeating or stripping the DRM, only on getting it to work properly
One of the critical things on DRM is to identify the device.
In the file /media/.adobe-digital-editions/device.xml is such identification.
It is contained in a XML entry called "fingerprint".
Up to Nook version 1.1.5 this was:
fingerprint=Base64Encode(SHA-1Hash(<16 ASCII chars of /rom/devconf/DeviceId>)).
In Nook version 1.2.1 this is now:
fingerprint=Base64Encode(SHA-1Hash(<16 bytes of /media/.devicesalt>, <16 ASCII chars of /rom/devconf/DeviceId>)).
/rom/devconf/DeviceId is the serial number, something like "3000111122223333".
/media/.devicesalt is a random 16 bytes.
Exactly what it was put in to address is another question.
Who creates this snippet and when is not yet clear.
If you do an update from Nook1.1.5 to 1.2.1 and don't re-register anything you may still download books over USB and the desktop Adobe Digital Editions but they will not load.
Internally they will generate a mismatched fingerprint error and externally a "user not activated" on the screen.
Of course, if you re-register and perform whatever rewrites device.xml to agree with the new fingerprint, that will work.
The question remains, does this new fingerprint use up one of your allowed Adobe Adept device licenses?
This also ties into the Android app OverDrive Media Console.
That also uses a different fingerprint.
Besides the question of whether that uses two licenses for a single device, it also make it impossible to download a file using OMC and then read it on the Nook stock reader instead of the horrible OMC reader.
Questions, comments, answers?
Implemented & tested: A simple way to keep the same fingerprint after an upgrade.
Note: Yes, I know about Calibre and plug-ins, but that's not at all what I want to do.
Renate NST said:
Of course, if you re-register and perform whatever rewrites device.xml to agree with the new fingerprint, that will work.
The question remains, does this new fingerprint use up one of your allowed Adobe Adept device licenses?
Click to expand...
Click to collapse
It will, but I've also seen credible reports that Adobe silently expand your activated device allowance to deal with lost/sold devices. Only if you register a number of devices in quick succession will you hit the limit. Even then, people have managed to get in touch with Adobe by phone or email and have their accounts reset/manually edited. I've re-registered my Adobe DRM devices a number of times and haven't yet hit the limit.
Besides the question of whether that uses two licenses for a single device
Click to expand...
Click to collapse
It will do.
it also make it impossible to download a file using OMC and then read it on the Nook stock reader instead of the horrible OMC reader.
Click to expand...
Click to collapse
Quite so. OMC and your Nook are two different devices as far as Adobe is concerned, along with whatever Adobe DRM-enabled readers you've activated on different devices.
So, to cut to the chase...
ReaderRMSDK.apk 1.2.1 is tied to Nook 1.2.1 and libpdfhost.so 1.2.1
You can't use mixed versions of these three things.
As stated, 1.2.1 uses .devicesalt which 1.1.5 doesn't use.
To patch libpdfhost to totally ignore .devicesalt:
Code:
/system/lib/libpdfhost.so 9,695,904
[002b647c] E593F018 => EAFFFFFF (little-endian)
You will have to (and want to) use the same fingerprint as before.
This appears in device.xml and activation.xml
I don't understand all of the tech notes in the thread, but back to the original question:
I have installed the Overdrive app on my rooted nook (1.2.1) and am able to download and read books in the Overdrive app itself.
However, I am unable to use the stock reader (which I would rather use) with books that I've downloaded (i.e., go out and find the EPUB file using a file manager on the device and launch from there). That would be a bonus if I could get that to work.
I haven't tried the "old" way of sideloading books from the Adobe application on my PC since I re-rooted my device.
Getting rid of UMS
I've kept to the standard and legit way of borrowing library books using Adobe Digital Editions on my desktop which links over USB to my Nook.
It uses UMS (USB Mass Storage).
UMS is pretty stupid. It shares computer volumes by just presenting the raw disk blocks over USB.
I have been using ADB (and particularly my utility adbsync.exe) for all my synchronizing.
The only holdout of why I still had UMS was for library books using ADE.
Here is how you keep semi-legit, use ADE and just do the connection to your Nook over ADB with WiFi or USB.
Take one of those too small USB flash drives that you have collecting dust, maybe a 256M.
Plug it in the back of your computer, out of the way.
Assign it a drive letter conveniently out of the way.
Create directory .adobe-digital-editions
Copy /media/.adobe-digital-editions/device.xml, /media/.adobe-digital-editions/activation.xml to the flash.
Run ADE, it should recognize your flash as a portable reading device.
Transfer your borrowed book to the flash.
Sync the flash to your Nook.
Read.
Oh, and disable UMS so you can use ADB over USB without disabling your Nook.
Code:
echo -n 0 > /data/property/persist.service.mount.umsauto
Renate NST said:
One of the critical things on DRM is to identify the device.
In the file /media/.adobe-digital-editions/device.xml is such identification.
It is contained in a XML entry called "fingerprint".
Up to Nook version 1.1.5 this was:
fingerprint=Base64Encode(SHA-1Hash(<16 ASCII chars of /rom/devconf/DeviceId>)).
In Nook version 1.2.1 this is now:
fingerprint=Base64Encode(SHA-1Hash(<16 bytes of /media/.devicesalt>, <16 ASCII chars of /rom/devconf/DeviceId>)).
/rom/devconf/DeviceId is the serial number, something like "3000111122223333".
/media/.devicesalt is a random 16 bytes.
Exactly what it was put in to address is another question.
Who creates this snippet and when is not yet clear.
If you do an update from Nook1.1.5 to 1.2.1 and don't re-register anything you may still download books over USB and the desktop Adobe Digital Editions but they will not load.
Internally they will generate a mismatched fingerprint error and externally a "user not activated"
Click to expand...
Click to collapse
I am just finding this thread and am wondering if this may provide a fix for my vexing situation.
I am trying to run Mantano with my drmed books (both band n books, and overdrive). The DRM works the same as my normal android devices (nexus 7, Nook color, eris, and rezound).
However, when the app closes, the DRM resets. Oddly enough, Aldiko works fine.
I really like mantano's way of displaying the books accurately and the way it syncs notes and highlights, so I am kind of married to this app. So, I know I have asked before, but does anyone have any thoughts? This could be the beginning to figuring this out yes?
~Leko
lekofraggle said:
However, when the app closes, the DRM resets.
Click to expand...
Click to collapse
I have no idea what you mean by that.
Renate NST said:
I have no idea what you mean by that.
Click to expand...
Click to collapse
Renate,
Thanks for responding. This is driving me crazy.
What happens is that after I open the app, I can register it with adobe and read my overdrive books. I can also read my Barnes and Noble books by entering my login and credit card number (what they use as a password). This is the way they use adobe DRM.
But, when I close the app, it seems to unregister itself. After closing the app. (Forcing it to quit, waiting a long time, or rebooting the nst), I have to reenter my adobe or Barnes and Noble credentials in the app. With adobe, this does count as a new device each time.
Aldiko does not seem to have the problem.
I have taken decompiled Mantano and tried to figure out how to fix it, but cannot. I have also reached out to the company, they have not helped too much either.
I use mantano as my everyday reading app on my nexus, and want to sync my notes and reading position (which it does well).
Sincerely,
Leko
I don't know Mantano at all.
It has to save the credentials somewhere, apparently it's not.
Explore around
/data/data/com.mantano.whatever/databases
/data/data/com.mantano.whatever/files
using ADB shell
Is there something there before you shut Mantano down?
Is it still there later?
Is it wiped out on restart?
Renate NST said:
I don't know Mantano at all.
It has to save the credentials somewhere, apparently it's not.
Explore around
/data/data/com.mantano.whatever/databases
/data/data/com.mantano.whatever/files
using ADB shell
Is there something there before you shut Mantano down?
Is it still there later?
Is it wiped out on restart?
Click to expand...
Click to collapse
Renate,
Thanks a lot. There are some weird happenings indeed.
So, I browsed the folders, and did not get too far. Here is what I did...
adb shell ls data/data/com.mantano.reader.android
the folders were
shared_prefs
cache
databases
lib
files
In the cache folder was one file
WebviewCache
In the databases folder were three files
webviewCache.db
google_analytics.db
webview.db
In the files folder
licence
.salt
.mno002
.mno001
mantano
I tried to poke around with a database viewer but did not get too far. most of the databases were empty (I have not done much with this app since trying different versions. The only database that seemed to have data was the google_analytics, and none of that looked like password data.
Two more odd things.
There is a .adobe-digital-editions folder on the sd card. Mantano writes to it, because if I delete the folder, it is respawned with mantano mentioned in device.xml.
And, if I run aldiko, its registration seems to overwrite device.xml, but it can read from it (the source of the two reading apps are completely different.)
I wonder if it is a permissions error. The permissions on the .adobe editions folder are ---rwxr-x I tried to find a way to change that, but they do not stick because it is an sd card. 16 gig class 4.
Mantano also has a folder on the sd card with a database, but I am not sure that is where we need to be.
Thanks again for your help.
~Leko
Your SD card is probably FAT, which is why permissions are not really serious.
I think that you are getting all confused by alternating between Mantano & Aldiko.
(I've not even seen either of these.)
I think that they are both trying to store conflicting credentials in the same place.
The stock ReaderRMSDK.apk uses libpdfhost.so
libpdfhost.so has hard-coded paths in it for .devicesalt, .adobe-digital-editions/device.xml, .adobe-digital-editions/activation.xml on /media
See the start of this thread for "un-salting" the stock ReaderRMSDK.
Renate NST said:
Your SD card is probably FAT, which is why permissions are not really serious.
I think that you are getting all confused by alternating between Mantano & Aldiko.
(I've not even seen either of these.)
I think that they are both trying to store conflicting credentials in the same place.
The stock ReaderRMSDK.apk uses libpdfhost.so
libpdfhost.so has hard-coded paths in it for .devicesalt, .adobe-digital-editions/device.xml, .adobe-digital-editions/activation.xml on /media
See the start of this thread for "un-salting" the stock ReaderRMSDK.
Click to expand...
Click to collapse
Renate, I actually am not as confused between the two as it seems. I only installed Aldiko after I discovered the DRM issue with Mantano.
Beyond wiping my device, is the other fix for un-salting deregistering the nook? If so, I will try that next.
I think the sdcard is fat, but Mantano does not seem to acknowledge the /media partition. I wonder if that has something to do with the issue.
~Leko
Sent from my Nexus 7 using Tapatalk
Well then just stick to Mantano.
See when the stuff in .adobe-digital-editions appears.
Back it up somewhere.
Close Mantano and open it.
See if the stuff is still there.
activation.xml has to be writable to add new books.
Renate NST said:
Well then just stick to Mantano.
See when the stuff in .adobe-digital-editions appears.
Back it up somewhere.
Close Mantano and open it.
See if the stuff is still there.
activation.xml has to be writable to add new books.
Click to expand...
Click to collapse
So, I deregistered my nook, and rerooted it. I installed es file explorer and mantano (nothing else).
If In delete the folder or the stuff in it, Mantano recreates it on launch (on the SD card). If I open a book, I have to register. Once I do, it works for a while (an hour or so it seems), but then asks me to re register.
If I move the folder while the app or books are open, it immediately recreates the folder and the three files, but the book needs to be re registered. I seem to get the same result if I move just the files.
I also tried disabling all of the bn apps in the nook manager with the same result.
I am at a loss.
~Leko
Sent from my Nexus 7 using Tapatalk
Point #1: Don't deregister your device ever.
When stuff is working, backup the relevant directories.
When stuff stops working copy that back to where it was.
Using ADB stop or reboot is the safest/cleanest way to restart apps.
Every time you re-register it (probably) generates new salt.
Renate NST said:
Point #1: Don't deregister your device ever.
When stuff is working, backup the relevant directories.
When stuff stops working copy that back to where it was.
Using ADB stop or reboot is the safest/cleanest way to restart apps.
Every time you re-register it (probably) generates new salt.
Click to expand...
Click to collapse
Renate,
Thanks for the advice. I am trying to figure out how to desalt. Moving the relevant files do not seem to work. I get the same result as if the original ones stayed in one spot.
~Leko
New Nook goes backwards a version
With the new NG2 (the new white Nook) came a surprise.
/system/lib/libpdfhost.so (which is the driving force on the Reader) went backwards a version.
1.0, 1.1 and now the 1.3 has RMSDK9.2.1+/NDKr5 libpdfhost.so
1.2.1 has RMSDK9.3.1/NDKr7b
I wonder why they did that?
Hi
Sorry to post in an old thread, but this does seem most relevent to what I want to achieve.
I am struggling to read borrowed library books in Aldiko or Mantano readers on my NSTG rooted v1.2.1. I cannot login to my library using Aldiko, it just hangs - either a cookie or security certificate problem, I've tried workarounds listed on other forums without success. So I figure importing the acsm or epub downloaded using overdrive might be the answer.
I can checkout books in overdrive, open the .acsm file and read them in overdrive. But I cannot then open the epub using Aldiko/Mantano, nor can I open a brand new (different book) acsm file using Aldiko to generate the epub.
I don't have access to ADE on a PC so cannot transfer onto my Nook that way.
So ideally, I'd like to be able to simply open the epub that is generated when Overdrive on the NSTG reads the acsm file - or to fix the "hanging" in Aldiko when logging into the library website.
Is there any way of doing this? I've tried lots of versions of Aldiko and Mantano, old and new, without success.
Thanks!
gwapenut said:
[…]
Click to expand...
Click to collapse
Alright, so here's the deal, gwapenut. (Love your username, by the way - #GrapenutsFTW!)
The Aldiko login bug has been present since Aldiko first was installed on the Nook - it's basically an issue no one's been able to fix. (As you suspected, it's a security certificate invalidity) So, that option's out.
From my personal experience, you can only open borrowed OverDrive books with Aldiko/Mantano if you borrow them using ADE on a PC and then sideloading them onto your Nook - they don't open properly if you borrow them straight from your Nook.
TL; DR - If you don't have PC ADE access, you cannot accomplish what you are asking for.
Sorry about that.

[Q] NSTG Want B&N Reader to for their books and cool reader for .epub possible?

Hello,
I am having trouble get took setup in manner I want for my family.
I would like option to access B&N books on the device so I need to use default reader however for all other books .mobi/,epub I much prefer to use cool reader as I can adjust the margin to avoid the light bloom at the top as well as various spacings to my preference.
Using nookmanager/relaunch, Renate's Simple Library.
If I chose a default app for .epub B&N are treated the same way. Is this possible to sort in manner I'm after by perhaps hacking around with /data/system/packages.xml?
Thanks
Crispy
Crispy3000 said:
Hello,
I am having trouble get took setup in manner I want for my family.
I would like option to access B&N books on the device so I need to use default reader however for all other books .mobi/,epub I much prefer to use cool reader as I can adjust the margin to avoid the light bloom at the top as well as various spacings to my preference.
Using nookmanager/relaunch, Renate's Simple Library.
If I chose a default app for .epub B&N are treated the same way. Is this possible to sort in manner I'm after by perhaps hacking around with /data/system/packages.xml?
Thanks
Crispy
Click to expand...
Click to collapse
BN books are epub, but they are protected epubs (they use adobe drm). I think cool reader may be able to open them too, but the Nook stores them in a place the reader has trouble finding them. Because they are epubs, setting the default would be tricky (one app for downloaded epub, and another for purchased from BN, how would the app know).
I think your best bet would be to use Mantno or Aldiko which can handle all of your epubs because they support drm. Then,all the epubs are handled by one app, and all the mobis by cool reader. That is as simple as clicking the always do this checkbox you open the book from a file manager.
The alternative is to set defaults based on file location, but I think you will need another app running like tasker. Then, you can create shortcuts with a launcher and have the shortcut open the assigned book. The later is much more complicated.
Good luck,
Leko
Thanks for that.
I did try downloading the books from the website to PC to have a look at what format they were etc but could not find a way.
It is indeed the path screwing things up. They live it seems in /data/media/B&N Downloads/Books/ a directory only accesable to system apps.
Copying them to sdcard coolreader had no problem what so ever reading them.
I guess setting up a script to copy the books to another nonroot location would be easiest solution.
Crispy3000 said:
Thanks for that.
I did try downloading the books from the website to PC to have a look at what format they were etc but could not find a way.
It is indeed the path screwing things up. They live it seems in /data/media/B&N Downloads/Books/ a directory only accesable to system apps.
Copying them to sdcard coolreader had no problem what so ever reading them.
I guess setting up a script to copy the books to another nonroot location would be easiest solution.
Click to expand...
Click to collapse
I do not know if this would mess everything up, but what if you changed the permissions on that folder?
It may well do messing with those permissions or at least cause the nook to reset to factory. Not something I am going to consider
I want to remove all the B&N crap stealing battery anyway so side loading the books to my sdcard is way to go and thats fine.
What I need to know now is how to get the books I've paid for in .epub format from B&N when the nst does not download them.
Part of my brain remember Renate does something like this using an Adobe product?
I will google abit after coffee and some Jelly Defense. If someone knows good method please chime in.
Crispy3000 said:
It may well do messing with those permissions or at least cause the nook to reset to factory. Not something I am going to consider
I want to remove all the B&N crap stealing battery anyway so side loading the books to my sdcard is way to go and thats fine.
What I need to know now is how to get the books I've paid for in .epub format from B&N when the nst does not download them.
Part of my brain remember Renate does something like this using an Adobe product?
I will google abit after coffee and some Jelly Defense. If someone knows good method please chime in.
Click to expand...
Click to collapse
Good point. I did that with Nook color tools. Not fun.
To get the books...
Go on a browser (this may work on opera on the device, I am not sure).
Got to bn.com
sign in and go to your nook library.
right click on a book and download it.
Save it to disk. If you have A.D.E. installed it will want to open it.
Move it to your device.
Open the book in a reader which supports A.D.E.
Enter your login in password which is your full name (As they have it on file, spaces count but I do not know about middle names)and credit card you used to purchase the book.
Enjoy.
You should only need to enter the credit card once.
Good luck.
~Leko
Now, I just need to find the full screen version of Mantano. Grrr.
lekofraggle said:
Good point. I did that with Nook color tools. Not fun.
To get the books...
Go on a browser (this may work on opera on the device, I am not sure).
Got to bn.com
sign in and go to your nook library.
right click on a book and download it.
Save it to disk. If you have A.D.E. installed it will want to open it.
Move it to your device.
Open the book in a reader which supports A.D.E.
Enter your login in password which is your full name (As they have it on file, spaces count but I do not know about middle names)and credit card you used to purchase the book.
Enjoy.
You should only need to enter the credit card once.
Good luck.
~Leko
Now, I just need to find the full screen version of Mantano. Grrr.
Click to expand...
Click to collapse
# right click on a book and download it.
This is the bit I was having trouble with. I see now its the difference between the UK and USA site. UK one only gives archive and delete where USA gives the additional option of download. Luckily USA site seems to honor my UK purchases now. It did not when I tried it long time ago I suspect they synced them because they accidentally sent a load USA nst to uk to meet demand.
EDIT: Works great. Downloaded, ADBed across (will setup Renate's adbsync for automation later), Renate's simply library app, opens with cool reader ^_^. Thanks
Only other thing to do on my todo list in this particular process is to change screensaver timeout on command line as I usually keep the 2min but if ADBing going into screensaver mode disrupts the connection either to sleep or wireless turning off.
You could try dropbox, then there is no need for adb. The current apk does not work. I found an old xparent version which does, but as you could imagine xparent is not so good on the nst. Let me know if you want it.
As for screensaver timeout, it is one of the options in settings.
~Leko
Go forth and work toward your salvation with diligence.
It may also be possible to put a link in the default directory for coolreader and point it to the location of the books downloaded from B&N.
David0226 said:
It may also be possible to put a link in the default directory for coolreader and point it to the location of the books downloaded from B&N.
Click to expand...
Click to collapse
Link would inherit the permissions. I prefer ADB / adb sync for large merging of files as it can be done over my LAN not my very tiny pipe to the internet. I do use dropbox for other stuff.

Categories

Resources