Por que tantos aplicativos requerem permissão para ler o estado do telefone e a identidade? -- permissions campo com privacy camp android Relacionado O problema

Why do so many applications require permission to read the phone state and identity?


90
vote

problema

português

Por que tantos aplicativos exigem permissão para ler o estado do telefone e a identidade?. Especificamente:

  Phone calls    read phone state and identity    

Por exemplo, a Quickpedia é um portal da Wikipedia, mas quer acesso ao telefone. Qual é a explicação para isso?

Digite a descrição da imagem aqui

Inglês Original

Why do so many applications require permission to read the phone state and identity?. Specifically:

Phone calls    read phone state and identity 

For example Quickpedia is a Wikipedia portal, but wants access to the phone. What is the explanation for this?

enter image description here

     
   
   

Lista de respostas

18
 
vote
Esta pergunta vem me incomodando há algum tempo. Então agora, finalmente, decidi chegar ao fundo da questão.

O PlayStore tem um aplicativo chamado permission.read_phone_state < / a>, que solicita READ_PHONE_STATE como a única permissão, e nada mais do que imprimir todos os dados que pode acessar ou sem usá-lo. Eu instalei isso no meu lg optimus 4x , sendo enraizado no estoque android 4.0.3 e revogou a permissão usando lbe. Resultados onde bem interessantes, como se os seguintes screenshots mostram:

screenshot 1  screenshot 2 screenshot 3
informações coletadas pelo aplicativo permissão. Read_phone_state (clique em Imagens para variantes maiores)

Como você pode facilmente ver, até mesmo algumas informações o dev Embora inacessível sem a permissão, foi livremente acessível: meu número de caixa de correio (observação: sim, é o correto; com o meu provedor que é o atalho ao discar do seu próprio dispositivo, então eu posso exibi-lo livremente;) no final da primeira captura de tela você vê:

  • CALL_STATE_IDLE . Portanto, nenhuma chamada telefônica recebida, saída ou em andamento. Nenhum aplicativo precisa dessa permissão para "fundo" em chamadas recebidas.

É possível ver se os dados móveis são ativos ( DATA_DISCONNECTED ; eu estava no Wi-Fi ao levar as capturas de tela, como você pode ver na barra de notificação), qual país você está, seu país provedor (incluindo alguns dados técnicos sobre ele), se você está tendo um cartão SIM, ou se você estiver em roaming.

as únicas coisas não Assim estão identificando dados: imei, simid, imsi e seu próprio número de telefone.

Conclusão: Esta permissão só é necessária para fins de identificação, nada mais.

por que tantos aplicativos precisam disso?

  • para os módulos do anúncio, provavelmente 1
  • porque o dev pensou ele precisa (como apontado por algumas respostas aqui) 2
  • porque o aplicativo em questão é projetado para (também) executado no Android 1.5 e abaixo (fácil de descobrir, como listado em google play ).

Probolividades em exactamente este pedido, IMHO


1 nota por Dan's post on bate-papo :

.

A política do Google Play agora proíbe que os aplicativos obtenham seu IMEI para identificá-lo para fins de publicidade. Todas as bibliotecas de anúncios foram atualizadas agora para usar o "ID de publicidade" fornecido pelo Google-Play-Serviços, portanto, qualquer que ainda use o IMEI para que esse propósito seja reportado ao Google.

Como é difícil para o usuário dizer o que o aplicativo está usando o IMEI para, você deve pedir ao desenvolvedor para explicar primeiro.


2 Outro desenvolvedor acabou de me apontar para uma diferença sutil: enquanto a permissão não é necessária para ler o status de chamada atual (como eu apontei), pode ser necessário para registrar um ouvinte para ser em alterações do status da chamada (consulte: detectando Chamadas telefônicas recebidas e enviadas ao Android ). Embora pareça haver meios de lidar com isso automaticamente quando o sistema chama onPause , isso pode nem sempre ser adequado: pense no seu despertador. Você pode não querer ter que automaticamente parou em uma chamada recebida - especialmente quando o seu perfil é definido para o volume de campainha "silenciado".


