Warum benötigen so viele Anwendungen eine Berechtigung zum Lesen des Telefonstatus und der Identität? Speziell:
Phone calls
read phone state and identity
Beispielsweise ist Quickpedia ein Wikipedia-Portal, möchte aber Zugriff auf das Telefon haben. Was ist die Erklärung dafür?
permissions
privacy
Nam G VU
quelle
quelle
Antworten:
Damit kann die App eine eindeutige ID (eine Telefon-ID mit dem Namen IMEI ) lesen , die mit Ihrem Telefon verknüpft ist.
Es kann daher beim Kopierschutz oder beim Versuch, die Anzahl der Benutzer zu verfolgen, hilfreich sein.
quelle
Es gibt einen anderen Grund als die eindeutige ID. Ich würde vermuten, dass die Hälfte der Apps überhaupt nicht auf diese Werte zugreifen. Das Problem ist, dass für eine niedrigere Version bis zu Android 1.5 diese Berechtigung nicht vorhanden ist. Jeder konnte auf diese Werte zugreifen, ohne etwas anzufordern.
Wenn Sie eine App erstellen, die mit 1.5 kompatibel ist, wird diese Berechtigung automatisch hinzugefügt, um die geringere Sicherheit von Android 1.5 zu emulieren. Aus diesem Grund können Sie diese Berechtigung in den meisten Fällen ignorieren, da es sich in der Regel nur um ein Kompatibilitätsproblem handelt.
quelle
Der Grund dafür ist, dass Android 1.5 und frühere Versionen die Anwendung nicht dazu aufforderten, diese Berechtigungen speziell anzufordern, und sie automatisch gewährten. Seit Android 1.6 müssen diese Berechtigungen von der App speziell angefordert werden. Wenn Sie jedoch angeben, dass Ihre Anwendung auf Geräten mit Android 1.5 und weniger ausgeführt werden kann, wird diese Berechtigung standardmäßig zur Anwendung hinzugefügt, und der Markt zeigt diese Berechtigung als von der Anwendung angefordert an.
Zusammenfassend kann gesagt werden, dass die Anwendung möglicherweise nicht auf Ihren "Telefonstatus und Ihre Identität" zugreift. Wenn der Entwickler jedoch angibt, dass seine Anwendung auf Geräten mit 1,5 oder weniger ausgeführt werden kann, wird diese Berechtigung angezeigt.
quelle
Diese Frage hat mich schon länger beschäftigt. Nun endlich habe ich mich entschlossen, dem Thema auf den Grund zu gehen.
Der Playstore verfügt über eine App namens permission.READ_PHONE_STATE , die
READ_PHONE_STATE
als einzige Berechtigung anfordert und nichts anderes tut, als alle Daten auszudrucken, auf die er zugreifen kann, mit oder ohne sie zu verwenden. Ich habe das auf meinem LG Optimus 4X installiert, das auf Android 4.0.3 verwurzelt ist, und die Erlaubnis mit LBE widerrufen. Die Ergebnisse waren ziemlich interessant, wie die folgenden Screenshots zeigen:Mit der App- Berechtigung gesammelte Informationen.READ_PHONE_STATE (Bilder anklicken für größere Varianten)
Wie Sie leicht sehen können, waren sogar einige Informationen, auf die der Entwickler ohne Erlaubnis nicht zugreifen konnte, frei zugänglich: meine Mailbox-Nummer (Anmerkung: Ja, es ist die richtige; bei meinem Provider ist das die Abkürzung, wenn Sie von Ihrem eigenen Gerät aus wählen, also kann ich zeige es frei an;) Am Ende des ersten Screenshots siehst du:
CALL_STATE_IDLE
. Also kein eingehender, ausgehender oder laufender Anruf. Keine App benötigt diese Berechtigung, um sich bei eingehenden Anrufen im Hintergrund zu "verhalten".Es ist sogar möglich zu sehen, ob mobile Daten aktiv sind (
DATA_DISCONNECTED
ich war beim Aufnehmen der Screenshots im WLAN, wie Sie in der Benachrichtigungsleiste sehen können), in welchem Land Sie sich befinden, bei Ihrem Anbieter (einschließlich einiger technischer Daten zu ihm), ob Sie haben eine SIM-Karte oder sind im Roaming.Die einzigen Dinge, auf die nicht zugegriffen werden kann, sind identifizierende Daten: IMEI, SIMID, IMSI und Ihre eigene Telefonnummer.
Fazit: Diese Erlaubnis wird nur zu Identifikationszwecken benötigt, sonst nichts.
Warum brauchen es dann so viele Apps?
Wahrscheinlichkeiten in genau dieser Reihenfolge, IMHO.
1 Anmerkung von Dans Beitrag im Chat :
Da der Benutzer nur schwer erkennen kann, wofür die App die IMEI verwendet, sollten Sie den Entwickler bitten, dies zuerst zu erläutern.
2 Ein anderer Entwickler hat mich nur auf einen subtilen Unterschied hingewiesen: Während die Berechtigung nicht erforderlich ist, um den aktuellen Anrufstatus zu lesen (wie ich darauf hingewiesen habe), muss möglicherweise ein Listener registriert werden, um über Änderungen des Anrufs benachrichtigt zu werden Status (siehe: Erkennen eingehender und ausgehender Anrufe unter Android ). Es scheint zwar Mittel zu geben, um dies automatisch zu handhaben, wenn das System aufruft , dies ist jedoch möglicherweise nicht immer geeignet: Denken Sie an Ihren Wecker. Möglicherweise möchten Sie nicht, dass dies bei einem eingehenden Anruf automatisch gestoppt wird. Dies gilt insbesondere dann nicht, wenn in Ihrem Profil die Ruftonlautstärke "stummgeschaltet" ist.
onPause
3 Wieder eine Korrektur von Dan : Sie erhalten die Standard-Extra-Berechtigung nur, wenn die "Ziel" -Version Ihrer App 1.5 ist. Wenn Sie auf eine spätere Version abzielen, Ihre Mindestversion jedoch 1.5 ist, wird die Berechtigung nicht automatisch hinzugefügt.
Aktualisierung
READ_PHONE_STATE
in das aufgeteilt werden muss, um a) eingehende Anrufe und verwandte (Telefonie) und eine zweite Erlaubnis für die Identifikationsdetails (IMEI, IMSI usw.) zu erkennen. Geöffnet 11/2011, noch nicht bearbeitet. Star es bei Interesse :)READ_PHONE_STATE
Erlaubnis, wie zB von Arno Welzel ausgeführt . Da ein eingehender Anruf den Rufton auslösen würde, könnte dieses Ereignis mit verwendet werdenonAudioFocusChange()
, für das keine besondere Berechtigung erforderlich ist. Wenn dies ausgelöst wird, könnte die App den CallState überprüfen (erneut, ohne besondere Berechtigung erforderlich), um festzustellen, ob eine vorhanden ist eingehender Anruf.quelle
onPause()
war , was wir auf dem Chat für das diskutiert! Aber die Verwendung vononAudioFocusChange()
kann sogar zu einem geringeren Overhead führen (das kleine Polling kann dann ignoriert werden).Viele Anzeigenverlage verwenden diese Berechtigung, um die Telefon-ID für alle Arten von Nachverfolgungszwecken abzurufen. Es gibt andere Möglichkeiten, eine eindeutige ID zu erhalten, aber leider sind sie in älteren Android-Versionen fehlerhaft (die Geschichte ist komplizierter, siehe z. B. https://stackoverflow.com/questions/2785485/is-there-a-unique-android- Geräte-ID oder http://android-developers.blogspot.com/2011/03/identifying-app-installations.html für eine vollständigere Geschichte).
Wenn die App Werbung verwendet, besteht die Möglichkeit, dass die App selbst nicht die Berechtigung READ_PHONE_STATE benötigt, sondern nur der Anzeigenanbieter.
quelle