Related
Serious effort to reverse engineer and change the "OK Google Now" activation phrase
I just got my Moto X dev edition today, and I plan to try and reverse engineer the activation phrase code in order to change it. I'm going to start by decompiling the touchless application, but I think it will be far more difficult and deeper in the system than that.
Does anyone know where the activation phrase is actually stored? Does anyone know anything about the internal structure of the touchless stuff? And finally, is anyone aware of any other attempts to do this so I can collaborate with them?
Thanks!
glitch003 said:
I just got my Moto X dev edition today, and I plan to try and reverse engineer the activation phrase code in order to change it. I'm going to start by decompiling the touchless application, but I think it will be far more difficult and deeper in the system than that.
Does anyone know where the activation phrase is actually stored? Does anyone know anything about the internal structure of the touchless stuff? And finally, is anyone aware of any other attempts to do this so I can collaborate with them?
Thanks!
Click to expand...
Click to collapse
I got no idea about any of your questions. I wanted to say that doing what your doing would be a very cool feature so thanks for the effort if you get anything going.
I also wanted to mention that I know the OK Google Now phrase is processed on the phone. The voice commands first get processed through Motorola's touchless control app or processes then if it is not recognized as a command it can deal with it then uploads it to google owned google now app. This is why you sometimes get different looking dialers or screens when sending texts depending on if Moto touchless controls handled the action or if google now handled the action.
Just thought of this but I bet it is extremely hard to do what you are doing because no one has created apps to use the low power processor so i presume its locked up somewhere in the phone.
a small start
So, I decompiled the Touchless APK and opened it in Eclipse. I found some interesting stuff in strings.xml, but I think it's just the strings that are displayed to prompt the user This one stood out to me though:
Code:
<string name="hello_moto">OK Google Now</string>
Could it be that the phrase was originally going to be "hello moto" but when Google bought Motorola they changed it for branding purposes?
I think these other string names indicate that could be the case:
Code:
<string name="training_say_hello_moto">Say OK Google Now…</string>
<string name="training_second_hello_moto">Say OK Google Now a second time…</string>
<string name="training_third_hello_moto">Say OK Google Now a third time…</string>
<string name="training_final_hello_moto">Say OK Google Now a final time…</string>
Anyway, if someone wants to change that hello_moto string in the strings.xml file to something else, it might be worth a shot. I can't test any of this yet, because I can't root my phone because it has a spec of dirt under the lens and I'm mailing it back to Motorola to get fixed. But if somebody out there with the knowledge to change this setting in the strings.xml file of the apk wants to try it, I think it's a promising lead.
Hello moto would be cool.. Much better than the OK Moto Magic that was also on the cards... That would just be embarrassing! Good luck man
Sent from my XT1058 using Tapatalk 4
That application is an almighty mess. It has a tremendous amount of classes named things like "a", "aa", "ab", and so forth. Right now, I'm trying to make an Xposed module to send an intent to Tasker rather then start Motorola's interface when the key phase is said. This has been a nightmare of its own. I'm going to start digging for the start phase in earnest once I get this part done.
Sent from my Galaxy Nexus using XDA Premium 4 mobile app
hawkjm73 said:
That application is an almighty mess. It has a tremendous amount of classes named things like "a", "aa", "ab", and so forth. Right now, I'm trying to make an Xposed module to send an intent to Tasker rather then start Motorola's interface when the key phase is said. This has been a nightmare of its own. I'm going to start digging for the start phase in earnest once I get this part done.
Sent from my Galaxy Nexus using XDA Premium 4 mobile app
Click to expand...
Click to collapse
Names like that usually indicate that the code was obfuscated . I would be stunned if they coded it that way!
@glitch003 any luck with this?
Sent from non rooted motoX :'(
I'd totally change "Ok Google Now" to "Jarvis" if I ever had the chance.
hawkjm73 said:
That application is an almighty mess. It has a tremendous amount of classes named things like "a", "aa", "ab", and so forth. Right now, I'm trying to make an Xposed module to send an intent to Tasker rather then start Motorola's interface when the key phase is said. This has been a nightmare of its own. I'm going to start digging for the start phase in earnest once I get this part done.
Sent from my Galaxy Nexus using XDA Premium 4 mobile app
Click to expand...
Click to collapse
It's meant to be an almighty mess, so people like us struggle for months to figure out what the code actually does and to prevent copying of their code
While I haven't been able to change the wakeup phrase, I have changed what happens when you say it. With Tasker, I am able to launch AutoVoice and/or !utter instead of Google Now.
This essentially allows you to control your entire phone with voice, while it's still in your pocket.
Kev1000000 said:
While I haven't been able to change the wakeup phrase, I have changed what happens when you say it. With Tasker, I am able to launch AutoVoice and/or !utter instead of Google Now.
This essentially allows you to control your entire phone with voice, while it's still in your pocket.
Click to expand...
Click to collapse
what exactly are you not launching? From my understanding Moto's runs their own voice recognition stuff, then when it can't recognize the command it then sends it to google now. (even though it looks like it is just running googlw now the entire time it is not. So at what point in the process are you hijacking the code? Also, how easily can you use it? Does it take a long time or does it start just as quick as touchless controls/google now was.
jayboyyyy said:
what exactly are you not launching? From my understanding Moto's runs their own voice recognition stuff, then when it can't recognize the command it then sends it to google now. (even though it looks like it is just running googlw now the entire time it is not. So at what point in the process are you hijacking the code? Also, how easily can you use it? Does it take a long time or does it start just as quick as touchless controls/google now was.
Click to expand...
Click to collapse
It's pretty easy. I simply use Tasker to detect when the Touchless Controls app becomes the foreground app, then immediately kill its process. After that, I launch AutoVoice. With AutoVoice, I can then say "Search" to bring me to Google Now, or "utter" to launch !utter. I can also say any of my home automation commands like, "Turn off the lights" or "Watch TV."
I essentially use the Touchless Controls app as simply a detection of when the phrase was said, and then launch my own processes that I want to launch once it's detected, and kill the app immediately before it sends any data to Google Now.
It's seamless, and extremely quick.
Kev1000000 said:
It's pretty easy. I simply use Tasker to detect when the Touchless Controls app becomes the foreground app, then immediately kill its process. After that, I launch AutoVoice. With AutoVoice, I can then say "Search" to bring me to Google Now, or "utter" to launch !utter. I can also say any of my home automation commands like, "Turn off the lights" or "Watch TV."
I essentially use the Touchless Controls app as simply a detection of when the phrase was said, and then launch my own processes that I want to launch once it's detected, and kill the app immediately before it sends any data to Google Now.
It's seamless, and extremely quick.
Click to expand...
Click to collapse
you want to run a test with a lock on your phone? I'm interested to know if touchless control bypasses the lock or not. I know it can do certain things with the phone in lock. I would assume the few options we have has to do with the fact that once touchless controls pushes the command to google now because it doesn't recognize it they can no longer keep the phone in a locked state. Anyway, if you could run some tests on that and report back I'm interested. Thanks in advance.
I'd like to help
Hey could you upload the apk?
Although I haven't done any reverse engineering before but I have a lot of spare time right now and I'd like to try and help. I just got a developer edition of the Moto X and annoyingly it doesn't seem like there's any easy way to root it right now, since it came with the newest update(at least as far as I can tell).
The only reason that matters to this is that I can't get the apk off of the device, as I don't have the sufficient permissions for data/app. If there's another way to do this then please let me know too!
Thanks
EDIT: nevermind, I realized there's a way to root it if I just unlock the device.
Recompiling with signature
I'm not sure if there is still any interest in this, but I've been trying to work on it nonetheless as a personal project.
This is my first time doing any sort of reverse engineering, and my worry is that we won't be able to sign the app after modifying it.
From what I've read of using apktool, it seems that if you want to keep the signatures you have to move the modified files you have back into the original apk.
Problem is, on OS X there doesn't seem to be a good way to open apks and modify them. Can someone else try and see if it can be recompiled and reinstalled?
Thanks
I messed with this for a short while. I found you can do it just by training. I was able to say "OK f$%& Wad", "OK Moto" and "OK Siri" (joke for my wife). I thought it was due to hex editing some files but that was only a coincidence. Train a phrase using "OK [your word] Now". Sometimes it is tough. Now most of the time you can start it with only "OK [your word]". They use some of the Nuance sdk. Nuance app looks for syllables if I read correctly. I will dig into the files again to see if it can be done more easily. All we need is one guy shouting the phrase and 10 phones want to react. ?
Good luck.
DroidJunk said:
I messed with this for a short while. I found you can do it just by training. I was able to say "OK f$%& Wad", "OK Moto" and "OK Siri" (joke for my wife). I thought it was due to hex editing some files but that was only a coincidence. Train a phrase using "OK [your word] Now". Sometimes it is tough. Now most of the time you can start it with only "OK [your word]". They use some of the Nuance sdk. Nuance app looks for syllables if I read correctly. I will dig into the files again to see if it can be done more easily. All we need is one guy shouting the phrase and 10 phones want to react. ?
Good luck.
Click to expand...
Click to collapse
Well the idea is that we want this to work even if you don't say OK, and you should be able to just say anything you want. Also, it should work without having to try many times.
On a side note, I've run into the issue where basically I can not install on top of the app because it's installed as a system app. I'm not too sure if there's any way to get around this besides removing the permissions check from the device which would be a huge security hole. I also don't even know if that itself will work..
It is probably a signature issue. I have a complete deodex of the original KK dump. If you sign with the same key that might help. You can verify by looking at your logcat when trying to install. Check out data/data/blabla audiomonitor. In the files Dir there is a file svsid_trigger. This is recreated each time you train. I would believe it to be a voice sample if you want to call it that. There are other files in there that when opened show the phrase OK Google now. This is where I hex edited but it did nothing. It will even run without some of these files. My theory is one of these files contains a sample of what it should look like. Decompiling the apk is about as messy as you described. When you check the prefs you see the phrase is set to custom phrase which appears to be a function/class. This also gets rewritten when the phone is booted. Curious to see what happens. I really expect Google or moto to change this. It just does not make sense to have all the phones responding to the same thing. Even with training others can activate it. I was watching a video on the phone and that activated it. LOL
DroidJunk said:
It is probably a signature issue. I have a complete deodex of the original KK dump. If you sign with the same key that might help. You can verify by looking at your logcat when trying to install. Check out data/data/blabla audiomonitor. In the files Dir there is a file svsid_trigger. This is recreated each time you train. I would believe it to be a voice sample if you want to call it that. There are other files in there that when opened show the phrase OK Google now. This is where I hex edited but it did nothing. It will even run without some of these files. My theory is one of these files contains a sample of what it should look like. Decompiling the apk is about as messy as you described. When you check the prefs you see the phrase is set to custom phrase which appears to be a function/class. This also gets rewritten when the phone is booted. Curious to see what happens. I really expect Google or moto to change this. It just does not make sense to have all the phones responding to the same thing. Even with training others can activate it. I was watching a video on the phone and that activated it. LOL
Click to expand...
Click to collapse
I know it's a signature issue when I am trying to install it, but even when I uninstall and install again, I get a permissions issue because it's not installed as a system app.
Also, changing the value of the audio file is interesting, but the problem is that unless we know the algorithms to generate the audio files, I don't know how we can adjust that. It seems cleaner to just go into the code and remove the checks altogether. On the other hand, it takes more investigating, and right now I am completely blocked on this. I don't have much time to mess with this anymore unfortunately, but I do want to try to remove the permissions altogether and see if it will let me install the app as a user app.
Synderesis said:
I know it's a signature issue when I am trying to install it, but even when I uninstall and install again, I get a permissions issue because it's not installed as a system app.
Also, changing the value of the audio file is interesting, but the problem is that unless we know the algorithms to generate the audio files, I don't know how we can adjust that. It seems cleaner to just go into the code and remove the checks altogether. On the other hand, it takes more investigating, and right now I am completely blocked on this. I don't have much time to mess with this anymore unfortunately, but I do want to try to remove the permissions altogether and see if it will let me install the app as a user app.
Click to expand...
Click to collapse
Check here when you get around to decompiling audiomonitor.apk. \AudioMonitor.apk\smali\com\motorola\audiomonitor\uis\training. It might be a good start. I use to be good at smali, but it has been a couple of years.
Is there an application that can password protect certain apps that I choose?
And please do not say Kids Corner as it does not do what I am asking.
It's probably possible (though far from easy), but I'd actually be more inclined to help if you hadn't opened a duplicate thread about this.
Only made second thread about this to attract some attention, 7 months passed since that guy opened his thread and nobody could give a good answer.
To me it's weird that nobody tried to make an app like this still, it would be very popular and help users very much.
Anyways, thank you for replying.
Really, just bumping the other thread was enough, but since we're here anyhow... my idea for how to approach it (and this would take a *lot* of hacking) goes something like this:
1. Create an app (call it X) that has the capability to launch other apps, and filesystem write access.
2. Have X take another app (call it Y) and encrypt its binaries. This prevents anybody from launching it by any means.
3. Tweak the app database to make it so that when you try to launch Y, it instead launches X and passes the id of Y as a parameter to the launcher.
4. X prompts the user for a password to Y. On getting the right one, it decrypts Y's binaries and writes them back to the correct location, then launches Y.
5. When the user (or OS) closes Y, a background process of X notes that Y is closed and re-encrypts it.
Currently we know how to do... well, some of #1, and we think the rest is possible. Given that, #2 isn't too hard. #3 is something I don't have the least notion how to do *right now* but I'm sure it's possible. #4 shouldn't be too hard given #1 and #2. #5 will be a trick - currently, apps have no way to know what other apps are running - but I'm sure it can be done.
It's a large engineering problem blocked by an even bigger research and hacking problem, though. Nothing we'll have soon. You'd never be able to publish it in the store, either, and it would only work for people with hacked phones. It's exactly the kind of *useful* thing that would be possible if Microsoft were willing to let up the restrictions on third-party developers a bit, of course, But for the time being, there are *reasons* nobody has done it yet.
Well the word that I actually was thinking after reading your post was "crap".
It seems only with time (and a whole [email protected]#$ing lot of it) will wp become a true competitor to android, but to be honest I don't think it will come to that.
Thanks for replying GoodDayToDie, I'm freakin' sad that there is no app that can suit my needs, I even tried with kids corner but the screen still needs the password entered like the normal one. Nothing really can make up for what I have in mind.
Cheers mate.
as soon as we can interop unlock all WP devices, it will be pretty easy... if you're able to provide the XAP (uncrypted of course )
i'll be able to "mod" this in for you... which app are we talking about?
@GoodDayToDie: i do'nt think he is looking for real data security here, so encrypting the whole thing shouldnt be required... i think it's more about preventing his gf to read his private messages or something like that
oh btw.: you would need a dev-unlock to deploy the modified XAP then...
tfBullet said:
as soon as we can interop unlock all WP devices, it will be pretty easy... if you're able to provide the XAP (uncrypted of course )
i'll be able to "mod" this in for you... which app are we talking about?
@GoodDayToDie: i do'nt think he is looking for real data security here, so encrypting the whole thing shouldnt be required... i think it's more about preventing his gf to read his private messages or something like that
oh btw.: you would need a dev-unlock to deploy the modified XAP then...
Click to expand...
Click to collapse
You're right tfBullet! I need it for whatsapp, photos, message and games app, mostly to prevent from friends but gf too.
I was thinking it might be possible to mod an app and add password before it can be accessed, although I have no experience in this domain. Many apps in store have this function, like wallet or prive photo apps.
My phone is dev-unlocked as I started a few days ago to study and try to create a simple app for me and my friends.
Modding an app like that would actually be quite hard, because it would break the signature and prevent the app from running. The encryption thing really isn't too hard, although you could skip it anyhow too.
If there was a way to run a program in the background that monitors when certain apps are selected and then prompts when its activated would work, but it would need an unlocked phone. And even under home brew I don't know if its possible to run apps in the background. Yet.
Sent from my Nokia 521 using XDA Windows Phone 8 App
The encryption thing really isn't too hard
Yea, but that's a little extreme. If you can create that password program that runs in the background you could probably have it watch files, apps or pretty much anything. You'd have to password protect the cofig file. And maybe if you can't remember the password after so many attempts you can have the program email the passwords to your email. Just some ideas.
Sent from my Nokia 521 using XDA Windows Phone 8 App
Running software in the background is actually shockingly easy. The trick is getting it to run with better-than-app-sandbox privileges. We're still working on that one. In the meantime, apps can't even read, much less write, to the install location of other apps.
GoodDayToDie said:
Modding an app like that would actually be quite hard, because it would break the signature and prevent the app from running.
Click to expand...
Click to collapse
@GoodDayToDie: actually these .NET apps are pretty easy to decompile, if you're willing to fix the bugs that the decompiler leaves you with...
so there is not really a need for a valid signature, if you're able to compile & sideload the app yourself
the only thing is: you need the decrypted XAP, as far as i know these get decrypted while installation and can be pulled from a interop unlocked device?!
It would be nice to get my fingers on some OEM (Nokia etc..) XAPs, to see if we can find any exploit in them
I know better than probably 95% of this forum what it takes to decompile managed code; I have reverse engineered huge numbers of apps. However, you are missing several important points.
1) Modifications like you suggest are very complicated to automate. It's certainly possible, but it's not simple.
2) Re-installing the app would be a pain. You would really want to do this as an in-place modification, and that means (for store apps) that it would still be signature-checked.
3) Not all apps are managed code; WP8 supports purely native code.
4) Even with managed code, obfuscation can make tinkering with the binary nigh-impossible.
It's just so incredibly stupid that WP is so limited. I know it's under Android big time, but I think even iOS more customizable, right?
Also, is there a message app in the store that has pass option? I searched but found nothing...
I don't believe iOS is any more customizable, no. It has some feature that WP lacks (it ought to; it's been out for years longer and Apple completely controls the hardware it runs on) but it's also missing some features that WP8 offers. In any case, this isn't the thread to have that discussion in.
GoodDayToDie said:
I don't believe iOS is any more customizable, no. It has some feature that WP lacks (it ought to; it's been out for years longer and Apple completely controls the hardware it runs on) but it's also missing some features that WP8 offers. In any case, this isn't the thread to have that discussion in.
Click to expand...
Click to collapse
But with the jailbreak and MobileSubstrate, iOS is extremely customizable, and there are tons of tweaks, that's where Apple gets its new features from
Back to topic, I think the OP would be happy with a solution that locks the "normal" user of his phone out of some apps, so it wouldn't be necessary to modify anything of it, just making the standard launcher (I don't know how it's called, but I mean when you launch the app via home screen or with a toast) ask for a password should be enough.
I remember a time when searching on Google was completely intuitive: It returned results that contained what I queried, and as long as I was somewhat competent in recognizing the subtle differences between certain word choices, those results were reasonable irrespective of whether I found what I had searched for. Lately Google seems to have set out on the goal of trying to programatically understand language. I completely hate the idea of a search engine trying to decide when the user would like to have words included in the search that weren't explicitly specified. For example: While using the word "love" in any query where the query as a whole is a commonly familiar set of words, such as "I Love Lucy", typically doesn't return any completely irrelevant results as long as you're not as deep into the search results as something like page 607, searching for something like "i love abcdefghijklmnopqrstuvwxyz" returns a barrage of links with bolded terms such as "Featured Story: Who the hell cares about abcdefghijklmnopqrstuvwxyz? I Know I Don't: A blogger's obsession with numbers.. [blah blah]... Top Stories... See More Like This...". I'm sure most of us know that that "like" is a synonym for "love", but I'm also sure most of us are aware that this is only true in certain contexts.
As another example, I remember querying "sed octal permissions pattern matching" and getting tons of results that seemed to suggest I was interested in results pertaining to "grep" and "awk" as well. The whole reason I had been searching for sed is that I was looking to create a script to be run on my router, which did not have the perl regular expressions feature compiled into grep, and awk was completely non-existent. I admit that including results for awk and grep could have been useful to people who weren't aware that they exist, but still, I don't believe pointing out software that provides similar functionality to that of one specified in a search query should be in within the scope of what a search engine tries to provide. Let people search for something like "sed similar functionality" or "alternatives to sed" and learn that, providing they use a decent search engine which doesn't prematurely assume things, there are other ways to go about their problem.
it
Recently, I entered the query "painless knee swelling damage", hoping to gain some insight as a frequent runner into whether or not swelling of the knee is likely to indicate that any significant injury is occurring when there is an absence of any pain. It returned results with things like "painful" bolded as a keyword. Here is a screenshot: WHY? I can't think of any signs more blatantly indicative of something being wrong with the algorithm of a search engine than when it returns the EXACT opposite of what the user has specified in their query. I realize these results don't seem to be the first that it gives, and I could see how it might be understandable for someone to think -- that after all instances of pages which are consistent with the query have been exhausted -- they should begin including things like often-associated words, closely spelled words, and synonyms, but only at the very end of all the legitimately relevant results. As you can see in the screenshot, the bastardizations of the user's query are not exclusive to the last listed suggestions; they're just seemingly tossed in along with the sensible results. It blows my mind that a company as large as Google can't seem to have someone review the validity of the so-often absurd suggestions generated by the search engine, or even better, adopt (or rather, revert to) algorithms that don't assume its users are so incompetent at expressing what it is they're looking for.
If a company were to exist who owned rights to the use of quotation marks, and made money each time someone typed them into a search engine, I'd truly believe that Google is acting in collusion with such a company because I literally have to put (even single) words in quotes, sometimes proceeded by a minus-sign just to avoid Google's outlandish interpretations of what seems like just about anything I search for these days.
Thank's got I am not the only one who thinks like you. For example, I just did a search with the following query: how to search in cpanel if grep is not available. And do you know what? The first results was: How to use Grep | Liquid Web Knowledge Base .... Uhmm... ok Google.
That's because Google is very commercial when it comes to search results these days. It's all geared towards advertising revenue. Results are tailored to your location, cookies, history, content of your Google account and your Google+ account. It also returns sponsored results first, but they're not listed as such anymore. And a lot of sites are being filtered out as well.
Whenusing Incognito mode you'll often get very different results.
I searched for 'g900f brick after factory reset XDA' yesterday. The first XDA result? third from the bottom.. The first page was almost entirely random, not even Android Central. I even got results for the financial times and Reddit. But not related Reddit pages, nope.
And if you search for certain things, they manipulate your search. For the fun of it, try finding a torrent. Google automatically alters the results to the paid sites. And ironically they don't consider location in that. I searched for a book yesterday, redirected me to over 300 ebook webshops exclusively for USA and Canada. That's 4000 miles from here. Useful Google. -.-
I've resorted to using Bing for some things..
Edit: Sorry, I had to remove this app when it was brought to my attention recently and I found it was NOT the appI had thought it was :-( It does NOT display properly on the NST/G. Still looking for the one I remember and if I find it I will update this post.
I stumbled across a brief reference to this app buried in another thread from long ago and thought I'd bring it back into the light. Market apps for crossword puzzles seldom work well on the NST, many of them having issues with partially disappearing keyboards.
The app attached below is actually from the Nook Color! It installs and runs just fine on the NST (probably NSTG as well). It has a nice, clean UI--with a custom keyboard that doesn't disappear. Puzzles can be selected by difficulty level.
The drawback: there seems to be no way to get more puzzles. But for casual use, it's great--and the price is right
This app appears to work on the Glowlight Plus also. However, it seems to be pixel mapped, so it appears very small on the higher resolution screen.
are there any services that generate hints?
Great idea! I will gladly support any effort to port/fork/customize/make such app better.
On my Glow3...
Renate said:
On my Glow3...
Click to expand...
Click to collapse
I've actually learned a few things since my original post (shocking!). Just a cursory inspection of the apk file reveals the stored puzzles in res/raw. There appear to be 100 of them and they are actually in a known format (.puz)!
I've not tried adding anything yet (it's probably not that simple), but here is a site with lots of information about obtaining .puz files for use in Across Lite (a puzzle creating and solving platform): https://communicrossings.com/crosswords-sources-web-sites
Maybe I'll pursue this. I do actually have a very old Crossword app that works well across all my devices and can download new puzzles daily from a variety of sources. I don't even recall where I got it but it has clearly been "modified" in some fashion by someone. Most features work on the NST except for updating the list of puzzle sources. For some reason this fails on the NST although it works on other devices. Probably an SSL issue. But as there are quite a few sources in the "old" list, it's fine for the NST where I don't generally spend a lot of time doing puzzles. But it's there when I need a break from reading or just idle entertainment waiting in a doctor's office, etc.
Edit: I lied. There are actually 189 puzzles (easy, medium, hard, themeless).
nmyshkin said:
I've actually learned a few things since my original post (shocking!). Just a cursory inspection of the apk file reveals the stored puzzles in res/raw. There appear to be 100 of them and they are actually in a known format (.puz)!
I've not tried adding anything yet (it's probably not that simple), but here is a site with lots of information about obtaining .puz files for use in Across Lite (a puzzle creating and solving platform): https://communicrossings.com/crosswords-sources-web-sites
Maybe I'll pursue this. I do actually have a very old Crossword app that works well across all my devices and can download new puzzles daily from a variety of sources. I don't even recall where I got it but it has clearly been "modified" in some fashion by someone. Most features work on the NST except for updating the list of puzzle sources. For some reason this fails on the NST although it works on other devices. Probably an SSL issue. But as there are quite a few sources in the "old" list, it's fine for the NST where I don't generally spend a lot of time doing puzzles. But it's there when I need a break from reading or just idle entertainment waiting in a doctor's office, etc.
Click to expand...
Click to collapse
Is the crossword app that works across all of your devices same as the one attached to the first post of this thread? You have my support in doing this man. We think similar in approaching the problem. I would also have started from the file type and then go further. I need to look up that platform and attached link. Say if you need any help with this. I need to check crosswords in my language and is there any available site to download them. It might be futile effort for NST without keyboard change. As for SSL problem it starts to be such pain in the a$$ that someone is going to lose patience and find the way to solve it by programming or find the way to obfuscate it through NST as dashboard and any newer phone as server for example. That was also one of the approaches I proposed for missing GPS. Now I rarely need GPS on NST however making it better in terms of book and newspaper device I am all for it.
SJT75 said:
Is the crossword app that works across all of your devices same as the one attached to the first post of this thread?
Click to expand...
Click to collapse
No, that app of questionable origin is different.
SJT75 said:
You have my support in doing this man. We think similar in approaching the problem. I would also have started from the file type and then go further. I need to look up that platform and attached link. Say if you need any help with this. I need to check crosswords in my language and is there any available site to download them. It might be futile effort for NST without keyboard change. As for SSL problem it starts to be such pain in the a$$ that someone is going to lose patience and find the way to solve it by programming or find the way to obfuscate it through NST as dashboard and any newer phone as server for example. That was also one of the approaches I proposed for missing GPS. Now I rarely need GPS on NST however making it better in terms of book and newspaper device I am all for it.
Click to expand...
Click to collapse
I started to look at this and got a couple of surprises. First, on initialization the app creates one binary file in the data folder. That's all. So any puzzle substitution/updating would have to be done by taking the app apart and then putting it back together with apktool. Not very convenient, but I suppose if you did a good number of puzzles at once it might be worthwhile.
However the real surprise was looking at the app running. It's nothing like I remember! So I'm not sure what I'm looking at now. Maybe I've got yet another crossword app among my files. Better download from the earlier post and see... Although the package does say com.encore.crossword. But the short of it is that the app I was looking at is a no-go on the NST. The puzzles are half-hidden behind the keyboard and no amount of persuasion in either word or gesture (rude or not) will convince the puzzle to scroll up.
Edit: nope, it's the same app I posted earlier in this thread so long ago. It seems impossible but there it is. I wouldn't have posted it if I had seen how it was bolluxed up on the NST. I have no explanation.
Huh. Your 15 x 15 looks better than mine.
I did a once over trying to fix the app.
I chopped down the keyboard a bunch.
Still, the whole layout is a mess.
Renate said:
Huh. Your 15 x 15 looks better than mine.
I did a once over trying to fix the app.
I chopped down the keyboard a bunch.
Still, the whole layout is a mess.
Click to expand...
Click to collapse
Yeah, I did a little fiddling but could not convince it to show the entire grid as accessible along with the keyboard. It really must be coded just for the Nook Color/Tablet display.
I am baffled as to its appearance. I am getting older, but its nothing at all like I remember. I never would have posted if it had looked that way when I first tried it. But its definitely an app from the Nook Color, that much is evident from the package name. Just a mystery.
From little bit I have read about this ancient version of Android what nmyshkin reported about behavior of the application led me to believe that is developed as NDK app. I believe it is easier to make new app starting from scratch if you gathered enough knowledge about that crosswords file type and if download sources are not behind paywall. I would start with calculating size of standard on screen keyboard and then put rest of the screen for use by the crossword. It might be little small that way although but if field input is letter sized from some regular NST font I believe it can be squeezed. Other option might be that you do not make keyboard input at all but select input square and then use gesture in input field resembling writing. You would also need erase button. Then you would have more space for crossword but had to program input interface for the app. IIRC Opera does support gestures so maybe you could get the idea how to make that interface there.
Since the thread contain nonworking app can we consider it as place for discussion about either rigging that one or finding or developing new one for NST?
You already mentioned modified keyboard so I guess changing crossword layout is not out of question too. I didn't check .puz file type so obviously I have no idea about it but I did skim little through the site nmyshkin posted here. There are also other options there so it might be good to consider them also. Firstly using browser with JS woodoo. I do not know much about that but I have gained an impression you have previously make some good stuff using similar approach. Second option is using .PDF file type for puzzles. It might work considering that NST have some limited PDF reflow ability. Maybe that can allow us to adjust crossword layout? Problem is that it seems like it is slightly abandoned file format for puzzles although it was possible to have even interactive ones in that format. Can"t say what the term interactive means. Hint, letter reveals or something else. If it means connection to a server on net that will most likely be to big bite for old NST in the future.
Just a stray thought inside puzzle letters shown are real letter font used on NST or pictures generated in app?
Looked little about crossword file format. It seems that .puz is albeit old and easier to view/change using tools as simple as Notepad somehow proprietary. On the other hand it is claimed that .jpz is more versatile but even if it is so it seems to be some hybrid between Java and XML.There is also third format .ipuz that is completely free but as I understand it is originally for Mac which I do not have. Now if I delve into this what is the opinion of others? Consider it as a poll. 1, 2 or 3?
The New York Times apparently uses .puz
I'd give that some weight.
NYT links to this download: https://www.litsoft.com/across/alite/download/index.html
That file format seems to be (mostly) documented here: https://code.google.com/archive/p/puz/wikis/FileFormat.wiki
It could be edited by hand but there are binary parts and checksums.
Edit: Well, I take that all back. NYT (just yesterday!) stated that they are dropping .puz format.
NYT Games No Longer Available on Across Lite as of Aug. 10 (Published 2021)
Starting next week, we will no longer provide downloadable .puz files.
www.nytimes.com
I understand that up until now adoption by influential publisher (which regularly paid to owner of file format for software and rights to use) kept .puz in game. Format is simple and already have been reverse engineered by others which irked rights owner to the point of threatening with lawsuits left and right. They should have invested more in development of format and software instead. Second format .jpz is supposedly better but had so far lagged in adoption on the market.
Ha, ha!
Cross words over New York Times puzzle change
The US-based publication is cutting third party support for its popular crossword puzzles.
www.bbc.com
Well I can anticipate two things. First its a good time to start torrent search for old crosswords files archives. Second is that I believe we can find alternative sources on the link nmyshkin posted earlier. Still that doesn't resolve dilemma which file type is a way to go. Based on previous statement Rennate made on other topic I presume she would like .ipuz as open and free standard.
Just a link to share. If someone need old crosswords it appears someone already had made a database. link
https://www.xda-developers.com/android-q-storage-access-framework-scoped-storage/
... Looks like porting old pie roms to new phones is going to become a thing
According to what I've read, it would be very easy to build a workaround for it, especially considering Google already has a workaround in place until Q apps are enforced in Google Play.
Also looks like it might be a pain in the ass
I cannot believe what I just read. I wasn't aware this was coming and I couldn't despise the decision more.
Proper access to the file system was for me one of the main advantages Android offered over iOS.
Way to go, Google...
I think this is the best move Google made for security thus far. Too many apps ask for full unfettered access to my storage. I will be happy when apps get a little bit more locked down in this aspect.
Scott said:
I think this is the best move Google made for security thus far. Too many apps ask for full unfettered access to my storage. I will be happy when apps get a little bit more locked down in this aspect.
Click to expand...
Click to collapse
It's not even just storage, it's to everything these days. Why does the app for my Apex Fusion interface on my reef tank need access to contacts and text messages?
On topic, I agree 100% with you.
Those tears in my eyes... yeah not because of the blue light in the middle of the night here... because of what I read... agree +1
I personally think it's a good move. I don't use a lot of apps because of their required permissions.
Well if you can disable Q's "scooped storage" on per app basis with adb shell then it's easy to write a script that enables general storage for every app.
Sent from my OnePlus 6T through Tapatalk
hank81 said:
Well if you can disable Q's "scooped storage" on per app basis with adb shell then it's easy to write a script that enables general storage for every app.
Click to expand...
Click to collapse
True, but I'm sure eventually, just like with most every other special permission these days, you will wind up having to enable it on every boot.
Yes, the entire bug report is atrocious, but let's not get our pitchforks just yet. Google effectively punted on this for Android Q, by making it possible to contribute business as usual. It's quite possible that these issues will be resolved by Android P, or even that the whole idea will be scrapped in favor of something else.
The fact of the matter is that storage permissions in Android are terrible, Trying to address that is not in and of itself a bad thing, in fact I would argue that part alone is a good thing.
Attempting to read the tea leaves a little, this whole project reeks of "new hotshot product manager with poor (at best) understanding of the technical complexities at play forces bad decision into product because he needs to make 'highly visible' changes to the product to demonstrate his worth or get himself promoted". Especially given that the general idea at play isn't the part people are complaining about, just the fact that it's currently technically unusable as a posix api replacement, but the fact that the current one they have is terrible/slow/etc I find the above scenario to be highly likely
partcyborg said:
Attempting to read the tea leaves a little, this whole project reeks of "new hotshot product manager with poor (at best) understanding of the technical complexities at play forces bad decision into product because he needs to make 'highly visible' changes to the product to demonstrate his worth or get himself promoted". Especially given that the general idea at play isn't the part people are complaining about, just the fact that it's currently technically unusable as a posix api replacement, but the fact that the current one they have is terrible/slow/etc I find the above scenario to be highly likely
Click to expand...
Click to collapse
Thats deep!
Scott said:
Thats deep!
Click to expand...
Click to collapse
Lots of adult beverages to come up with this ?
Ayahuasca ?
Scott said:
I think this is the best move Google made for security thus far. Too many apps ask for full unfettered access to my storage. I will be happy when apps get a little bit more locked down in this aspect.
Click to expand...
Click to collapse
I don't get this. Correct me if I'm wrong, but can't you already disable specific permission for every app through system settings? Unless something like a wallpaper app refuses to work without access to your phone's contacts or something. Do you get what I'm saying?
roaduardo said:
I don't get this. Correct me if I'm wrong, but can't you already disable specific permission for every app through system settings? Unless something like a wallpaper app refuses to work without access to your phone's contacts or something. Do you get what I'm saying?
Click to expand...
Click to collapse
Not exactly. Storage access in the current world is a binary yes/no decision (well, 2 binary yes/no decisions if your device has a SD card slot), either "yes here is access to all of /sdcard" or "no you can't read or write to anything outside your specific app data folder". Using something like the API gives you the ability to do much more fine grained access like "give Poweramp access to my normal music collection in /sdcard/Music, but not my keepassxc password file.", Or "let photos index all the pics it finds on my machine, except for the ones in a 'certain' telegram folder".
The cause for pitchforks in the bug report isn't that people are in love with the posix apis for file access, just that the current Android API implementation is something like 50x slower in Android Q, making it essentially useless for file manager apps that need to do things like directory listings and maintain indexes of all shared storage, etc.