Benötigt der Zugriff auf logcat root?

9

Mein Gerät ist bereits gerootet, deshalb frage ich.

Benötigen Sie root, um den Logcat-Stream auf dem Telefon zu überwachen? Wenn ich den Befehl logcat von einem Terminal auf dem Telefon aus ausführen würde, würde das funktionieren?

Wulfbane
quelle

Antworten:

15

Diese kostenlosen Apps auf dem Markt erheben den Anspruch, Ihren Logcat anzeigen zu können, und erwähnen root nicht. Sie sollten nur ein paar Minuten brauchen, um sie auszuprobieren:

BEARBEITEN: Vielen Dank an @mente, dass Sie mich daran erinnert haben, dass Sie mit diesen Apps nur in älteren Android-Versionen die vollständige Protokolldatei anzeigen können. Android 4.1 brachte ein neues Sicherheitsmodell für Protokolldateien ein, das bedeutete, dass Apps nur ihre eigenen Protokolldateien und Protokolldateieinträge lesen konnten und keine vom System oder anderen Apps geschriebenen Protokolldateieinträge lesen konnten.

Es gibt jedoch immer noch eine Möglichkeit für den Benutzer einer App, eine Protokolldatei der letzten Protokolleinträge der App zu erstellen, die an einen Entwickler gesendet werden soll, und für den Besitzer eines Telefons, Berechtigungen zu erteilen, damit eine App die Protokolldatei ohne vollständigen Stamm lesen kann erfordert die Verwendung eines ADB-Befehls, der leider für die meisten normalen Telefonbenutzer unerreichbar ist:

Wenn Sie möchten, dass der Benutzer Ihnen Debugging-Informationen gibt, können Sie ihn einen Fehlerbericht mit Power + Volume Down + Volume Up erstellen lassen, der die Protokolle und viele andere Daten enthält, und automatisch seine E-Mail-App aufrufen, um alles zu senden (plus einen Screenshot). Wir haben gerade darüber gesprochen, dass wir auch eine einfachere Möglichkeit haben sollten, diese zu generieren. Ich werde versuchen, der Einstellungs-App etwas hinzuzufügen.

Ich habe auch damit begonnen, das Konzept einer "Entwicklungs" -Berechtigung einzuführen , bei der das Lesen von Protokollen als klassifiziert wird. Dadurch kann die App die Berechtigung anfordern, sie jedoch bei der Installation nicht erhalten. Sie können es jedoch mit einem adb-Shell-Befehl gewähren, sobald es installiert ist. Irgendwann später erwarte ich eine Benutzeroberfläche im System, um dies zu tun, aber wir werden dies zurückhalten, um vorsichtig zu sein, wie wir dies präsentieren.

Auszug aus einem Beitrag auf Google Groups von Dianne Hackborn, Android Framework Engineer. Mein Schwerpunkt.

Der erwähnte ADB-Befehl zum Erteilen einer Anwendungsberechtigung zum Lesen der Protokolle lautet:

adb shell pm grant <pkg> android.permission.READ_LOGS

Diese Einstellung sollte Neustarts und Upgrades der App überstehen (jedoch nicht deinstallieren / neu installieren).

GAThrawn
quelle
Ab Android 4.1 benötigen Sie Root-Zugriff, um andere Apps-Protokolle lesen zu können. Der CatLog-Entwickler hat eine Erklärung veröffentlicht . Angenommen, diese Apps funktionieren für <4.1-Versionen
mente
1
Diese Verknüpfung funktioniert nicht auf meinem Android 4.1.2
mente
Ich habe ein Dienstprogramm zum Sammeln von Protokollen von einem PC erstellt: gist.github.com/hrj/5983971
HRJ
4

Sie müssen Ihr Telefon nicht rooten, um adb logcatmit dem Android SDK ausgeführt zu werden, aber ich habe es nur in meinem Terminal-Emulator getestet und musste root sein (den suBefehl verwenden - mein Telefon ist bereits gerootet), um logcat im auszuführen Terminal auf meinem Handy.

Also ja: Wenn Sie root auf Ihrem Telefon haben, können Sie logcat von einem Terminal auf Ihrem Telefon aus ausführen.

Amanda
quelle
1

