Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UNLP V2: will there be a standalone apk? #225

Open
jfaure9 opened this issue Oct 26, 2021 · 27 comments
Open

UNLP V2: will there be a standalone apk? #225

jfaure9 opened this issue Oct 26, 2021 · 27 comments

Comments

@jfaure9
Copy link

jfaure9 commented Oct 26, 2021

Hi all and sorry if this isn't the right place or the right way to ask for this but I would like to know if there will be a standalone apk for the new version of UNLP? Thanks in advance.

@git-bruh
Copy link

microg/GmsCore#1776

@jfaure9
Copy link
Author

jfaure9 commented Sep 12, 2022

Hi,

I'm afraid (if I got it properly which is not guaranteed! ) that what you did is not what I'm looking/asking for. What I would like is a standalone UNLP V2 APK with com.google.android.gms as the package name so that to install it on a pure AOSP system w/o signature spoofing.

Did I understand properly what you did?

@git-bruh
Copy link

It is what you described except for the package name -- which has been set to org.microg.nlp.app. You can set it back to original by reverting this commit microg/GmsCore@f69ea71

Any reason why you want unlp to have gmscore's package name? It should functional identically

@jfaure9
Copy link
Author

jfaure9 commented Sep 13, 2022

Then I misunderstood what you did as I thought sigspoof was required. My bad.
Now to answer your question "Any reason why you want unlp to have gmscore's package name?"

It's been a long time since the last time I had a look into this but my initial objective was to setup a Lineage system on my old Xiaomi Redmi 4x with:

  • As less Google stuff as possible.
  • As less system modifications as possible (in particular, no root).
  • As much running functionalities as possible.

Note: I know there is "Lineage for microG" for this device but I don't want the full microG package as I feel it is too much buggy (that's why I emphasized "running" just above).

I first tried to combine GAPPS with UNLP with no success as I didn't manage to modify Lineage so that it accepts org.microg.unlp as a location provider. Hence I backed up on trying to combine a pure Lineage (no GAPPS at all) with UNLP: it worked (precisely because the UNLP package name was "com.google.android.gms") and frankly I was quite happy with it. The resulting system was easy to maintain and stable. The only issue I had was that UNLP location accuracy was not good enough to my taste (I was not hoping for something as accurate as Google but honestly it was below the average). So finally, I gave up and bitterly went back to Lineage + GAPPS.

Then I discovered that UNLP V2 was under development and so I posted my question.

Hope this answers your question and clarify things a bit.

@odmfl
Copy link

odmfl commented Sep 26, 2022

I'm interested too. Let me understand one thing, to only use unifiednpl without all the full microg package the package name needs to be the original one right?

@jfaure9 trying to flash these releases only unified does it work with roms without signature spoofing? Have you ever tried? https://github.com/FriendlyNeighborhoodShane/MinMicroG_releases/releases/tag/2022.02.02

practically to use a custom rom without gapps and without microg, but only with unifiednpl and then with the gps working how should you do?

@odmfl
Copy link

odmfl commented Sep 26, 2022

@git-bruh let me understand the change to the name you made is it if you have gapps + unifiednpl at the same time without rom with signature spoofing?
Or is it the other way around?
If, on the other hand, you do not have the gapps, then vanilla rom and you would like to make the gps / navigator work, how could you do it? I rightly think that without gapps and "full microg" you can't use gdrive backup on whatsapp example right? But the position could still be shared right? Sorry, I'm a bit confused about it 😅😅

@git-bruh
Copy link

@git-bruh let me understand the change to the name you made is it if you have gapps + unifiednpl at the same time without rom with signature spoofing? Or is it the other way around? If, on the other hand, you do not have the gapps, then vanilla rom and you would like to make the gps / navigator work, how could you do it? I rightly think that without gapps and "full microg" you can't use gdrive backup on whatsapp example right? But the position could still be shared right? Sorry, I'm a bit confused about it sweat_smilesweat_smile

With my fork, you get the package name changed to org.microg.nlp.app, built with just unifiednlp features and none of gmscore.

So, you can use location sharing on a rom without sig spoofing, but not any app that relies on gmscore

You can always just flash the full gmscore (it includes microg) on a non-sig spoofed rom, but that confuses apps as they think that a working gmscore is present, while it's non-functional, so they break. Changing the package name avoid this.

@jfaure9
Copy link
Author

jfaure9 commented Sep 27, 2022

With my fork, you get the package name changed to org.microg.nlp.app, built with just unifiednlp features and none of gmscore.

So, you can use location sharing on a rom without sig spoofing, but not any app that relies on gmscore

