Pourquoi tant d'applications nécessitent-elles l'autorisation de lire l'état et l'identité du téléphone?. Plus précisément:
Phone calls
read phone state and identity
Par exemple, Quickpedia est un portail Wikipedia, mais souhaite accéder au téléphone. Quelle est l'explication pour ça?
permissions
privacy
Nam G VU
la source
la source
Réponses:
Il permet à l'application de lire un identifiant unique (un identifiant de téléphone appelé IMEI ) associé à votre téléphone.
Cela peut donc aider à la protection contre la copie ou à la tentative de suivi du nombre d'utilisateurs.
la source
Il y a une autre raison à cela que l'ID unique. Je suppose que la moitié des applications n’ont pas du tout accès à ces valeurs. Le problème est que pour une version inférieure à Android 1.5, cette autorisation n'existe pas. Tout le monde pouvait accéder à ces valeurs sans demander quelque chose.
Par conséquent, si vous créez une application compatible avec la version 1.5, cette autorisation sera automatiquement ajoutée pour émuler la sécurité inférieure d'Android 1.5, car vous pourriez ignorer cette autorisation dans la plupart des cas, car il s'agit généralement d'un problème de compatibilité.
la source
La raison en est que Android 1.5 et les versions antérieures ne nécessitaient pas que l'application demande spécifiquement ces autorisations et les leur accordait automatiquement. Depuis Android 1.6, ces autorisations doivent être spécifiquement demandées par l'application. Toutefois, si vous indiquez que votre application peut être exécutée sur des appareils dotés d'Android 1.5 ou version ultérieure, cette autorisation est ajoutée à l'application par défaut et le marché indique que cette autorisation est demandée par l'application.
Donc, en résumé, l’application n’accède peut-être pas à votre "état et identité de votre téléphone", mais si le développeur indique que son application peut être exécutée sur des appareils de 1,5 ou moins, cette autorisation sera indiquée.
la source
Cette question me préoccupe depuis longtemps. Alors maintenant, finalement, j'ai décidé d'aller au fond des choses.
Le Playstore a une application nommée permission.READ_PHONE_STATE , qui demande
READ_PHONE_STATE
l’autorisation unique et ne fait rien d’autre que l’impression de toutes les données auxquelles elle peut accéder avec ou sans l’utiliser. Je l'ai installé sur mon LG Optimus 4X , enraciné sur Android 4.0.3, et révoqué l'autorisation à l'aide de LBE. Les résultats étaient plutôt intéressants, comme le montrent les captures d'écran suivantes:Informations recueillies par l'application permission.READ_PHONE_STATE (cliquez sur les images pour agrandir les variantes)
Comme vous pouvez facilement le constater, même certaines informations, même inaccessibles sans autorisation, étaient librement accessibles: mon numéro de boîte vocale (remarque: oui, c’est le bon; avec mon fournisseur, c’est le raccourci clavier pour composer un numéro à partir de votre propre appareil. l'afficher librement;) À la fin de la première capture d'écran, vous voyez:
CALL_STATE_IDLE
. Donc, aucun appel téléphonique entrant, sortant ou en cours. Aucune application n'a besoin de cette permission pour se "mettre en arrière-plan" lors d'appels entrants.Il est même possible de voir si les données mobiles sont actives (
DATA_DISCONNECTED
j'ai utilisé le WiFi lors de la capture d'écran, comme vous pouvez le voir dans la barre de notification), dans quel pays vous êtes, votre fournisseur (y compris des données techniques sur lui), si vous avez une carte SIM, ou si vous êtes en itinérance.Les seules choses qui ne sont pas accessibles sont donc les données d'identification: IMEI, SIMID, IMSI et votre propre numéro de téléphone.
Conclusion: cette autorisation est nécessaire uniquement à des fins d'identification, rien d'autre.
Pourquoi tant d'applications ont-elles besoin alors?
Les probabilités dans exactement cet ordre, IMHO.
1 Note du message de Dan sur le chat :
Comme il est difficile pour l'utilisateur de dire en quoi l'application utilise l'IMEI, vous devez d'abord demander au développeur de vous expliquer.
2 Un autre développeur me montra une différence subtile: alors que l'autorisation n'est pas nécessaire de lire l'état de l' appel en cours (comme je l' ai fait remarquer), il pourrait être nécessaire d'enregistrer un auditeur afin d'être informé sur les changements de l'appel statut (voir: Détection des appels téléphoniques entrants et sortants sur Android ). Bien qu'il semble y avoir des moyens de gérer cela automatiquement lorsque le système appelle
onPause
, cela peut ne pas toujours être approprié: pensez à votre réveil. Vous souhaiterez peut-être que cela ne soit pas automatiquement arrêté lors d'un appel entrant - en particulier si votre profil est défini sur le volume de la sonnerie "muet".3 Encore une correction de Dan : vous n'obtenez l'autorisation supplémentaire par défaut que si la version "cible" de votre application est 1.5. Si vous ciblez une version ultérieure mais que votre version minimale est 1.5, l'autorisation ne sera pas ajoutée automatiquement.
Mises à jour
READ_PHONE_STATE
en ce qui est nécessaire pour a) détecter les appels entrants et connexes (téléphonie), ainsi qu’une deuxième autorisation pour les détails d’identification (IMEI, IMSI, etc.). Ouvert le 11/2011, toujours pas travaillé. Commencez si intéressé :)READ_PHONE_STATE
autorisation, comme par exemple souligné par Arno Welzel . Comme un appel téléphonique entrant déclencherait la sonnerie, cet événement pourrait être utilisé aveconAudioFocusChange()
, ce qui ne nécessite aucune autorisation spéciale: s'il est déclenché par cela, l'application pourrait vérifier l'état de CallState (encore une fois, sans qu'aucune autorisation spéciale ne soit requise) appel entrant.la source
onPause()
était ce que nous avons discuté sur le chat pour ça! Mais utiliseronAudioFocusChange()
peut même être moins onéreux (le petit sondage pourrait alors être ignorable).De nombreux éditeurs de publicité utilisent cette autorisation pour obtenir l'identifiant du téléphone à toutes sortes de fins de suivi. Il existe d'autres moyens d'obtenir un identifiant unique, mais malheureusement, ils sont bogués dans les anciennes versions d'Android (l'histoire est plus compliquée, voir par exemple https://stackoverflow.com/questions/2785485/is-there-a-unique-android- device-id ou http://android-developers.blogspot.com/2011/03/identifying-app-installations.html pour une histoire plus complète).
Ainsi, si l'application utilise des publicités, il y a de fortes chances que l'application elle-même n'ait pas réellement besoin de l'autorisation READ_PHONE_STATE, seul le fournisseur de l'annonce en a besoin.
la source