Nein, Sie benötigen kein Root-Verzeichnis, um Logcat-Informationen abzurufen.

Dazu möchten Sie wahrscheinlich das Android SDK herunterladen und "adb logcat" mit dem mit dem SDK gelieferten adb-Tool ausführen. Alternativ können Sie das ADT Eclipse-Plugin installieren und den praktischen Logcat-Streaming-Viewer verwenden.

Eric Mill
quelle
Ich möchte dies vom Telefon aus tun, nicht von einem Remote-Computer mit dem SDK
Wulfbane
1

Nein, Sie benötigen kein Root, um auf logcat zuzugreifen. Mein Gerät (Samsung Galaxy Note, Gingerbread 2.3.6 mit Standard-ROM) ist (noch!) Nicht gerootet und ich habe die folgenden Methoden verwendet, um auf das Protokoll auf meinem Gerät zuzugreifen:

  • CatLog App
  • aLogcat App
  • SSHDroid-App aktiviert und über einen SSH-Client mit dem Geräteterminal verbunden
  • Android SDK verwenden und ausführen adb logcat

Mit der Terminal-App können Sie logcat jedoch nicht ausführen und erhalten die Berechtigung "verweigert". Ich bin mir nicht sicher warum.

Iravanchi
quelle
ja, auf Lebkuchen ... aber die heutige Android tut Wurzel erfordert.
NH.
1

Es scheint, dass Sie logcat nicht über Terminal Emulator ausführen können, ohne root auf Ihrem Telefon zu haben. In diesem Fall müssen Sie zuerst su. AFAIK, es kommt von Android-Berechtigungen: Terminal Emulator hat einfach nicht genug Berechtigungen, um das Geräteprotokoll anzuzeigen. Das System sagt also, dass die Berechtigung verweigert wurde.

Auf der anderen Seite gibt es, wie andere sagten, viele Apps, mit denen Sie das Geräteprotokoll anzeigen können, nur weil sie die Berechtigung anfordern.

Atomontage
quelle
0

Die Anwendung Android System Info bietet die Möglichkeit, Protokollinformationen auf dem Bildschirm auszugeben, die, soweit ich das beurteilen kann, dieselben Protokollinformationen sind, die logcat ausspuckt.

Bill Best
quelle
Hast du einen Link zu dieser App, ich kann ihn nicht auf dem Markt finden?
GAThrawn
@GAThrawn Falls Sie noch interessiert sind: Links zur Startseite und zum Google Play Store .
Zuul
0

Logcat benötigt kein Root. Simples - es ist ein De-facto-Standard in Bezug auf verschiedene Android-Versionen und Teil von Android, unabhängig davon, ob Sie verwurzelt sind oder nicht. Es ist ein Standardmittel zur Diagnose von Problemen wie zum Beispiel - Sie installieren eine App, die App Force Close, Sie beschweren sich beim Entwickler der App, die Chancen stehen gut, dass der Entwickler "Send over the Logcat" fragt, unabhängig davon, ob Sie verwurzelt sind oder nicht!

aLogCat ist eine Möglichkeit, Informationen zu sammeln. Sie können sich auch im Webseitenlayout oder im Klartext anmelden. Wenn Sie die Protokollierung mit einer bestimmten Häufigkeit planen, z. B. alle 15 Minuten, füllt sich die SDCard recht schnell.

Ein weiterer Aspekt, die Verwendung von logcat, hängt vom Kernel ab, wie viel er speichern kann - in jedem Kernel, der vom ROM verwendet wird, der Quelle für die Protokollierung auf Kernelebene, wo er den Speicher für den logcat-Dienst reserviert finden Sie unter drivers/staging/android/logger.cVerwendung der entsprechenden Definitionen zum Beispiel:

DEFINE_LOGGER_DEVICE (log_main, LOGGER_LOG_MAIN, 64 * 1024) DEFINE_LOGGER_DEVICE (log_events, LOGGER_LOG_EVENTS, 256 * 1024) DEFINE_LOGGER_DEVICE (log_radio, LOGGER_LOG__OG_

Auch hier wird der Kilometerstand variieren. Einige Entwickler solcher ROMs werden den Verbrauch minimieren, um den Speicheraufwand zu verringern ...

t0mm13b
quelle