Wie kann ich auf Android-Protokolldateien auf meinem Nexus 7 ohne Root-Zugriff zugreifen?

9

Da aLogcat jetzt nicht mehr mit Jelly Bean funktioniert, wie kann ich auf die Systemprotokolldateien auf meinem Gerät zugreifen, ohne Root-Zugriff zu haben oder sie an einen Computer anzuschließen ?

Ich habe versucht , adb logcatvon meinem PC aus zu verwenden, und das hat gut funktioniert, daher weiß ich, dass viele Nachrichten protokolliert werden.

Die Verwendung logcatvon Android Terminal Emulator auf meinem Nexus 7 zeigt jedoch fast keine Ausgabe und startet adb logcatvon Android Terminal Emulator den Daemon, sagt dann aber nur - waiting for device -und es wird nichts mehr angezeigt.

Ist es also möglich, auf Android-Protokolldateien auf meinem Nexus 7 ohne Root-Zugriff zuzugreifen ?

Mark Booth
quelle
@Izzy - Der Punkt dieser Frage ist, dass alle Lösungen in meiner anderen Frage (auf die ich in dieser Frage verwiesen habe) Root-Zugriff erfordern. Während diese Lösungen für diejenigen nützlich sind, die ihre Geräte gerootet haben, wollte ich eine spezifischere Lösung für diejenigen, die ihr Gerät nicht gerootet haben.
Mark Booth
Sie können PhoneHome einen Blick wert finden
Dori

Antworten:

12

Nein, aus Sicherheitsgründen ist es nicht möglich, ohne Root-Zugriff auf Android-Protokolldateien auf dem Nexus 7 (oder einem anderen Gerät mit Jelly Bean oder höher) zuzugreifen. Google hat das mit Jelly Bean geändert.

Ich würde vorschlagen, dass Sie warten, bis Logcat-Leser wie aLogCat und solche repariert sind (dh sie benötigen Root-Zugriff, um dann alle Protokolle anzuzeigen).

Aus AISEC-TR-2012-001-Android-OS-Security.pdf - 3.3 Android-Berechtigungsmodell :

Die Berechtigung READ_LOGS kann auf vielen Geräten abhängig von der Android-Version und damit den installierten Standard-Apps-Versionen Folgendes ersetzen:

  • READ_CONTACTS

  • GET_TASKS - Jede gestartete Aktivität wird in den Systemprotokollen aufgeführt

  • READ_HISTORY_BOOKMARKS - Das Öffnen neuer Webseiten ist eine Browseraktivität und wird daher protokolliert

  • READ_SMS

Alle unten aufgeführten Lösungen erfordern Root-Zugriff :

Sie müssen logcat entweder als root in einer Shell ausführen oder es manuell über den Shell-Befehl pm gewähren (root erforderlich). Dies funktioniert auch (siehe XDA , Austausch von org.jtb.alogcat.donate mit dem Paketnamen der App):

pm grant org.jtb.alogcat.donate android.permission.READ_LOGS

Dies ist für die Faulen und wird nicht empfohlen: Wenn Sie verzweifelt, nachlässig und faul sind, können Sie das Problem beheben, indem Sie jeder App die Berechtigung READ_LOGS erteilen, indem Sie diesen hässlichen und unsicheren Hack anwenden ( Chainfire via Twitter ):

chmod 04755 /system/bin/logcat

CyanogenMod Entwickler Koushik Dutta G + zu zitieren Beitrag :

Haben sich die Berechtigungen / das Verhalten des Android-Protokolls in JellyBean geändert?

Es scheint, dass eine Anwendung, die jetzt "logcat" ausführt, nur die von ihrer UID erstellten Protokolleinträge sehen kann. Protokollzeilen von anderen UIDs werden nicht angezeigt. Grundsätzlich scheint es jetzt gefiltert zu sein.

Ich habe die gleichen Berechtigungen wie üblich. Es wurde auch bestätigt, dass dasselbe in anderen Log Collector-Apps passiert.

ce4
quelle
Es gibt keinen Weg ohne Wurzel, von dem ich weiß. Aus Sicherheitsgründen. Ab JellyBean muss die Berechtigung read_logs nicht mehr erteilt werden (jede App kann ohnehin nur ihre eigenen Protokolle anzeigen).
Ce4
Danke für die Bearbeitung und den Link zu xda, das habe ich integriert.
Ce4
Vielen Dank, dass Sie die pm grantOption hinzugefügt haben . Beachten Sie, dass , wie ich jetzt in sagen meine andere Antwort , Sie ein etwas anderes Paket angeben müssen , wenn Sie nicht verwenden , die spenden Version aLogCat :pm grant org.jtb.alogcat android.permission.READ_LOGS
Mark Booth
Das Dokument, auf das verwiesen wird, erklärt, wie READ_LOGSes READ_CONTACTSauf einigen Plattformen gleich ist. Ich denke, das bedeutet, dass einige Apps Kontaktdaten in die Protokolle einfügen, aber das ist nicht wirklich dasselbe wie READ_CONTACTS. Aber dann würde ich sagen, dass das Papier in einem alarmierenden Ton geschrieben ist.
Flow
READ_LOGS verliert viel mehr Informationen als nur Kontaktdaten. Es gibt den Namen des Benutzers, wahrscheinlich die Google Mail-Adresse, Speicherorte, installierte Apps (sogar App-Nutzung) und so weiter. Plus: Es wurde verwendet, um Adressen aus Stack-Dumps von System-Daemons in den Tagen vor ASLR durch Root-Exploits zu lesen und zu extrahieren. Jetzt, da sie zu einem großen Teil ausgeschaltet sind (4,1 ±), erhalten Sie möglicherweise einen Schwarmschutz (vergleichen Sie dies damit, dass Sie Ihr Kind nicht in einer krankheitsfrei geimpften Bevölkerung impfen). Es drohten Probleme und Google tat das Richtige.
Ce4
1

Ich bin verwirrt, obwohl es einige Dinge erklären würde.

Wenn auf meinem Nexus7 und meinem Galaxy Nexus dieselbe App ausgeführt wird, beide auf Jellybean, sieht das Telefon die Protokollausgabe aller Apps, das Tablet nicht. Dies würde sagen, dass es nicht Jellybean ist, sondern der Nexus7. Ich habe dies gerade überprüft und beide haben unterschiedliche Kernel. Das Tablet mit einem neueren.

Vielleicht ist es der aktualisierte Kernel, der bedeutet, dass keine Protokolle angezeigt werden.

Ich denke, ich muss doch rooten: (

Russ Wheeler
quelle
Das ist interessant, Russ, danke für die zusätzlichen Informationen.
Mark Booth
Eigentlich wurde ich jetzt zuverlässig darüber informiert, dass die App, die ich zum Anzeigen der Protokolle verwende, auf meinem Computer installiert wurde, als ich ICS hatte, sodass die Berechtigungen zum Anzeigen der Protokolle beibehalten wurden.
Russ Wheeler
1

Ich habe eine Logcat-App entwickelt , die einen alternativen Ansatz verwendet. Es verwendet die Remote-Debugging-Funktion. Sie müssen es zuerst auf dem Telefon aktivieren, es muss jedoch nur einmal ausgeführt werden. Anschließend können Sie mit der App alle Protokolle abrufen.

Anton Tananaev
quelle