GNU/Linux >> Tutoriels Linux >  >> Linux

Où Android stocke-t-il les journaux d'arrêt ?

Regardez dans certains endroits comme ceux-ci :

/proc/last_kmsg
/data/tombstones/
/data/dontpanic/
/data/system/dropbox/

(Cette liste ne concerne pas strictement les journaux du noyau, y compris les journaux du framework et des applications, qui sont également parfois intéressants)


TL;DR :
Exécutez la commande via adb qui copie logcat et proc/kmsg dans un fichier et continuez à l'exécuter même lorsque adb se déconnecte avec nohup , disown ou setsid . A probablement besoin de busybox, a également besoin de root et adb root.
setsid cat proc/kmsg > /sdcard/kmsg.txt &
et
logcat -v long -f /sdcard/logcat.txt (en quelque sorte ne fonctionne que sans setsid )

Ou ajoutez des commandes de copie normales à un script de démarrage.
/TL;DR

Vous pouvez constamment copier proc/kmsg et logcat dans un fichier sur votre appareil Android ou sur une carte microSD pour obtenir les journaux même après la déconnexion d'adb.

Vous avez besoin d'un accès root et d'un accès root adb pour que cela fonctionne. Pour ce dernier, utilisez le paramètre dans les options du développeur si vous avez une rom personnalisée ou l'application non sécurisée adbd.

Après avoir utilisé adb shell pour obtenir votre shell Android, tapez su pour obtenir un accès superutilisateur.

Ensuite, vous devez non seulement mettre une esperluette (& ) après la commande, mais assurez-vous également que la commande continue de s'exécuter après la déconnexion d'adb. Cela est fait par nohup , disown ou setsid (voir ici pour l'utilisation).
Si cela ne fonctionne pas parce que vous n'avez pas ces commandes, vous devez installer busybox.
Voir ma question ici.

Voir ici pour savoir comment obtenir les journaux logcat et noyau et les imprimer dans un fichier ou les fusionner. Voir developer.android.com/tools/help/logcat.html pour les paramètres de la commande logcat.

À la fin, vous pourriez avoir une commande comme setsid cat proc/kmsg > /sdcard/kmsg.txt & pour les messages du noyau.

Pour logcat, vous pourriez avoir l'une des commandes suivantes :logcat -v long -f /sdcard/logcat.txt ou logcat -v long > /sdcard/logcat.txt

Je ne sais pas pourquoi, mais parfois cela ne fonctionnait pas avec setsid et n'a tout simplement pas copié en continu mais s'est arrêté peu de temps après l'exécution de la commande. Dans ces situations, il s'affichait également lors de la saisie de jobs , ce qui n'était pas le cas autrement. Ensuite, cela a simplement fonctionné sans setsid , il est resté actif après déconnexion et reconnexion. Je suppose que vous devez simplement essayer lorsque le fichier ne cesse de grossir. Si quelqu'un comprend pourquoi il se comporte comme ça... faites le moi savoir et je modifierai la réponse.

L'ajout des commandes à un script de démarrage pourrait également être une solution pour certains.

J'espère que cela vous aidera.

combat le cookie


Une solution que j'ai trouvée pour collecter les journaux d'arrêt dans Android consiste à exécuter adb pull /proc/kmsg C:\Logs.txt sur le PC hôte, puis éteignez l'appareil. Vous obtiendrez les journaux jusqu'à ce que la communication USB entre l'hôte et l'appareil s'enclenche ! Je sais que ce n'est qu'un cas parmi les nombreux scénarios d'arrêt, mais je n'ai pas trouvé de réponses satisfaisantes pour les autres cas !


Linux
  1. Comment Gcc sait-il où Boost est installé ?

  2. Debian – Où Debian stocke-t-il l'historique de connectivité réseau ?

  3. Où Wine stocke-t-il les fichiers ?

  4. Où Eclipse recherche-t-il eclipse.ini sous Linux

  5. l'émulateur android ne démarre pas, avd

Que sont les journaux Linux et où les trouver

Comment installer ADB et Fastboot sur Ubuntu 20.04, 18.04, 21.04

Où Linux stocke-t-il mon syslog ?

exécutant des appareils adb montrant un appareil non autorisé ?

Où vont les métadonnées lorsque vous enregistrez un fichier ?

D'où vient la route vers 169.254.0.0 ?