Suchen Sie an einigen Orten wie diesen:
/proc/last_kmsg
/data/tombstones/
/data/dontpanic/
/data/system/dropbox/
(Diese Liste enthält nicht unbedingt Kernel-Protokolle, einschließlich Framework- und Anwendungsprotokolle, die manchmal auch von Interesse sind)
TL;DR :
Führen Sie den Befehl über adb aus, der logcat und proc/kmsg in eine Datei kopiert, und halten Sie ihn am Laufen, auch wenn adb die Verbindung zu nohup
trennt , disown
oder setsid
. Benötigt wahrscheinlich busybox, braucht auch root und adb root.
setsid cat proc/kmsg > /sdcard/kmsg.txt &
und
logcat -v long -f /sdcard/logcat.txt
(funktioniert irgendwie nur ohne setsid
)
Oder fügen Sie einem Startskript normale Kopierbefehle hinzu.
/TL;DR
Sie können proc/kmsg
ständig kopieren und logcat
in eine Datei auf Ihrem Android-Gerät oder einer microSD-Karte, um die Protokolle auch nach der Trennung von adb abzurufen.
Sie benötigen Root-Zugriff und Adb-Root-Zugriff, damit dies funktioniert. Verwenden Sie für letzteres die Einstellung in den Entwickleroptionen, wenn Sie ein benutzerdefiniertes Rom oder die adbd-unsichere App haben.
Nach der Verwendung von adb shell
Um Ihre Android-Shell zu erhalten, geben Sie su
ein um Superuser-Zugriff zu erhalten.
Dann brauchen Sie nicht nur ein kaufmännisches Und (&
) nach dem Befehl, aber stellen Sie auch sicher, dass der Befehl weiter ausgeführt wird, nachdem adb die Verbindung getrennt hat. Das erledigt nohup
, disown
oder setsid
(siehe hier für die Verwendung).
Wenn es nicht funktioniert, weil Sie diese Befehle nicht haben, müssen Sie busybox installieren.
Siehe meine Frage hier.
Hier erfahren Sie, wie Sie Logcat- und Kernel-Protokolle erhalten und in eine Datei drucken oder zusammenführen. Parameter für den Befehl logcat finden Sie unter developer.android.com/tools/help/logcat.html.
Am Ende könnten Sie einen Befehl wie setsid cat proc/kmsg > /sdcard/kmsg.txt &
haben für die Kernel-Meldungen.
Für logcat könnten Sie einen der folgenden Befehle verwenden:logcat -v long -f /sdcard/logcat.txt
oder logcat -v long > /sdcard/logcat.txt
Ich weiß nicht warum, aber manchmal hat es mit setsid
nicht funktioniert und kopierte einfach nicht kontinuierlich, sondern stoppte kurz nach der Ausführung des Befehls. In diesen Situationen wurde es auch bei der Eingabe von jobs
angezeigt , was es sonst nicht tat. Dann funktionierte es einfach ohne setsid
, blieb es nach dem Trennen und erneuten Verbinden am Leben. Ich denke, Sie müssen es einfach versuchen, wenn die Datei immer größer wird. Wenn jemand herausgefunden hat, warum es sich so verhält, wie es ist... lass es mich wissen und ich werde die Antwort bearbeiten.
Wahrscheinlich könnte das Hinzufügen der Befehle zu einem Startskript auch für einige eine Lösung sein.
Hoffe das hilft.
Kampfcookie
Eine Problemumgehung, die ich zum Sammeln von Protokollen zum Herunterfahren in Android gefunden habe, besteht darin, adb pull /proc/kmsg C:\Logs.txt
auszuführen auf dem Host-PC und schalten Sie dann das Gerät aus. Sie erhalten die Protokolle, bis die USB-Kommunikation zwischen dem Host und dem Gerät abbricht! Ich weiß, dass dies nur ein Fall von zahlreichen Shutdown-Szenarien ist, aber ich habe keine zufriedenstellenden Antworten für andere Fälle gefunden!