[REQUEST] Waze Module to allow use of Old Voice Packs - Xposed General

Waze uses celebrity voices for navigation occasionally but they are only available for a limited time.
This was the previous method of getting the voices to work once they were removed from the app: https://www.reddit.com/r/waze/comments/57t2ue/waze_voice_pack_archive/
It seems the old method of downloading a voice then replacing the .mp3 files in the folder now either result in no audio at all or just a glitchy experience.
It would be great to have a module that allows users to replace the voices with one of the old ones.
Here's a list of celebrity recordings in the new .mp3 format vs the reddit archive that uses .bin files: http://www.mikeyip.com/2016/04/celebrity-for-waze.html
Anyone willing to help out the community and make a simple module to do this? I know a lot of people would appreciate it!

Bump

How to get Waze celebrity and other voices back onto your Waze app
Hey, Merry Christmas everybody! I finally cracked the code - I hacked the waze celebrity voices back onto my Waze app!
As most of you have figured out, Waze recently disabled the ability to use whatever voices that you copy into the "sound" folder. With older versions you could do so, but now they just won't play when you choose the folder you dumped the voices into. Instead, you'll be greeted with the frustrating sound of silence anytime you choose that voice in settings. Add to this the annoying fact that new celebrity voices are updated onto your voices menu as a promotional thing, only to be automatically deleted after a certain amount of time, and you'll see why I was this close to downgrading my Waze version just to be able to get whatever voice when I could get it! However, after ages of poking at this I finally figured it out: it's just a simple file flag change.
SHORT/GEEK VERSION
*I'm assuming you're rooted.
*Download whatever celebrity voices you want (the folders and their mp3s) into a desired location on your phone for copying and/or backup
*Using the Waze app, download a useless foreign voice and make a note of the name
*Copy all the mp3s of your desired celebrity voice
*/data/data/com.waze/waze/sound/[The useless foreign voice folder]/Paste (overwrite) the desired celebrity voice mp3s over the mp3s already there
*Long press any mp3 you just pasted in/Select all/3-dot menu icon/"Change SE context"/"Enter context manually"
*Manually type in:
Code:
u:object_r:app_data_file:s0:c512,c768
*Press OK
*Change all mp3 permissions to "rw-------" (0600)
*Rejoice!
THOROUGH/NON-GEEK VERSION:
*I recommend being rooted, since you have to be able to access, copy, and edit Waze system files with a root explorer app. How to root your phone is beyond the scope of this short tutorial. Good luck.
*Using Root Explorer, make a separate folder to hold your downloaded voices wherever you want in your file system (I just made a folder called "Celebrity Voices" within /data/data/com.waze/waze/sound, and Waze doesn't screw with it, but it will delete any other celebrity/promotional folders it wants from the "sound" folder on your next update).
*Download whatever celebrity voice you want onto your phone, and copy/paste it into the folder you just made.
*Now do the following: [your new folder]/long press any mp3 file/3-dot menu icon/"Change SE context". You should see a popup window that has something like this under the file name:
Code:
"Current value: u:object_r:app_data_file:s0" (This is why the files DON'T work)
*Now do the same in your Waze "sound" folder /data/data/com.waze/waze/sound/(Any currently working Waze voice folder like "eng_nathan" or whatever)/long press any mp3 file/3-dot menu icon/"Change SE context". Now you should see something like this:
Code:
"Current value: u:object_r:app_data_file:s0:c512,c768" (This is what the files have to be to work)
*Waze won't allow you to just make your own folders you can choose within the app voice menu, because it's not programmed to (this is why it won't screw with the folder you created- it doesn't know it's there!). So, you'll have to copy your desired voice files into an already existing voice folder that you know you won't use and paste them over its files- something like Serbian or another foreign language you don't speak and know you'll never need. Basically you're hijacking the folder Waze uses and replacing it with voices you want.
*First you have to go get those voices on your phone: Waze app/left swipe screen/gear symbol(preferences or settings)/Voice directions. Choose a voice you know you won't need (Example: I use "Deutsch - Mica" for my Arnold Schwarzenegger voice), and tap it to start downloading. This should take you back to the main screen where you'll see the red text showing you the download progress. Wait until it's finished.
*Now go back to your downloaded voice folder: Long press any mp3/Select all (a little square icon)/COPY
*Go into /data/data/com.waze/waze/sound/[the folder of your new Waze voice you just downloaded]/PASTE (choose "yes" if asked to overwrite existing files).
*Long press any mp3 you just copied over/Select all/3-dot menu icon/"Change SE context"/"Enter context manually"
*Manually type in:
Code:
u:object_r:app_data_file:s0:c512,c768
*Press ok. Watch the magic happen. Congrats, you just "hacked" your Waze voices. And also, you just earned a geek point. Score!
*Double check under the mp3 file names that the permissions are set to "rw-------". If not, do the following: Long press any mp3/Select all/3-dot menu icon/Permissions/Only check "Read" and "Write" next to Owner, and set all others to unchecked/Press OK.
*Now go to Waze and see if your celebrity of choice gives you directions.
NOTES:
*Highly recommended- make a text note somewhere on your phone to keep track of what voices are the same as the celebrity voice you hacked in. Download enough voices and you'll find yourself saying "Dammit, was C3P0 the "Gabriela" voice or the "Shahdan" voice?"
*Create a text file somewhere on your phone with the correct SE Context code pre-written into it so you can copy/paste it into any new voice's SE Context Manual entry line(cause that crap's just a pain in the butt to type out on a phone).
*Don't bother screwing with the SE Context of the files BEFORE you copy them into your Waze "sound" folder, because the copy/paste process breaks the changes and you'll just have to do it over again. This one took me a while to figure out.
*I personally never had to reset my phone- I found I could use my new voices immediately.
*Individual mileage may vary, and the folders may not be labeled exactly as written here. Use your imagination, and good luck.
*Don't worry if you change your mind about someday needing some foreign language as originally provided by Waze that you replaced with Morgan Freeman or something. Who knows, you might want to learn Spanish someday! You can always just delete that folder, go back into Waze, and download it as before, and it will start fresh. Just don't forget to back up Morgan...
*You can manipulate these voices in a sound editor and do whatever you want with them as long as the mp3 filenames stay exactly the same as before. If you're a sound geek this can be way fun.
*Anytime a new voice shows up on your phone, copy and paste it over into your personal celebrity voices folder and label its folder so you can identify it easily later on, because they'll just hijack it away from you when its promotional period is over. Just copy them into another foreign language folder as above and it's yours whenever you want.
*I have tried to find all the voices you can download from other websites, but I know there are others out there. I just received and nabbed Santa Claus ("Coca-Cola shill" version) and Liam Neeson (promotion for "The Commuter") on my phone as well. My all-time favorite: T-Pain...
*I am using:
Samsung Galaxy Note 4 running Lineage OS 14.1
Root Explorer 4.1.6
Waze 4.25.0.2
Merry Christmas, or whatever holiday you celebrate at this time of year!
Regzim

Hi Regzim
I used your method on a rooted phone (which is not mine!) running Kitkat and it worked like a charm.
My own phone isn't rooted and runs Nougat in which there is no access to Waze files. So, I'm looking for a method to use the voice recording feature in Waze on a rooted phone to use an old voice pack and then share it with my non-rooted phone (take a look at this thread)
Any idea?
P.S:
I'm testing a stupid workaround. I installed Waze in Bluestacks and tried to record prompts one by one using stereo mix. The problem is that there's a weird noise on the recordings in Waze. However, there's no noise when I used a voice recording app (Easy Voice Recorder) in Bluestacks.
Do you have any clue why it is so?
Thanks

Making this work on non-rooted phones...
Hi Sedhadi!
Awesome, I'm glad it worked- I was holding my breath wondering if this was a "my phone only" kind of thing or that maybe they changed the file flag differently for different phones or something. :laugh:
Hmmm... making this work on a non-rooted phone? That's a tricky chestnut to crack. I think I've seen that thread before in my quest to figure this out, but it seems like most of those methods they mention are older pre-Waze update methods that don't take the SE context into account and are thus no longer useful to newer Waze versions...
I don't have time to sink my teeth into it thoroughly at the moment, but my mind immediately goes to ADB (Android Debug Bridge) push/pull. Basically it allows you to poke around and manipulate files in your phone through a terminal interface on your computer using command line prompts. I'm not sure off the top of my head whether you need to be rooted to use ADB as well. Ironically I don't have any non-rooted phones around to test this out on, so I can't help you there without a thorough web search. However, I couldn't find anything on how to change SE context using ADB, and since getting this to work hinges completely on the SE context, the prognosis doesn't look good. Do a search for "all things android se android commands" for now and see what you can find, but when I get some free time I'll poke around and check out what I can discover as far as method goes.
Also FWIW, there are some apps out there that root your phone for a limited time, so you may be able to get that going just long enough to manipulate the files as needed, but you'd have to work fast, and have Root Explorer ready to go. Disclaimer: some of the temp root apps can be adware bombs, so caveat emptor...
As for the weird sound, I'd need to hear it to be sure but I'm thinking it may be the normal "noise floor" problems (electronic interference, background noise, crappy mouthpiece, etc.) that come with recording anything using your phone's built-in microphone/mouthpiece. Is it a buzzing, a hiss, or what? For those reasons I'm not a big fan of the "record your own directions" function on Waze, as the sound quality mostly comes out pretty crappy in the end because of the technical limits of the mouthpiece.
Regzim
---------- Post added at 03:24 AM ---------- Previous post was at 03:21 AM ----------
P.S., just realized I didn't know what Bluestacks was until I looked it up- since it's an emulator, you might be getting weird noises because of your COMPUTER'S microphone/ audio input device. What kind of mic do you have?
Regzim

Hi Regzim
Thanks for taking the time to answer.
In that Reddit thread, it was suggested to replace a recorded voice files with a celebrity voice pack instead of doing so to a useless foreign voice. I tested that method and it worked and I could hear the prompts while navigating but the share button didn't activate (which means Waze realized I manipulated the files).
If we find a workaround (like changing SE context (which I tried to pull off on these files as well but failed)), then there will be no need to come up with a solution for non-root phones because we can share the celebrity voice as a recorded voice.
P.S: I didn't use any real mic. I used Stereo Mix (aka What You Hear) feature of Windows. I played the celebrity's voice in VLC and started recording in Waze in Bluestacks. So, no extra noise actually adds up to the source sound. But the result in Waze is awful.
It seems there's something wrong with Waze while recording.
Regards

Another bump. Would love to have an easy solution for non-rooted phones.

Waze voice packs
Did you guys made any progress on this?

I have a non rooted Samsung s8 so I am interested as well. Please find a work around! Thank you.

This is not the right section. It needs to be posted in the module section. However what you're requesting doesn't need Xposed AT ALL.

Is this still working for some?
I downloaded the bottom three voices in Waze and followed the instructions (not for the first time, new phone).
The permissions and SE context are correct, but still no sound.

joekeee said:
Is this still working for some?
I downloaded the bottom three voices in Waze and followed the instructions (not for the first time, new phone).
The permissions and SE context are correct, but still no sound.
Click to expand...
Click to collapse
Still works!
But for me it only works when I choose a language that doesn't contain a _ in the foldername.
Like Croatian, Swedish, Turkish.

Regzim said:
*Long press any mp3 you just pasted in/Select all/3-dot menu icon/"Change SE context"/"Enter context manually"
*Manually type in:
Code:
u:object_r:app_data_file:s0:c512,c768
*Press OK
*Change all mp3 permissions to "rw-------" (0600)
*Rejoice!
Click to expand...
Click to collapse
Thanks for putting this up. I was bummed when they changed it and would love to get celeb voices back. I'm rooted and got up to copying and overwriting the files into the foreign Waze sound folder, but I don't get anything like "Change SE context". I originally copied the files with ES File Explorer and didn't see anything like that, so I specifically tried Root Explorer free version and still no option like that. I also can't see the rw permissions (I CAN see and modify those permissions in ES). Is that something that's only in the paid version?

No "Change SE context" in menu
raulrocks said:
Thanks for putting this up. I was bummed when they changed it and would love to get celeb voices back. I'm rooted and got up to copying and overwriting the files into the foreign Waze sound folder, but I don't get anything like "Change SE context". I originally copied the files with ES File Explorer and didn't see anything like that, so I specifically tried Root Explorer free version and still no option like that. I also can't see the rw permissions (I CAN see and modify those permissions in ES). Is that something that's only in the paid version?
Click to expand...
Click to collapse
Hmmm... I wonder if this is a "my phone/OS only" thing. But this doesn't make sense since the SE context thing is within Root Explorer, not exclusive to my OS. Not quite sure if I've got the free version of Root Explorer (Version 4.1.6) as well, but these options were in my version when I long pressed the files/3-dot menu/Change SE context near the bottom of the drop-down menu. At the time of writing this the free version is up to 4.4.3 FWIW.
Gotta admit I'm flummoxed on this one. There's just too many variables from phone to phone to explore here, but an app is an app - either it has the same menu items on every phone or it's not the same version or app!
Some ideas off the top of my head that may be worth chasing down:
*The free version may not provide the SE context option (to be honest I can't remember whether I am on the free version, or if ages ago I cleverly "got hold" of the paid version if you follow my meaning). Maybe bite the bullet and buy the app (or "get hold" of it somehow)?
*An upgrade to Root Explorer somewhere along the line maybe broke or eliminated this option. This is not out of the question since I read all the time about loyal users *****ing about how their app used to "be perfect" until the latest stupid upgrade changed everything for the worse. I never have this problem since I sideload every app into my phone manually and turn off automatic upgrades on all apps, because I can't stand upgrades breaking and/or ruining perfectly good working apps. Sure, my apps are sometimes a little behind the times, but they freaking work and keep working until I outgrow them or something better comes along. Maybe find version 4.1.6 somehow and see what happens?
Sorry if none of this works and if I can't be of more help than this. Bummed to think only an elite few may be able to do this, because I hate it when software nazis lock up options that allow us users to customize.
Hope you crack this, and please share if you do!
Regzim

Thanks for the additional info, especially the version!
I had installed the first "Root Explorer" that was free, but it has different version numbers. Based on your info it looks like the one you have (by Speed Software) call their pro version Root Explorer and their free version simply Explorer. And yes indeedy do you need to the paid version to view/edit root files. I happened to come across the current version and everything you said fell into place.
Even though it was 3:40 am, ran down to my car (3 flights) and was ELATED and did a happy dance when 3PO said "In 0.1 miles turn left master"!
HOOOOO-raaaaaayyyy!!!! And thanks, triple thumbs up! :good::good::good:

Hi
I rooted my Xperia Z5 (7.1.1) yesterday. This method doesn't seem to be working on my phone. All I get is silence.
Any idea what the problem may be?

Sedhadi said:
Hi
I rooted my Xperia Z5 (7.1.1) yesterday. This method doesn't seem to be working on my phone. All I get is silence.
Any idea what the problem may be?
Click to expand...
Click to collapse
hai,
this method still work for me.
i use 1+5.
Regards

barani kumar said:
hai,
this method still work for me.
i use 1+5.
Regards
Click to expand...
Click to collapse
Hi
What's your Android and Waze version?

Sedhadi said:
Hi
What's your Android and Waze version?
Click to expand...
Click to collapse
Hai
I'm using 1+5 with OOS beta 35 (Pie)
Waze 4.52.3. 4
Im been using this method for long time.
And I do clean install every few month.
So Im very confident this method work for latest ver.
Regards.

Do I have to be rooted to do this?
I have a s8 and can't find the Waze file can someone help

Related

request - TTS ringtone.

Hopefully this is ok to post here since it is a request for dream development. Sorry in advance if this belongs in Q/A or something.
The #1 thing I miss from my old Sanyo dumb-phone was the TTS ringer. When ever I received a call, my phone would:
"beeeep, incoming call from ([name] or "unknown-caller")"
I found this very handy as if my phone was out-of-pocket in my home, I could decide to get off the couch and get it or not without moving a muscle.
I have searched all over for the same basic TTS functionality in both WinMo and now Android but have not found anything.
Is it even possible within the Android system to use the TTS service to speak the contact name on incoming call instead of a ringer?
EDIT: And while I'm posting development requests, I would also like to see an app that lets you re-assign buttons (like vol+/- could page up and down unless there is sound playing, and the camera button which does nothing in Hero could be assigned to launch an app [HTC Camera] or even bring up a menu of apps to select from). They have lots of button programs for WinMo, but I've seen none for android.
I know winmo has this feature as my friend's old tilt had it.
There were a couple apps in the market that announced the name that called but they were not very good. IMO the current TTS in the market sucks, can't even understand it half the time.
I imagine someone could cobble together an application that could sense the ringtone call and hijack the audio, and then just use the TTS library to speak out the name / phone number, with "Incoming call from" prepended. I don't know if that's what the apps are doing. I don't see any apps like that on the market, either.
Search market for:
NameRinger
TalkingCallerID
voicecallerid
who is it
All have their problems. I think only voicecallerid is actually free.
What I did
This is what I did, its a hassle but works. went to
http://www.research.att.com/~ttsweb/tts/demo.php
typed the name of my contact downloaded and insert to sd and set as contact ring tone. yeah it suck but u can tweak it with different spelling to make it sound like the actual name. hope it helps
Here you go!
I tought I could do something back for the community so I started a new project =)
The only problem is that I have no visa to pay the registration fee to get this on the market.
I uploaded the apk to http://wilma.vub.ac.be/~lhoste/TTSNotifier.php (!UPDATED)
Based on the open source design of SMSPopup (thx!)
Speaks:
"Incoming call from <NAME>"
name = "unknown" if the number is not found in the contacts
can you start a google code page for this? im sure you can get some support and bug fixes from the community. maybe even one of the devs might upload to their account for you
upload the apk to somewhere else cause we cant access it
rpmccormick said:
Hopefully this is ok to post here since it is a request for dream development. Sorry in advance if this belongs in Q/A or something.
The #1 thing I miss from my old Sanyo dumb-phone was the TTS ringer. When ever I received a call, my phone would:
"beeeep, incoming call from ([name] or "unknown-caller")"
I found this very handy as if my phone was out-of-pocket in my home, I could decide to get off the couch and get it or not without moving a muscle.
I have searched all over for the same basic TTS functionality in both WinMo and now Android but have not found anything.
Is it even possible within the Android system to use the TTS service to speak the contact name on incoming call instead of a ringer?
EDIT: And while I'm posting development requests, I would also like to see an app that lets you re-assign buttons (like vol+/- could page up and down unless there is sound playing, and the camera button which does nothing in Hero could be assigned to launch an app [HTC Camera] or even bring up a menu of apps to select from). They have lots of button programs for WinMo, but I've seen none for android.
Click to expand...
Click to collapse
My question to you is.. Why stop there?
My teacher once told me... "Why hope to make bridges made of sticks when you can dream of making bridges in the sky?"
Meaning... lets raise the bar.. lets dream bigger... So "Why stop there?"
You want TTS ringer... well I want TTS Notifications linked to any notification I enable.
ex. "Open home download completed", "you have 30 tweets", "USB connected", "You have a text message from XXX, Dictate?"
It may not have artificial intelligence.. but after how many years we have had technology and computers... couldn't we train it to be intelligent for us? You can train a dog to sit... so how come we can't program our phones to verbally say "Plug me in! Battery LOW!", "Open Wifi Signal in range", "So-n-So's birthday is today, bought them a gift?"
That does not require artificial intelligence right?
Why not bring Android toward "Fruition"
Damn... If I had the programming knowledge... I think I'd try this myself...
Sorry, link is fixed now
gho0o5t said:
My question to you is.. Why stop there?
My teacher once told me... "Why hope to make bridges made of sticks when you can dream of making bridges in the sky?"
Meaning... lets raise the bar.. lets dream bigger... So "Why stop there?"
You want TTS ringer... well I want TTS Notifications linked to any notification I enable.
ex. "Open home download completed", "you have 30 tweets", "USB connected", "You have a text message from XXX, Dictate?"
It may not have artificial intelligence.. but after how many years we have had technology and computers... couldn't we train it to be intelligent for us? You can train a dog to sit... so how come we can't program our phones to verbally say "Plug me in! Battery LOW!", "Open Wifi Signal in range", "So-n-So's birthday is today, bought them a gift?"
That does not require artificial intelligence right?
Why not bring Android toward "Fruition"
Damn... If I had the programming knowledge... I think I'd try this myself...
Click to expand...
Click to collapse
Keep posting your great ideas. Everyone has a different view on how to make this easier so if we all combine that we can make something great.
I think the usb connected, sms, battery, wifi, birthday is possible. Ill try to extend the app today and open a github.
You can also start making up sentences the phone has to speak because hearing the same stuff all the time makes it boring.
Zillode said:
I tought I could do something back for the community so I started a new project =)
The only problem is that I have no visa to pay the registration fee to get this on the market.
I uploaded the apk to http://wilma.vub.ac.be/~lhoste/TTSRingtone.php
Based on the open source design of SMSPopup (thx!)
Speaks:
"Incoming call from <NAME>"
name = "unknown" if the number is not found in the contacts
Click to expand...
Click to collapse
It's probably down to stupidity on my part, but how does the app work?
it installs fine but then it doesn't seem to do anything when someone rings, it just plays my ringtone.
also, does this work on Hero? that could be my problem.
cheers for making this app btw, been looking for something like this for a long time
Meltus said:
It's probably down to stupidity on my part, but how does the app work?
it installs fine but then it doesn't seem to do anything when someone rings, it just plays my ringtone.
also, does this work on Hero? that could be my problem.
cheers for making this app btw, been looking for something like this for a long time
Click to expand...
Click to collapse
You should have the TTS Service installed (search for it in the market). When receiving a change in ACTION_PHONE_STATE, it starts a services that takes care of the speech.
Do mind that your 'Media' volume is about equally high as your ringtone volume.
Zillode said:
You should have the TTS Service installed (search for it in the market). When receiving a change in ACTION_PHONE_STATE, it starts a services that takes care of the speech.
Do mind that your 'Media' volume is about equally high as your ringtone volume.
Click to expand...
Click to collapse
yeah i've got that. Do i need to mess with the settings in it or anything? still just getting my normal ringtone playing.
I had a similar problem. I had to uninstall the TTSRingtone.apk (system/sd/vub.lhoste.ttsringtone.apk), re-install the TTS library (Text To Speech Service on the market) and then re-install the TTSRingtone.apk. After all of this was done, it started working on its own.
Nifty.
new build (and projectname)
Ok, I started to make the TTS notification more global. This means we will try to support more and more.
You can find the new build at:
http://wilma.vub.ac.be/~lhoste/TTSNotifier.php
NOTE: UNINSTALL THE OLD (TTSRingtone!) BEFORE INSTALLING THIS ONE.
I started a new thread so the intrested ppl can follow the changes
-> http://forum.xda-developers.com/showthread.php?p=4376431
rpmccormick said:
EDIT: And while I'm posting development requests, I would also like to see an app that lets you re-assign buttons (like vol+/- could page up and down unless there is sound playing, and the camera button which does nothing in Hero could be assigned to launch an app [HTC Camera] or even bring up a menu of apps to select from). They have lots of button programs for WinMo, but I've seen none for android.
Click to expand...
Click to collapse
I don't know if it's possible to 'unbind' the vol +/- key.. any1 has an idea?
It is possible to use the same structure as TTSNotifier or SMSPopup to capture the cam button press, but since I'm running the cyanogenmod it is occupied and useless to start a 2nd app

[APP] Call recorder (ROOT access needed) [Nov 24 update]

I wrote this program because I was unable to find a good app capable of recording the other side of the call properly.
Except for AirVoice, all such apps record the speaker rather than the line, and you barely hear the other side in the recordings.
The guy who wrote AirVoice knew the trick but seemed to be very annoyed by the negative feedback from Android Market, where the users of various devices (with the list of supported ones clearly stated!) tried to install that program. Because it wasn't open source, I had to disassemble it in order to write what I wanted exactly.
So the app uses an esoteric HTC driver, and NEEDS THE ROOT ACCESS just to open the device. If you do "adb shell chmod 666 '/dev/voc*' ", it'll never ask you for root access (but you have to be ROOT to execute that command).
It writes the calls in either WAV (recommended) or MP3 format (not tested much; needs some time to encode the file after the call, but the size is about 4 times smaller), stereo (left ear is your voice, right is that of the other party), to "/sdcard/voix" directory.
The kernel driver itself is kinda buggy. Actually, the auto-answer mode is non-functional for kendon's & ninpo's kernels (others not tested). Do NOT select it in Settings unless you've got such ROM and particularly need to reboot your phone on each incoming call . It'd be nice if somebody try to fix that.
If you select "Ask each time" for any incoming calls, be sure to wait half a mo until the confirmation dialog appears. The "Foreground service" (default) setting is also recommended because Android may otherwise kill it if memory is low.
Any comments are welcome. I'm not sure that I'll ever add something to this program because I'm too lazy for that, but any bugs will reasonably be fixed. The code is open source, PM me if you're a programmer and have any ideas how to improve it.
=======================
NOV 24 UPDATE
Numerous improvements/corrections/bugfixes (I'm not removing the previous version as this one haven't been much tested).
Enjoy!
Thanks dude. Great job
avs333 said:
I wrote this program because I was unable to find a good app capable of recording the other side of the call properly.
Except for AirVoice, all such apps record the speaker rather than the line, and you barely hear the other side in the recordings.
The guy who wrote AirVoice knew the trick but seemed to be very annoyed by the negative feedback from Android Market, where the users of various devices (with the list of supported ones clearly stated!) tried to install that program. Because it wasn't open source, I had to disassemble it in order to write what I wanted exactly.
So the app uses an esoteric HTC driver, and NEEDS THE ROOT ACCESS just to open the device. If you do "adb shell chmod 666 '/dev/voc*' ", it'll never ask you for root access (but you have to be ROOT to execute that command).
It writes the calls in either WAV (recommended) or MP3 format (not tested much; needs some time to encode the file after the call, but the size is about 4 times smaller), stereo (left ear is your voice, right is that of the other party), to "/sdcard/voix" directory.
The kernel driver itself is kinda buggy. Actually, the auto-answer mode is non-functional for kendon's & ninpo's kernels (others not tested). Do NOT select it in Settings unless you've got such ROM and particularly need to reboot your phone on each incoming call . It'd be nice if somebody try to fix that.
If you select "Ask each time" for any incoming calls, be sure to wait half a mo until the confirmation dialog appears. The "Foreground service" (default) setting is also recommended because Android may otherwise kill it if memory is low.
Any comments are welcome. I'm not sure that I'll ever add something to this program because I'm too lazy for that, but any bugs will reasonably be fixed. The code is open source, PM me if you're a programmer and have any ideas how to improve it.
Click to expand...
Click to collapse
thanks, good job
but recorded sound a lit low, any chance to make it loud
Aha Thats Great Now i can prove my prank calls
no auto start, please add (i mean after re-boot)
Hi-Fi said:
but recorded sound a lit low, any chance to make it loud
Click to expand...
Click to collapse
No problems with sound volume here, but I'll see if I can add some basic volume normalisation...
Hi-Fi said:
no auto start, please add (i mean after re-boot)
Click to expand...
Click to collapse
Added as an option in Settings. Also fixed a triffle UI bug (forgetting to set proper dialog attributes).
Just tried this, works great on my Hero (Vanilla Eclair 4.0). Thank you very much for this one!
Interesting software. Could you possibly add a new feature: The app saves all calls, but deletes them, if you don't move them to another folder/to your PC.
This because I could record all of my calls, without the risk of making a huge 1Gt folder to fill up my memory. So if the user could choose how many recent calls (2,5,10) the app saves before deleting them I'd be great!
What about battery draining?
This great app is also tiny enough not to reduce drastically battery duration?
TIA
I'd love to see this generalized to not require the HTC driver. Do you think that would be possible?
cool app. anyone know if it would be possible to play an audio file directly to the caller? would come in handy rickrolling damn telemarketers
Very good work. Handy app, for sure.
Can you enable recording mid call?
Works in all Androis Devices? I have a Milestone.
Awesome idea, I've been looking for exactly this sort of software.
I'm having a bug I hope someone can help me with. When I start the program I get a prompt that says "Device does not exist, or its permissions cannot be changed." When I click "OK" it takes me to the screen to uninstall the program.
I'm running an Evo, fully rooted, NAND unlocked, running Virus Airbourne ROM and King #11 kernel.
I never get the prompt from the SuperUser app to give the app root access.
I tried the adb command but it gave me the error:
Unable to chmod dev/voc*: No such file or directory
Having same issue on rooted G2.
Sent from my T-Mobile G2 using XDA App
MercuryTangent said:
Awesome idea, I've been looking for exactly this sort of software.
I'm having a bug I hope someone can help me with. When I start the program I get a prompt that says "Device does not exist, or its permissions cannot be changed." When I click "OK" it takes me to the screen to uninstall the program.
I'm running an Evo, fully rooted, NAND unlocked, running Virus Airbourne ROM and King #11 kernel.
I never get the prompt from the SuperUser app to give the app root access.
I tried the adb command but it gave me the error:
Unable to chmod dev/voc*: No such file or directory
Click to expand...
Click to collapse
I experience the same problems on my rooted DINC. ROM and kernel are in sig.
Am I right to assume that this is a HTC Hero exclusive?
bemymonkey said:
Am I right to assume that this is a HTC Hero exclusive?
Click to expand...
Click to collapse
Likely so, but I'm hoping the dev will extend it or I can find a way to make it work
This is amazing app. The only thing I would beg the author to consider a white status bar icon for normal running service as colored icons there usually break the aestetics of Android UI. The icon can change or become colored while recording, but when only running in the background it should remain white.
I have the same problem (link to uninstall) on my Nexus One. Everything works fine on Hero

[Q] Lots of Captivate Questions

So after looking around through the forums I have learned a lot, and I have appreciated every piece of information I have been given, but there have been some things I have either not found answers to, or have not found complete answers (ie: someone only asked part of what I'm asking).
*Phone info listed in Signature*
When giving an answer, please number it according to the question and/or Quote the question, Please do not quote the entire post.
1. IMEI Device ID: Can I change it? and How?
- After Flashing and Rooting, my email exchange account no longer recognizes my phone and asks me to validate the Device ID. I did get Exchange to work when I had 2.1 and I'm not doing anything different from before. (Note: Android Device ID and IMEI Device ID are 2 different things)
Answer: Your IMEI Device ID is located on the back of your phone. You can find it by removing the battery and then it is the number above the first barcode. Your IMEI ID is something you neither can change nor want to. If a problem occurs trying to get Exchange to work again after messing with your phone, try connecting to the network at the location of your exchange account. Make sure your phone is registered, if it's not, register and wait a day before attempting to connect to exchange again. If that still doesnt work, contact their IT dept and have them manually add your phone. Also, see Post#4 or Exchange Thread
2. Android Device ID:
a)Is the number/letter sequence located on my battery, my Android's ID?
b)In the app "Android ID Changer", when I change it to said ID on battery and click "Save" nothing happens, the ID that the App gives me is still listed at the top.
Answer: If you flash and root with what I've given in my signature, your Android Device ID should be the same or there shouldn't really be anything you need to worry about that requires it. Your IMEI ID is the important one. Also Reference the Device ID Thread, and please make sure you write yours down before flashing and rooting!!!!
3. Sounds Sounds Sounds!!!!!: OK, so I know everyone wants to have their own custom tones right? Well, after looking around for a little while, I haven't really found full solutions as to what I want:
There are 6 Different Kinds of Tones, and a 7th Tone Type I would like added:
- Voice Call Tones: As main ringtone and per contact(As Title)
- Notification Tones: (Text Messages, Email, etc)
- Music: Your media, the only files that should show up in "Music Player"
- Alarm Tone: In the Default Clock App, under Alarm Creation
- Smart Alarm Tone: In the Clock App also under Alarm Creation
- Screen Touch "Pop" Tone (When you click an app)
- Reminder Tone: Reminds you that you have a text or missed call(Not included on phone currently)
a) OK, with that list, when I go in to choose for each one, you get a menu (for example Voice Call gives you: Silent, AT&T Tone, Bird loop, ..., Samsung tune, ...). I would like for my custom sound files to show in the Default list of each according Tone type as listed above. How do I do it?
b) How do I differentiate the Text message tone from the email tone? How do I make make text message tones & settings individual/separate from Notification Tones and Settings?
c) Reminder Tone: When I had a motorola back in the day, if my phone rang at me and I was too busy or not around it at the time to look at it, about every 5 minutes, it would beep at me telling me that something happened while I wasnt paying attention. Is there a way that I can add this feature to my Captivate?
4. ASTRO vs. My Files(on 2.2-Froyo): It seems like "My Files" has everything that ASTRO has, yet I've seen a lot of people saying to get ASTRO. Is there any reason to have it?
Answer: If you have enabled the Side-Loading of apps, there is no real difference between these two other than their appearance since you can bring up the .apk installer that's included in both programs. Other options to using these to programs are: Root Explorer
5. Default Samsung App: Daily Briefing: There has got to be something better than this out there, any suggestions?
- Also, I already have a big clock that has weather(Fancy Widget), so I dont really rely on Daily Briefing for it
Answer: If you are looking for something in terms of a
Widget NewsReader: try Feedr for news, Auto Express for Car News, and ScoreCenter for Sports News
Non-Widget news readers include: Google Reader, gReader, & NewsRob.
6. Tethering/I'm Tethered, What Now?:
a) I know that my laptop can access WIFI via MobileAP, but how can I connect with my Laptop via USB Tethering. I have Windows XP Pro SP3
b) Is it possible for me to use my Laptop to send Txt Msgs?
c) Assuming I have hundreds of Contacts, Is to possible to keep ALL Contacts on laptop while keeping only most used contacts on phone?
Answer:
a) USB Tethering can be accomplished through apps like EasyTether or PDANet, but most ROM's for the captivate do have it standard. It would be under Menu > Settings > Applications > USB Settings > PC Internet.
b)
c)
7. Removing the Default "Latitude" App (2.2-Froyo): I already have Maps, Navigation, and Places. Why would I need "Latitude"? What is the purpose of it?
I use Titanium Backup Pro to "Freeze" most of the default apps (freeze meaning hide them w/o deleting them) but I cannot seem to find "Latitude" in the list of Apps, is there a way to freeze it with Titanium?
8. Allshare Default App 2.2: What does it add to the phone? Do I need it or should I "Freeze" it?
I'm looking for a way to play my media from my computer to my phone, however Windows Media Player doesnt recognize my phone as something to share to, how can I change this? (I use Windows XP Pro SP3)
9. FM Radio: Is there a way I can listen to my favorite channel without using up any data? And if I listen to the channel for about an hour, how much data will I have used? (So far, I've only seen Last.FM and TuneIn Radio)
Answer: Best thing to do if you want to listen to the Radio on your phone is to do it via Wifi. Unfortunately for us, our phone originally had plans to have a FM Chip installed allowing us free FM Radio, but that's just not how AT&T rolls. Another App besides Last.FM or TuneIn Radio to try is iheartradio. Furthermore, if you are wanting to watch your Data Usage, I suggest trying 3G Watchdog, I don't know how accurate it is from month-to-month, but it is an App(and Widget) that does watch your data usage.
10. Is there a way to rename the apps in my App Drawer? Some of them have strange/long names which will break a work so that it is on both lines or the whole title doesnt fit. This bothers my OCD so I was wondering if there was an easy way to do it.
11. Random Reboots When I don't have an Alarm enabled, sometimes my phone seems to go and sleep/hibernate/reset. Meaning I pickup my phone and for some reason it has gone and turned off on me. What's the deal? Does anyone else have this problem and is there a way to fix it?
12. Save Texts: What is the best way to save your text conversations to your computer besides using KIES?
13. Save Contacts What is the best way to Export Contacts to your computer for editing and later Importing back onto the phone besides using KIES?
- I want to have a back up of all my numbers so that I can remove some from my address book, but still have them on my computer in case I need them later.
14. GPS 2.2: Many have commented about fixing the 2.1 GPS, does the 2.2 GPS also need a fix?
15. Editing the System: Where Can I find in-depth threads that tell me how to change things in the system(thread links accepted)? I would like some that cover it in general, but I'd also like ones that also include adding and removing custom ringtones to the default as well as SetCPU and other functions.
16. The Lock Screen: Is there any way in which I can change the Default Lock Screen so that it includes a message on it like "This phone belongs to _______"?
Is there any other themes for the Text Message "Puzzle" Lock Screen?
17. Contacts:
a) Sorting Method - First I would like to sort my contacts by Group, then by Alphabetical Order. Is there any way that I can do this? Basically I want my girlfriend listed first, then all my Family Contacts, then all my friends. Is there a way I can do this other than adding symbols or prefixes in front of everyone's name?
b) Once while on the facebook app, it gave me the option to set a picture to one of my contacts(without saving the image to the phone), however I havent figured out how to do it since, does anyone know how?
c)How do I sync contacts with Gmail? Ive tried clicking Sync Contacts in Contacts under Gmail, and it shows the refresh icon for about a second but when I go to my gmail contacts, nothing is there. What's the deal?
18. Way too Awesome: So we've all seen what phones can do in the movies, hacking into computers and whatnot. Is there anything that our phones can do like in the movies? I personally would love to have a phone that Tony Stark or Sam Flynn would die for. ......Is there at least a way I can use my phone to unlock my car? I'd enjoy turning my phone into a trapper-keeper lol.
19. Custom Sound Settings: Media Volume can only go down as low as 5% before going to 0%, is there any way I can make my phone lower that 5% like when it's late at night but I still want to hear an app's crappy music, just really really quietly?
20. Phone Accessories:
What is the Best phone case for Captivate that utilizes a belt clip (w/screen protector)?
In terms of a 2nd battery, are there any batteries out there that have more battery life than the stock one that comes with the phone?
If I had a 2nd battery, would it be safe to leave it in my car throughout the year in case I need it, or would temperature be a problem?
21. Data Plans: Any chance of AT&T Coming out with a plan that's between 100Mb, and 2Gb?
I'm on Wifi most of the time, so I don't use most of my 2Gb, but I can easily use 100Mb, is there any chance of there being a 1Gb plan?
As I get answers to my questions, if the answer isnt too long I will edit the OP with the answers or link a post below the question for people who might stumble upon this thread with the same question.
EDIT: (Last Edited 1/17)
Added Answers to questions: 1, 2, 4, 5, 9
Added Parts B and C to #6
Added Questions: 15,16,17,18,19,21
1.) IMEI ID is on the back of the phone and don't think you can change that.
4.) Astro also lets you install third party apps that are loaded onto your SD card. My files just lets you browse.
5.) If you dont' need daily breifing, don't use it. I don't use it either.
6.) PDAnet will let you tether via USB and there are a few others.
10.) when you add a app to your home screens, you have the option to change the name. Doesn't help with your app drawer OCD but keeps your home screens under control.
11.) There are multiple threads about random shutdowns. Read them all if you want. So far, increasing the sleep speed minimum to 2000 (in setCPU) has worked for me. Granted it's only been a few days but no shutdowns since doing that.
14.) Reading all the GPS threads will show you that it's not locked into a particular OS. Nobody really knows what the problem is. Some have great GPS, some don't. Some get it working better with fixes, some don't.
axis01 said:
1.) IMEI ID is on the back of the phone and don't think you can change that.
4.) Astro also lets you install third party apps that are loaded onto your SD card. My files just lets you browse.
10.) when you add a app to your home screens, you have the option to change the name. Doesn't help with your app drawer OCD but keeps your home screens under control.
11.) There are multiple threads about random shutdowns. Read them all if you want. So far, increasing the sleep speed minimum to 2000 (in setCPU) has worked for me. Granted it's only been a few days but no shutdowns since doing that.
Click to expand...
Click to collapse
4. My Files has a package installer if you have enabled sideloading of apps and seems to work the same as ASTRO as far as I can tell.
10. I havent seen an option to change the name on the homescreen either, I usually just drag them from my app drawer though.
11. Could you define what the sleep speed minimum is?
EDIT: ANd big thanks on where the IMEI was. I was kind of avoiding taking the battery out, but the number on the back matched the number in the phone info so I was happy. And for some reason my phone now works with exchange. I think my phone was waiting till I knew what it knew lol.
Oh man. I'll see if I can answer them all. LET'S DO THIS!
1. Before you left 2.1 stock, shoulda backed up nv_data. If your Device ID and produce code get messed up, check out http://forum.xda-developers.com/showthread.php?t=881162 and http://forum.xda-developers.com/showthread.php?t=880223 Use these threads to try and restore it; but if that doesn't work you might be SOL without a nv_data backup.
As for exhange, check out http://forum.xda-developers.com/showthread.php?t=821297
I work for AT&T, so me and IMEI's are best buds. You can't change your IMEI as it's a number issued directly for AT&T. AT&T uses these IMEI's to determine what type of phone is on your account. Should you change the IMEI, it would appear to AT&T as "Unknown GSM", and you would cease to get data.
2. Read #1
3. It depends on the apps you use to accomplish said tasks. I would imagine very few of us use the stock e-mail client, i would imagine most of us use K-9 or something along those lines, in which case you can specify a sound file in said apps settings.
As for having them show up in the default menu, throw them into /system/media/audio/ringtones and they should show up in default.
I'm not sure about the reminder, although I can't see an app for this not existing. As stated above, some e-mail clients such as k-9 or SMS like handcent may have this feature. If the stock ones don't, what can ya do?
4. Don't get either, get Root Explorer.
5. If you already have a clock, I suppose all Daily Briefing offers is news and a calendar. There's plenty of awesome news readers for the Captivate. If you like the widget variant, i would go with Feedr. If you prefer non-widget news readers, Google Reader, gReader, NewsRob; all good choices.
6. It depends on the ROM. USB Tethering can be accomplished through apps like EasyTether or PDANet, but most ROM's for the captivate do have it standard. It would be under Menu > Settings > Applications > USB Settings > PC Internet.
7. Latitude is bundled in with Google Maps. Not sure how to remove it, or if you can..maybe.
8. You don't need it. It's just a global way to share pictures and videos to multiple sources. I never use it.
9. Connect to WiFi!
10. Aside from decompiling the APK, i don't think so. Maybe NinjaMorph can do it, but I don't think so. You can hide apps from the drawer though, or hide the text, with alternative launchers.
11. The captivate stock firmwares seemed to have a problem with randomly rebooting. I work at AT&T and I sell these phones daily so I can safely say it's just the stock, even the 2.2 stock seems to do it. You can use SetCPU profiles to work some magic, but it's easier to just install a Custom ROM, as I personally no longer have this problem UNLESS i am on stock. Use http://romkitchen.org from your phone, easiest way. Make sure to donate if you use it frequently, it's an awesome service!
12. Can't answer this one. I imagine there's an app to back up texts to files on the phone directly though, if not it wouldn't be very hard to make!
13. From your contacts on the phone, menu > (possibly More) > Import/Export. It will save EVERYTHING about your contacts(Ringtone info, pictures, birthdays, etc) to a .vcf file. These can be altered, edited and saved on the computer.
14. 2.2 stock needs a fix I'm pretty sure. Check out this thread http://forum.xda-developers.com/showthread.php?t=881941 , all you gotta do is flash one file, so do it anyway just to be safe!
Phew. Hope this helps!
geokhentix said:
Oh man. I'll see if I can answer them all. LET'S DO THIS!
Click to expand...
Click to collapse
Big thanks
As for my Android ID, I didnt know about it until afterwards. The posts that inform people about flashing and Rooting should mention this, because I didn't see it anywhere until after I was worrying about my phone not being able to connect to my email, but for some reason this morning when I tried it miraculously worked.
As for #3, where is my system folder? is it: I:\media\audio\ringtones ?
with my "system" being "I:"
I recently discovered setting custom sounds for my email accounts, but I am curious about all the default tones.
Are all the ones listed in different setting all just the same file with the exception that they only play for "X" amount of type depending on menu your are in?
And can the captivate not play MIDI files?....you know, old school polyphonic files........
And how the heck do I change the text tone for while my phone is plugged into the USB? omg it is the most annoying sound in the world, why does it not use the tone I have my texts set for? (I forgot this one on my list)
Thanks for your answer to #11. My phone hadnt done it at all until I dropped it down about 10 feet at a concert screen down 6 days after I got it. The next day the phone did the reset thing and I just about cried cuz I was just like I know it's because I dropped it. On the bright side when I picked it up after it fell, it didnt have a scratch on it or nothin'.
How do you alter a .vcf file?
WandererTJ said:
Big thanks
As for my Android ID, I didnt know about it until afterwards. The posts that inform people about flashing and Rooting should mention this, because I didn't see it anywhere until after I was worrying about my phone not being able to connect to my email, but for some reason this morning when I tried it miraculously worked.
As for #3, where is my system folder? is it: I:\media\audio\ringtones ?
with my "system" being "I:"
I recently discovered setting custom sounds for my email accounts, but I am curious about all the default tones.
Are all the ones listed in different setting all just the same file with the exception that they only play for "X" amount of type depending on menu your are in?
And can the captivate not play MIDI files?....you know, old school polyphonic files........
And how the heck do I change the text tone for while my phone is plugged into the USB? omg it is the most annoying sound in the world, why does it not use the tone I have my texts set for? (I forgot this one on my list)
Thanks for your answer to #11. My phone hadnt done it at all until I dropped it down about 10 feet at a concert screen down 6 days after I got it. The next day the phone did the reset thing and I just about cried cuz I was just like I know it's because I dropped it. On the bright side when I picked it up after it fell, it didnt have a scratch on it or nothin'.
How do you alter a .vcf file?
Click to expand...
Click to collapse
I agree, all Custom ROM threads should have a little blurb about it for people installing their ROM from a new stock device. But it seems to be fixable even if you didn't with a little work, so it's not too bad.
You can use Root Explorer to copy them to /system/media/audio/ringtones, but I think they may have to be in .ogg for them to work out of this directory. I'm not entirely positive, but all you would have to do to test it is push a non-.ogg ringtone over and try it. To copy your ringtones over nice and easy like;
Download the Android SDK and extract the android-sdk-windows folder to your desktop for easy copy pasta!
And enable USB Debugging (Menu > Settings > Applications > Development > USB Debugging)
Open a command prompt!
cd %USERPROFILE%/desktop/android-sdk-windows/tools
adb push [ringtone] /system/media/audio/ringtones
Click to expand...
Click to collapse
that's in a perfect world where it won't complain about permissions. if it does;
cd %USERPROFILE%/desktop/android-sdk-windows/tools
adb push [ringtone] /sdcard/
adb shell
su - at this point, accept superuser request on the phone; make sure the screen isn't locked when you hit enter, prompt should change from a $ to a #
mv /sdcard/[ringtone] /system/media/audio/ringtones/
exit
exit
Click to expand...
Click to collapse
I'm not sure if the Captivate can play .MIDI files for notification sounds. Only one way to find out though, right?
And i have no idea why your text tone is different when plugged into USB...mine sounds the same.
Late edit: forgot to answer one of em, you can edit .vcf files in MS Outlook!
# 9 - unfortunately our phone doesn't have FM radio. Another one to try is iheartradio. They have a number of radio stations. Although you're still using data unless you're using wifi like mentioned above.
Are there any better phonebook editors other than Outlook express?
I am looking for something so that I can have multiple phonebooks such as one with all my contacts I've ever had, and another for just the contacts I want on my phone
if you have a custom ringtone set for something and you have the phone plugged into usb, the phone can't access the the SD card where the custom tone is stored, thus you get that annoying (and loud) built in tone.
Re: myfiles: it does indeed let you install apps, but I'd recommend estrongs file explorer. It allows you to not only browse you're phone, but your pc files too (assuming it's on the same network, of course.) And let you open, copy and edit between the 2 devices.
Re: allshare: out of the box this great app let me browse and watch all of the video files off of my PC. I didn't have to configure anything special, except that my PC was already configured to share media with my xbox 360.
But I didn't do anything on my pc after buying the phone. Just connected to wifi and everything showed up. I haven't tried sharing the other way though (watching media from my phone on my PC)
Sent from my SAMSUNG-SGH-I896 using XDA App
#12. I've used Wifi Android Manager Wifi, I think it backs up text messages. It seems to back up everything else, that's for sure.
Hey, I've been working on adding answers to the OP, it's going, but I'm not done
Anyways, UPDATE 1/17/11 - I've Added Questions 15-21, please try and answer these when you get the time.
Added Answers to questions: 1, 2, 4, 5, 9
Added Parts B and C to #6
Added Questions: 15,16,17,18,19,21

Serious effort to reverse engineer and change the "OK Google Now" activation phrase

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.

Google voice commands / "oke google"

Hi,
I'm wondering if some of you KLD / KLG / MX / etc unit owners are using google voice commands. I can't use it properly on my unit, it crashes all the time. Sometimes it works, but usually it crashes. I'm using Malaysk rom. Is there anybody who can you use google voice without any problems? Or is there a simpel solution to fix my issues? I'm using a external mic connected with a jack to the backside of my unit.
I have spent a lot of time with this issue. My views are that the OEM version of the Google app is the only stable version(for voice use) for these HUs. My JY solution was to extract the Velvet.apk from the factory ROM. After updating to a Malsysk ROM, I replaced the pre updated apk back to the older factory version. You will lose out out on some updated features, but having a working voice command is nice tradeoff.
Velvet.apk, OEM JY Version
https://drive.google.com/file/d/0B0iQtPEIFgeHR3hQdGlvd2RrVUk/view?usp=sharing
Missing features.
carter.w.jason said:
I have spent a lot of time with this issue. My views are that the OEM version of the Google app is the only stable version(for voice use) for these HUs. My JY solution was to extract the Velvet.apk from the factory ROM. After updating to a Malsysk ROM, I replaced the pre updated apk back to the older factory version. You will lose out out on some updated features, but having a working voice command is nice tradeoff.
Velvet.apk, OEM JY Version
Click to expand...
Click to collapse
Hi, Does your okay google now allow you to make phone calls, send email etc.... what features are you loosing out by going this route. Thanks!!!!
aledesma said:
Hi, Does your okay google now allow you to make phone calls, send email etc.... what features are you loosing out by going this route. Thanks!!!!
Click to expand...
Click to collapse
Phone calls? No. I believe this is a common issue, there is no phone hardware onboard. Though I'm not that familiar with that feature.
Email and other task could be handled with Autovoice if Google app can not. Again, not that familiar.
For me, the main missing feature was choice of navigation app. Nav questions will only launch GMaps, newer version can launch Waze or your nag app choice, by default.
carter.w.jason said:
I have spent a lot of time with this issue. My views are that the OEM version of the Google app is the only stable version(for voice use) for these HUs. My JY solution was to extract the Velvet.apk from the factory ROM. After updating to a Malsysk ROM, I replaced the pre updated apk back to the older factory version. You will lose out out on some updated features, but having a working voice command is nice tradeoff.
Velvet.apk, OEM JY Version
https://drive.google.com/file/d/0B0iQtPEIFgeHR3hQdGlvd2RrVUk/view?usp=sharing
Click to expand...
Click to collapse
Thanks for your comment. I tried your solution and its working better, i still get some errors time to time, but is much better...thanks
[
aledesma said:
Hi, Does your okay google now allow you to make phone calls, send email etc.... what features are you loosing out by going this route. Thanks!!!!
Click to expand...
Click to collapse
If you have a phone connected via BT you can make phone calls using OK Google.
Tumke32 said:
Hi,
I'm wondering if some of you KLD / KLG / MX / etc unit owners are using google voice commands. I can't use it properly on my unit, it crashes all the time. Sometimes it works, but usually it crashes. I'm using Malaysk rom. Is there anybody who can you use google voice without any problems? Or is there a simpel solution to fix my issues? I'm using a external mic connected with a jack to the backside of my unit.
Click to expand...
Click to collapse
I've read some posts in the Malaysk ROM thread and many people have modded their units by opening them up and re-runing the internal mic. It's that mic, not the external, that is used for voice commands and apparently it is an unshielded wire that allows for a lot of interference and therefore unreliable google voice. I'm still foggy on the voice dialing but someone somewhere got this to work but not through the native bluetooth app. I think I read that they used the RK3066/Rk3188 app in the google play store or something...I'm just getting started with my unit and it's not even installed yet. Hopefully some of this was insightful for you.
newt_dunbarton said:
I've read some posts in the Malaysk ROM thread and many people have modded their units by opening them up and re-runing the internal mic. It's that mic, not the external, that is used for voice commands and apparently it is an unshielded wire that allows for a lot of interference and therefore unreliable google voice. I'm still foggy on the voice dialing but someone somewhere got this to work but not through the native bluetooth app. I think I read that they used the RK3066/Rk3188 app in the google play store or something...I'm just getting started with my unit and it's not even installed yet. Hopefully some of this was insightful for you.
Click to expand...
Click to collapse
I am using the latest Malaysk ROM dated 10th January 2016 for RK3188 1024*600. It lets me speak Ok Google and Call (contact name) to the phone when after pressing the call button. The way it works for me is:
1. Whatever is playing on the unit, it stops when I press the call button on my steering;
2. It launches the unit's dial screen;
3. I say 'OK Google', it launches the ok google listener on the phone;
4. I say 'Call (contact name)' and it calls.
Few things I had to manage before this started working was:
1. Enable the option to receive commands over bluetooth in Google Now settings in the phone;
2. Enable to XPOSED MTC in the XPOSED framework in the head unit;
3. Change the setting to integrate with phone's google now interface (something like that) in XPOSED MTC module.
Hope this helps.
Can you elaborate on this process please?
carter.w.jason said:
I have spent a lot of time with this issue. My views are that the OEM version of the Google app is the only stable version(for voice use) for these HUs. My JY solution was to extract the Velvet.apk from the factory ROM. After updating to a Malsysk ROM, I replaced the pre updated apk back to the older factory version. You will lose out out on some updated features, but having a working voice command is nice tradeoff.
Velvet.apk, OEM JY Version
https://drive.google.com/file/d/0B0iQtPEIFgeHR3hQdGlvd2RrVUk/view?usp=sharing
Click to expand...
Click to collapse
Did you go to file manager and replace the Malaysk version? Where is it located? or did you simply install with with apk instal app. Than you so much!!!!
aledesma said:
Did you go to file manager and replace the Malaysk version? Where is it located? or did you simply install with with apk instal app. Than you so much!!!!
Click to expand...
Click to collapse
Uninstalled with Titanium Backup. Velvet.apk is located in /system/priv-app. Copy/Paste replacement Velvet.apk using Root Explorer. !!! Set file permissions to 644 with Root Explorer !!! Reboot.
shaiq123 said:
I am using the latest Malaysk ROM dated 10th January 2016 for RK3188 1024*600. It lets me speak Ok Google and Call (contact name) to the phone when after pressing the call button. The way it works for me is:
1. Whatever is playing on the unit, it stops when I press the call button on my steering;
2. It launches the unit's dial screen;
3. I say 'OK Google', it launches the ok google listener on the phone;
4. I say 'Call (contact name)' and it calls.
Few things I had to manage before this started working was:
1. Enable the option to receive commands over bluetooth in Google Now settings in the phone;
2. Enable to XPOSED MTC in the XPOSED framework in the head unit;
3. Change the setting to integrate with phone's google now interface (something like that) in XPOSED MTC module.
Hope this helps.
Click to expand...
Click to collapse
Hi,
1. Enable the option to receive commands over bluetooth in Google Now settings in the phone;
Were can i find this option? I have a nexus 5 and i updated my google now, but there no option like that in google now. Or do you mean the option "bluetooth headset" under voice?
3. Change the setting to integrate with phone's google now interface (something like that) in XPOSED MTC module.
I can't find any options in Xposed MTC related to what you are writing. Are you sure this option is in Xposed MTC?
Thank you!!!
carter.w.jason said:
Uninstalled with Titanium Backup. Velvet.apk is located in /system/priv-app. Copy/Paste replacement Velvet.apk using Root Explorer. !!! Set file permissions to 644 with Root Explorer !!! Reboot.
Click to expand...
Click to collapse
I will give it a shot!!!
Hi there,
I to have been wondering about the best way to get voice dialling working and as my google voice crashes the HU more often than not, I think it is best to do this as shaiq123 has suggested by pressing the call button the steering wheel and then Ok Googling the phone to make the call.
But my phone goes to lock screen in the car and that stops this working. What I would like is that when my phone connects to the car bluetooth it
1) stops it going to lockscreen
2) activates wifi hotspot
3) activates 'ok google' if it is not normally activated
and it reverses on disconnecting.
Is this something easily done or do I need some kind of app to do this?
A final thing that would be helpful, is that it would be useful to give the play music command to direct the HU to play music from an HU attached SD card rather than the phone memory. Is there a way to also configure that (i.e. that the command would seek music stored on HU rather than phone first?)
Cheers
Mr Bigglesworth said:
Hi there,
I to have been wondering about the best way to get voice dialling working and as my google voice crashes the HU more often than not, I think it is best to do this as shaiq123 has suggested by pressing the call button the steering wheel and then Ok Googling the phone to make the call.
But my phone goes to lock screen in the car and that stops this working. What I would like is that when my phone connects to the car bluetooth it
1) stops it going to lockscreen
2) activates wifi hotspot
3) activates 'ok google' if it is not normally activated
and it reverses on disconnecting.
Is this something easily done or do I need some kind of app to do this?
A final thing that would be helpful, is that it would be useful to give the play music command to direct the HU to play music from an HU attached SD card rather than the phone memory. Is there a way to also configure that (i.e. that the command would seek music stored on HU rather than phone first?)
Cheers
Click to expand...
Click to collapse
You could achieve the first part using Tasker, you would just create a profile to run your tasks that actives when your phone connects to the headunit. Its a great app for automating stuff like that.
dc5daft said:
You could achieve the first part using Tasker, you would just create a profile to run your tasks that actives when your phone connects to the headunit. Its a great app for automating stuff like that.
Click to expand...
Click to collapse
Thanks - in fact this morning I have downloaded the trial for Tasker as well as Automate to see if they can do what I am looking for.
I've decided what would be really helpful would be if I could
1) Use app to detect when phone connects to car HU via bluetooth
2) Launch Wifi Hotspot
3) set the camera button to unlock screen and activate google voice
Now 1&2 look like its not too difficult and may even be doable using the Sony Smart Connect app (on a Z2, not rooted).
3 doesn't seem to be as instantly obvious. In tasker, I put in a new profile>event>hardware>button camera, also selected non beginner settings so could pit priority to highest and activate stop event, then put the task as launch voice search app - but it just keeps doing the camera?
Mr Bigglesworth said:
Thanks - in fact this morning I have downloaded the trial for Tasker as well as Automate to see if they can do what I am looking for.
I've decided what would be really helpful would be if I could
1) Use app to detect when phone connects to car HU via bluetooth
2) Launch Wifi Hotspot
3) set the camera button to unlock screen and activate google voice
Now 1&2 look like its not too difficult and may even be doable using the Sony Smart Connect app (on a Z2, not rooted).
3 doesn't seem to be as instantly obvious. In tasker, I put in a new profile>event>hardware>button camera, also selected non beginner settings so could pit priority to highest and activate stop event, then put the task as launch voice search app - but it just keeps doing the camera?
Click to expand...
Click to collapse
Create a new Profile>State>Net>BT Connected then click the magnifying glass next to name and select the name of your headunit. This will mean whenever your bluetooth is connected to the headunit it will run the tasks associated with it. It will give you the option to name and create a task once you create your profile then create new>Net>WiFi Tether and set to On.
I have a Z2 as well and just tried the camera button as a profile and it didn't work for me either, you'll need to do some googling on that, not sure why it doesnt work. It's best to set a flash (Alert>Flash) in your task as a test to see if your task runs but I'm sure you need to need to have root to unlock the screen.
dc5daft said:
Create a new Profile>State>Net>BT Connected then click the magnifying glass next to name and select the name of your headunit. This will mean whenever your bluetooth is connected to the headunit it will run the tasks associated with it. It will give you the option to name and create a task once you create your profile then create new>Net>WiFi Tether and set to On.
I have a Z2 as well and just tried the camera button as a profile and it didn't work for me either, you'll need to do some googling on that, not sure why it doesnt work. It's best to set a flash (Alert>Flash) in your task as a test to see if your task runs but I'm sure you need to need to have root to unlock the screen.
Click to expand...
Click to collapse
Thanks for this - and yes this where I had got to (which make me feel better!). And I too think the camera button may not be workable without root.
I think I need to change my plans and see if I can prevent the lockscreen to come on when connected to this bluetooth device. That way I can fall back to using ok google as the lockscreen prevents ok google from completing requests.
Okay - think I've done that and it was easy enough, now have a profile which when connected to HU through bluetooth does (1) set off wifi tether and (2) Set keyguard off. Then with (3) double tap to wake screen and (4) Ok google should be able to do what I need it to.
Last thing I'm wondering if you could do is to create a large voice dial icon (double normal size etc) on screen (in case initial ok google doesn't work)...

Categories

Resources