O que a permissão "WRITE_GSERVICES" do Android está fazendo?


8

Existe uma permissão Android misteriosa e não documentada chamada: WRITE_GSERVICES . Como de costume, a própria documentação do Googles é ainda mais misteriosa do que qualquer conto de fadas, escrevendo:

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

No entanto, pesquisar no Google (!) Por Google Service Mapnada produz nada útil.

O que está controlando e para que é usado?


@ Ryan: Se você realmente se preocupou em olhar para o link que você diz estar duplicado, verá que esse não é o caso. E onde você vê que isso tem a ver com os dados do mapa? Fontes parecem contar outra história.
— Not2qubit

Bem, simplesmente não é e não vejo você tentando fazer backup de sua declaração com qualquer código, prova ou links relevantes, não os seus. Por favor, mostre-me o código que mostra que ele está conectado remotamente ao Google Maps. Como eu disse, minha própria investigação mostra outra coisa.
— Not2qubit

11
Enquanto isso (e isso ) é válido READ_GSERVICES, o que faz sentido, já que aplicativos normais não podem solicitar acesso WRITE_GSERVICES, o solicitante indica que o Google Maps requer a permissão READ_GSERVICES para funcionar corretamente. - Também quero adicionar, das 17 edições na duplicata que você chama de 'minha', 14 delas eram de outros usuários além de mim, contribuindo para mais de 5000 caracteres adicionados.
— Ryan Conrad

11
Consulte: android.izzysoft.de/applists/perms#WRITE_GSERVICES :) "Permite que o aplicativo modifique o mapa de serviço do Google." Então, @RyanConrad É o mapa de serviço , não o "Google Maps Service". O que exatamente se entende por isso é outra coisa, quanto ao meu conhecimento não existe documentação real.
— Izzy

2
Eu voto para reabrir esta questão. Para o raciocínio, consulte (e participe da discussão) Meta: Vamos realmente fechar as perguntas sobre os significados da permissão como duplicatas da "lista geral"?
— Izzy

Respostas:


8

Observe que essa permissão é quase completamente indocumentada, portanto, precisamos sentir o caminho para seu verdadeiro significado. Portanto, isso não é de modo algum uma "resposta autorizada" - mas mais ou menos algo entre um "bom palpite" e uma "dedução de outros indicadores".

A descrição oficial dessa permissão (como foi dito, não há documentação adicional) é:

Permite que um aplicativo modifique o mapa de serviço do Google.

Então agora podemos adivinhar o que isso significa. Vamos fazer uma "engenharia reversa" para que isso aconteça. Ryan já deu algumas dicas em seu comentário, com links para duas perguntas do SO:

Lendo nas entrelinhas: sempre que um aplicativo deseja usar (partes do) Google Framework Framework , deve declarar a READ_GSERVICESpermissão necessária - o que é bastante semelhante ao exigido GET_ACCOUNTSse você quiser USE_CREDENTIALS: o aplicativo precisa primeiro garantir que o serviço necessário esteja disponível antes de acessá-lo.

Isso nos dá uma idéia do que deve ser o Mapa de Serviços do Google : algum tipo de índice para os Serviços do Google disponíveis (instalados).

Agora que descobrimos isso, podemos adivinhar qual WRITE_GSERVICESé o objetivo da permissão - e por que ela é protegida pelo systemnível de proteção (ou seja, é concedida apenas aos "aplicativos do sistema" - ou seja, aqueles integrados à ROM, que é sendo instalado na /systempartição): READ_GSERVICESse pretende descobrir quais serviços do Google estão disponíveis, WRITE_GSERVICESdeve ser sua contrapartida para atualizar esse mapa de serviço. Por exemplo, sempre que um novo serviço foi instalado (ou removido), para atualizar o "índice de serviços do Google disponível no dispositivo" - o "Mapa de serviços do Google".

Só uma coisa que me pergunto nesse contexto é: por que essa permissão pertence ao ACCOUNTSgrupo ?


Veja também:


11
Outro ponto por que essa permissão pode estar no ACCOUNTSgrupo: muitos serviços do Google exigem que um login seja utilizável, portanto pode haver alguma verificação cruzada (por exemplo, transmitir o nome da sua conta para verificar se você tem um "usuário ativo" para um determinado serviço, mesmo sem fazer login / transmitir uma senha / token AUTH).
— Izzy
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.