this post was submitted on 31 Aug 2026
479 points (99.2% liked)

Just Post

1615 readers
376 users here now

Just post something 💛

Lemmy's general purpose discussion community with no specific topic.

Sitewide lemmy.world rules apply here.

Additionally, this is a no AI content community. We are here for human interaction, not AI slop! Posts or comments flagged as AI generated will be removed.

founded 2 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] Aeri@lemmy.world 22 points 1 day 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.