microg / UnifiedNlp

Alternative network location provider for Android, with plugin interface to easily integrate third-party location providers.
978 stars 210 forks source link

Not working on LineageOS 14.1 03/09/2017 #132

Open ShapeShifter499 opened 7 years ago

ShapeShifter499 commented 7 years ago

The following patch to allow location providers outside of /system doesn't seem to work any more.

https://github.com/microg/android_packages_apps_UnifiedNlp/blob/master/patches/android_frameworks_base-N.patch

I built a fresh rom using code grabbed on 03/09/2017 and the self check doesn't show UnifiedNlp being registered in system. I have installed "Wifi Location Service", "Mozilla Location Service", and "Nominatim". The "Locations backend(s) set up" is checked.

Possibly related issue, https://github.com/microg/android_packages_apps_GmsCore/issues/341

System: Moto X Pure (Clark) LineageOS 14.1 Built on 03/09/2017 microG Services Framework Proxy v0.1.0 UnifiedNlp (no GAPPS) v0.2.4-79-g7f13738 LocalWifiNlpBackend v1.1.6 MozillaNlpBackend v1.3.2 NominatimNlpBackend v1.2.1

mar-v-in commented 7 years ago

Are you using file based encryption? location providers might not work outside /system with file-based-encryption (even when using the patch). Did you reboot after installing microG?

xeals commented 7 years ago

Chipping in to same same issue. Rebooted after installing (though not immediately).

System: Nexus 6P (angler) Encrypted LineageOS 14.1 (build 2017-04-03) UnifiedNlp (no GAPPS) 1.6.8 MozillaNlpBackend 1.3.2 OpenBmapNlpBackend 0.2.6

ShapeShifter499 commented 7 years ago

@mar-v-in It's working for me when I have UnifiedNlp installed to /system. I do have full encryption set up, is that still a problem even when I boot up and enter in the encryption passphrase?

mar-v-in commented 7 years ago

Recent android versions support two encryption modes: full-disk-encryption (FDE) and file-based-encryption (FBE). FDE is when you enter your password in a gray full screen during boot and will see the boot animation after decrypting the disk. FBE will boot straight to the lock screen and by unlocking the screen you are decrypting the files.

The patch will only work with FDE. I might invest some time soon in developing a more sophisticated approach that works with FBE as well.

ShapeShifter499 commented 7 years ago

I just now read into FBE, I hadn't known that feature was there. Still I'm probably going to continue to use FDE as I can panic shutdown to secure my data when I have my device or remotely.

valpackett commented 7 years ago

This should be more obviously documented… If you use GmsCore, which includes UnifiedNlp, push it into /system/priv-app, don't get UnifiedNlp. Only this apk:

ggwp21 commented 7 years ago

@myfreeweb already done what you said. GmsCore is installed in system/priv-app but in microG setting, "system support location provider" still not ticked and it doesn't recognize unifiednlp registered in system. I already reboot after installing microG though

Device : Lenovo K3 note ROM : AOSP Android : 7.1.2

ghost commented 7 years ago

No UnifiedNlp either on LineageOS.

Samsung i9305 Fresh LineageOS 14.1 20170503 Flashed https://github.com/nvllsvm/freecyngn/blob/70202a488faa235c5f66d3458484b4333b531e4b/20-freecyngn.sh minus LockClock No encryption set (FBE/FDE) UnifiedNlp (no GAPPS) v0.2.4 MozillaNlpBackend v1.3.2 NominatimNlpBackend v1.2.1 FakeStore v0.0.2

UnifiedNlp (no GAPPS) upgraded to v0.2.4-92-g3669bab, rebooted again, no improvements.


I didn't try the /system/priv-app method. /system is read-only and I don't seem to be able to remount it rw.

djmaze commented 7 years ago

Same problem here w/ LineageOS 14.1 on LG G5. UnifiedNlp shows as not being registered in the system, during self-check. Neither with the priv-app method.

I grepped the adb logcat output for NetworkLocation after pushing the apk and rebooting. Maybe any of this helps in debugging?

