Почему так много приложений требуют разрешения на чтение состояния телефона и идентичности? -- permissions поле с участием privacy пол android Связанный проблема

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


90
vote

проблема

русский

Почему так много приложений требуют разрешения на чтение состояния телефона и идентичности?. В частности:

 <код> Phone calls    read phone state and identity   

Например, Quickedia - это портал Wikipedia, но хочет получить доступ к телефону. Каково объяснение этого?

Введите описание изображения здесь

Английский оригинал

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

     
   
   

Список ответов

59
 
vote

Это позволяет приложению читать уникальный идентификатор (идентификатор телефона с именем imei ), который связан с вашим телефоном.

Поэтому он может помочь с защитой от копирования или попытки отслеживать количество пользователей.
 

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

Есть еще одна причина для этого, чем уникальный идентификатор. Я думаю, что половина приложений вообще не доступа к этим ценностям. Проблема в том, что для более низкой версии до Android 1.5 это разрешение не существует. Все могут получить доступ к этим ценностям, не запрашивая что-то.

Поэтому, если вы создаете приложение, совместимое с 1.5, это разрешение будет автоматически добавлено для эмуляции более низкой безопасности Android 1.5 из-за того, что вы могли бы проигнорировать это разрешение в большую часть времени, потому что он имеет тенденцию быть просто проблемой совместимости ,
 

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.

 
 
   
   
18
 
vote

Этот вопрос беспокоил меня довольно некоторое время. Так что теперь, наконец, я решил добраться до дна вопроса.

PlayStore имеет приложение с именем разрешение. read_phone_state < / a>, который запрашивает <код> READ_PHONE_STATE как единственное разрешение, и ничего не делает ничего, как распечатывать все данные, которые он может получить доступ или без него. Я установил это на моем LG Optimus 4x , укоренившись на сток Android 4.0.3 и отозвал разрешение с помощью LBE. Результаты, где довольно интересные, как следующие скриншоты:

Скриншот 1  Скриншот 2 Скриншот 3
Информация, собранная приложением разрешение. Read_phone_state (щелкните изображения для больших вариантов)

Как вы можете легко увидеть, даже некоторая информация о разработке, хотя и недоступна без разрешения, была свободно доступна: мой номер почтового ящика (замечание: Да, это правильный; с моим провайдером, который является ярлыком при наборе с собственного устройства, так что я могу свободно отображать его;) В конце первого скриншота вы видите:

    .
  • <код> CALL_STATE_IDLE . Таким образом, нет телефонного звонка входящие, исходящие или в процессе. Никакое приложение не требует этого разрешения на «Фон» на входящих вызове.

Даже возможно видеть, активны ли мобильные данные (<код> DATA_DISCONNECTED ; я был на WiFi при прохождении скриншотов, как вы можете увидеть в баре уведомлений), в какой стране вы находитесь, ваш провайдер (включая некоторые технические данные на него), имеете ли у вас SIM-карту, или если вы в роуминге.

Единственные вещи не , следовательно, идентифицируют данные: imei, simid, imsi и ваш собственный номер телефона.

Вывод: Это разрешение нужно только для идентификационных целей, ничего больше.

Почему так много приложений нуждается в этом тогда?

    .
  • для рекламных модулей, скорее всего, 1
  • потому что dev думал, что он нуждается в этом (как указано здесь некоторыми ответами) 2
  • , потому что приложение, посвященное приложению, предназначена для (также) на Android 1.5 и ниже (легко выяснить, как это перечислено на Google Play ).

вероятности в этом порядке, ИМХО.


1 Примечание by Пост Дэна в чате :

Политика Google Play теперь запрещает приложениям получить IMEI, чтобы идентифицировать вас для рекламных целей. Все библиотеки AD были обновлены сейчас, чтобы использовать Google Play-Services, предоставленные «Рекламному идентификатору», поэтому любой, который все еще использует IMEI для этой цели, следует сообщать в Google.

Как у вас сложно сказать, что приложение использует IMEI для, вы должны попросить разработчику объяснить сначала.


2 Другой разработчик только что указал мне на тонкое значение: в то время как разрешение не нужно для read текущего состояния вызовов (как я указал), это Может быть, необходимо будет зарегистрировать слушатель , чтобы быть уведомленным на изменениях из состояния вызова (см.: обнаружение Входящие и исходящие телефонные звонки на Android ). Хотя кажется, что это автоматически обрабатывает это, когда система звонит <код> onPause , что может не всегда подходить: подумать о вашем будильнике. Возможно, вы не захотите, что автоматически остановился на входящем вызове », особенно если ваш профиль установлен на громкость звонка« Приглушенный ».


3 опять a a коррекция от dan : только Получите дополнительное разрешение по умолчанию, если ваша приложение «Целевая» версия составляет 1,5. Если вы ориентируетесь на более позднюю версию, но ваша минимальная версия - 1.5, вы не получаете добавление разрешений автоматически.


