soupslurpr However, GrapheneOS reroutes apps using the Google Play Location Services to the OS.
So even if it's on, it won't have any privacy impact since it won't actually use those services (as long as rerouting is on in GrapheneOS Settings, which is the default).
Thanks this is quite helpful. When you say OS ones, you are referring to the new Network Location feature or the GPS or both? Which one is sent the request first or are they both sent the request at the same time?
soupslurpr There's more detail about this in the usage guide in the following section https://grapheneos.org/usage#sandboxed-google-play if you want to know more.
I have read this page 4 or 5 times and it is the hardest part of GrapheneOS to understand. I think the description on this page are high level and hard to conceptualize. Maybe this is off topic for location but you are a developer so I would like to ask.
The alternative implementation, microg, is more hackey and plays a cat and mouse game with google, but it is open source and easy to understand by looking directly at the code.
I understand that GrapheneOS sandboxes Google play services, I see this mentioned over and over but how does restricting Google Play services to a regular user sandbox protect the privacy of the user?
For example, microg state in the Google device registration:
"[This toggle] registers your device to Google services and creates a unique identifier. microG strips identifying bits other than your Google account name from registration. How does GrapheneOS's implementation handle this?
on the webpage microg Google Network Connection webpage:
https://github.com/microg/GmsCore/wiki/Google-Network-Connections
"For all of them, we strip device identifier (MAC addresses, IMEI, etc) from requests where they normally would be (and if required use random but valid identifiers instead)."
Okay so this is pretty clear. Now, how does Grapheneos handle these identifiers when Sandboxed Google Play Services is installed? Here it states: (https://grapheneos.org/faq#hardware-identifiers):
"As of Android 10, apps cannot obtain permission to access non-resettable hardware identifiers such as the serial number, MAC addresses, IMEIs/MEIDs, SIM card serial numbers and subscriber IDs." so now Google Play is a regular user app so it does not have access to these identifiers.
What does GrapheneOS send to the Sandboxed version of Google Play Services when the google server is expecting to get these ids? Is it sending randomized identifiers, a string of zeros, nothing at all, something else?
Thank you for your work on GrapheneOS, awesome project to be a contributor to.