Comment by fauigerzigerk

3 months ago

>...or to suddenly require network access...

That's the most baffling thing to me. There is simply no option to remove network permissions from any app on my Pixel phone.

It's one of the reasons why I avoid using mobile apps whenever I can.

It's weird because GrapheneOS does have this. Networking is a permission on Android, but stock Android doesn't give you the setting.

  • I believe that permission is currently "leaky". The app can't access the network but it can use Google Play services to display ads.

    I believe that would theoretically allow exfiltration of data but I don't understand all of the details behind this behavior and how far it goes.

Google wants 0 friction for apps to display ads.

  • What incentive is there for OEMs to not add this option though? Does Google refuse to veriy their firmware if they offer this feature?

    • The network permission was displayed in the first versions of Android, then removed. I heard (hearsay alert) at the time that it was because so many apps needed it, and they wanted to get rid of always-yes questions. IIRC this happened before the rise of in-app advertising.

      If people always answer yes, they grow tired and eventually don't notice the question. I've seen it happen with "do you want to overwrite the previous version of the document you're editing, which you saved two minutes ago?" At that point your question is just poisoning the well. Makes sense, but still, hearsay alert.

      7 replies →

    • > Does Google refuse to veriy their firmware if they offer this feature?

      If a manufacturer doesn't follow the Android CDD (https://source.android.com/docs/compatibility/cdd), Google will not allow them to bundle Google's closed source apps (which include the Google Play store). It was originally a measure to prevent fragmentation. I don't know whether this particular detail (not exposing this particular permission) is part of the CDD.

      1 reply →

    • Well, apart from the OEM violating the Android Compatibility Definition Document (CDD), failing the Compatibility Test Suite (CTS) and thus not getting their device Play-certified (so not being able to preload all the Google services, there is an economical impact as well:

      As OEM you want Carriers to sell your device above everything else, because they are able to sell large volumes.

      Carriers make money using network traffic, Google is paying Revenue-Share for ads to Carriers (and OEMs of certain size). Carriers measure this as part of the average revenue per user (ARPU).

      --> The device would be designed to create less ARPU for the Carrier and Google and thus be less attractive for the entire ecosystem.

It is solvable from user space.

E.g. TrackerControl https://github.com/TrackerControl/tracker-control-android can do it, it is a local vpn which sees which application is making a request and blocks it.

You can write your own version of it if you don't trust them.

  • I've been using a similar VPN solution. It works great for apps that absolutely should not be connected, like my keyboard. But it has an obvious downside: you can't use a VPN on your phone while you're using that.

Some apps would use this for loopback addresses, which as far as I know will then need network permission. The problem here is the permission system itself because ironically Google Play is full of malicious software.

And neither Android nor iOS a safer than modern Desktop systems. On the contrary because leaking data is its own security issue.