2017-07-23 2 views
6

Ich bekomme sehr widersprüchliche Informationen über die Verwendung von android.permission.READ_LOGS Android-Erlaubnis. Erstens gibt die Android-Dokumentationswebsite nicht die Schutzstufe dieser Berechtigung an. Es ist weder als normal eingestuft noch gefährlich. Sie haben folgende Angaben:Ist READ_LOGS eine normale oder gefährliche Android-Berechtigung?

„Nicht für die Verwendung von Drittanbieter-Anwendungen, weil Log-Einträge können enthalten die privaten Informationen des Benutzers“

Einige Websites sagen, sie nicht für die gleichen Bedenken hinsichtlich der Privatsphäre zu verwenden. Jedoch habe ich einige Probleme mit, dass habe:

  1. Als ich diese Erlaubnis in meinem App auf Android 7.1.1 (Nexus 5X) getestet und Android 4.4.2 (alt Samsung 8" Tablette), aufgefordert, keiner von ihnen mir dass die App diese Berechtigung benötigt Beide sagten, dass die App "keine speziellen Berechtigungen" angefordert hat. Dies geschieht nur dann, wenn die Berechtigung als "normal" eingestuft wird. In diesem Fall wird automatisch gewährt.
  2. Zweitens kann ich diese Berechtigung verwenden Nur Protokolle von Logcat zu meiner App anzeigen, die keine persönlichen Informationen protokolliert. Daher verletze ich auch keine Privatsphäre. Ich dachte, diese Erlaubnis könnte mir erlauben, die Logs anderer App zu sehen, was zu Datenschutzproblemen führt.

Wenn dies der Fall ist, ist es dann sicher, diese Berechtigung in einer Produktionsversion der App zu verwenden? Es würde mir sehr helfen, seltsame Bugs zu debuggen, denen die Benutzer begegnen, wenn sie mir per Knopfdruck einen Logcat schicken können.

EDIT: Ok, jetzt bin ich ziemlich verwirrt. Es scheint, dass ich diese Berechtigung nicht explizit im Manifest angeben muss.

+0

Nun, nach weiterem Graben, bestätigt dieser Thread auf GitHub meine Beobachtungen und es scheint in Ordnung zu sein, die Erlaubnis zu verwenden: https://github.com/ACRA/acra/issues/292 –

+0

Okay, es scheint, dass ich es tue Ich brauche nicht die READ_LOGS-Berechtigung auf Android 7 oder Android 4.4, wie ich es getestet habe. Also, warum erwähnen die Leute, dass Sie diese Erlaubnis zum Lesen von Logs auf allen Webseiten benötigen, die ich lese? –

Antwort

3

Ist READ_LOGS eine normale oder gefährliche Android-Erlaubnis?

Weder. Ab Android 7.1 ist es signature|privileged|development. Das bedeutet im Wesentlichen, dass Apps, die im Rahmen der Firmware-Erstellung oder der Installation auf der privilegierten Partition signiert wurden, die Berechtigung behalten können, aber sonst nichts.

die Android-Dokumentation Webseite angeben nicht den Schutzgrad dieser Erlaubnis

Richtig. READ_LOGS ist immer noch im SDK, aus Gründen der Abwärtskompatibilität, aber gewöhnliche Apps konnten es seit Android 4.1 nicht halten, die five years ago herauskam.

Dies geschieht nur, wenn die Berechtigung als "normal" betrachtet wird. In diesem Fall wird sie automatisch gewährt.

Nr

Ich dachte, diese Erlaubnis erlauben kann mir andere App-Protokolle, um zu sehen, was zu Datenschutzfragen.

es tat, auf Android 4.0 und früher.

Ist es dann sicher, diese Berechtigung in einer Produktionsversion der App zu verwenden?

Nun, bedenken Sie, dass es nie eine dokumentierte und unterstützte Möglichkeit für Apps LogCat Inhalte zuzugreifen. Höchstwahrscheinlich verwenden Sie eine der Skript-Kiddie-Lösungen, die veröffentlicht wurden, z. B. das Ausführen des Befehls logcat und das Erfassen der Ausgabe. Daher ist es durchaus möglich, dass es Geräte gibt, die Ihren speziellen Ansatz für den Zugriff auf LogCat jetzt oder in Zukunft unterstützen. Also, die Erlaubnis ist nicht dein Problem; Das Fehlen einer unterstützten API für den LogCat-Zugriff ist Ihr Problem.

Persönlich würde ich eine Logging-Bibliothek verwenden, um den Inhalt sowohl in einer Datei als auch in LogCat zu protokollieren, wobei ich die Datei für jede App verwende, für die sie benötigt wird.

+0

Danke für die schnelle Antwort. Das war in der Tat sehr verwirrend, aber ich glaube, ich habe es endlich verstanden. Ihre Antwort, zusammen mit diesem: https://Stackoverflow.com/a/16795874/2611713 klärte dies für mich. Mein Anwendungsfall passt zum aktuellen Szenario, da ich nur Logs lesen möchte, die aufgrund unerwarteter Abstürze von meiner App erstellt wurden. Ich verwende diese Methode, um meine eigenen Protokolle zu lesen: https://stackoverflow.com/a/20497850/2611713. Ich weiß nicht, ob das ein Skript-kiddy Ansatz ist! Meine Hauptquelle für Verwirrung war die Notwendigkeit der Erlaubnis. –

+0

Ich ziele auch auf die Mindest-API von 19. Also muss ich mich auch nicht um Rückwärtskompatibilität kümmern. –

+0

@ lite-whowantstoknow: "Ich weiß nicht, ob das als Script-kiddy-Ansatz betrachtet wird" - ja, sofern die Verfügbarkeit des 'logcat'-Befehls nicht garantiert ist und das Verhalten eines beliebigen 'logcat'-Befehls auf dem Gerät ist nicht dokumentiert. – CommonsWare

Verwandte Themen