XposedUnifiedNlp
XposedUnifiedNlp copied to clipboard
please add support for android 6
current not working in android 6 it seems. "Network-based locations enabled" this check is not pass and unified nlp is not listed in location settings in system settings app, not until i move it to /system/priv-app/. but even if i moved it, check still not pass
Just added a new version(1.0.4-EXPERIMENTAL). It works on Lollipop(5.0/5.1) and Marshmallow(no real device test, emulator only). Would be great if someone could test it and give some feedback.
I also added a DummyBackend that always returns the same location(42,42) which could be used for testing.
The UnifiedNlp self check seems to be broken(#72, #76, #88, #92) but the XposedUnifiedNlp check should work.
@Rawi01 I can confirm that 1.0.4-EXPERIMENTAL works on Marshmallow (Cyanogenmod 13), thanks!
I'm using Marshmallow (CM 13) on my own device (Zenfone 2 Laser, Z00T), but even with 1.0.4-EXPERIMENTAL things seem to not properly be working. I flashed the most recent ARM64 build of Xposed, and installed both LocalGSM (I forget the full name) and the Mozilla location backend.
The exact symptom I get is that the unifiedNLP self-check never thinks it has a current location, the XposedUnifiedNLP self-check claims everything is fine, the Weather applet in CLock seems to pick up my location, at least coarsely (enough to know which weather forecase to give), but Google Maps picks up nothing. (The only promising sign is that Google Maps at least does not ask to enable GPS, which suggests that on some level it's aware of there being a location available somehow.) I don't appear to get any location even from the Dummy Backend.
If it would be useful, I can provide logcat output this evening. All I'd need to know is where to start and finish the logging (i.e. should it cover the enabling/disabling of a backend, the toggling of the Location settings in Android itself, the opening/closing of an app that uses location e.g. Google Maps?).
I will also post any additional info I may have missed, and if anyone asks me for anything, that too.
Edit: It turns out that it isn't just CLock that has some sort of coarse access to location - Chronus is also able to get coarse location for its own weather applets, and Öffi is able to correctly recognise which stations are nearby. The problem might be isolated to Google Maps and to unifiedNLP's self-reporting.
I also have the same sympton as @aphirst , my Google Maps also can't get location, UnifiedNLP reports it has no known location, I currently enabled only Mozilla Location Backend.
But apps other than Google Maps can get locations, tried OsmAnd and Telegram, so I thought UnifiedNLP was never designed to support Google Maps, maybe it uses some secret APIs. Is Google Maps supposed to work with XposedUnifiedNlp ?
@pellaeon Good to see I'm not alone in this. I recall on another of my devices I was using full-on microG, and had installed Google Maps from the Play Store, and in that instance was able to use it just fine with the various NLP backends. So I would guess that there's something really different about either the NLP implementation in unifiedNLP and microG or in the different Xposed modules used to enable them.
I have the same problem (except that i dont know if google maps gets a location, i do not have it). But when i activated "Battery Saving" or "High accuracy" Mode, i was asked about data send to google. So im not sure if unifiednlp is actually used. Is there a way to check that unifiednlp is used and not the google stuff?
New (alpha) version should fix most issues.
Installation instructions:
- Remove UnifiedNlp
- Download and install my slightly modified microG build and the new Xposed module
- (Android 6 only) Grant location access to microG (microG Settings -> Self-Check -> Permission to approximate location)
- Configure backends
- Reboot
@Rawi01 What modifications have been made to microG, and are you in communication with the microG developers about this?
I only changed the package name to resolve naming conflicts with Google Play Services. Also removed some conflicting providers and fixed some naming related links to activities.
Hi! Everything works! OnePlus One, Cyanogen OS 13.1.2, marshmallow 6.0.1, september security patch. I was about to give up. Thanks again!!
Unfortunately, on me it crashes (CyanogenOS 13 / MM 6.01) when pressing the "check" button. UnifiedNlp/settings/self check it says there's no last known location. And yes, I've granted the Location permission to UnifiedNLP.
Any ideas? As I have to switch to MM on another device soon (which will be free of GApps), I need that working then. The current device runs its stock ROM with GApps.
Funny thing (looks like the same story I had back then with LP), when performing the self-check in UnifiedNLP logcat a.o. gives:
V/NlpLocationBackendFuser( 8249): location=Location[network 48,165699,11,571527 acc=500 et=+1h11m1s110ms {Bundle[{noGPSLocation=Location[network 48,165699,11,571527 acc=500 et=+1h11m1s110ms], AVERAGED_OF=1, SERVICE_BACKEND_PROVIDER=gsm, SERVICE_BACKEND_COMPONENT=org.fitchfamily.android.gsmlocation/.GSMService}]}]
So it seems to work.
Meanwhile managed to fix the crash. For everybody finding him/herself in this situation: Location permission must be given to both UnifiedNlp AND XposedUnifiedNlp. Still, self-check in the latter reports:
Check step "UnifiedNlp package" finished successful.
Check step "Network-based geolocation" finished successful.
Check step "UnifiedNlp location" failed. Your Location were not found. Make sure you added at least one backend.
Logs from that:
I/CheckStep(30050): UnifiedNlp packages state changed to RUNNING I/CheckStep(30050): UnifiedNlp packages state changed to SUCCESS I/CheckStep(30050): Network-based geolocations state changed to RUNNING D/audio_hw_primary( 275): start_output_stream: exit I/CheckStep(30050): Network-based geolocations state changed to SUCCESS I/CheckStep(30050): UnifiedNlp locations state changed to RUNNING D/CheckWorkingTask(30050): UnifiedNlp package: SUCCESS D/CheckWorkingTask(30050): Network-based geolocation: SUCCESS V/NlpLocationProvider( 8153): onSetRequest: ProviderRequest[ON interval=0] by WorkSource{10121 de.r3w6.xposedunifiednlp} V/NlpLocationProvider( 8153): using autoUpdate=true autoTime=2500 V/NlpLocationBackendFuser( 8153): Ignoring location update as it's older than other provider. V/NlpLocationBackendFuser( 8153): Ignoring location update as it's older than other provider. V/NlpLocationBackendFuser( 8153): Ignoring location update as it's older than other provider. V/NlpLocationBackendFuser( 8153): Ignoring location update as it's older than other provider. V/NlpLocationBackendFuser( 8153): Ignoring location update as it's older than other provider. V/NlpLocationProvider( 8153): onSetRequest: ProviderRequest[ON interval=+24h0m0s0ms] by WorkSource{1000 android} V/NlpLocationProvider( 8153): using autoUpdate=true autoTime=86400000 I/CheckStep(30050): UnifiedNlp locations state changed to FAIL V/NlpLocationBackendFuser( 8153): Ignoring location update as it's older than other provider. D/CheckWorkingTask(30050): UnifiedNlp location: FAIL
Sounds like exactly the same game I had with LP. Which was 1.5 years ago. Can't remember what I did back then; probably ignoring it as it worked despite of the tests saying differently. And I still wish to know what that "other provider" is. The logs don't mention it. GPS is unlikely (indoors, and no sign of any GPS check). Maybe I should go airplane and then check half an hour later …