Don't you have to also declare "org.microg.nlp.app" as an authorized location provider in the configuration files of the rom too (which is not possible on lineage w/o deoexing) ?

@git-bruh
Copy link

git-bruh commented Sep 27, 2022

With my fork, you get the package name changed to org.microg.nlp.app, built with just unifiednlp features and none of gmscore.
So, you can use location sharing on a rom without sig spoofing, but not any app that relies on gmscore

Don't you have to also declare "org.microg.nlp.app" as an authorized location provider in the configuration files of the rom too (which is not possible on lineage w/o deoexing) ?

no you can just flash minmicrog git-bruh/unifiednlp-standalone@a87e646

@jfaure9
Copy link
Author

jfaure9 commented Sep 27, 2022

@git-bruh : Did you try your fork on Lineage ?

@odmfl
Copy link

odmfl commented Sep 27, 2022

@git-bruh Ok that was just what I was looking for, could you upload the zip to your fork in "release" or somewhere else to flash in recovery?
Or instructions on how to create this zip.

Android Studio is useless in this case right? Or at least it just serves to change the name of the package in case of need? Can you get the apk from Android Studio or not?

@jfaure9
Copy link
Author

jfaure9 commented Sep 27, 2022

@git-bruh : another question, are you sure that with what you did (full gapps + moded unlp) the location is retrieved thanks to unlp and not thks to gmscore ?

@git-bruh
Copy link

@git-bruh Ok that was just what I was looking for, could you upload the zip to your fork in "release" or somewhere else to flash in recovery? Or instructions on how to create this zip.

Android Studio is useless in this case right? Or at least it just serves to change the name of the package in case of need? Can you get the apk from Android Studio or not?

You don't need android studio, just android sdk, gradle and a JDK (I used amazon corretto 11, just use whatever is available on your distro)

Then generate a keystore, add it's path and password to .gradle/signing.conf like so

SIGNING_KEYSTORE=/path/to/keystore
SIGNING_PASSWORD=keystore_signing_password

and then run ./contrib/build_minmicrog.sh

I made a release here if you trust my build: https://github.com/git-bruh/unifiednlp-standalone/releases/tag/unlp

BTW don't try to flash this on top of an existing minmicrog install else you'll get issues with certificates, same goes for if you flash my zip and later decide to self build and flash zip signed by you

@git-bruh : another question, are you sure that with what you did (full gapps + moded unlp) the location is retrieved thanks to unlp and not thks to gmscore ?

The builder script only builds the following source files, so no gmscore stuff, only files that call unifiednlp for location are built:

https://github.com/git-bruh/unifiednlp-standalone/blob/master/build.sh#L7-L224

@jfaure9
Copy link
Author

jfaure9 commented Sep 27, 2022

I'm interested too. Let me understand one thing, to only use unifiednpl without all the full microg package the package name needs to be the original one right?

It depends on your rom. For the full microg or just unified NLP to be actually used as a location provider , the package name needs to be part of the "authorized location provider list" ("com.google.android.gms" is part of this list by default). To achieve that on Lineage (which was the rom I was working with at the time I tried to achieve what I described) deoxing is required and I never achieved to successfully put the modified files (thks to Smali Patcher) back into the system w/o breaking the boot.

@jfaure9 trying to flash these releases only unified does it work with roms without signature spoofing? Have you ever tried? https://github.com/FriendlyNeighborhoodShane/MinMicroG_releases/releases/tag/2022.02.02

Yes I tried MinMicroG and yes on a system w/o sigspoof the version w/ only UNLP was working fine.

practically to use a custom rom without gapps and without microg, but only with unifiednpl and then with the gps working how should you do?

Flash the minimal MinMicroG version after the rom installation and follow the post-boot instructions: all done.

@jfaure9
Copy link
Author

jfaure9 commented Sep 27, 2022

@git-bruh : another question, are you sure that with what you did (full gapps + moded unlp) the location is retrieved thanks to unlp and not thks to gmscore ?

The builder script only builds the following source files, so no gmscore stuff, only files that call unifiednlp for location are built:

https://github.com/git-bruh/unifiednlp-standalone/blob/master/build.sh#L7-L224

I think I'm starting to get what you done (sorry not an android developer, just an "advanced" user): you modified all the necessary configuration files so that org.microg.nlp.app is used as the location provider?

Did I get it properly?

@git-bruh
Copy link

@git-bruh : another question, are you sure that with what you did (full gapps + moded unlp) the location is retrieved thanks to unlp and not thks to gmscore ?

The builder script only builds the following source files, so no gmscore stuff, only files that call unifiednlp for location are built:
https://github.com/git-bruh/unifiednlp-standalone/blob/master/build.sh#L7-L224

