I've been building something that does on-device OCR and keeps the text locally. Early on I kept the INTERNET permission "just in case" and told myself I'd remove it later. That was the wrong order. Every time I added a library I had to go re-read what it dragged in.
So I flipped it: no INTERNET permission at all, and I treat that as the constraint I build against. It forces you to check every dependency. Play Billing 9.1.0 for example, I was sure it needed INTERNET, but I opened its AAR manifest and it only declares com.android.vending.BILLING. So in-app purchase works with no INTERNET line.
Two things I didn't expect. One, license checks have to be offline, which means signing a payload with a private key and verifying with a public key baked into the APK, no server call. Two, the permission list becomes a thing you can actually point at. A user can open the app info and see there's no network permission. You can't fake that.
What I'm still unsure about: is there a class of library that quietly needs INTERNET that I haven't hit yet? Curious if anyone has shipped fully offline and what broke.
submitted by /u/Hornet-Mountain[link] [comments]