I think mine didn't work due to 10.1 OS....but once I upgraded to 10.2, converted the apk to bar, sideloaded and it looks like the satellite is catching it without any mods. Though I will try to use it on the course tomorrow.
moneytoo: I'm trying out an app (The Transit App) that uses v2 and changed the IsGooglePlayAvailable method to the code you put in. I got an error when I went to recompile:
D:\BB10\DebugMethod\APKTools\apktool1.5.2>apktool b Transit TransitA.apk
I: Checking whether sources has changed...
I: Smaling...
[1367,4] Error for input '.param': Invalid directive
[1367,11] mismatched input 'p0' expecting END_METHOD_DIRECTIVE
Exception in thread "main" brut.androlib.AndrolibException: Could not smali file
: D:\BB10\DebugMethod\APKTools\apktool1.5.2\Transit\ smali\com\google\android\gms
\common\GooglePlayServicesUtil.smali
at brut.androlib.src.DexFileBuilder.addSmaliFile(DexF ileBuilder.java:45)
at brut.androlib.src.DexFileBuilder.addSmaliFile(DexF ileBuilder.java:33)
at brut.androlib.src.SmaliBuilder.buildFile(SmaliBuil der.java:66)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder. java:50)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder. java:37)
at brut.androlib.Androlib.buildSourcesSmali(Androlib. java:257)
at brut.androlib.Androlib.buildSources(Androlib.java: 214)
at brut.androlib.Androlib.build(Androlib.java:205)
at brut.androlib.Androlib.build(Androlib.java:176)
at brut.apktool.Main.cmdBuild(Main.java:228)
at brut.apktool.Main.main(Main.java:79)
moneytoo: I'm trying out an app (The Transit App) that uses v2 and changed the IsGooglePlayAvailable method to the code you put in. I got an error when I went to recompile:
D:\BB10\DebugMethod\APKTools\apktool1.5.2>apktool b Transit TransitA.apk
I: Checking whether sources has changed...
I: Smaling...
[1367,4] Error for input '.param': Invalid directive
[1367,11] mismatched input 'p0' expecting END_METHOD_DIRECTIVE
Exception in thread "main" brut.androlib.AndrolibException: Could not smali file
: D:\BB10\DebugMethod\APKTools\apktool1.5.2\Transit\ smali\com\google\android\gms
\common\GooglePlayServicesUtil.smali
at brut.androlib.src.DexFileBuilder.addSmaliFile(DexF ileBuilder.java:45)
at brut.androlib.src.DexFileBuilder.addSmaliFile(DexF ileBuilder.java:33)
at brut.androlib.src.SmaliBuilder.buildFile(SmaliBuil der.java:66)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder. java:50)
at brut.androlib.src.SmaliBuilder.build(SmaliBuilder. java:37)
at brut.androlib.Androlib.buildSourcesSmali(Androlib. java:257)
at brut.androlib.Androlib.buildSources(Androlib.java: 214)
at brut.androlib.Androlib.build(Androlib.java:205)
at brut.androlib.Androlib.build(Androlib.java:176)
at brut.apktool.Main.cmdBuild(Main.java:228)
at brut.apktool.Main.main(Main.java:79)
Any ideas? Thanks
I'm going to try to get this app to work as well. Did you get a valid api key? If so, care to tell how exactly? I've glossed over some Google documentation, and seem to be reading some conflicting info regarding downloading the sdk, registering an app, etc.
I followed the steps from APIv2 on an application similar to Lyft called 99Taxis but GPS refuses to work. Any ideas?
Also, what about Hangouts? It would be nice to have it working on my Z10.
I'm going to try to get this app to work as well. Did you get a valid api key? If so, care to tell how exactly? I've glossed over some Google documentation, and seem to be reading some conflicting info regarding downloading the sdk, registering an app, etc.
I did not get an API key. I was just testing out the v2 method. I got Transit App to work doing everything other than that (make sure you also install Google Play Services). The only thing that doesn't work are when it uses maps. It just doesn't show the map (the app doesn't crash).
I did read up on getting an API key and yeah it's quite involved.
This Is Awesome!! I've been waiting a looooong time for someone to figure this out. Now I am pretty good at this stuff, but this is way beyond my current skill set. I have an app I've been wanting to use on the BB for years now. It's called Marine Traffic. I have the APK here. https://www.dropbox.com/l/QhPMounJyGBWfqXxSBzo3a
Could someone please see if this fix can make the app work.
Thank You!
How to find what Google Maps API version apk uses?
Decompile app APK using apktool
Check manifest - does it contain text "com.google.android.maps.v2.API_KEY"? If yes, application uses API v2 otherwise it uses API v1.
Patch app which uses API v1
Decompile app APK using apktool
Fix or remove Google Maps library dependency in manifest (this one is already known workaround) - the easiest way is to remove line with <uses-library android:name="com.google.android.maps" /> completely
Download gapps from goo.im either for Android 2.3.3 (for OS 10.1) or Android 4.2.2 (for OS 10.2)
Extract framework from /system/framework/com.google.android.maps.jar
Decompile the maps jar using apktool as well
Move decompiled maps smali code to your decompiled app
Extract RSA key from the original APK (inside META-INF)
Convert the key (openssl.exe pkcs7 -inform DER -in *.RSA -print_certs -out cert)
Get MD5 fingerprint (openssl.exe x509 -noout -in cert -fingerprint -md5), remove colons, to lowercase (SHA1 might be necessary for API v2)
Find method setAndroidSignature() (for Android 4.2.2 it's in file DataRequestDispatcher.smali, see post #28 for details)
Current fingerprint is in parameter p1 and it's getting encoded into protobuf. Create new string (const-string v2) with the found fingerprint and use that when invoke-static instead.
Compile it back, sign (jarsigner), convert, deploy, enjoy
See post #36 for detailed instructions thanks to ATV_Hightower.
How to deal with API v2
Decompile your app using apktool.
In file GooglePlayServicesUtil.smali find method isGooglePlayServicesAvailable() and replace the whole content of the method with just: