-
Notifications
You must be signed in to change notification settings - Fork 2
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
Submit the app to F-Droid #6
Comments
Yes, I was planning to last month then I couldn't do anything after my pc brokedown, which also halted all development, I only resumed working on this recently, I am planning to release a new version next week (hopefully) or by next month which should give a lot of Qol improvement upon the current version. I will get to submitting on F-Droid soon after that, thank you. |
Just adding it to the IzzyOnDroid repo now. There's one problem, though: the last version does not build. When trying to build from the last release tag, build fails stating
Unfortunately, no details of what exactly fails or why. Do you have any idea? |
Btw, while being here, could you please clarify what the following permissions are needed/used for (scanner here reports "sensitive permissions" we use to make transparent)?
Further also:
The latter can easily be avoided with a minor addition to your 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. More details can be found e.g. here: Ramping up security: additional APK checks are in place with the IzzyOnDroid repo. Thanks in advance! |
Thanks for reporting this. The version you're trying to build is really old, and I've since made significant changes to the codebase. Without more detailed error logs, it's difficult to diagnose the specific build issue you're encountering. I'd recommend waiting for the upcoming release I'm currently working on, which has substantial architectural changes. If you need a working version right now, you could try building from the main branch instead of the release tag, though please note it may contain in-progress changes, you would also need the corresponding latest working windows build as well, both have gone through a lot of changes, I will try to release a test build later as soon as I can.
The location permissions are mainly for discovery, the current implementation checks connected wifi network ssid with the saved ones to see if the app should try to connect to the PC or not. As for Query all packages, I need it to correctly get all the package names for syncing the notifications, or it might cause a few problems, such as app names being blank. Write storage permissions are for remote storage functionality, which allows accessing the android storage directly from the PC. Accessibility service, is for getting the clipboard data, before it was used for remote control the android device, I later removed that feature since it was pretty inefficient.
Thanks for the tip about the dependency metadata configuration! I'll add this to the build.gradle. I appreciate your efforts thank you. |
According to the tag, just 4 months (Sep 29, 2024) – but well, time flies 😉
Unfortunately, the build doesn't give me such. Maybe it puts some at build-time; but our builders run in ephemeral containers, so I cannot access them at the end of the build as everything is gone by then.
OK, no prob. I see that will also come under a different packageName then. Any ETA already?
Nah, that won't do: we ship the APKs built and signed by their authors. But we verify the builds, see e.g. Reproducible Builds, special client support and more at IzzyOnDroid. For that we need to build from the same commit the "official" APK was built from.
Why do you want to discover me? Or which location does the app want to discover? The app description does not mention location features. I mean, I do have an idea what it might be – but I don't want to place "guesses" in the user-facing documentation 😉
Makes sense, thanks!
Err, I must have been blind. That's right in the app description, apologies!
Great, thanks! I just see I have missed one item: |
I meant that because the code is outdated and the whole architecture is different from that, but yes it isn't really that old in the typical sense.
Got it! That definitely makes it tough to debug. I'll prioritize finalizing the upcoming release so you can work with the latest version, and I'll ensure build stability is tested thoroughly before publishing.
Ummm, I hope for next week's end, though that can change I had said that many times before and I keep delaying it TT.
Ok, that makes sense, thanks for the detailed info.
Ok so to make it clear, I will explain it again. The location permissions aren’t used to "discover" a user in the typical sense. Instead, they’re used to identify the currently connected Wi-Fi network SSID (According to Google, I should need these permissions for retrieving the SSID of the wifi network). This allows the app to determine whether it should attempt to connect to the paired PC automatically.
The usesCleartextTraffic flag is included to enable communication with devices on the same local network that may not support HTTPS. This was used for that release because it wasn't using a secure connection nor did I use Https (it was a plain WebSocket connection) back then, I probably added it when testing out different stuff and forgot to remove it, sorry. |
Got that meanwhile, thanks!
Speaking of which: when getting close to release, and you want to check if RB is achieved, you can give me an "early bird" to test against. All I'd need is a commit, and an APK built from a clean tree at that commit (i.e. no local changes or artifacts from previous build present).
That would be FOSDEM time (I'm in Brussels then). But good to hear a goal has been set! So we could test the week following Feb 2nd. Just give me a ping when a (pre-) release is ready for testing!
Thanks! So my guess was right there (some Bluetooth and WiFi stuff requires location permission, as such things could be used to locate a device – looks logical on first glance, but I still find it the wrong approach; by that reasoning, you'd need COARSE_LOCATION whenever you request INTERNET, as the IP could be used with e.g. the MaxMind libraries to get the town you're in 🤷♂ So in fact, this makes things worse: to get the SSID, you have to request another permission which gives you even broader access. Privacy wise pretty much "meh"). OK, so I've updated those details: Sefirah will be established as a new app then anyway (as the Thanks for your help! Looking forward to your next ping then 😃 |
Sure, Thank you.
Not really. Requesting INTERNET access isn’t equivalent to accessing WiFi or Bluetooth scans. This is because INTERNET permission simply allows network access without exposing nearby WiFi access points or Bluetooth devices. However, retrieving the WiFi SSID or similar information does require location permissions now, as accessing these details can indirectly reveal precise location data. According to the documentation, we're expected to use ConnectivityManager's getNetworkCapabilities() method to get the Wifi info. Unfortunately, the documentation states
This means there’s no way around the requirement for location permissions when attempting to access certain WiFi-related information. Additionally, IP geolocation is much less precise and does not require active hardware scans, so comparing these two is not entirely accurate. That said, this permission is not strictly required for the app’s core functionality. You can disable it if you prefer. However, if you don’t grant the permission, auto device discovery (not to be confused with general device discovery) will not work. This means that after the initial pairing, reconnections would need to be done manually. If auto device discovery is needed, we would have to keep the UDP listener active all the time, which could be less efficient. By only activating the listener when a saved network is connected, we reduce unnecessary resource usage, making this approach more efficient. Ultimately, this feature is completely optional. And also you can remove the usesClearTextTraffic tag since that is not being used anymore. You can check the manifest I have also mentioned another permissions, which might also flag your system
but this permission, can't be enabled anyway whatsoever without adb, so might as well point that out here. |
Wow. Thanks for all those details! Let me start at the bottom: I'm really thankful for those details! I had no time yet to go over the new permissions in Android-15, so I was not aware. I've added them immediately to our scanner, and also included them with the permission descriptions here. It's funny that it's not (yet?) mentioned either on AndroidDeveloper's ManifestPermission page, nor in the source tree ( Seemingly, despite officially being bound to OK, back to top-down:
Well, not the best comparison maybe. But INTERNET at least allows for a (very?) coarse location. And meh, I didn't want to start a flame war on this, it's just that those things are not always easy to follow. "Average folks" seeing the location permissions requested hardly understand without being explained explicitly, that connection (oops) is not exactly intuitive…
Ah, good to know. Maybe that could (should?) be pointed out somewhere in the description? Speaking of which: would you welcome a PR with Fastlane structures (not the binaries, just the metadata files: descriptions, screenshots and such), as currently set up at IzzyOnDroid for the app? You could then e.g. use the IzzyOnDroid Fastlane Documentation to build on that. Our updater would fetch any changes with new releases then, so description & graphics would stay up-to-date here automatically – and you could define how they should look like. PR takes me no more than 5 min, so no big deal.
👍
Our scanner will report when it's removed (and our repo browser won't show it anymore then even if we did not remove it from the "green list", as it only shows what's really there). So again, thanks a lot!!! 🤗 |
Exactly, I got this issue when I upgraded to android 15 and was trying to find a way around it so adding this permission and giving the permission through the adb worked really well. But I'm still salty about how Google just wanted to do this and not give users a way around this directly.
I just wanted to clarify more about the permission, since it indeed is a sensitive permission for some.
Yes, I should add that to avoid confusion.
Absolutely, I’d be happy to receive a PR.
aa I see, I understand. Thank you again. |
As unfortunately it is quite often. And I bet their own apps ("GApps") are set up with exceptions?
Done with #8 then (details there) 😃 And you're welcome! 🤗 |
I'm not sure but they should ig, and plus some OEM apps would also have exceptions yes.
thanks |
So as usual: full rights for me, but no such for thee…
Gladly! Thanks for merging! Will now enable that here at IzzyOnDroid, so that… err, packageName will change… well, so that we are prepared then 😆 |
The text was updated successfully, but these errors were encountered: