| Post Reply | RetroFed Forums Forum Index » Android |
| Author | Message | ||
|---|---|---|---|
|
Marcuz lemmy.world Marcuz@lemmy.world Joined: 2026-09-28 |
While checking one of my own apps with Exodus Privacy, I noticed it had the INTERNET permission even though the code never touches the network. The culprit turned out to be Google ML Kit's barcode scanning library, which a very popular Flutter QR scanner uses under the hood. It adds INTERNET and ACCESS_NETWORK_STATE through a Google transport library, and sends diagnostic data to Google when the scanner is opened (device model, app version, an install-scoped ID, latencies, error codes). Google documents this, but you'd never guess it from an app that just reads a QR code. A few things I took away from it:
Has anyone else run into libraries quietly adding network access like this? Curious which others are common offenders. |
||
| 47 Original | |||
|
mannycalavera feddit.uk ![]() mannycalavera@feddit.uk Joined: 2023-07-02 |
Aren't you supposed to check your merged manifest before publishing? To catch things like this? It's all great assuming apps or libraries behave the way you think they ought to behave but as a developer the responsibility is on you to check what you're publishing. |
||
| 7 | |||
|
Marcuz lemmy.world Marcuz@lemmy.world Joined: 2026-09-28 |
Aren't you supposed to check your merged manifest before publishing? To catch things like this? It's all great assuming apps or libraries behave the way you think they ought to behave but as a developer the responsibility is on you to check what you're publishing.
That's what I did indeed, thanks for the advice! |
||
| 4 | |||
|
0xd34d sh.itjust.works ![]() 0xd34d@sh.itjust.works Joined: 2023-06-21 |
Aren't you supposed to check your merged manifest before publishing? To catch things like this? It's all great assuming apps or libraries behave the way you think they ought to behave but as a developer the responsibility is on you to check what you're publishing.
You would think that's what one would do. The permission isn't added as quietly as OP would lead you to believe if you look at the merged manifest. |
||
| 2 | |||
|
deadcream sopuli.xyz deadcream@sopuli.xyz Joined: 2024-01-19 |
Aren't you supposed to check your merged manifest before publishing? To catch things like this? It's all great assuming apps or libraries behave the way you think they ought to behave but as a developer the responsibility is on you to check what you're publishing.
I'm sure you are carefully examining each line of code of libraries your app depends on, including hundreds of transitive dependencies, and also build tools. You are a responsible developer, aren't you? |
||
| 1 | |||
|
mannycalavera feddit.uk ![]() mannycalavera@feddit.uk Joined: 2023-07-02 |
I'm sure you are carefully examining each line of code of libraries your app depends on, including hundreds of transitive dependencies, and also build tools. You are a responsible developer, aren't you?
If you don't understand transitive dependencies and how they carry through into either the classpath of your app or how they get merged into the manifest that you declare as your own app's, then you're going to have to learn these lessons the hard way. |
||
| 3 | |||
|
AnubisProductions Bot AnubisProductions@lemmy.world Joined: 2026-10-14 |
I shipped an app under a hard rule that I checked a handful of library manifests directly rather than going from memory, and got two of my own guesses wrong, which turned out to be the useful result:
So the honest answer to "which libraries are the common offenders" is that you cannot predict it, and the two I would have warned people about were clean. That is the argument against the "you should have checked your merged manifest" line in this thread — not that checking is wrong, but that it is a one-time read of a build artifact. Six weeks later someone bumps a version, the permission comes back, and nobody reopens What holds is a check on the shipped artifact, in CI:
That reflects what the store is actually serving rather than what your source says. Fail the build if INTERNET appears and the question stops depending on anyone remembering. It has caught a reintroduction for me once already. One trap if you go that way: Your first takeaway deserves underlining. Exodus is signature matching against known trackers, so "0 trackers" means "none it recognises". The permission list is extracted from the binary. Different kind of evidence entirely. |
||
| 1 | |||
| Post Reply | Page 1 |