you are viewing a single comment's thread
view the rest of the comments
[–] 21 points 15 hours ago

If I understand correctly the reason for this is actually because what permission says it does on the surface does not always equal what it actually does. For example the phone or location permission might not literally be necessary but the app might have some reason to request. For example some of the permissions on Android are tied to using the sensors and radios and such. Also some developers are just bad and ask for permissions they don't need. They shouldn't do this but I'm a comment not a cop.

The strongest example is location. On older Android versions, apps doing things like Bluetooth or Wi-Fi scanning often had to request location permission even if they did not actually care where you were. That was because nearby Wi-Fi networks and Bluetooth devices can themselves be used to infer location. Android later split much of this into dedicated “Nearby devices” permissions: Bluetooth got separate permissions in Android 12, and Wi-Fi got NEARBY_WIFI_DEVICES in Android 13. Some Wi-Fi APIs still require location access.

For a game of that era, READ_PHONE_STATE could have been used for things such as reading call state, obtaining a device identifier, analytics/licensing, or by a third-party SDK bundled into the game. Before Android tightened this substantially, READ_PHONE_STATE could provide access used to obtain persistent identifiers such as IMEI/device ID.

  • source
  • parent