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:
This looks very promising, now let's see if goodereader or one of the other sites steps up to the plate and offers these conversions as this is totally out of my league.
I can't promise anything but since I'm definitely going to fix some apps for myself let me know what apps you'd like to fix. Then either me or someone else might fix it. The whole process can be automated so a tool is also possible.
I can't promise anything but since I'm definitely going to fix some apps for myself let me know what apps you'd like to fix. Then either me or someone else might fix it. The whole process can be automated so a tool is also possible.
Posted via CB10
Perhaps you can collaborate with Sacha and build a module for Sachesi... donations would be earned!
you seem like a smart dood. if you can please make it so google maps can allow me to sign in. i need to see my stared locations. i have many other uses for google services framework if you can get it working.
While the described solution works a lot of apps require Google Play Services. Somehow it worked for me for example in the latest official Geocaching app but I need to find more refined solution so please bear with me.
I can't promise anything but since I'm definitely going to fix some apps for myself let me know what apps you'd like to fix. Then either me or someone else might fix it. The whole process can be automated so a tool is also possible.
Posted via CB10
My banking application au.com.nab.mobile
Only problem is it uses friggin Google Maps so I get error -9
I havent tried it yet, but does it "just" fix the google maps problem or could the google account problem be fixed thisway? I`m asking because I waiting since the first day with my Z10 to play Ingress..
Anyway, it is great that you share your knowledge!
Can you post an example of how you added the signature in DataRequestDispatcher.smali setAndroidSignature()? This is where I am stuck I can't get my apk to recompile.