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 Map
nada produz nada útil.
O que está controlando e para que é usado?
stock-android
permissions
not2qubit
fonte
fonte
READ_GSERVICES
, o que faz sentido, já que aplicativos normais não podem solicitar acessoWRITE_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.Respostas:
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) é:
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:
READ_GSERVICES
)Lendo nas entrelinhas: sempre que um aplicativo deseja usar (partes do) Google Framework Framework , deve declarar a
READ_GSERVICES
permissão necessária - o que é bastante semelhante ao exigidoGET_ACCOUNTS
se você quiserUSE_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 pelosystem
nível de proteção (ou seja, é concedida apenas aos "aplicativos do sistema" - ou seja, aqueles integrados à ROM, que é sendo instalado na/system
partição):READ_GSERVICES
se pretende descobrir quais serviços do Google estão disponíveis,WRITE_GSERVICES
deve 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
ACCOUNTS
grupo ?Veja também:
READ_GSERVICES
permissão da API do Google Maps v2 e WRITE_EXTERNAL_STORAGE descreve a permissão como "Permite que a API acesse os serviços baseados na Web do Google " (citando uma mensagem da[email protected]
lista de discussão)ACCOUNTS
grupo, pois inclui, por exemplo, autenticação de conta do Google ;)fonte
ACCOUNTS
grupo: 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).