3 novamente um correção de Dan : você só Obtenha a permissão extra padrão se a versão "Target" do seu aplicativo for 1.5. Se você segmentar uma versão posterior, mas sua versão mínima é 1.5, você não obterá a permissão adicionada automaticamente.


Atualizações

    .
  1. Interessante que há um Open Issue (21504) Para dividir READ_PHONE_STATE no que é necessário para a) Detectar chamadas recebidas e relacionados (telefonia) e uma segunda permissão para os detalhes de identificação (IMEI, IMSI, etc). Aberto 11/2011, ainda não funcionou. Estrela se interessou :)
  2. e sim, há uma maneira de alcançar o mesmo (detectar chamadas recebidas) sem o READ_PHONE_STATE permissão, como e. apontou por Arno Welzel . Como uma chamada telefônica recebida acionava a campainha, que o evento poderia ser usado com onAudioFocusChange() , que não requer permissão especial: se acionado por isso, o aplicativo poderia verificar o estacionamento (novamente, sem qualquer permissão especial necessária) para ver se há uma chamada recebida.

 

This question has been bothering me quite some time. So now, finally, I decided to get to the bottom of the issue.

The Playstore has an app named permission.READ_PHONE_STATE, which requests READ_PHONE_STATE as the only permission, and does nothing else than printing out all data it can access with or without using it. I've installed that on my LG Optimus 4X, being rooted on stock Android 4.0.3, and revoked the permission using LBE. Results where pretty interesting, as the following screenshots show:

Screenshot 1 Screenshot 2 Screenshot 3
Information gathered by the app permission.READ_PHONE_STATE (click images for larger variants)

As you can easily see, even some information the dev though inaccessible without the permission, was freely accessible: my mailbox number (remark: Yes, it's the correct one; with my provider that's the shortcut when dialing from your own device, so I can freely display it ;) At the end of the first screenshot you see:

  • CALL_STATE_IDLE. So no phone call incoming, outgoing, or in progress. No app needs this permission to "background" itself on incoming calls.

It's even possible to see whether mobile data are active (DATA_DISCONNECTED; I was on WiFi when taking the screenshots, as you can see in the notification bar), which country you're in, your provider (including some technical data on him), whether you're having a SIM card, or if you're in roaming.

The only things not accessible hence are identifying data: IMEI, SIMID, IMSI, and your own phone number.

Conclusion: This permission is only needed for identification purposes, nothing else.

Why do so many apps need it then?

  • For the ad modules, most likely1
  • Because the dev thought he needs it (as pointed out by some answers here)2
  • Because the app in question is designed to (also) run on Android 1.5 and below (easy to find out, as that's listed on Google Play).

Likelihoods in exactly this order, IMHO.


1 Note by Dan's post on chat:

Google Play policy now forbids apps from getting your IMEI to identify you for advertising purposes. All the ad libraries have been updated now to use the Google-Play-Services-provided "advertising ID", so any that still use the IMEI for this purpose should be reported to Google.

As it's hard for the user to tell what the app is using the IMEI for, you should ask the developer to explain first.


2 Another developer just pointed me to a subtle difference: while the permission is not needed to read the current call status (as I've pointed out), it might be needed to register a listener in order to be notified on changes of the call status (see: Detecting incoming and outgoing phone calls on Android). While there seem to be means of handling this automatically when the system calls onPause, that might not always be suitable: think of your alarm clock. You might not want to have that automatically stopped on an incoming call xe2x80x93 especially not when your profile is set to ringer volume "muted".


3 Again a correction from Dan: You only get the default extra permission if your app's "target" version is 1.5. If you target a later version but your min version is 1.5, you don't get the permission added automatically.


Updates

  1. Interesting that there's an open issue (21504) to divide READ_PHONE_STATE in what's needed to a) detect incoming calls and related (telephony), and a second permission for the identification details (IMEI, IMSI, etc). Opened 11/2011, still not worked on. Star it if interested :)
  2. And yes, there's a way to achieve the same (detecting incoming calls) without the READ_PHONE_STATE permission, as e.g. pointed out by Arno Welzel. As an incoming phone call would trigger the ringer, that event could be used with onAudioFocusChange(), which does not require any special permission: if triggered by that, the app could check the CallState (again, without any special permission required) to see whether there's an incoming call.
 
 
       
       
59
 