I think I'm starting to get what you done (sorry not an android developer, just an "advanced" user): you modified all the necessary configuration files so that org.microg.nlp.app is used as the location provider?

Did I get it properly?

the config file modifications are made in minmicrog, nothing is needed in gmscore to build standalone unlp apart from removing dependencies on google services implementations and changing package name. I'm not an android dev either, just hacked this together for a couple of hours until it finally built.

@jfaure9
Copy link
Author

jfaure9 commented Sep 27, 2022

Then, w/o putting in question the quality of your work (sincerely), I don't get how this is working. As I said above, when I was working on this on Lineage, w/o deoxing and modifying the "authorized location provider list" it was not possible to actually make the system use unlp to get its location.

@git-bruh
Copy link

Then, w/o putting in question the quality of your work (sincerely), I don't get how this is working. As I said above, when I was working on this on Lineage, w/o deoxing and modifying the "authorized location provider list" it was not possible to actually make the system use unlp to get its location.

It works just how location works when you flash the full gmscore minmicrog package - https://github.com/git-bruh/MinMicroG-unlp/blob/e661be146ea0b2090bc28d1cd67517e05b2e465a/res/system/etc/permissions/org.microg.nlp.app.xml#L4

@jfaure9
Copy link
Author

jfaure9 commented Sep 27, 2022

On an unmodified lineage rom this is not enough (please trust me, I spent hours trying to make it works): the location provider will get installed but not actually used.

@odmfl
Copy link

odmfl commented Sep 27, 2022

@git-bruh @jfaure9 thanks for your clarification.

@jfaure9 try to change rom, as I know try arrow or other minimal, or omnirom, it may be that it is a lineage problem

@git-bruh
Copy link

On an unmodified lineage rom this is not enough (please trust me, I spent hours trying to make it works): the location provider will get installed but not actually used.

But I'm literally running it just fine on lineage 19.1 without any extra modifications -- what version did you try it on?

Screenshot_20220927-181505_Settings
Screenshot_20220927-181510_UnifiedNlp Services Core
Screenshot_20220927-181731_Chromium

GMaps webview

@jfaure9
Copy link
Author

jfaure9 commented Sep 27, 2022

@git-bruh @jfaure9 thanks for your clarification.

@jfaure9 try to change rom, as I know try arrow or other minimal, or omnirom, it may be that it is a lineage problem

It is specific to lineage but I would not qualify this as a "problem". The difficulty is by-design/intentional: the lineage team is privileging security over openness that's all. And BTW, at this time, on the device I was using, lineage was, by far, the best rom.

@jfaure9
Copy link
Author

jfaure9 commented Sep 27, 2022

On an unmodified lineage rom this is not enough (please trust me, I spent hours trying to make it works): the location provider will get installed but not actually used.

But I'm literally running it just fine on lineage 19.1 without any extra modifications -- what version did you try it on?

Screenshot_20220927-181505_Settings Screenshot_20220927-181510_UnifiedNlp Services Core Screenshot_20220927-181731_Chromium

GMaps webview

Those screenshots do no guarantee that location is provided by unlp, they just guarantee that unlp is properly installed and that the system is able to get A location. And my guess, is that this location is provided by Google Play Services not by unlp.

"what version did you try it on?": Lineage 15.1 on a Nexus 5X

@git-bruh
Copy link

I'm really having trouble trying to understand what you're getting at so I won't continue this conversation further. My device has:

  • Lineage 19.1 (no lineage4microg or patcher)
  • NO google play services (neither microg nor official)
  • unifiednlp standalone built with my repo, installed with minmicrog (with permission configs)
  • Location fully working and updating with UNLP, not from gapps, nor from GPS (indoors)

@jfaure9
Copy link
Author

jfaure9 commented Sep 27, 2022

Oh sorry. I was convinced you were running unlp along with gapps. My bad. So in the end, I don't get how this is working (or reversely, why it was not working in my case) and you did a (very) good job. Again sorry for the misunderstanding.
BTW: did you managed to find a solution in this configuration to get push notifications?

@jfaure9
Copy link
Author

jfaure9 commented Sep 27, 2022

When I rethink about it, location management has been modified a lot starting from lineage 17 (or 18, I'm not sure) : that may explain why you managed to make this work and why I didn't. Again, sorry for the misunderstanding and sorry if I pissed you off.

@biopsin
Copy link

biopsin commented Oct 1, 2022

@git-bruh Flashed your sept.27-release via recovery, after a reboot it actually crashed upon first run but stabilized after npem and backend and a reboot more. All good, get insta lock from apple in organicmaps.
custom lineageos-18.1 221001 build. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants