Wo speichert Android Shutdown-Protokolle?

8

Ich weiß, dass das Boot-Up-Protokoll durch Herausziehen von Inhalten von kmsg oder dmesg bis ADB erhalten werden kann.
Aber ich weiß nicht, wie man die Shutdown-Logs in Android abruft, da es in Android keinen /var -Ordner gibt (wo die meisten Desktop-Linux-Distributionen normalerweise ihre Shutdown-Logs speichern).

Wie kann ich die Shutdown-Protokolle in Android erhalten?

    
Pavan Manjunath 20.05.2011, 11:55
quelle

3 Antworten

2

Eine Arbeit, die ich für das Sammeln von Shutdown-Logs in Android gefunden habe, ist das Ausführen von adb pull /proc/kmsg C:\Logs.txt auf dem Host-PC und das Ausschalten des Geräts. Sie erhalten die Protokolle, bis die USB-Kommunikation zwischen dem Host und dem Gerät einrastet! Ich weiß, dass dies nur ein Fall aus den zahlreichen Shutdown-Szenarien ist, aber ich habe keine befriedigenden Antworten für andere Fälle gefunden!

    
Pavan Manjunath 04.11.2011, 11:31
quelle
5

Suchen Sie an einigen Stellen nach:

%Vor%

(Diese Liste ist nicht streng Kernel-Protokolle, einschließlich Framework und Anwendungsprotokolle auch, die manchmal auch von Interesse sind)

    
Chris Stratton 20.05.2011 15:26
quelle
2

TL; DR :
Führen Sie den Befehl über adb aus, der logcat und proc / kmsg in eine Datei kopiert und sie weiter ausführt, auch wenn adb die Verbindung mit nohup , disown oder setsid trennt. Wahrscheinlich braucht busybox, braucht auch root und adb root.
setsid cat proc/kmsg > /sdcard/kmsg.txt &
und
logcat -v long -f /sdcard/logcat.txt (funktioniert nur ohne setsid )

Sie können auch normale Kopierbefehle in ein Startskript einfügen.
/ TL; DR

Sie können proc/kmsg und logcat ständig in eine Datei auf Ihrem Android-Gerät oder einer microSD-Karte kopieren, um die Protokolle auch nach dem Trennen der Verbindung zu erhalten.

Sie benötigen root access und adb root access, damit dies funktioniert. Für Letzteres verwenden Sie die Einstellung in den Entwickleroptionen, wenn Sie eine benutzerdefinierte ROM oder die unsichere App .

Nachdem Sie adb shell verwendet haben, um Ihre Android-Shell zu erhalten, geben Sie su ein, um Superuser-Zugriff zu erhalten.

Dann müssen Sie nicht nur ein kaufmännisches Und-Zeichen ( & ) hinter den Befehl setzen, sondern auch sicherstellen, dass der Befehl weiterläuft, nachdem die adb-Verbindung getrennt wurde. Dies geschieht durch nohup , disown oder setsid (siehe hier zur Nutzung).
Wenn es nicht funktioniert, weil Sie diese Befehle nicht haben, müssen Sie busybox .
Siehe meine Frage hier .

Siehe hier , um Logcat- und Kernel-Logs zu erhalten und auszudrucken zu einer Datei oder füge sie zusammen. Die Parameter für den logcat-Befehl 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 & für die Kernel-Nachrichten haben.

Für logcat könnten Sie einen der folgenden Befehle haben: logcat -v long -f /sdcard/logcat.txt oder logcat -v long > /sdcard/logcat.txt

Ich weiß nicht warum, aber manchmal funktionierte es nicht mit setsid und es wurde einfach nicht kontinuierlich kopiert, sondern kurz nach Ausführung des Befehls gestoppt. In diesen Situationen erschien es auch bei der Eingabe von jobs , was sonst nicht der Fall war. Dann funktionierte es einfach ohne setsid , es blieb nach dem Trennen und Wiederverbinden am Leben. Ich schätze, du musst 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.

Das Hinzufügen der Befehle zu einem Startskript könnte auch für einige eine Lösung darstellen.

Hoffe, das hilft.

Kampfkeks

    
fightcookie 24.11.2014 17:58
quelle