05-07 13:34:32.447  1815  1884 I PackageManager: /system/priv-app/NetworkLocation.apk changed; collecting certs
05-07 13:34:32.509  1815  1884 I PackageManager: Package com.google.android.gms codePath changed from /data/app/com.google.android.gms-1 to /system/priv-app/NetworkLocation.apk; Retaining data and using new
05-07 13:34:32.513  1815  1884 W PackageManager: Code path for com.google.android.gms changing from /data/app/com.google.android.gms-1 to /system/priv-app/NetworkLocation.apk
05-07 13:34:32.513  1815  1884 W PackageManager: Resource path for com.google.android.gms changing from /data/app/com.google.android.gms-1 to /system/priv-app/NetworkLocation.apk
05-07 13:34:44.316  1815  1815 W LocationProviderProxy-network: Odd, no component found for service com.android.location.service.v3.NetworkLocationProvider
05-07 13:34:44.771  1815  1866 W LocationProviderProxy-network: Odd, no component found for service com.android.location.service.v3.NetworkLocationProvider
05-07 13:35:03.725  2995  2995 W System  : ClassLoader referenced unknown path: /system/lib64/NetworkLocation
05-07 13:35:09.105  3285  3333 W System  : ClassLoader referenced unknown path: /system/lib64/NetworkLocation
05-07 13:35:09.105  3285  3333 D ApplicationLoaders: ignored Vulkan layer search path /system/lib64/NetworkLocation:/system/lib:/vendor/lib for namespace 0xf0d69090
05-07 13:35:13.312  3659  3659 W System  : ClassLoader referenced unknown path: /system/lib64/NetworkLocation
05-07 13:35:13.313  3659  3659 D ApplicationLoaders: ignored Vulkan layer search path /system/lib64/NetworkLocation:/system/lib64:/vendor/lib64 for namespace 0x74471f80f0
05-07 13:35:14.457  3659  3679 W System  : ClassLoader referenced unknown path: /system/lib64/NetworkLocation
05-07 13:35:14.458  3659  3679 D ApplicationLoaders: ignored Vulkan layer search path /system/lib64/NetworkLocation:/system/lib64:/vendor/lib64 for namespace 0x74471f8160
ksala commented 7 years ago

I wonder if it's something to do only with LineageOS? I have CopperheadOS (last version, 7.1.2) encrypted with FBE and the patch from this repository, and UnfiiedNlp is working fine as an user application.
To be clear, I didn't install it under /system/priv-app (nor I did that for MicroG).

I get all the checkboxes in the self check and location is working fine in applications.

coderex96 commented 7 years ago

Hi all, I installing UnifiedNlp with Mozilla backends but I have not tick on registered on system, I did not everyrhing, I only install them from F-Droid, what I should do now ro integrate into system?

My system: Sony Z3 compact Fresh Lineage 14.1-20170511-UNOFFICIAL-z3c Android 7.1.2 UnifiedNlp 1.6.8 MozillaNlp Backends 1.3.2 System not encrypted

ale5000-git commented 7 years ago

The simplest way is uninstall all components that you have installed and flash my flashable zip.

ZJaume commented 7 years ago

Same problem, location doesn't work on LOS 14.1. Installing gmscore as system app breaks my system, and as a user app location doesn't work.

My system: Moto G (2013) falcon Lineage 14.1-20170718-OFFICIAL GmsCore 0.2.4-103 MozillaNlp Backend 1.3.2 Not encrypted

ale5000-git commented 7 years ago

@ZJaume: What do you mean with "breaks my system"? It works perfectly on all phones where I have tried it.

ZJaume commented 7 years ago

@ale5000-git I have converted gmscore to system app, and I rebooted the phone, and then it freezes a few seconds after the boot has completed. I had to remove the app from /system/priv-app manually with twrp.

ale5000-git commented 7 years ago

@ZJaume: Have you tried to install it directly with a flashable zip without have installed it before? Maybe the "conversion" didn't go well.

valpackett commented 7 years ago

all the "conversion" you need is just putting the apk into /system/priv-app, you can e.g. adb push while in the recovery

ale5000-git commented 7 years ago

@myfreeweb: Although it is rare that are a number of things that can make it fail in some ways (including a messed up or full system partition).

If you want you can try the "mostly" clean procedure:

This can't fail (in the very rare case it fails I can fix the problem if reported with logs).

valpackett commented 7 years ago

I just dirty flash the LineageOS update, the vendor image, apply the signature patch and adb push the microG apk. Works every time.

ale5000-git commented 7 years ago

@myfreeweb: Sorry, I just confused you with ZJaume :)

ZJaume commented 7 years ago

@ale5000-git I'll try next week.

ale5000-git commented 7 years ago

@Azphreal @ggwp21 @kehugter @djmaze @coderex96 @ZJaume

The latest version of microG unofficial installer automatically:

It should fix all problems without effort.

ZJaume commented 7 years ago

Thank you for your support, but I don't want a script that installs google propietary code (play store). Maybe if I have time I will explore your code to delete playstore installation or replace it with fakestore.

ale5000-git commented 7 years ago

@ZJaume: If you want you can try the test build with live setup here. It allow to choose between Google Play Store and FakeStore.

Note: Currently this test build works only on ARM phones.

IzzySoft commented 7 years ago

@ZJaume microG is not "google proprietary code" – but an open source replacement of that. In a nutshell, it fakes the Google APIs to fool apps into thinking they are there – but in fact, when requesting an area from "Google Maps", they receive it from Open StreetMap, etc.

ZJaume commented 7 years ago

@IzzySoft I know perfectly well what it is mircoG, What I was saying was that microG unofficial installer installs Google Play Store apk by default, and I don't want it.

IzzySoft commented 7 years ago

@ZJaume Oh – I wasn't aware of that! Who could think of such a crazy idea? :scream: Doubt it was Marvin.

I've never used that installer – and knowing that, I doubt I ever will. Somehow completely defeats the purpose of the microG framework (at least for many of us). As an option I could understand it, but no more.

ale5000-git commented 7 years ago

@IzzySoft

Think as it in this way: 1) Remove 75% of the evil; better performance, user exeprience unchanged, (almost) no features lost; 2) Remove 100% of the evil; better performance, user experience decreased, many features lost.

