An entire class of apps could be rendered safe by disallowing network access, especially the ones that do work offline, but are keen to phone home.
An entire class of apps could be rendered safe by disallowing network access, especially the ones that do work offline, but are keen to phone home.
I just don't think pushing the choice of permissions to the end user is a good idea, not by itself. UX teaches us that people are lazy and will go through the easiest path.
FreeBSD ipfw can firewall by userid, and Android runs each app under a different user (and would probably run apps in jails on FreeBSD, jail IDs are also available for firewalling)
Whenever a version of an app wants to provide a network service, Windows first asks if this specific app can provide network services on this class of network (public connection or private connection). So it is not just builtin, but for a particular class of restriction even easy to use. Blocking consumption of resources is an advanced feature though.
I used to use a program called "firestarter" on Linux, which provided a way to block specific apps. Long time since I've done that though, since most of the untrusted apps on Linux are Chrome and the ones you run in Firefox.
I don't think the user of an app should be left to its own devices to ensure its own privacy by outmanoeuvring developers, and giving them tools to do it it's just not good enough.
Edit: Disclaimer I have almost 0 knowledge of Android development.
The permission may still exist (it has been a long time since I last wrote an android app) but it is no longer user visible.
It is called "have full network access".
(Android DOES have a network permission, but at some point Google decided it should always be allowed)
Not at all surprising, if you consider Google's motives; they both want to appear like they care about privacy and give you an illusion of control, but at the same time they are ultimately an ad company who profits from the lack thereof. A lot of the decisions they make about their products make a lot of sense from this perspective.
- apps can use other ad networks than Google, and blocking network access would bring them more profit (higher app cost / more push for in-app spend)
- they can create separate categories for ad traffic and general network traffic
- having ads as a system element and limiting network access would allow them to cut off other ad networks to some extent, bringing more profit (although that's opening the doors to more talks about monopoly)
Rather, when requesting the permission from the OS, the developer has to supply a list of approved scopes and domains, and anything outside of that gets automatically blocked.
No involvement from the user.
1. Disallow bg internet access.
2. Disallow fg internet access over wifi.
3. Disallow fg internet access over mobile network.
I've been building an app that exposes privacy features like bouncing permissions when apps are in bg (remember AppOps?), firewalling apps by disallowing data usage, setting DNS over TLS to servers that blackhole ads and trackers, show log of network activity, kill bg processes and activities and so on. Hopefully, would be done in a month or so.
You could do all of the above, today, but mostly, manually, by navigating through nested menus and what-not.
Android 10 would make some parts of what I'm building obsolete, and that's a good thing.
The ones I've seen had a setting only for restricting background data usage.
You could see if NoRoot Firewall (requires VPN) or Glasswire (may or may not require VPN) help you disallow internet access per-app.
[0] https://old.reddit.com/r/oneplus/comments/79g0ue/til_oxygeno...
I also do this for data usage, e.g. Spotify and my podcatcher use Wi-fi while email etc use both data and WiFi.
Edit: in the same spirit I block all free apps that don't require network connectivity such as health/workout apps. I kill all ads, and keep my data within.
Edit2: android firewall is called "NoRoot Firewall"
I have permissions sliders for Camera, Contacts, Location, Microphone, Phone, and Storage. None at all for internet access or any specific network.
The permissions you list don't appear to be part of Android (8 or otherwise) and are likely after-market extensions in your phone's ROM.
And this is how I have learned that Google's Calc app apparently wants network access. No thanks!
It seems super simple to provide that basic level of control to the end user.
I also want shadow/fake address books and location information as a feature.