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

Can't validate playstore license: functionality restricted #24

Open
ertmuirm opened this issue Mar 21, 2024 · 32 comments
Open

Can't validate playstore license: functionality restricted #24

ertmuirm opened this issue Mar 21, 2024 · 32 comments

Comments

@ertmuirm
Copy link

Used the LL build here; was working fine until today when I tried to edit a desktop, and it showed a message "Can't validate playstore license", then refused to allow me to edit. I checked on playstore and realized that LL got removed

Is there a way to avoid this error, so that I can get back to editing desktops again? Rest of LL functionality seems to be fine (app drawer, shortcuts, etc.)

@TrianguloY
Copy link
Owner

Unfortunately, I can confirm the bug.

I don't know if Pierre or play store itself removed the app, but I guess it's now time to remove the check from the app once and for all.

@ertmuirm
Copy link
Author

An update that fixes this would be great. The bug also prevents one from restoring a backup, and I mistakenly uninstalled/reinstalled LL trying to fix the bug but created a bigger issue now of not being able to restore any backups ...

@dbob456
Copy link

dbob456 commented Mar 23, 2024

Can confirm that toggling airplane mode on and off is a workaround for now at least.

@ertmuirm
Copy link
Author

Thank you! Airplane mode works for now

@TrianguloY
Copy link
Owner

Update: the current version here should not have that issue, but as already noticed the backup/restore functionality is not working due to storage permission issues.
I saw that @SnowVolf was working on a full rewrite of that screen, but in the meantime I'll try to upload today/tomorrow a quick fix.

@TrianguloY
Copy link
Owner

Update: I added a quick workaround to allow restoring backup in the debug version. Creating backups may take a bit more time, but at least this way you should be able to use the app with existing data.
If you have any issues, just say so.

@knodalyte
Copy link

I understand that this issue is being worked on, appreciate that LL still works on Android 14!

Cannot upgrade to debug version that was posted today, it tells me that the package appears to be invalid.

@TrianguloY
Copy link
Owner

The current version is not signed, and even if it were it will never be signed with the same key (it's private to Pierre) so I'm afraid you will never be able to update the current installation (maybe with root).
This means that you need to uninstall the existing app to be able to install the new one.

However I'm going to change the app id so that it can be installed as an independent version (I should have made that from the start to be honest). You can wait until that's done if you prefer.

@knodalyte
Copy link

For anyone following this, I was able to upgrade to the debug version from TrianguloY's original release using the following ADB commands:

 adb uninstall -k net.pierrox.lightning_launcher
 adb install -r lightning_launcher-extreme-armv64-debug-330.apk

@beltine
Copy link

beltine commented Mar 27, 2024

I am happy that something is happening about Lightning Launcher... because I have new phone, and now I discovered I can not install LL anymore. I bought it years and years ago... and didnt find better launcher till today...

@TrianguloY
Copy link
Owner

TrianguloY commented Mar 29, 2024

Sorry for the lack of updates. This post should explain the current situation:

First of all, I've always been a power user of LL, and it's been a really important part of my life. Seeing it being discontinued was hard, so that's why I pushed to publish the source code. Personally I'm still using LL as my main launcher, and I continue to do so until it is really impossible to use.

As for updates, even though I would love to, truth be told I have my own personal projects and this app is very complex and big to maintain. I'm sorry if this is disappointing, but most probably I won't spend time working on new features.

Then SVolf offered to do it. I took a role of reviewer, and even though I didn't like some of the decisions (Kotlin/koin/minsdk) I didn't want to stop the only person that offered to really update the app. I personally continued to use the original version, but I wanted to see how far this updated one went.

And finally, the end-of-license arrived. All Pierre apps have been removed from play store (either him/google deleted his account or the apps were removed due to being very outdated). This made the app fail the license check, and it became a trial that expired and forced you to buy something that no longer exists.
SVolf version doesn't have this issue, but since the app is compiled for newer android versions (with a lot more restrictions) some things are broken. I managed to easily fix the restore functionality, but the backup was just too much because, as I said, it feels like a burden and...it's hard to describe (it's like trying to preserve a very old painting you love, even if you know it needs a restoration).

So, I made the following:
First, I went back to the original 14.3 version and removed the license check (trying to preserve all the non-license code intact as much as possible). Then I changed the package id (from net.pierrox.lightning_launcher_extreme to net.pierrox.lightning_launcher_community) as well as other ids in order to be able to install the app alongside the original. This breaks some scripts (if you have the original package hard-coded) but it allowed me to "migrate" and use this new launcher while keeping the original installed (even if it's in a "read-only" state, I don't want to lose it...).
I'm publishing this patched_community version, as well as a patched one without the package id change (for those of you who don't mind removing the original and/or keep scripts working). All these versions are signed with my own developer key, and they are intended to be a replacement "patch".
More details in the release description.

I don't know what will happen in the future, but I'm sure that I'll continue using the 14.3 version (patched community) until I can (or until someone wants to continue SVolf's work).

@knodalyte
Copy link

Much appreciated! Fine solution.

@summer-son
Copy link

@TrianguloY could you please build the permission apks? I would like to use your patched_community build, but the permission apks need to be signed with the same developer key.

@TrianguloY
Copy link
Owner

@TrianguloY could you please build the permission apks? I would like to use your patched_community build, but the permission apks need to be signed with the same developer key.

Here you have: patched and patched community.