It can also be installed on phones with GApps and transparently do the switch without downtimes in a way that also a child can do it :)

Bwt in the test version there is an option to choose.

IzzySoft commented 7 years ago

@ale5000-git Yupp, that's what I meant by "as an option I could understand it". I'm aware that this (installing µG and Playstore) is what some folks prefer as they feel there's no real alternative to the latter (and yes, there's quite something gained that way).

But the option to get rid of the evil altogether (and for the rare cases needed, simply use eg. Yalp) should be there. Good to read it's available in the test version; does that mean it's planned for the "regular" one?

ale5000-git commented 7 years ago

@IzzySoft: Yes, but for making it compatible with all recoveries I have to use a different way to allow live options without aroma (by only using the +/- volume keys) and this complicate things a bit.

IzzySoft commented 7 years ago

Sure – take your time, @ale5000-git . Better it works correctly and comes a little later than it comes fast and is flaky :wink: Current work-around is still available (installing stuff manually). And glad to read you care, thanks a lot!

ZJaume commented 7 years ago

@ale5000-git the test build with live setup worked so fine on my device, thank you! The only problem I encountered is that the 2 seconds delay for choosing live setup is too short for someone who tries the first time. I have had to flash 2 times because the first time I wasn't able to see the message.

ale5000-git commented 7 years ago

@ZJaume: I have done it in this way so it can be used as normal flashable zip just by doing nothing. Live settings are mainly for when you want to change some settings and you don't have a pc.

Waiting more will be annoying for the people that don't use the live settings, but I will add also another way to change settings by read a setting file for those that want persistent settings.

TinfoilSubmarine commented 7 years ago

Are people still having issues getting UnifiedNlp to work with LineageOS 14.1? I've been troubleshooting this without success for the past week. I've tried both NanoMod and the installer mentioned in the above comments, as well as manually pushing GmsCore.apk to /system/priv-app. I can provide logs/other useful information if needed.

ghost commented 7 years ago

@AluminumTank UnifiedNlp is running for me in lineage-14.1-20170802-nightly-i9305. I pushed the latest GmsCore (https://microg.org/fdroid/repo/com.google.android.gms-11059462.apk) to priv-app while on recovery

adb push com.google.android.gms-11059462.apk /system/priv-app/com.google.android.gms.apk

Other notations for the target path didn't work (only /system/priv-app, for instance). tingle was applied before pushing GmsCore.


@ale5000-git thanks for taking the time to let us know. Pushing the apk is simple enough for me, I'll stay with that method for now.

ale5000-git commented 7 years ago

@kehugter: Well, it depend what you want to do. My installer install all these things in some seconds, not just GmsCore.

@AluminumTank: For the problem with my installer, if you want, you can post the logs here.

springbov commented 7 years ago

~~I thought I'd leave a remark on converting NetworkLocation.apk to a system app. I am running on lineage-14.1-20170906-nightly-kiwi and I tested it on the previous nightly as well. When I have a bluetooth headset and am watching a video in firefox (and a few other circumstances... the video scenario was reproduceable for me) and I get an incoming call, The system ui freezes. It won't allow me to answer the phone. I tested it in jelly (lineageos browser) and I was able to answer but it wouldn't let me hang up, even after the person on the other end had already hung up. My phone was also misbehaving in other ways. removing NetworkLocation.apk from /system/priv-app/ resolved the issue.~~ edit: 2017-11-22: I had my issue after uninstalling this. It has to be something else

theScrabi commented 7 years ago

@kehugter I used your way of installing GsmCore. Tho after updating Lienage this app was deleted. How can I ensure this app will be persistent even after an update?

@ale5000-git: Would this work with your installer?

ZJaume commented 7 years ago

@theScrabi the installer works so fine in lineage, the onlly thing you must do after every update is apply the patch that enables signature spoofing

ghost commented 7 years ago

@theScrabi as @ZJaume said.

@ale5000-git: Would this work with your installer?

I'm using @ale5000-git's installer now, works like a charm.

ale5000-git commented 7 years ago

@theScrabi: Yes, my installer keep GsmCore installed after any update.

theScrabi commented 7 years ago

All right convinced. I'll try that :)

mulles commented 6 years ago

if you only want to install UnifiedNLP you can use "unifiednlp-minimal_2018-08-17.zip" available here: https://github.com/WeAreFairphone/flashable-zip_microG/releases/tag/2018-08-17 Their are build instructions as well. I tested it on LineageOS 15.1 on Nexus 4 (mako)

Please pay attention to the following:

Concerning the impossibility of launching the UnifiedNLP app, this is happening on all devices (see this forum thread). I don't know why it can't be launched normally on Oreo, but you can still access the UnifiedNLP configurations through "Location settings" (tap and hold the notification bar quick-setting for toggling location), and at the bottom (“Location services”) you’ll find an entry for launching it.

See as well: https://github.com/microg/android_packages_apps_UnifiedNlp/issues/154

ale5000-git commented 5 years ago

To all: Now my installer come in 2 flavours, the "OSS version" does not include the Play Store.