There is a mysterious and undocumented Android Permission called: WRITE_GSERVICES. As usual Googles own documentation is even more mysterious than any bad fairytale, writing:

android.permission.WRITE_GSERVICES      Allows an application to modify the Google service map.

However Googling (!) for Google Service Map yields nothing useful.

What is it controlling and what is it used for?

  • @Ryan: If you've actually bothered to look at the link you say are duplicated, you'd see that is not the case. And where do you see it has to do with the map data? Sources seem to tell another story. – not2qubit Feb 9 '15 at 19:53
  • Well it simply isn't and I don't see you even trying to back up your statement with any code, proof or relevant links, not your own. Please, show me the code that show it is even remotely connected to Google Maps. As I said, my own investigation show something else. – not2qubit Feb 9 '15 at 20:14
  • 1
    While this (And this) is for READ_GSERVICES, which makes sense, since normal applications cannot request access to WRITE_GSERVICES, the asker points out that Google Maps requires the READ_GSERVICES permission to work correctly. - Also want to add, of the 17 edits to the duplicate that you call 'mine', 14 of them were by other users than myself, contributing to over 5000 characters added. – Ryan Conrad Feb 9 '15 at 20:39
  • 1
    See: android.izzysoft.de/applists/perms#WRITE_GSERVICES :) "Allows an application to modify the Google service map." So @RyanConrad It's the service map, not "Google Maps Service". What exactly is meant by this is another thing, as to my knowledge no real documentation exists. – Izzy Feb 9 '15 at 23:53
  • 2
    I vote to re-open this question. For the reasoning, please see (and join the discussion on) Meta: Shall we really close questions on permission meanings as duplicates to the “general list”? – Izzy Feb 10 '15 at 0:04
up vote 8 down vote accepted

Note this permission is almost completely undocumented, hence we need to feel our way to its real meaning. So this is in no way an "authoritative answer" – but more or less something between a "good guess" and a "deduction from other pointers".

The official description for this permission (as said, there's no further documentation) is:

Allows an application to modify the Google service map.

So now we can guess what that's supposed to mean. Let's do some "reverse engineering" for that to feel our way into it. Ryan already gave some pointers in his comment, linking to two SO questions:

Reading between the lines: Whenever an app wants to use (parts of) the Google Services Framework, it must declare the READ_GSERVICES permission required – which is pretty much similar to requiring GET_ACCOUNTS if you want to USE_CREDENTIALS: the app first needs to ensure the required service is available at all, before accessing it.

This gives us an idea of what the Google Service Map must be: some kind of index for available (installed) Google Services.

Now that we discovered that, we can make a good guess what the WRITE_GSERVICES permission might be intended for – and why it is protected by the system protection level (meaning, it's only granted to "system apps" – i.e. those integrated into the ROM, which is being installed on the /system partition): If READ_GSERVICES is intended to figure out which Google services are available, WRITE_GSERVICES must be its counter-part to update that service map. Which is e.g., whenever a new service was installed (or removed), to update the "index of Google Services available on the device" – the "Google Service Map".

Just one thing I wonder in this context is, why this permission belongs to the ACCOUNTS group


See also:

  • 1
    Another point why this permission might be in the ACCOUNTS group: many Google services require a login to be usable, so there might be some cross-checking (e.g. transmitting your account name to check if you've got an "active user" for a given service, even without logging you in/transmitting a password/AUTH-token). – Izzy Feb 10 '15 at 17:25

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.