UnifiedNlp icon indicating copy to clipboard operation
UnifiedNlp copied to clipboard

I'm a teapot

Open TheSecureTux opened this issue 7 years ago • 9 comments

image

TheSecureTux avatar Jun 17 '18 07:06 TheSecureTux

Installing XposedGmsCoreUnifiedNip seems to have fixed the issue for now.

TheSecureTux avatar Jun 17 '18 08:06 TheSecureTux

Besides: AFAIK microG doesn't call out to Google Maps, but rather redirects/maps the calls to OSM. The "signing thing" you mention is rather for GCM – and yes, using that Xposed module is one way to get it fixed (the other is the ROM allowing for signature spoofing).

IzzySoft avatar Jun 17 '18 10:06 IzzySoft

Well, my knowledge about how MicroG works is quite limited, but let's try to rephrase: The Google Maps APIs are being updated and introducing changes on how the applications and the API on which they depend communicate.

Coinciding exactly with this several apps that depend on being able to communicate with those APIs fail to launch as they get updated with an error "Install Google Services to run this app", which was not happening before. Installing the Xposed module seems to be a workaround for now. Downgrading the apps to the previous versions works too. The signature spoofing doesn't work for me anymore.

I am using LineageOS for MicroG, which is a ROM with signature spoofing according to the documentation, and here looked to me as the correct place to open the issue. Let me know if there is anywhere else I should go.

TheSecureTux avatar Jun 17 '18 13:06 TheSecureTux

Also, for completenes:

  • The location services stopped working correctly several days before the apps were updated and failed to start (Untappd, for example displayed an error saying that my location was only estimated. The estimation was actually 600Km off).
  • The corresponding backends were installed and working correctly to the date, and continued to work for other applications (MozillaNlpBackend, LocalGSMBackend, UnifiedNlp)
  • So it looks first there was a problem first with UnifiedNlp and then too with the sign in?

As I already said I'm no expert in this, but I looked a bit around, saw that I wasn't the only one seeing these kind of issues during last week and thought about reporting it as it might be helpful.

TheSecureTux avatar Jun 17 '18 13:06 TheSecureTux

Well, one thing I overlooked: if an app uses the changed API, those calls probably no longer match what microG expects, so of course that broke things. Just wondering how installing that Xposed module (which was indended only for signature spoofing on location services, AFAIR) fixes that. Maybe @mar-v-in can shed some light on that.

IzzySoft avatar Jun 17 '18 18:06 IzzySoft

this is what I get when trying to uae the "maps" part of the apps I meant (like untappd). Droidguard helper crashes and afaik this is the related log:

Failed to load maps module, use legacy com.google.android.gms.dynamite.DynamiteModule$zzc: No acceptable module found. Local version is 0 and remote version is 0. at com.google.android.gms.dynamite.DynamiteModule.zza(Unknown Source) at com.google.android.gms.maps.internal.zzbz.zzeb(Unknown Source) at com.google.android.gms.maps.internal.zzbz.zzea(Unknown Source) at com.google.android.gms.maps.internal.zzbz.zzdz(Unknown Source) at com.google.android.gms.maps.MapsInitializer.initialize(Unknown Source) at plugin.google.maps.CordovaGoogleMaps$1.run(CordovaGoogleMaps.java:209) at android.app.Activity.runOnUiThread(Activity.java:5871) at plugin.google.maps.CordovaGoogleMaps.initialize(CordovaGoogleMaps.java:73) at org.apache.cordova.CordovaPlugin.privateInitialize(CordovaPlugin.java:57) at org.apache.cordova.PluginManager.getPlugin(PluginManager.java:171) at org.apache.cordova.PluginManager.startupPlugins(PluginManager.java:97) at org.apache.cordova.PluginManager.init(PluginManager.java:86) at org.apache.cordova.CordovaWebViewImpl.init(CordovaWebViewImpl.java:115) at org.apache.cordova.CordovaActivity.init(CordovaActivity.java:149) at org.apache.cordova.CordovaActivity.loadUrl(CordovaActivity.java:224) at com.untappdllc.app.MainActivity.onCreate(MainActivity.java:39) at android.app.Activity.performCreate(Activity.java:6684) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2637) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2751) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1496) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6186) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)

FATAL EXCEPTION: main Process: com.untappdllc.app, PID: 9459 java.lang.NullPointerException: Attempt to invoke interface method 'android.os.IBinder com.google.android.gms.dynamic.IObjectWrapper.asBinder()' on a null object reference at com.google.android.gms.dynamic.zzn.zzy(Unknown Source) at com.google.android.gms.maps.model.Marker.getTag(Unknown Source) at plugin.google.maps.PluginMarker$15.onPostExecute(PluginMarker.java:1046) at plugin.google.maps.AsyncLoadImage.onPostExecute(AsyncLoadImage.java:548) at plugin.google.maps.AsyncLoadImage.onPostExecute(AsyncLoadImage.java:27) at android.os.AsyncTask.finish(AsyncTask.java:667) at android.os.AsyncTask.-wrap1(AsyncTask.java) at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:684) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6186) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)

java.lang.NoSuchMethodError: com.android.settings.location.SettingsInjector#parseServiceInfo(android.content.pm.ResolveInfo,android.content.pm.PackageManager)#exact at de.robv.android.xposed.XposedHelpers.findMethodExact(XposedHelpers.java:344) at de.robv.android.xposed.XposedHelpers.findAndHookMethod(XposedHelpers.java:185) at de.robv.android.xposed.XposedHelpers.findAndHookMethod(XposedHelpers.java:260) at be.r3w6.intika.xposedunifiednlp.UnifiedNlp.handleLoadPackage(UnifiedNlp.java:31) at de.robv.android.xposed.IXposedHookLoadPackage$Wrapper.handleLoadPackage(IXposedHookLoadPackage.java:34) at de.robv.android.xposed.callbacks.XC_LoadPackage.call(XC_LoadPackage.java:61) at de.robv.android.xposed.callbacks.XCallback.callAll(XCallback.java:106) at de.robv.android.xposed.XposedInit$2.beforeHookedMethod(XposedInit.java:134) at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:340) at android.app.ActivityThread.handleBindApplication(<Xposed>) at android.app.ActivityThread.-wrap2(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1564) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6186) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)

TheSecureTux avatar Jun 25 '18 11:06 TheSecureTux

So anyway, in the end it might simply boil down to this and me trying to make sense of it with no experience at all on Android and similars :)

Let's see when it's merged.

TheSecureTux avatar Jun 25 '18 16:06 TheSecureTux

This issue also breaks the Amikumu geolocated messaging app (the teleport feature to change one's position uses a Google Maps search for the city). With the message

07-05 11:23:07.299  5948  5948 W GooglePlayServicesUtil: Google Play services out of date.  Requires 12451000 but found 12221403
07-05 11:23:07.301  5948  5948 E GooglePlayServicesUtil: GooglePlayServices not available due to error 2

Posting here to avoid creating yet another issue for each app.

tuxayo avatar Jul 05 '18 09:07 tuxayo

This, as many other google aps related issues should be fixed when this PR gets merged #553

TheSecureTux avatar Jul 05 '18 17:07 TheSecureTux