¿Qué está haciendo el permiso de Android "WRITE_GSERVICES"?

8

Existe un Permiso de Android misterioso e indocumentado llamado: WRITE_GSERVICES . Como de costumbre, la propia documentación de Google es aún más misteriosa que cualquier mal cuento de hadas, escribiendo:

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

Sin embargo, buscar en Google (!) No Google Service Mapproduce nada útil.

¿Qué controla y para qué se utiliza?

not2qubit
fuente
@ Ryan: Si realmente te has molestado en mirar el enlace que dices que está duplicado, verás que ese no es el caso. ¿Y dónde ves que tiene que ver con los datos del mapa? Las fuentes parecen contar otra historia.
not2qubit
Bueno, simplemente no lo es y no te veo ni siquiera tratando de hacer una copia de seguridad de tu declaración con ningún código, prueba o enlaces relevantes, no el tuyo. Por favor, muéstrame el código que muestra que incluso está conectado de forma remota a Google Maps. Como dije, mi propia investigación muestra algo más.
not2qubit
1
Si bien esto (y esto ) es para READ_GSERVICES, lo cual tiene sentido, dado que las aplicaciones normales no pueden solicitar acceso WRITE_GSERVICES, el autor de la pregunta señala que Google Maps requiere el permiso READ_GSERVICES para funcionar correctamente. - También quiero agregar, de las 17 ediciones al duplicado que llamas 'mío', 14 de ellas fueron hechas por otros usuarios además de mí, contribuyendo a más de 5000 caracteres agregados.
Ryan Conrad
1
Consulte: android.izzysoft.de/applists/perms#WRITE_GSERVICES :) "Permite que una aplicación modifique el mapa de servicio de Google". Entonces @RyanConrad Es el mapa del servicio , no el "Servicio de Google Maps". Lo que exactamente significa esto es otra cosa, ya que yo sé que no existe documentación real.
Izzy
2
Voto para reabrir esta pregunta. Para el razonamiento, vea (y únase a la discusión sobre) Meta: ¿Realmente cerramos las preguntas sobre los significados de los permisos como duplicados de la "lista general"?
Izzy

Respuestas:

8

Tenga en cuenta que este permiso está casi completamente indocumentado, por lo tanto, necesitamos sentir nuestro camino hacia su significado real. Por lo tanto, esto no es en modo alguno una "respuesta autorizada", sino más o menos algo entre una "buena suposición" y una "deducción de otros indicadores".

La descripción oficial de este permiso (como se dijo, no hay más documentación) es:

Permite que una aplicación modifique el mapa del servicio de Google.

Así que ahora podemos adivinar lo que se supone que significa. Hagamos un poco de "ingeniería inversa" para que podamos sentirlo. Ryan ya dio algunos consejos en su comentario, vinculando a dos preguntas SO:

Lectura entre líneas: cada vez que una aplicación quiere usar (partes de) el Marco de servicios de Google , debe declarar el READ_GSERVICESpermiso requerido, que es bastante similar a lo que se requiere GET_ACCOUNTSsi lo desea USE_CREDENTIALS: la aplicación primero debe asegurarse de que el servicio requerido esté disponible en absoluto, antes de acceder a él.

Esto nos da una idea de lo que debe ser el Mapa de servicios de Google : algún tipo de índice para los Servicios de Google disponibles (instalados).

Ahora que descubrimos eso, podemos adivinar para qué WRITE_GSERVICESestá destinado el permiso y por qué está protegido por el systemnivel de protección (es decir, solo se otorga a las "aplicaciones del sistema", es decir, aquellas integradas en la ROM, que es instalado en la /systempartición): si READ_GSERVICESse pretende determinar qué servicios de Google están disponibles, WRITE_GSERVICESdebe ser su contraparte para actualizar ese mapa de servicios. Por ejemplo, cada vez que se instaló (o eliminó) un nuevo servicio, para actualizar el "índice de servicios de Google disponibles en el dispositivo": el "Mapa de servicios de Google".

Solo una cosa que me pregunto en este contexto es por qué este permiso pertenece al ACCOUNTSgrupo ...


Ver también:

Izzy
fuente
1
Otro punto por el cual este permiso podría estar en el ACCOUNTSgrupo: muchos servicios de Google requieren un inicio de sesión para poder utilizarse, por lo que puede haber alguna verificación cruzada (por ejemplo, transmitir el nombre de su cuenta para verificar si tiene un "usuario activo" para un determinado servicio, incluso sin iniciar sesión / transmitir una contraseña / token AUTH).
Izzy