Hey all,
So I'm running the new Google Experience Launcher (GEL) on CyanogenMod 10.1, but I'm a little annoyed by the lack of hotword support in UK English. If I set my language to English (US), hotword support DOES WORK. However, the voice recognition is less accurate (because I'm British) and the synthesised voice is American instead of British. Etc. Etc.
Now I see no good reason why Google can't enable hotword search for all languages. But they haven't. And rather than sit around feeling sad, I thought I'd fix it myself!
My plan is for an XPosed module to hook any neccesary methods, and supply modified code that enabled hotword searches.
I've begun reverse engineering the Google Search APK, where all the actual GEL code lives (from the 3.1.8 apk, available here)
I started out looking at the smali, but with something as complex as this, it soon got tiresome.
I'm now looking at the decompiled classes.dex I got out of dex2jar. However, despite finding multiple methods that reference hotword support, I can't seem to really trace it all the way back. The only condition I've found so far is a check as to whether the device is a low-ram device.
Just wondering if any veterans can point me in the right direction? This is a big hacking project for me, and I reckon, a great learning experience.
I'd host the decompiled code for convenience, but I expect that'd be considered rather naughty.
So I'm running the new Google Experience Launcher (GEL) on CyanogenMod 10.1, but I'm a little annoyed by the lack of hotword support in UK English. If I set my language to English (US), hotword support DOES WORK. However, the voice recognition is less accurate (because I'm British) and the synthesised voice is American instead of British. Etc. Etc.
Now I see no good reason why Google can't enable hotword search for all languages. But they haven't. And rather than sit around feeling sad, I thought I'd fix it myself!
My plan is for an XPosed module to hook any neccesary methods, and supply modified code that enabled hotword searches.
I've begun reverse engineering the Google Search APK, where all the actual GEL code lives (from the 3.1.8 apk, available here)
I started out looking at the smali, but with something as complex as this, it soon got tiresome.
I'm now looking at the decompiled classes.dex I got out of dex2jar. However, despite finding multiple methods that reference hotword support, I can't seem to really trace it all the way back. The only condition I've found so far is a check as to whether the device is a low-ram device.
Just wondering if any veterans can point me in the right direction? This is a big hacking project for me, and I reckon, a great learning experience.
I'd host the decompiled code for convenience, but I expect that'd be considered rather naughty.