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

package name collision #477

Closed
IzzySoft opened this issue Feb 9, 2024 · 13 comments
Closed

package name collision #477

IzzySoft opened this issue Feb 9, 2024 · 13 comments

Comments

@IzzySoft
Copy link

IzzySoft commented Feb 9, 2024

While build.gradle says

    defaultConfig {
        applicationId "helium314.keyboard"

the APK attached to the latest release disagrees:

package: name='org.dslul.openboard.inputmethod.latin' versionCode='19' versionName='1.4.5'

That package name collides with upstream's. Could you please adjust that? Then I'd happily add the app to my repo, as requested here – which would also make it easier accessible to testers etc, including automated updates 😉

Oh, while on it:

SigningBlock blobs:
-------------------
0x504b4453 (DEPENDENCY_INFO_BLOCK; GOOGLE)

That shouldn't be there, but is easy to get rid of:

android {
    dependenciesInfo {
        // Disables dependency metadata when building APKs.
        includeInApk = false
        // Disables dependency metadata when building Android App Bundles.
        includeInBundle = false
    }
}

For some background: that BLOB is supposed to be just a binary representation of your app's dependency tree. But as it's encrypted with a public key belonging to Google, only Google can read it – and nobody else can even verify what it really contains.

Thanks in advance!

@Helium314
Copy link
Owner

That package name collides with upstream's. Could you please adjust that?

With the next release the rename will be completed. Currently the app is not ready for that next release though.

For some background: that BLOB is supposed to be just a binary representation of your app's dependency tree. But as it's encrypted with a public key belonging to Google, only Google can read it – and nobody else can even verify what it really contains.

Where does that even come from? I don't have the dependenciesInfo part in my other apps, and they are happily on F-Droid.

@IzzySoft
Copy link
Author

With the next release the rename will be completed. Currently the app is not ready for that next release though.

Can you give me a ping when it's ready and available?

Where does that even come from? I don't have the dependenciesInfo part in my other apps, and they are happily on F-Droid.

You're sure about both? Who does the signing there? Local-NLP-Backend is built and signed by F-Droid, so the APK there does not have this issue as they obviously turned that off. Scanning the APK you've attached to releases there shows it has it:

$ ./CheckSigningBlocks.py local-nlp-backend_1.2.11-release.apk 
0x504b4453 (DEPENDENCY_INFO_BLOCK; GOOGLE)

I didn't check the others, but assume a similar constellation. Apart from that, F-Droid has no such checks in place (it was requested more than a year ago, but not felt important enough to be put in place – which happened in my repo the same week I was made aware of that. F-Droid lacks several checks which are in place with my repo). F-Droid uses apksigner to sign packages; apksigner does not add those blobs.

@Helium314
Copy link
Owner

Helium314 commented Feb 11, 2024

Can you give me a ping when it's ready and available?

Sure, should be in the next few days.

F-Droid has no such checks in place

Ok, then that's why SCEE works (built and signed by me).

@Helium314
Copy link
Owner

Alpha release is done, with the new package name

@IzzySoft
Copy link
Author

Yay, thanks!

May I ask for a minor adjustment in your fastlane's full_description.txt? Inserting an empty line before the bullet-point list (i.e. before line 4) would make it render fine as standard Markdown, which looks much better than just replacing each newline by <br> 😉

I've done that here locally, so your app will show up here with the next sync around 7 pm UTC with that. I'm picking the "normal" one for my repo (so not the debug and not the nouserlib one), please let me know if that's as you'd want it. If I understood correctly, the difference with nouserlib is that it doesn't use … what lib? Uses the proprietary lib only when installed as system app? And READ_CONTACTS is used for spell checking I guess?

Just wondering: what happened to the gliding support OpenBoard came with, which did not need the proprietary lib? Admitted, it wasn't perfect, but it worked better than having none. It's what I'm currently using – and I don't want to install the proprietary library but would really like to have glide typing support (and I guess I'm not alone with that). Any chance that might come (back) with a future release?

@Helium314
Copy link
Owner

May I ask for a minor adjustment in your fastlane's full_description.txt?

done

If I understood correctly, the difference with nouserlib is that it doesn't use … what lib? Uses the proprietary lib only when installed as system app?

nouserlib does not allow the user to add a library because dynamic code is a security risk. I added more info to the readme.
So the user cannot add a glide typing library, and the app will not try to load it even if it exists (e.g. because user moved it to the right place using root). Except when the app is a system app, then it will make use of the system glide typing library that usually comes with GApps.

what happened to the gliding support OpenBoard came with, which did not need the proprietary lib?

Which version of OpenBoard has glide typing support? sHaveGestureLib has always been set to false.

Maybe you're referring to wordmage's version that uses code without any license information? See discussion at openboard-team/openboard#3 (comment).
I remember I had tried compiling wordmage's version with the new libray and the commits openboard-team/openboard@70e59e8 and openboard-team/openboard@edad7c1 reverted. The library then can be loaded like the closed source one (but does not work as well as you noted).

And READ_CONTACTS is used for spell checking I guess?

It's for adding contact names to suggestions and spell check.

@IzzySoft
Copy link
Author

fulldesc done

Thanks! Enabled here now.

nouserlib

Thanks for the explanation! So I at least got that right 🙈

Which version of OpenBoard has glide typing support?

Rudimentary one. Let me check which version is installed on my device… Err… Ahem… OK, my bad: I was evaluating it back then and waiting for that to be enabled – which never happened. So what I have here is AnySoftKeyboard, apologies! But maybe taking a look at that is worth a try, if you could adopt their glide typing and build on it? Not sure if it is the same you refer to (wordmage). Even if, if one doesn't want to root-trick in a proprietary lib, using an – even though limited – FOSS one would be better than nothing. Yeah, it works so-so (half the time not correctly or not at all), but the other half acceptable…

READ_CONTACTS

Thanks for confirming! That's what I assumed and already put:

image

I'll update that now to be easier to understand, using your terms … done, will go live with that then. I gladly add explanations for the other permissions if you want – just that one would have stood out in warning colors ("sensitive permission" – you see it's still in bold) had we not added something, which is why I mentioned it explicitly. Currently there (after this update now):

image

@Helium314
Copy link
Owner

But maybe taking a look at that is worth a try, if you could adopt their glide typing and build on it?

So far I didn't even bother trying anything with the native libraries. It's another huge bunch of code I'd need to get familiar with, and I besides some short course a long time ago I don't have any C++ experience.

I gladly add explanations for the other permissions if you want

Looks good already. The one sensitive permission is completely optional anyway; the app will not ask unless you enable contacts lookup.

@Helium314
Copy link
Owner

Anyway, I think this is solved now.

@IzzySoft
Copy link
Author

Yupp, thanks! Still hoping for a proper FOSS glide typing solution. But we FOSS enthusiasts are used to the fact that this will take time. Still better than those MS fanboys hoping to get their issues addressed (which won't ever happen unless… profit gains are included).

Wish you all the best for HeliBoard then – and good to have Heli on Board at IoD 🤩

@Helium314
Copy link
Owner

For proper FOSS glide typing I hope it will eventually arrive at Florisboard. It's already quite good as far as I remember, but not finished enough.

@IzzySoft
Copy link
Author

Yes, Florisboard has it, and Patrick is quite busy at it. Works quite well for English – but becomes a real mess if you try gliding in any other language unfortunately (I use the stable version on another device). I might need to check with Patrick how stable the "nightlies" are meanwhile, and when to expect another stable (the current stable release is almost as long ago as the last release of OpenBoard 🙈) I really like the integrated clipboard manager there, works way better than the one in ASK.

And as that gliding lib is FOSS, you might even be able to adopt that library for HeliBoard then 😃

@IzzySoft
Copy link
Author

Abusing this one (as it's metadata related and you have no "simple issue template" left):

! metadata/helium314.keyboard/en-US/changelogs/1001.txt has 1162 chars

Fastlane changelogs are limited to 500 chars each and are cut-off at exact that position if longer – even if that's mid-word. Could you please make sure to stay within those limits, @Helium314? Thanks in advance!

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

2 participants