Обновления

  1. Интересно, что есть есть Открытая проблема (21504) Разделите READ_PHONE_STATE в том, что необходимо) определить входящие вызовы и связанные с ними (телефония), а также второе разрешение на данные идентификации (IMEI, IMSI и т. Д.). Открыт 11/2011, все еще не работал. Звезда, если интересно :)
  2. и да, есть способ достичь того же (обнаружение входящих вызовов) без <код> READ_PHONE_STATE разрешения, как e.g. Указан Arno Welzel . В качестве входящего телефонного звонка вызвало бы Ringer, , что событие можно использовать с 9988777666 , который не требует какого-либо специального разрешения: если срабатывает приложение, приложение может проверить Callstate (опять же, без каких-либо специальных разрешений), чтобы увидеть, есть ли входящий вызов.

 

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.
 
 
       
       
19
 
vote

Причина в том, что Android 1.5 и ранее не требуют приложения к конкретному запросу этих разрешений и автоматически предоставляют их. Поскольку Android 1.6, эти разрешения должны быть специально запрошены приложением. Однако, если вы укажете, что ваше приложение может работать на устройствах с Android 1.5 и меньше, то это разрешение добавляется к приложению по умолчанию, и рынок показывает, что разрешение как запрашиваемое приложением.

Так, как резюме, приложение может не добраться до вашего «состояния телефона и идентичности», но если разработчик указал, что его / ее приложение может работать на устройствах с 1,5 или менее, то это разрешение будет показано.

 

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

Многие издатели объявлений используют это разрешение на то, чтобы получить идентификатор телефона для всех видов целей отслеживания. Есть и другие способы получить уникальный идентификатор, но, к сожалению, они багги в старших версиях Android (история сложнее, см., Например, https://stackoverflow.com/questions/2785485/is-theer-a-unique-and-device-iD или http://android-developers.blogspot.com/2011/03/ veynificify-app-installations.html < / a> Для более полной истории).

Так что, если приложение использует рекламу, существует справедливый шанс, что сам приложение на самом деле не нужна разрешение на Read_Phone_State, только провайдер AD.

 

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.

 
 

Связанный проблема

0  Это, что возможно для Wallpaper Cache, сохранено в папку Android / Data? (Не укоренился)  ( It that possible for the wallpaper cache saved in android data folder being hac ) 
Мой парень шутил со мной, настраивая свое личное фото в качестве обоев. Я удалил фотографию, но обои еще остается там ... После просмотра некоторой информ...

24  Какие данные Sync'd Android зашифрованы?  ( What android syncd data is encrypted ) 
с выпуском плагина fireesheep для Firefox он стал тривиальным для просмотра веб-сайта в открытых сетях Wi-Fi быть угнанным 3-го вечеринка. Android предлаг...

2  Можно ли приложение OPS запустить на 4.4.4?  ( Can app ops run on 4 4 4 ) 
Я установил и попробовал несколько из " App Ops " стартовые приложения из магазина Google Play. Когда я бегу любой из них, появляется диалоговое окно «К сожал...

6  Почему приложения App Scaper Apps нужно так много разрешений? Я в безопасности?  ( Why do app locker apps need so many permissions am i safe ) 
Я пытался защитить пароль приложения, и кажется, что разрешения варьируются от приложения в приложение для блокировки приложений. Почему многие из них требу...

2  Мои контакты зашифрованы на моем андроиде?  ( Are my contacts encrypted on my android ) 
мои контакты, зашифрованные на моем андроиде и где они? Как я могу получить доступ к ним? Любые публичные API? (С ПК) ...

90  Почему так много приложений требуют разрешения на чтение состояния телефона и идентичности?  ( Why do so many applications require permission to read the phone state and ident ) 
Почему так много приложений требуют разрешения на чтение состояния телефона и идентичности?. В частности: <код> Phone calls read phone state and identity...

26  Почему New Chrome Update хочет, чтобы разрешение было использовать мою камеру и запись аудио?  ( Why does the new chrome update want the permission to use my camera and audio re ) 
Серьезно, это конкретно утверждает, что он может использовать камеру и аудиозапись в любое время, которое он хочет, если бы я желаю этому . Почему Chrome на ...

9  Как вы зашифруете свое устройство, запущенное цианогенмоду 12.1?  ( How do you encrypt your device running cyanogenmod 12 1 ) 
Cyanogenmod 12 и 12.1 'Encrypt Phone' Site Site Share и было довольно долго. Есть ли способ шифровать телефон в какой-то другой моде? CAN CM останавливается...

3  Можно ли позвонить без доступа к списку контактов?  ( Is it possible to make a call without having access to the contacts list ) 
Можно ли позвонить без доступа к контактам телефона? Я Скажем, я позволил другу использовать свой телефон, и заблокируйте свои контакты, чтобы он требует выво...

2  Как удалить файл из «Последние файлы» на Android 10?  ( How to remove file from recent files on android 10 ) 
В файлах приложение App android 10 (пиксель 2 XL), есть «недавняя» категория. Для причин конфиденциальности я хотел удалить файл в этой категории. Насколько я...