Related
Hello,
Thanks in advance. I searched the forum and elsewhere for these answers.
Can one export Notes and Highlights with a rooted Nook Touch. If so, how and which app should one download? Which are best?
If one puts Kindle app on a Nook Touch, does one get the functionality of exporting notes that I believe the Kindle app has?
Is there an a reader app that allows for Copying/Pasting/exporting? There is this unanswered thread that I think covers the same topic or similar:
http://forum.xda-developers.com/showthread.php?t=1180368
Much to my dismay, I just discovered that I can not export or backup Notes and Highlights that I create on a Nook Touch. I wonder what % don't realize this when they buy the device.
I do not think that "Nook For PC" does any of this as it only syncs bookmarks across devices:
http://www.barnesandnoble.com/u/nook-for-pc/379002322/
Once again thank you
I've been able to export from moon reader plus on my nook color - if this app works on nook touch it's the best solution I've found.
any solution found?
I want to root my nook, but I don't want to lose my highlights...!!!
I have been on the same quest for a few days now. I have not found a particularly good solution, but I do have a way to preserve highlighting.
When you use the kindle app on android and sideload a book in .mobi format (i.e. you place the .mobi file in /sdcard/kindle folder), and then make highlights or notes, it creates a .mbp file in the same directory. You can then move the .mobi and .mbp file into other kindle apps (other device, pc, etc), and your notes and highlights are preserved.
If I could find a way to get the .mbp file in /sdcard/kindle to automatically sync to the appropriate PC folder, it would be nearly perfect.
The advantage of .mobi files have over .epub is that .epub standard does not seem to include annotations. At the moment, you are somewhat confined to the Amazon ecosystem, but for now, this seems the best solution I've found so far.
---------- Post added at 10:18 AM ---------- Previous post was at 10:04 AM ----------
I have been on the same quest for a few days now. I have not found a particularly good solution, but I do have a way to preserve highlighting.
When you use the kindle app on android and sideload a book in .mobi format (i.e. you place the .mobi file in /sdcard/kindle folder), and then make highlights or notes, it creates a .mbp file in the same directory. You can then move the .mobi and .mbp file into other kindle apps (other device, pc, etc), and your notes and highlights are preserved.
If I could find a way to get the .mbp file in /sdcard/kindle to automatically sync to the appropriate PC folder, it would be nearly perfect.
The advantage of .mobi files have over .epub is that .epub standard does not seem to include annotations. At the moment, you are somewhat confined to the Amazon ecosystem, but for now, this seems the best solution I've found so far.
Any updates
Does anybody have any updates on this? I've been looking at how to save my highlights and notes because I want to update to 1.1.
I noticed that Calibre is testing saving notes from the Kobo reader. I think this would be the best way if they ever do it for the NST. However, that would be a long term solution because I don't see them doing it within the next month or so.
Any help on this would be greatly appreciated. Thanks,
The first post in this thread shows how to backup highlights and annotations. http://forum.xda-developers.com/showthread.php?t=1346748 I haven't tried it yet but I will check back when I do it.
this is a a feature really needed...anybody working on it??
Here's a direct link to the post referenced above. Highlights and notes are stored in databases.
http://forum.xda-developers.com/showpost.php?p=20069243&postcount=5
I haven't tested it yet.
Anyone interested in exploring -- you may want to look into some of the apps in the Android Market that allow for viewing and editing databases on a rooted device:
https://market.android.com/search?q=root+database+viewer&c=apps
Please post any findings!
MJ
mjj777 said:
Please post any findings!
Click to expand...
Click to collapse
It’s easy to write SQL script, but it’ll be few manual steps - not for everybody.
I’m not good enough yet to write GUI app, but it looks like nice and easy one to start with.
The problem is B&N doesn’t provide any API to work with nook specific features, like display book thumbnail, get books in library, get books on shelf, etc.
Once this framework is available, “assembling” apps should be piece of cake.
Manual Solution...
Besides backing up highlights and annotations (mentioned above) http://forum.xda-developers.com/showpost.php?p=20069243&postcount=5
I am following this thread that just started on somebody asking a possible way to do this automatically to dropbox or something similar. Which I think would be awesome! http://forum.xda-developers.com/showthread.php?t=1676579. However, this really doesn't solve the issue of easily reviewing highlights and annotations or exporting them to excel or word for a more pleasant viewing experience.
In the meantime as I am reading I have my iPhone open and I am writing down comments and passages and then marking the page number. I am doing this in the Onenote app which can be synced to my computer.
It makes reading not as fun when you have to go to a different device and type something in. However, I am guaranteed not to loose it, and it stays organized in a onenote folder I named "books" and section is the books title. Putting the page number also allows me to later go back and go to that specific page for further details and it is my understanding it should also match with the paper-bound version page number.
I find it amazing there is not an easier way. However, I have heard rumors the backing up a annotations and highlights might/could happen in Calibre. I think they began trying it with the Kobo reader. I think this would be ideal.
CoolReader can highlight, take notes and export.
The only problem is that it doesnt have DRM so it cannot read
books with DRM (purchased or rented books).
--
Is there any news on this side?
to me would be enough to having the possibility to share via mail.
does anyone knows if an app for android would work for this and if it feasible ?
Ok
i've just create a very basic app that export the highlithed text to an txt file inside the sd card.
source code is here (i started yesterday with android, so it's crappy).
https://github.com/esseti/NookTouchExporter
here the apk https://github.com/esseti/NookTouchExporter/tree/master/bin
it requires root permission.
feedbacks/collaborations anything is welcomed.
Off-hand, you might want to use a constructor for Annotation instead of setting things:
Code:
public class Annotation
{
private String book;
private String hltext;
public Annotation(String book, String htltext)
{
this.book = book;
this.hltext = hltext;
}
}
question
Hi, first, thanks for placing the apk and second, how do I use it?
I already install, I gave root permission, but nothing happens when you touch the icon
thanks
I forgot to subscribe to the thread. i made some changes, now it should have a button.
apk is here https://github.com/esseti/NookTouchExporter/tree/master/out/production/NookExporter
esseti said:
I forgot to subscribe to the thread. i made some changes, now it should have a button.
apk is here https://github.com/esseti/NookTouchExporter/tree/master/out/production/NookExporter
Click to expand...
Click to collapse
I've just tried this (md5sum: fc31f1bd16a95ebd5c41823cb9bbc57d) on my 1.2.1 UK Nook rooted with NookManager, and it has some problems.
When I start it, it asks for root via SuperUser and I grant it root permissions permanently. However, the attempt to copy annotations.db fails:
Code:
I/ActivityManager( 788): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x14000000 cmp=it.stefanotranquillini.nookexporter/.TestDatabaseActivity }
I/System.out(24021): books 1here we are
W/System.err(24021): io ex
W/System.err(24021): java.io.FileNotFoundException: /data/data/com.bn.nook.reader.activities/databases/annotations.db
E/TC ( 1035): KPICollector: 1368871897842 ActivityManager background {"component":"com.harasoft.relaunch/.AllApplications"}
E/TC ( 1035): KPICollector: 1368871897875 ActivityManager foreground {"component":"it.stefanotranquillini.nookexporter/.TestDatabaseActivity"}
Needless to say, the file does exist:
# ls -l /data/data/com.bn.nook.reader.activities/databases/annotations.db
-rw-rw---- app_0 app_0 11264 2013-05-07 15:57 annotations.db
Click to expand...
Click to collapse
I think you probably need to build a command line (e.g. su /system/xbin/cp /data/data/com.bn.nook.reader.activities/databases/annotations.db blahblah/databases.db) then exec() it. exec()ing su doesn't, AFAICS, give your app the power to do anything it likes as root. Chainfire wrote a nice doc: http://su.chainfire.eu/.
If I use an adb shell to manually copy the file over, it seems to export OK. I'd suggest, though, dumping all the columns so that adding import functionality later is possible.
cowbutt said:
I've just tried this (md5sum: fc31f1bd16a95ebd5c41823cb9bbc57d) on my 1.2.1 UK Nook rooted with NookManager, and it has some problems.
When I start it, it asks for root via SuperUser and I grant it root permissions permanently. However, the attempt to copy annotations.db fails:
Code:
I/ActivityManager( 788): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x14000000 cmp=it.stefanotranquillini.nookexporter/.TestDatabaseActivity }
I/System.out(24021): books 1here we are
W/System.err(24021): io ex
W/System.err(24021): java.io.FileNotFoundException: /data/data/com.bn.nook.reader.activities/databases/annotations.db
E/TC ( 1035): KPICollector: 1368871897842 ActivityManager background {"component":"com.harasoft.relaunch/.AllApplications"}
E/TC ( 1035): KPICollector: 1368871897875 ActivityManager foreground {"component":"it.stefanotranquillini.nookexporter/.TestDatabaseActivity"}
Needless to say, the file does exist:
I think you probably need to build a command line (e.g. su /system/xbin/cp /data/data/com.bn.nook.reader.activities/databases/annotations.db blahblah/databases.db) then exec() it. exec()ing su doesn't, AFAICS, give your app the power to do anything it likes as root. Chainfire wrote a nice doc: http://su.chainfire.eu/.
If I use an adb shell to manually copy the file over, it seems to export OK. I'd suggest, though, dumping all the columns so that adding import functionality later is possible.
Click to expand...
Click to collapse
i've no idea why it fails .
anyway i'll take a look later on. if you want code is on github and you can change it and submit as a patch (or whatever they called it), then i'll merge it.
Hello,
I haven't found a solution to the original question posted on this forum but I would like to share something that I think most Kindle users will benefit from.
Amazon has made it possible for Kindle users to make notes and highlights on their favorite passages or selection and these can be accessed again on their site. However, it can take up time and be difficult to obtain sometimes.
There is an iOS app that will be released this November 2013 called Snippefy that will make it easier for Kindle users to read and share their notes and highlights all in one place. They will also be able to export these to Evernote, Dropbox and email. I'm not able to post the link to the site here but basically it's at "snippefy dot com"
I just wanted to share this with all of you as you might find it useful.
Thanks!
Two ereaders I've found that do a good job of allowing for annotations, and have good export options are Moon+ Reader (version 1.6.5b) and Mantano Reader (version 2.2.12).
They are no longer being developed in a way that supports the Android 2.1 platform, which is what the Nook runs on, so the versions I listed above are the most recent versions that will work on the Nook, you'll have to get the old APKs and sideload them if you want to use that. Their controls and interface are amazing in my opinion, perhaps Moon+Reader 1.6.5b > Mantano Reader 2.2.13, however, the display is in my opinion quite low quality and unacceptable for extended reading.
A better option to keep your eye on is Page Turner (https://play.google.com/store/apps/details?id=net.nightwhistler.pageturner.ads&hl=en]). The developer is very active and mindful that a large portion of the user base uses the Nook ST, and so continues to have features support the Android 2.1 platform. The current beta version which will be released in the next weeks has just added support for highlighting, annotating and bookmarks. The plan for the next version is to allow for simple export process of these additions, so keep an eye on it.
Unlike most, I've found myself actually liking the content-oriented otter launcher on stock. But, being a geek, I'm never satisfied so I was playing around with GoLauncher and ADW to see if I could get the best of both worlds. This is what I've uncovered so far.
To launch a specific part of Otter, such as the book library, you need to send the following type of intent:
Code:
Action: com.amazon.kindle.otter.action.SHOW_BOOKS
Category: android.intent.category.HOME
The valid actions are:
Code:
com.amazon.kindle.otter.action.SHOW_BOOKS
com.amazon.kindle.otter.action.SHOW_NEWS
com.amazon.kindle.otter.action.SHOW_APPS
com.amazon.kindle.otter.action.SHOW_DOCS
com.amazon.kindle.otter.action.SHOW_MUSIC
com.amazon.kindle.otter.action.SHOW_VIDEO
com.amazon.kindle.otter.action.SHOW_WEB
If you want to open a specific book, then you send an intent like this:
Code:
Action: android.intent.action.VIEW
Data: kindle://book/?action=open&book_id=AMZNID0%2FB002WB0XW0%2F0%2F
All that you want to change in that data string is the escaped book_id field. '%2F' just means '/', so you can see it's really just 'AMZNID0/(Book ID)/0/'. You can extract the book's ID from any Amazon Kindle product page (go to Manage your Kindle on Amazon.com). So, the book ID in this example is: B002WB0XW0 and the URL of the product page is http://www.amazon.com/dp/B002WB0XW0 (plus some useless SEO keywords and tracking cruft I omitted).
Launching documents is very similar, but I assume each document's id is user specific. To see what it is, fire-up logcat ("adb logcat ActivityManager *:S") and look for a message like this:
Code:
D/ActivityManager( 1452): Starting: Intent { act=android.intent.action.VIEW dat=
kindle://book/?action=open&book_id=AMZNID0%2FAEMEN728GNT2MXUF3VMENDMEY4SDV5AZ%2F
4%2F flg=0x10000000 cmp=com.amazon.kindle/.UpgradePage } from pid 3749
As for how to launch intents, several launchers let you do this. Sadly, Amazon gutted Settings.apk, so we're left with no provider for android.intent.action.pick_activity (ditto for shortcuts and folders). Therefore, we need an app like QCustomShortcut that will allow us to construct a custom intent shortcut, then directly add the icon to the launcher without going through the activities or shortcut menus. Sadly, that's not listed as compatible with the Fire, so you have to install it on another Android device and sideload the APK (which is kept under /mnt/asec, not /data/app, BTW).
In the end, I decided to return to Otter, but figured I could save someone a bit of trouble or hopefully even spark some ideas by posting this. It's all pretty basic stuff, but finding/launching intents and what-not took me a bit to sort through this evening so I suppose there may be others on this neophytic ledge between being a newb and a guru that I keep finding myself on.
Hi izomiac,
I'm interested in what you said. I'm creating an android that can open any kind of documents, including ebooks.
Unfortunately I could not see the kind of information you show in my logcat.
You said :
Launching documents is very similar, but I assume each document's id is user specific.
Click to expand...
Click to collapse
Could you give me an example to how open an ebook not downloaded by the amazon kindle app?
Really thank you for your post, it helps me a lot.
I don't think the Kindle app can directly open Documents/Books that haven't been downloaded. When I just tried that the Kindle App (for ICS) stayed on the splash screen and never loaded anything. I suspect Amazon uses some sort of push service rather than an intent to start an automatic download.
For logcat, what I did was run the logcat command using ADB, then launch the document I wanted to see the ID for on the Kindle using the stock launcher.
izomiac said:
To launch a specific part of Otter, such as the book library, you need to send the following type of intent:
Code:
Action: com.amazon.kindle.otter.action.SHOW_BOOKS
Category: android.intent.category.HOME
Click to expand...
Click to collapse
Hello,
I know this is an old post, but I am trying to get this to work on my HDX. Looking at both the Otter manifest, and the logcat, it seems not a lot has changed (except that now you can install qCustomSHortcut).
However, when I try to create a shortcut to my books library, I get a permission denied error. When I test the shortcut, the output says that this
Code:
com.amazon.SHOW_CONTENT_LIBRARY
action is required. Any thoughts?
The direct book link works well. Thank you.
~Leko
I'm running a rooted Nook Simple Touch and the most recent compatible Kindle app (3.2.0.35), as I have been for about three years. Since last week, for no discernible reason, syncing my Kindle library no longer works, i.e. I get the 'Sync failed, please try again later' message, and it therefore no longer receives samples or new purchased ebooks. Also, when searching the Kindle store, the layout of the pages has changed to something that looks distinctly broken, as if CSS has been disabled.
Has anyone else encountered this? Perhaps Amazon have updated their API and broken compatibility with v3.2.0.35 in the process? Or am I the only one who's having this problem – in which case what should I do? I've already tried reinstalling the app, deregistering the device and re-registering, etc...
djpeanut said:
I'm running a rooted Nook Simple Touch and the most recent compatible Kindle app (3.2.0.35), as I have been for about three years. Since last week, for no discernible reason, syncing my Kindle library no longer works, i.e. I get the 'Sync failed, please try again later' message, and it therefore no longer receives samples or new purchased ebooks. Also, when searching the Kindle store, the layout of the pages has changed to something that looks distinctly broken, as if CSS has been disabled.
Has anyone else encountered this? Perhaps Amazon have updated their API and broken compatibility with v3.2.0.35 in the process? Or am I the only one who's having this problem – in which case what should I do? I've already tried reinstalling the app, deregistering the device and re-registering, etc...
Click to expand...
Click to collapse
I've never used the Kindle app for more than locally stored books but I tried looking at the Store today and got the same results you describe. This is the danger of old apps--they get left in the dust by changes made on the "other" side. I've seen that with the last working version of the CNN app as well as Zinio and others. They may continue to work locally but communication with a remote server might be broken. That will probably be the eventual fate of the NST with B&N.
Working fine for me this morning - not used it for months, and I'm able to sync a newly purchased book, and progress in another. The store view is broken, but I don't think that is a new problem.
tshoulihane said:
Working fine for me this morning - not used it for months, and I'm able to sync a newly purchased book, and progress in another. The store view is broken, but I don't think that is a new problem.
Click to expand...
Click to collapse
Can you confirm if this is still working for you? There have been a number of people reporting no sync function now. I don't have Amazon content to test, but if I do a clean reinstall of the app my "recommended" section is blank. Restoring a backup image brings back the cover images in that section from when I first installed the app long ago.
Not looking too good - I can see purchased books, but when I attempt to download anything, the progress bar doesn't move, and after a few seconds, 'pause' changes to 'resume'.
All I can see in logcat is
Code:
D/OpenSSLSessionImpl( 4183): Freeing OpenSSL session
D/OpenSSLSessionImpl( 4183): Freeing OpenSSL session
D/OpenSSLSessionImpl( 4183): Freeing OpenSSL session
D/OpenSSLSessionImpl( 4183): Freeing OpenSSL session
D/OpenSSLSessionImpl( 4183): Freeing OpenSSL session
D/OpenSSLSessionImpl( 4183): Freeing OpenSSL session
D/OpenSSLSessionImpl( 4183): Freeing OpenSSL session
D/OpenSSLSessionImpl( 4183): Freeing OpenSSL session
Doesn't look too hopeful, but if you have any suggestions, I can experiment.
tshoulihane said:
Not looking too good - I can see purchased books, but when I attempt to download anything, the progress bar doesn't move, and after a few seconds, 'pause' changes to 'resume'.
All I can see in logcat is
Code:
D/OpenSSLSessionImpl( 4183): Freeing OpenSSL session
D/OpenSSLSessionImpl( 4183): Freeing OpenSSL session
D/OpenSSLSessionImpl( 4183): Freeing OpenSSL session
D/OpenSSLSessionImpl( 4183): Freeing OpenSSL session
D/OpenSSLSessionImpl( 4183): Freeing OpenSSL session
D/OpenSSLSessionImpl( 4183): Freeing OpenSSL session
D/OpenSSLSessionImpl( 4183): Freeing OpenSSL session
D/OpenSSLSessionImpl( 4183): Freeing OpenSSL session
Doesn't look too hopeful, but if you have any suggestions, I can experiment.
Click to expand...
Click to collapse
If you visit Amazon's secure website in Browser, it complains about not trusting the certificate authority. I wonder if that's the reason the app isn't working. Anyway to add certificate authorities to the NST?
mr.rcollins said:
If you visit Amazon's secure website in Browser, it complains about not trusting the certificate authority. I wonder if that's the reason the app isn't working. Anyway to add certificate authorities to the NST?
Click to expand...
Click to collapse
That would make some sense. More likely than the SSL library being so old that modern protocols don't work, which was my line of thought.
I'd be fairly confident it is practical to update the certificate list - just need to find someone who knows how.... If you go looking, start with finding how to _revoke_ a certificate - that's more likely to have better search hits, I guess.
tshoulihane said:
That would make some sense. More likely than the SSL library being so old that modern protocols don't work, which was my line of thought.
I'd be fairly confident it is practical to update the certificate list - just need to find someone who knows how.... If you go looking, start with finding how to _revoke_ a certificate - that's more likely to have better search hits, I guess.
Click to expand...
Click to collapse
Looks like it's not that simple.
(As a new user I can't post a direct link to the stack overflow post)
From Stackoverflow: How to install trusted CA certificate on Android device?
"in all releases though 2.3, an OTA is required to update the cacerts.bks on a non-rooted phone."
Click to expand...
Click to collapse
I don't know what that means for rooted NST.
So there are a number of interesting-looking sites regarding adding to/updating the certificates file (cacerts.bks). It's troubling and ironic, though, that the official Cacerts website gives a security error in Firefox and won't load :silly:
Anyway, here's a Wiki which doesn't make it look too bad. I wonder if this could be done whether it would also fix the Amazon App Store issues.
Edit: Look at "way 3" on the page linked. Seems really easy--almost too easy!
Success. its not too complicated, just needs the right steps listing out.
I originally used jdk1.7.0_79, and bcprov-jdk15on154.jar since that was the java version I have working with android studio now, but ended up with a bootloop (but ADB working, so I was able to restore the old cacerts.bcs.
I managed to list the current certificates, one did expire Dec'15, although that doesn't seem to be in the path for amazon. When I started, an SSL checker app reported most sites failing. With the one update below, its about 50%
Download http://www.bouncycastle.org/download/bcprov-jdk15on-146.jar - this is used locally on your PC to manipulate the certificates and needs to be version 146 or 147 to work with android (or old android at least)
Navigate to https://www.amazon.co.uk, (must be https) click the padlock in the browser (chrome) and 'connection'. In certificate path, find verisign at the top. 'view certificate' and details, then 'copy to file'. I used 'Base-64 encoded X.509' format, and saved as verisign.cer
get the old key store, and keep a copy
Code:
adb pull /system/etc/security/cacerts.bks cacerts.bks
copy cacerts.bks cacerts.bks.old
In your java install, find keytool.exe. You need to provide the password changeit, and the path to the bcprov.jar which you downloaded earlier. Ass the certificate (and say yes when prompted to trust it)
Code:
'C:\Program Files\Java\jdk1.7.0_79\bin\keytool.exe' -storetype BKS -keystore d:\Documents\nook\cacerts.bks -provide
r org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath "C:\Program Files\Java\jdk1.7.0_79\lib\ext\bcprov-jdk15on-146.jar" -storepass c
hangeit -importcert -alias verisign -file D:\Documents\nook\verisign.cer
Now re-mount /system as read-write (using ES root explorer, or remount) and
Code:
adb.exe push .\cacerts.bks /system/etc/security/cacerts.bks
Finally, remount read-only and reboot.
If you're feeling brave, my updated file is here https://drive.google.com/open?id=0BxZHbImYcMGJcjFMZmJ1Szg0VHc (I don't think you should trust your nook much anyway, so its not too bad even if i did something wrong!)
Here for one with a few more certificates found using ssl checker (droidski), working on my Pixel-C, and also trusted by chrome on windows. https://drive.google.com/open?id=0BxZHbImYcMGJRDRXS2NZVmZTSVE
Mirror copies:
https://www.androidfilehost.com/?w=files&flid=50094 - Basic version (amazon working)
https://www.androidfilehost.com/?w=files&flid=50095 - More complete
tshoulihane said:
Success. its not too complicated, just needs the right steps listing out.
I originally used jdk1.7.0_79, and bcprov-jdk15on154.jar since that was the java version I have working with android studio now, but ended up with a bootloop (but ADB working, so I was able to restore the old cacerts.bcs.
I managed to list the current certificates, one did expire Dec'15, although that doesn't seem to be in the path for amazon. When I started, an SSL checker app reported most sites failing. With the one update below, its about 50%
Click to expand...
Click to collapse
Mmm.....that's looking just this side of fearsome to me. My keystore report showed 7 certs. out of 54 expired with a few more going in 2017 and many in 2019 and then much later.
So my first question is, did this resolve the Kindle issue or are we barking up the wrong tree!
Second, I assume you are in the UK, hence the amazon.co.uk?
nmyshkin said:
Mmm.....that's looking just this side of fearsome to me. My keystore report showed 7 certs. out of 54 expired with a few more going in 2017 and many in 2019 and then much later.
So my first question is, did this resolve the Kindle issue or are we barking up the wrong tree!
Second, I assume you are in the UK, hence the amazon.co.uk?
Click to expand...
Click to collapse
Yes, kindle app working fine now - even the kindle store pages load OK, and they have been broken for ages for me. Just synced about 6 books.
I used amazon.co.uk since its local for me, but they probably use the same root (verisign) so copying my file ought to work for you (but no guarantees, I was assuming my nook was junk if I couldn't fix this)
tshoulihane said:
Yes, kindle app working fine now - even the kindle store pages load OK, and they have been broken for ages for me. Just synced about 6 books.
I used amazon.co.uk since its local for me, but they probably use the same root (verisign) so copying my file ought to work for you (but no guarantees, I was assuming my nook was junk if I couldn't fix this)
Click to expand...
Click to collapse
Wow, this is great! Thank you for pursuing it. It makes me wonder now about other odd behaviors like older versions of Google Books that can't sync, and the Market app itself that can't seem to do a search properly. Some people have recently begun to complain that even SearchMarket is returning just a couple of apps on a search. Maybe it's why the old CNN app stopped loading up content. And, of course, the old Amazon App Store.
I need to read about all this carefully and "gird my loins", so to speak, to make an attempt!
The only really messy bit is the long keytool command. It has a few other options, so you can '-list' your key store to check the update worked before pushing it back onto the phone. Of course, you don't need to use adb, but it might save you in case there is a problem.
Once I updated the certs, I did see more syncing activity on logcat - suggesting more things were working, but as far as I can tell, the market is still just as brokn, needing searchmarket.
tshoulihane said:
If you're feeling brave, my updated file is here **REMOVED** (I don't think you should trust your nook much anyway, so its not too bad even if i did something wrong!)
Here for one with a few more certificates found using ssl checker (droidski), working on my Pixel-C, and also trusted by chrome on windows. **REMOVED**
Click to expand...
Click to collapse
Both Google Drive links aren't open to the public...
mr.rcollins said:
Both Google Drive links aren't open to the public...
Click to expand...
Click to collapse
Try again - works for me in incognito now.
Feeling a bit too brave here, so I tried this method found on Stack Exchange:
What I did to be able to use startssl certificates was quite easy. (on my rooted phone)
I copied /system/etc/security/cacerts.bks to my sdcard
Downloaded http://www.startssl.com/certs/ca.crt and http://www.startssl.com/certs/sub.class1.server.ca.crt
Went to portecle.sourceforge.net and ran portecle directly from the webpage.
Opened my cacerts.bks file from my sdcard (entered nothing when asked for a password)
Choose import in portacle and opened sub.class1.server.ca.crt, in my case it already had the ca.crt but maybe you need to install that too.
Saved the keystore and copied it baxck to /system/etc/security/cacerts.bks (I made a backup of that file first just in case)
Rebooted my phone and now I can visit my site that's using a startssl certificate without errors.
Click to expand...
Click to collapse
In my case I just tried the certificate from amazon.com and everything seemed to work as described--until I rebooted, or tried to. Bootloop. Thank goodness for Nook Manager and backups!
Real progress!
Many thanks @tshoulihane! I've successfully copied over your more extensive update of cacerts.bks
The Kindle app seems to function like it should, including the store. The Amazon App store "functions" in that, while I could not seem to log in with my Amazon credentials I could see and browse apps. I didn't try downloading any, though, as I've never cared for the behavior of the App Store on the NST, but it looks like the app might be salvageable, perhaps requiring additional certs.
The old CNN news app still will not load up content, although you can enter your location and get a weather forecast
The old version of Google Books (1.0.1.6) works great! I was able to look at my online content, both from Google and also an e-book (not from Google) I had uploaded. My memory tells me that this was a BIG issue with a lot of people who wanted to use the Books app in the past. (see edit below)
I think this is headed in the right direction for apps that seem to fail because they can't negotiate a secure server connection (those which need to sync data). What a neat discovery!
Edit: in fact Google Books 1.0.1.6 works fine locally as a reader but cannot upsync your reading position. BUT, a working version of Google Books has been discovered. Read here.
nmyshkin said:
The old CNN news app still will not load up content, although you can enter your location and get a weather forecast
Click to expand...
Click to collapse
If you can find a URL I can extract a suitable cert from, I can update again easily enough.
tshoulihane said:
If you can find a URL I can extract a suitable cert from, I can update again easily enough.
Click to expand...
Click to collapse
Thanks for the offer. I've been snooping through the logcat for both the Amazon App Store and the CNN
News app. I can say definitively that the App Store is broken. This line appears in the logcat during the whole log-in cycle that does not work:
Code:
E/AmazonAppstore.AbstractJsonWebResponse( 5845): failed to construct JSON response: {"message":"The registerDevice API has been retired. Please upgrade your appstore client."}
As for the CNN News app, there are many, many JSON errors related to fetching headlines and images that are "not found". Those would likely be the little pictures that act as access "buttons" for each story. While there's nothing as explicit as the message for the App Store, it seems pretty clear to me that whatever the app is looking for is no longer where it expects to find it.
Still, I think the certificate update has been very helpful in rescuing Google Books and Kindle--maybe others in the near future, who knows? And I learned something
Hi Guys,
I managed to root my FireTV a few days back, and yesterday decided to look at the voice search to see if I could use it for other things.
After reversing some code, I found the actual voice search is handled by com.amazon.vizzini.apk
The SearchOverlay.class has this piece of code, which calls back to the amazon fireTV UI SearchResultsActivity upon completion with the search result returned as a string.
I replaced the fire TV UI with my own code, which receives the search text, and then sends a JSON rpc to KODI's web interface, and brings KODI to the front after the search is completed.
Here is a video of it in action.
http://youtu.be/hpgKci_gJYY
android studio project
http://uptobox.com/ccykod7zua1l
mirror
http://www107.zippyshare.com/v/mAhl3UuM/file.html
***** I have a FireTV v1 updated to fire os 5 ******
I have no idea if this will work on older versions of software.
To make it work you will require ROOT, and you will have to uninstall or move the existing fireTV amazon UI.
Reason for this is that the vizinni.apk calls back to
localIntent.setComponent(new ComponentName("com.amazon.tv.launcher", "com.amazon.tv.launcher.ui.SearchResultsActivity"));
So your activity has to be in that package, and called SearchResultsActivity.
The only other way to possibly get round this would be to modify the vizinni.apk to call a different package instead, but then voice search wouldn't work on the amazon UI anyway. I wasn't really bothered about the amazon UI working myself which is why I did it the way I did.
I just moved the original system/priv-app/com.amazon.tv.launcher/com.amazon.tv.launcher.apk to /system then installed my code via android studio.
mount -o rw,remount /system
mv /system/priv-app/com.amazon.tv.launcher/com.amazon.tv.launcher.apk /system/
You will also need to change KODI's settings to enable web interface control on port 8080.
On my setup it was .. system.. services.. webserver.. and tick the box that says "Allow control of kodi via http" and make sure the port is set to 8080.
edit: 07/07/2016
I did start work a few months back on an Xposed module (works but not 100%), I was going to add a settings page but I think there was issues with xposed on android version that the fire tv runs on, due to permissions etc.
You can set a prefix in the code (currently hard coded to KODI) so if you say " kodi star wars" it would pass the param of "star wars" to kodi.
If you just say "star wars" without the prefix it would pass this to the normal amazon UI.
If anyone wants to take it further, it's attached on the link below.
http://uptobox.com/ensqll4a7r65
Mick
Thats actually pretty great.
Conventional wisdom was that both voice recognition and response "results packaging" was done server side - and the only return query you could get were preexisting amazon database references - not the result of the initial voice recognition.
I've actually read that multiple places - but as it turns out, no one had bothered reversing the process I guess.
Major props and thank god for overlays containing strings... Finally - that microphone might not be so useless after all..
Next step - implement it to interface with google search. (Weather in ...)
edit: Actually - there are three interesting usecases I can think of on top of my head...
1. Launch other Apps (maybe even with "fixed Keywords (App 1 f.e. would work edit: "Number 1" delivers better results. )" if App names arent known to Amazon) - so thats text>launcher app - see if sphinx02 has any interest in coding that as part of Firestarter..
2. google search (Whats the weather in.. ) text>google search app (if possible)
3. direct text input as seen in the POC video
edit 4. forward to Amazon - not to "break" their implementation
This could be realized by a quick 4 way select screen (just confirm with the direction button) after you select the string in the overlay.
great find and implementation. would love see more expansion as above post mentions. Are you planning to share fire tv UI code?
I was playing with voice search strings and found that Amazon tends to strip out "Google" in front of search queries -so instead of "Google how is the Weather tomorrow" only "How is the weather tomorrow" will get returned.
But - Alexa as a trigger word will be returned fine, so - I vote for using "Alexa" as a trigger word to forward all search queries to the google search app.
Ok - maybe not - but conceptually, this would be a great "work of art".
An even better idea than Harklekinrains' would be to check the foreground app and do different things based on that. For example, if Kodi is open it could send the intent to Kodi. If the Fire TV launcher is open it could fall back to default functionality, etc. Simulating keystrokes could also cover 99% of the other applications. I'm excited for this. It really makes the Fire TV so much less of a novelty.
I've just updated the original post with a copy of the android studio project, and a few more details.
Mick
Great mate,thanks! gonna check it out soon!
One question (as im not firm with intents and stuff): aint there a possibility to listen for intents sent to the amazon ui and catch them? Personally, i dont care too much about it right now as im using nothing but kodi, but maybe some day when wanting to use prime or similar stuff?
dafunkydan said:
Great mate,thanks! gonna check it out soon!
One question (as im not firm with intents and stuff): aint there a possibility to listen for intents sent to the amazon ui and catch them? Personally, i dont care too much about it right now as im using nothing but kodi, but maybe some day when wanting to use prime or similar stuff?
Click to expand...
Click to collapse
I don't think so as the actual code in the vinizzi apk is as follows:
Intent localIntent = new Intent();
localIntent.setComponent(new ComponentName("com.amazon.tv.launcher", "com.amazon.tv.launcher.ui.SearchResultsActivity"));
localIntent.putExtra("identifier", null);
localIntent.addFlags(402653184);
localIntent.putExtra("term", str);
localIntent.putExtra("text", str);
localIntent.putExtra("source", "VOICE");
localContext.startActivity(localIntent);
So basically when it receives the voice search response from amazon's server, it's starting the activity com.amazon.tv.launcher.ui.SearchResultsActivity from package com.amazon.tv.launcher
Mick
Integrating the search attempt based on the previous foreground app would mean that "voice search" could never "initate a new attempt". This would prevent the "lets just ask google, or lets launch an app - impulse use" of the feature. Still - in the long term it might turn out to be the right approach - f.e. if
"People tend to use the the google search only lets say "half a dozen times", and in the majority of cases just want text input in Kodi" Also - without having a select screen with "four (dont make it too many) predefined "use options"" discoverability is pretty non existent. People would have to read readmes to find out which interactions are supported.
Also Amazon wants you to "be able to always reach the Amazon content search from anywhere" - so, political implications.
Also - each time a new app would want to integrate the voice to text feature - they would have to contact the devs of this project - if you dont use "just text input" as a default in the "use the previously open app as an indicator of intent" approach. So make sure you default to "just text input" in that case. (Amazon launcher > forward query to Amazon (do not break functionality), ....)
Dont implement it as a mixed approach though as "Kodi is open most of the time" probably for most people - and the intent (message) gets "confusing".
--
What you probably shouldnt do - regardless, is to use "trigger words" as an "indicator of intent" - because Amazon can start blocking them. "Number 1" is probably generic enough so they wont try to block that - but in principal, they can. Also Amazons "voice to text" engine is optimized for "short phrases" - the longer your input query gets the more prone to errors their results become. Leave the actual "voice input" as "natural" as possible (dont embed logic there). Imho.
I'm in the USA and uptobox.com is not available in our country.
I want to give the source a look and see what I can do to contribute.
Can you put it on github or somewhere else?
Much appreciated.
kratosjohn said:
I'm in the USA and uptobox.com is not available in our country.
I want to give the source a look and see what I can do to contribute.
Can you put it on github or somewhere else?
Much appreciated.
Click to expand...
Click to collapse
I've just uploaded it to zippyshare too. Link added to original post.
Mick
It would be nice if this could be generic way of entering text in any app, similar to the FTV Remote App that has keyboard support. I am surprised Amazon has not done this already. If you are in a text field voice search would fill in the text, else it can continue with normal Alexa functionality letting you " always reach the Amazon content search from anywhere". Should be an easy solution for Amazon to implement, not sure if it could be added with the progress here, and it would really make the voice control so much more useful.
Hey Mick, as im still very exited about that (so frustating to enter searchphrases with a dpad...), i thought about what your great find could develop to. I hope u dont get me wrong, as i unfortunatly cant contribute any programming (if u need something made with tasker let me know ), its not that i want to demand anything - rather share my thoughts or ideas...
- I think its a good thought not to 'blow it up' by adding many keywords, make it more complicated, and avoid amzn to lock features down. even if it may be an abstract fear. I think with a well-structured menu in kodi, all apps one will need to start are just 2-3 clicks away.
- if i got it right, xposed could hook into every module and alter it, right? so basically it should be possible to avoid to exchange the amazon ui and/or alter the vizinni.apk,but just modify the SearchOverlay.class? wouldnt it be (on top) the most convenient way to decide wether one is on e.g. Amazon Prime, or on kodi, and either hand over the result to the original module, or hand it over to kodi?
So, please understand my post as a mixture between sugestions and questions, not as a demanding 'please make it how i want it asap'. Im really excited about your finding, appreciate your sharing, and want to contribute what i can do - unfortunatly its rather thoughts and suggestions. Cheers mate!
Great Work !!! I totally understand this is for amazon Fire products only. My question is would we be able to port for generic Android TV box like nVidia Shield which also has mic capability and comes with root support.
Good job @is0-mick it's great to see you accomplish something that Netflix doesn't even want to be bother with on their app.
harlekinrains said:
No you dont understand. You havent even read or understood the first posting - but you have bought another device and now want others to move in your direction on your behalf.
Click to expand...
Click to collapse
Seriously mate if XDA bothers you so much, you need to take a break from it for your own sanity!
fach1708 said:
Seriously mate if XDA bothers you so much, you need to take a break from it for your own sanity!
Click to expand...
Click to collapse
No, I really don't think he needs to take break, his argument is completely understandable. This is not a Shield forum (btw before we make judgements, I own both devices). We need to get this fixed for one device, before even mentioning whether other devices are an option.
is0-mick said:
To make it work you will require ROOT, and you will have to uninstall or move the existing fireTV amazon UI.
Reason for this is that the vizinni.apk calls back to
localIntent.setComponent(new ComponentName("com.amazon.tv.launcher", "com.amazon.tv.launcher.ui.SearchResultsActivity"));
So your activity has to be in that package, and called SearchResultsActivity.
The only other way to possibly get round this would be to modify the vizinni.apk to call a different package instead, but then voice search wouldn't work on the amazon UI anyway. I wasn't really bothered about the amazon UI working myself which is why I did it the way I did.
Click to expand...
Click to collapse
Is it not usefull for this to create a xposed mod? I thought xposed was made for this...
Perhaps you should talk with rbox in his thread about a integration into version 1.5 of his mods, look here.
is0-mick said:
I just moved the original system/priv-app/com.amazon.tv.launcher/com.amazon.tv.launcher.apk to /system then installed my code via android studio.
mount -o rw,remount /system
mv /system/priv-app/com.amazon.tv.launcher/com.amazon.tv.launcher.apk /system/
Click to expand...
Click to collapse
So does that mean, while you are using your proof-of-concept you can not use the normal Launcher-UI?
Really great your work! I hope we got more
Sadly I am with my FireTV-Stick (hardware-Rooted-superSU) and my FireTV box gen1 (hardware-Rooted-superSU+custom-recovery+unlocked-bl)on the old FW. I wait for custom roms.
Greetings by Idijt
EDIT:
I forgot to ask you something. Did you got the kind of search-request back?
Can you see if amazon-voice-rgn knows if it is a app or a video or a moviestar?
This looks pretty cool since I don't like typing the name of the movie in the search box... now I can just speak it.
As a novice I have one question, You wrote:
is0-mick said:
I just moved the original system/priv-app/com.amazon.tv.launcher/com.amazon.tv.launcher.apk to /system
Mick
Click to expand...
Click to collapse
The code I downloaded was in .RAR format not .apk. Do I need to covert it to .apk or rename it to .apk before replacing the original?
I've not rooted my device yet so I haven't looked at the file structure, but I'd be willing to root to get this feature. OR is the adding of this code better done by someone other than a novice?
Thanks
carpenter940 said:
The code I downloaded was in .RAR format not .apk. Do I need to covert it to .apk or rename it to .apk before replacing the original?
Click to expand...
Click to collapse
It's the source code. You have to compile it and create the apk with AndroidStudio.
Hey guys, I have a question. I'm sure somebody out there has done this. I am making Rooted NST's for my friends as gifts, and I think it would be really easy for them to be able to use relaunch to open the .epub format books I have included for them. The best reader app I have found is @Renate NST's temblast reader app. It works with the page turning buttons, and in conjunction with @nmyshkin's NoIR app that he made, it makes for a seriously long battery life while reading. I gave my best friend a rooted NST for his birthday (beginning of August). He has read an entire book, and still hasn't charged it. Thanks for that, guys.
Anyway, what I'm trying to do is be able to use Relaunch to open .epub books. I've included a screenshot of the menu that has the ability to set intentions or even to open an application based on the filetype of the file selected. However, temblast reader does not show on the list of possible apps to launch. I tried using Titanium Backup to move temblast reader to system, but still to no avail. Anyone who knows better how to set an intent, and perhaps knows the language needed to do this would probably be much better suited to helping.
Thank you so much in advanced.
PS: That intent that is typed in the line for .epub files is my own feeble attempt at trying to get temblast reader to run as a system app. Please ignore that. :cyclops:
I'm not sure about Relaunch, but this should work fine:
Code:
# am start -a android.intent.action.VIEW -d file:///sdcard/Books/progit.epub
I typed it in like you said, and it didn't work. Maybe it's just not meant to be done on Relaunch.
Here's what it looked like when I tried to launch an .epub file.
Black screen.
I also thought maybe it was because my epub files are in My Files/Books so I added that in, and it didn't change anything.
I really appreciate your help and effort in this. Perhaps you know of an intent simply for "Reading Now"? I could use that in a different application.
Do you actually have that book "Pro Git"?
If you don't, there's no chance that it will be opened.
"Last Book" was actually a broadcast originally. Try:
Code:
# am broadcast -a com.bn.nook.launch.LAST_BOOK