Hopefully it works, if not please tell me (I must admit that I've never used them).
Note: it is a single apk with all permissions, instead of one apk for each. Both because it is way easier for me to build them (I do it manually) and also because on latest android versions you need to explicitly grant them anyway.

@summer-son
Copy link

Hopefully it works, if not please tell me (I must admit that I've never used them).

All works great, the only thing is that clear text HTTP traffic is not permitted, like it was in the original LL apks. You can refer to my commit to the internet permission APK some time ago or I can make a request to this new APK tomorrow.

@TrianguloY
Copy link
Owner

TrianguloY commented Apr 6, 2024

All works great, the only thing is that clear text HTTP traffic is not permitted, like it was in the original LL apks. You can refer to my commit to the internet permission APK some time ago or I can make a request to this new APK tomorrow.

arg, you are right.

Originally I tried to create the apk with the original permission minsdk, and the clear text http traffic tag was simply not supported so I had to remove it. Later I increased the sdk (it had some issues but also I preferred to use the same as the launcher itself) and just forgot to add the tag again.

Sorry! I'll add it tomorrow.

@TrianguloY
Copy link
Owner

The permissions apks have been updated
@summer-son

@summer-son
Copy link

Thanks @TrianguloY but looks like it still doesn't work. I've checked the source code, all seems fine. The only thought that comes to my mind is that Cleartext should be also allowed in the launcher app itself too (maybe as the request is coming from it). I assume so since on my modified launcher version it worked, just cause I added all the permissions directly to the launcher app, and didn't use a separate permission APK.

@TrianguloY
Copy link
Owner

Did it work in the original launcher? The original internet permission apk had a lower minsdk. Not sure if decreasing it could work... Or maybe increasing it? That extra tag is not needed on newer apis. Maybe the launcher needs to be increased...is the debug version working?

@summer-son
Copy link

summer-son commented Apr 7, 2024

The original internet permission APK didn't work as-is (obviously, since it was not allowing Cleartext), and if I'm not mistaken (since it was like several years ago), I couldn't make it work, because rebuilding permissions APK will build them with a different developer key. Eventually I modified the LL APK to have all the permissions, added Cleartext and built it with my key. I didn't bother to have a separate APK for permissions. This is how I use it until now.

From API 28 the default value is false so one have to set to true manually, other than that I'm not aware of any SDK version requirements.

@summer-son
Copy link

If your releases are not intended for the Play Store, maybe it's also worth getting rid of a separate APK for permissions? It will be much easier to maintain.

@francwalter
Copy link

I don't understand the use of this separate permission app. Is it just to automate the manual setting of all permissions in Android's app settings (Settings > Apps > LL > Permissions)?

I just tried to install it (I have the community patch, just uninstalled for good Pierrot's LL), but it won't install.

@TrianguloY
Copy link
Owner

I don't understand the use of this separate permission app. Is it just to automate the manual setting of all permissions in Android's app settings (Settings > Apps > LL > Permissions)?
I just tried to install it (I have the community patch, just uninstalled for good Pierrot's LL), but it won't install.

The purpose of having a separate app with the permissions, as oppose of adding the permissions to the app directly, was probably to avoid issues with play store (which rejects apps with most permissions). But then:

If your releases are not intended for the Play Store, maybe it's also worth getting rid of a separate APK for permissions? It will be much easier to maintain.

And this is true. However I would still prefer to keep them separate, or at least have an original app without permissions. Personally I don't need them and since the app can arbitrarily run any scripts, even if I'm in control of it I prefer to avoid having them in the first place (specially the internet permissions because for some reason 1 you cannot disable it without root)

Having a version without permissions and another with them is a possibility, and it may be a good idea to add in the developer branch version, but for the 'patch' that should be just a minimum-changed replacement it's just too much work. What I can add is the cleartext tag, without the internet permission it should be useless after all. (but again, the only person that apprently really needs it has already a custom version so...still if someone needs it just say so and I can try to build it)

Footnotes

  1. (this is a lie, I know the reason, right ad-company-that-develops-android?)

@summer-son
Copy link

the only person that apprently really needs it has already a custom version

He doesn't 😁 he uses your patches community build, as the old custom version is not working on Android 14...

Not urgent, but for the next build would be nice if you could include the tag!

@TrianguloY
Copy link
Owner

He doesn't 😁 he uses your patches community build, as the old custom version is not working on Android 14...

Oh! I see, In that case I'll try to generate the version with the tag. But I have other issues to solve in other projects, that I would like to do first, so unfortunately I don't know when I'll be able to.
I mean, it's just a line and pressing a button...it still takes 15 minutes but doesn't require my attention...let me try to do it now...

@TrianguloY
Copy link
Owner

Done. Please tell me if there is any issue!

@summer-son
Copy link

Done. Please tell me if there is any issue!

Works perfectly, thank you very much!!!

@ertmuirm
Copy link
Author

@TrianguloY thanks for updating the permissions apk with the new signature. But I couldn't find the internet permission there. Is it missing?

@TrianguloY
Copy link
Owner

It should...but remember that the internet permission is not usually shown (it's like they assume all apps must have access to the internet...).
Please try any internet-related script, if it doesn't work then we can investigate.

@ertmuirm
Copy link
Author

Thanks - I tried it and gives me a pop-up box saying I'm missing the INTERNET permission. My workaround now is to reinstall the old ll.apk (with the playstore license issues) and the old ll-internet-permission.apk (which still works)

And when I need the backup/restore functionality, or ability to edit the desktop, use your patched app to make these edits. Then go back to the original ll.apk as daily driver

Bit clunky I know ... but thanks for your help!

@summer-son
Copy link

@ertmuirm have you rebooted your phone after you've installed permissions apk? For some reason (it was always like that, also with original apk) the system doesn't pick up internet permission unless rebooted.

@ertmuirm
Copy link
Author

thanks for the tip @summer-son! internet permission works now after a reboot

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

7 participants