vote

Permite que o aplicativo leia um ID exclusivo (um identificador de telefone chamado imei ) que está associado ao seu telefone.

Portanto, pode ajudar com proteção contra cópia ou a tentativa de rastrear o número de usuários.

 

It allows the App to read a unique ID (a phone identifier named IMEI) that's associated with your phone.

It can therefore help with copy-protection or the attempt to track the number of users.

 
 
 
 
40
 
vote

Há outro motivo para isso do que o ID exclusivo. Eu acho que a metade dos aplicativos não acessa esses valores. O problema é que para uma versão inferior até o Android 1.5 Esta permissão não existe. Todo mundo podia acessar esses valores sem solicitar algo.

Portanto, se você criar um aplicativo compatível com 1.5, esta permissão será automaticamente adicionada para emular a menor segurança do Android 1.5 por causa disso, você poderia ignorar essa permissão na maioria das vezes porque tende a ser apenas um problema de compatibilidade .

 

There is another reason for this than the unique ID. I would guess that half of the apps don't access those values at all. The problem is that for a lower version up to Android 1.5 this permission does not exist. Everybody could access these values without requesting something.

Therefore if you create an app that is compatible with 1.5 this permission will automatically be added to emulate the lower security of Android 1.5 because of that you could ignore this permission in most of the times because it tends to be just a compatibility issue.

 
 
   
   
19
 
vote

A razão é que o Android 1.5 e anteriormente não exige que o aplicativo solicitasse especificamente essas permissões e concedido automaticamente. Desde o Android 1.6, essas permissões precisam ser especificamente solicitadas pelo aplicativo. No entanto, se você especificar que seu aplicativo pode ser executado em dispositivos com o Android 1.5 e menos, essa permissão é adicionada ao aplicativo por padrão e o mercado mostra essa permissão como solicitada pelo aplicativo.

Então, em resumo, o aplicativo pode não estar realmente acessando seu "estado de telefone e identidade", mas se o desenvolvedor especificou que seu aplicativo puder ser executado em dispositivos com 1,5 ou menos, essa permissão será mostrada.

 

The reason is that Android 1.5 and earlier did not require the application to specifically request those permissions and automatically granted them. Since Android 1.6, those permissions have to be specifically requested by the app. However, if you specify that your application can run on devices with Android 1.5 and less, then that permission is added to the application by default and the market shows that permission as being requested by the application.

So in summary, the application may not actually be accessing your "phone state and identity" but if the developer specified that his/her application can run on devices with 1.5 or less then that permission will be shown.

 
 
     
     
10
 
vote

