GNU/Linux >> Znalost Linux >  >> Linux

Kde Android ukládá protokoly o vypnutí?

Podívejte se na některá místa, jako jsou tato:

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

(Tento seznam nejsou striktně protokoly jádra, včetně protokolů frameworku a aplikací, které jsou také někdy zajímavé)


TL;DR :
Spusťte příkaz přes adb, který zkopíruje logcat a proc/kmsg do souboru a udrží jej spuštěný, i když se adb odpojí pomocí nohup , disown nebo setsid . Pravděpodobně potřebuje busybox, potřebuje také root a adb root.
setsid cat proc/kmsg > /sdcard/kmsg.txt &
a
logcat -v long -f /sdcard/logcat.txt (nějak funguje pouze bez setsid )

Nebo přidat normální kopírovací příkazy do nějakého spouštěcího skriptu.
/TL;DR

proc/kmsg můžete neustále kopírovat a logcat do souboru v zařízení Android nebo na kartu microSD, abyste získali protokoly i po odpojení adb.

Aby to fungovalo, potřebujete přístup root a přístup root adb. V druhém případě použijte nastavení v možnostech vývojáře, pokud máte vlastní rom nebo nezabezpečenou aplikaci adbd.

Po použití adb shell Chcete-li získat své prostředí Android, zadejte su získat přístup superuživatele.

Pak nemusíte pouze vložit ampersand (& ) po příkazu, ale také se ujistěte, že příkaz běží i po odpojení adb. To se provádí pomocí nohup , disown nebo setsid (použití viz zde).
Pokud to nefunguje, protože nemáte tyto příkazy, musíte nainstalovat busybox.
Viz můj dotaz zde.

Zde se dozvíte, jak získat logcat a protokoly jádra a vytisknout je do nějakého souboru nebo je sloučit. Parametry pro příkaz logcat najdete na stránce developer.android.com/tools/help/logcat.html.

Nakonec můžete mít příkaz jako setsid cat proc/kmsg > /sdcard/kmsg.txt & pro zprávy jádra.

Pro logcat můžete mít jeden z následujících příkazů:logcat -v long -f /sdcard/logcat.txt nebo logcat -v long > /sdcard/logcat.txt

Nevím proč, ale někdy to s setsid nefungovalo a prostě nekopíroval nepřetržitě, ale zastavil se krátce po provedení příkazu. V těchto situacích se také zobrazil při zadání jobs , což jinak nedělalo. Pak to fungovalo bez setsid , zůstal naživu po odpojení a opětovném připojení. Myslím, že to musíte zkusit, když se soubor stále zvětšuje. Pokud někdo přišel na to, proč se to tak chová... dejte mi vědět a já odpověď upravím.

Pravděpodobně by pro některé mohlo být řešením i přidání příkazů do spouštěcího skriptu.

Doufám, že to pomůže.

fightcookie


Jedno řešení, které jsem našel pro shromažďování protokolů o vypnutí v systému Android, je spuštění adb pull /proc/kmsg C:\Logs.txt na hostitelském počítači a poté zařízení vypněte. Budete dostávat protokoly, dokud USB komunikace mezi hostitelem a zařízením nezapadne! Vím, že toto je pouze jeden případ z mnoha scénářů odstavení, ale nenašel jsem uspokojivé odpovědi pro ostatní případy!


Linux
  1. Debian – kde Debian ukládá historii síťového připojení?

  2. Kde se soubory vína ukládají?

  3. Kde Eclipse hledá eclipse.ini pod Linuxem

  1. Kde linux ukládá můj syslog?

  2. Zařízení Android Debug Bridge (adb) – žádná oprávnění

  3. běžící zařízení adb zobrazující neautorizované zařízení?

  1. Kam jdou metadata, když uložíte soubor?

  2. Kde najít soubory protokolu přihlášení SSH na centos

  3. Odkud pochází cesta k 169.254.0.0?