Benötigt der Zugriff auf Logcat Root?

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 logcat-Befehl in einem Terminal auf dem Telefon ausführen würde, würde das funktionieren?

Antworten (7)

Diese kostenlosen Apps im Market behaupten, dass sie Ihren Logcat anzeigen können, und erwähnen root nicht. Sie sollten nur ein paar Minuten brauchen, um sie auszuprobieren:

BEARBEITEN: Danke an @mente für die Erinnerung, dass Sie mit diesen Apps die vollständige Protokolldatei nur in älteren Versionen von Android anzeigen können. Android 4.1 brachte ein neues Sicherheitsmodell für Protokolldateien mit sich, 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 Root lesen kann, aber dies 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 aufruft, um alles zu senden (plus 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, als die das Lesen von Protokollen klassifiziert wird. Dadurch kann die App die Berechtigung anfordern, sie jedoch nicht bei der Installation erhalten. Sie können es jedoch nach der Installation mit einem Adb-Shell-Befehl erteilen . Irgendwann später erwarte ich eine Benutzeroberfläche im System, um dies zu tun, aber wir werden damit aufhören, um darauf zu achten, wie wir dies präsentieren.

Auszug aus einem Beitrag in Google Groups von Dianne Hackborn, Android Framework Engineer. Meine Betonung.

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 (aber keine Deinstallationen/Neuinstallationen) überstehen.

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

Sie müssen Ihr Telefon nicht rooten, um adb logcatmit dem Android SDK zu laufen, aber ich habe es gerade in meinem Terminal-Emulator getestet und ich musste root sein (benutzte den suBefehl – ​​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 ausführen.

Nein, Sie brauchen kein Root, um Logcat-Informationen zu erhalten.

Um dies zu tun, möchten Sie wahrscheinlich das Android SDK herunterladen und "adb logcat" ausführen, indem Sie das mit dem SDK gelieferte adb-Tool verwenden. Alternativ können Sie das ADT Eclipse-Plugin installieren und den praktischen Streaming-Logcat-Viewer verwenden.

Ich möchte dies vom Telefon aus tun, nicht von einem Remote-Computer mit dem SDK

Nein, Sie brauchen 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 Möglichkeiten 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
  • Mit Android SDK und läuftadb logcat

Die Terminal-App erlaubt Ihnen jedoch nicht, logcat auszuführen, und gibt Ihnen "Berechtigung verweigert". Ich bin mir nicht sicher warum.

Ja, auf Gingerbread ... aber das heutige Android erfordert Root.

Es scheint, dass Sie Logcat nicht vom 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 Permissions: Terminal Emulator hat einfach nicht genügend Berechtigungen, um das Protokoll des Geräts anzuzeigen. Das System sagt also, dass die Erlaubnis verweigert wurde.

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

Die Anwendung Android System Info hat die Fähigkeit, Protokollinformationen auf dem Bildschirm auszugeben, die, soweit ich das beurteilen kann, dieselben Protokollinformationen sind, die logcat ausspuckt.

Haben Sie einen Link zu dieser App, ich kann sie im Market nicht finden?
@GAThrawn Falls es dich noch interessiert: Links zur Homepage und zum Google Play Store .

Logcat benötigt kein Root. Simples - es ist ein De-facto-Standard auf breiter Front in Bezug auf verschiedene Android-Versionen und ist Teil von Android, unabhängig davon, ob Sie gerootet sind oder nicht, und ist ein Standardmittel zur Diagnose von Problemen wie zum Beispiel - Sie installieren eine App, die app force close, Sie beschweren sich beim Entwickler der besagten App, die Chancen sind ziemlich hoch, dass der Entwickler Sie fragen wird "Logcat senden", egal ob Sie gerootet sind oder nicht!

aLogCat ist eine Möglichkeit, die Informationen zu sammeln, mit der Option, sich im Webseiten-Layout oder im Klartext anzumelden. Denken Sie daran, dass sich die SD-Karte ziemlich schnell füllt, wenn Sie es so planen, dass es in einer bestimmten Häufigkeit, z. B. alle 15 Minuten, protokolliert wird.

Ein weiterer Aspekt, die Verwendung von Logcat, hängt vom Kernel ab, wie viel es speichern kann - in jedem Kernel, der vom ROM verwendet wird, der Quelle für die Protokollierung auf Kernelebene, wo es 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_RADIO, 64*1024) DEFINE_LOGGER_DEVICE(log_system, LOGGER_LOG_SYSTEM10, 64)

Auch hier wird die Laufleistung variieren, einige Entwickler solcher ROMs werden sich dafür entscheiden, den Verbrauch zu minimieren, um den Speicheraufwand zu reduzieren ...