Muitos editores de anúncios usam essa permissão para obter o ID do telefone para todos os tipos de fins de rastreamento. Existem outras maneiras de obter um ID exclusivo, mas infelizmente eles são buggy em versões Android mais antigas (a história é mais complicada, veja, por exemplo, https://stackoverflow.com/questions/2785485/Is-Entre-a-unique-android-device-id ou http://android-developers.blogspot.com/2011/03/identify-app-installations.html < / a> para uma história mais completa).

Então, se o aplicativo usa anúncios, há uma chance justa que o próprio aplicativo não precise da permissão Read_phone_State, apenas o provedor de anúncios faz.

 

Many ad publishers use this permission to get the Phone ID for all sorts of tracking purposes. There are other ways to get a unique ID, but unfortunately they are buggy in older Android versions (the story is more complicated, see e.g. https://stackoverflow.com/questions/2785485/is-there-a-unique-android-device-id or http://android-developers.blogspot.com/2011/03/identifying-app-installations.html for a more complete story).

So if the app uses advertisements, there is a fair chance that the app itself does not actually need the READ_PHONE_STATE permission, only the ad provider does.

 
 

Perguntas relacionadas

90  É possível instalar um aplicativo e excluir algumas de suas permissões solicitadas?  ( Is it possible to install an app and exclude some of its requested permissions ) 
Ocasionalmente, quero instalar um aplicativo que requer certas permissões que sinto que realmente não deveria precisar. Posso instalar o aplicativo sem dar es...

59  Existem ferramentas para sandbox um aplicativo de malware ainda mais do que as permissões concedidas no Android?  ( Are there any tools to sandbox a malware application even more than the granted ) 
Suponha que eu queira executar algum programa que solicita muitas permissões. Por exemplo, registre do microfone ou leia o IMEI do meu telefone. No entanto, n...

3  Permissões desconhecidas na análise virológica  ( Unknown permissions on virustotal analysis ) 
Eu notei um comportamento incomum e indesejado de alguns dos meus aplicativos do sistema, mais notavelmente o Google Play Services, o Gerente de Conta do Goog...

2  Não é possível remover a permissão do telefone para app  ( Cant remove phone permission to app ) 
Estou tentando remover o phone permissão deste aplicativo ( Pango פגגו ) - Mas não funciona! Eu nego isso, e basta voltar: o que eu tentei: Dado...

26  Por que a nova atualização do Chrome quer que a permissão use minha câmera e gravação de áudio?  ( Why does the new chrome update want the permission to use my camera and audio re ) 
Sério, afirma especificamente que pode usar a gravação de câmera e áudio a qualquer momento que quiser ou não, eu desejo ou não . Por que o cromo no Android ...

0  Moved MP3 de armazenamento interno para SDCard com Privilégios SU - Aplicativos de música não os vêem agora  ( Moved mp3s from internal storage to sdcard with su privileges music apps don ) 
Para liberar espaço no armazenamento interno, abri um terminal e su removido alguns arquivos sem dinheiro. Enquanto ainda su raiz, também movi minha coleção d...

2  Posso instalar o aplicativo Android sem todas as permissões de aplicativos necessárias?  ( Can i install android app without all required app permissions ) 
Para muitos aplicativos no Google Play, como o Facebook, gostaria de instalá-los, mas não forneceria todo o acesso que eles precisam durante a instalação. Por...

2  Substituído / System / Bin / Toolbox. Como eu reverter isso?  ( Replaced system bin toolbox how to i revert that ) 
Eu renomeei a caixa original / sistema / bin / toolbox "para" toolbox_alt ". Eu substituí o arquivo / sistema / bin / caixa de ferramentas por um arquivo que ...

22  Por que alguns aplicativos sem recursos de internet exigem acesso à Internet?  ( Why do some apps with no internet features require internet access ) 
Um par de aplicativos que instalei ou considerado dizer que exigem acesso à Internet, mesmo que não tenham recursos óbvios da Internet. Um dos mais surpreende...

2  Então, se atrair outros aplicativos é uma coisa ruim, por que muitas pessoas querem ativar o processo?  ( So if draw over other apps is a bad thing why are so many people wanting to ena ) 
Estou tentando manter meu armazenamento porque os aplicativos que me movo para o meu cartão SD não ficará lá, então se ele tem qualquer rolamento no armazenam...

0  Nenhuma permissões permitiu que as permissões concedidas  ( No permissions allowed even though the permissions granted ) 
Eu tenho um aplicativo no meu dispositivo Android 7.1. Como você pode ver na imagem; O aplicativo não tem permissões concedidas, mesmo que eu tenha devolvido ...

2  Impedindo que os aplicativos detectem outros aplicativos  ( Preventing apps from detecting other apps ) 
Eu tenho um aplicativo que não permite que eu habilite determinadas configurações porque outro aplicativo está instalado. Toda vez que tento habilitar essas c...

0  Android - Limite de permissões do aplicativo * Antes * Instalando o aplicativo  ( Android limit app permissions before installing app ) 
Sempre que eu for para alterar permissões de aplicativos para o aplicativo no meu android, faço isso depois que já foi instalado. Existe alguma maneira que eu...

11  A entrada do Google Pinyin (IME) continua pedindo permissão de conta do Google  ( Google pinyin input ime keeps asking for google account permission ) 
Google Pinyin Entry é um método de entrada (IME) para chinês. continua me pedindo permissão de conta do Google. Eu nego o tempo todo, mas sempre volta e...

2  Novas permissões de acesso para o Google Maps V9.1.1  ( New access permissions for google maps v9 1 1 ) 
Recentemente recebi uma notificação para o mais recente atual atualização do Google Maps ABCDEFGHIJKLMNABCDEFGHIJKLMN0 . Com esta atualização, o aplicativo p...




© 2021 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.