Android linux log files

Where does Android store shutdown logs?

I know that the boot up log can be obtained by pulling out contents of kmsg or dmesg through ADB .
But I’m not aware of how to retrieve the shutdown logs in Android as there’s no /var folder in Android (place where most desktop linux distros generally store their shutdown logs). So how can I obtain the shutdown logs in Android?

5 Answers 5

Look in some locations such as these:

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

(This list isn’t strictly kernel logs, including framework and application logs too, which are also sometimes of interest)

Thanks for the reply Chris! I checked for the locations on my phone. I couldn’t find /proc/last_kmsg and /data/tombstones/. And an «ls» on /data/dontpanic returned nothing!! I had some luck in /data/system/dropbox/ as they contained files like SYSTEM_BOOT@915149630014.txt system_app_strictmode@915149633098.txt.gz They are having some APP level info. None of them had the info that we get from kmsg 🙁

You don’t have files like SYSTEM_LAST_KMSG@xxx.txt.gz in /data/system/dropbox? It may be that isn’t a standard feature. unfortunately.

No Chris! There aren’t any such LAST_KMSG kind of files!! Anyways thanks a lot for your help! Do reply back if you find any other clues, I am still behind the shutdown logs in android!!

One work around I found for collecting shutdown logs in Android is to run adb pull /proc/kmsg C:\Logs.txt on the host PC and then switch off the device. You will get the logs till the USB communication between the host and the device snaps! I know this is only one case out of the numerous shutdown scenarios but I haven’t found satisfactory answers for other cases!

Unfortunately you just don’t know when your damn phone is going to shut down on its own like my phone is doing. It thinks 35% of battery is too low and so shuts itself down even after restarting it. Sometimes it doesn’t until it reaches 10%. God damn Android

TL;DR:
Run command through adb that copies logcat and proc/kmsg to a file and keep it running even when adb disconnects with nohup , disown or setsid . Probably needs busybox, needs root and adb root, too.
setsid cat proc/kmsg > /sdcard/kmsg.txt &
and
logcat -v long -f /sdcard/logcat.txt (somehow only works without setsid )

Or add normal copy commands to some startup script.
/TL;DR

You can constantly copy proc/kmsg and logcat to a file on your android device or a microSD card to get the logs even after adb disconnects.

Читайте также:  Linux для ноутбуков huawei

You need root access and adb root access for this to work. For the latter, use the setting in the developer options if you have a custom rom or the adbd insecure app.

After using adb shell to get your android shell, type su to get superuser access.

Then you not only need to put an ampersand ( & ) after the command but also make sure that the command keeps running after adb disconnects. That is done by nohup , disown or setsid (see here for usage).
If it doesn’t work because you don’t have these commands, you need to install busybox.
See my question here.

See here for how to get logcat and kernel logs and print it to some file or merge it. See developer.android.com/tools/help/logcat.html for parameters for the logcat command.

In the end you could have a command like setsid cat proc/kmsg > /sdcard/kmsg.txt & for the kernel messages.

For logcat you could have one of the following commands: logcat -v long -f /sdcard/logcat.txt or logcat -v long > /sdcard/logcat.txt

I don’t know why, but sometimes it didn’t work with setsid and just didn’t copy continuously but stopped shortly after executing the command. In these situations, it also showed up when entering jobs , which it didn’t otherwise. Then it just worked without setsid , it stayed alive after disconnecting and reconnecting. I guess you must just try when the file does keep getting larger. If someone figured out why it is behaving like it is. let me know and I’ll edit the answer.

Источник

Android system log file location

In Ubuntu, there is a /var/log/syslog file. What is the equavalent file of the ubuntus syslog in android? I have a rooted Android phone.

3 Answers 3

There are a few ways to view the System-Log — but finding the location of the log files is considerabaly harder. I will list 3 options that will allow you to view the logs (either on a device or computer), but I do not know where they are kept. I may be wrong, but from what I have gather, the Android System does not keep a «Log File». Rather, there is a buffer that contains the «Log» (again I may be wrong on this)!

You first option is to install an app from the play-store called aLogCat . This app is very useful for both viewing and sending logs from your device. It can be setup to Email you the «Log Files» from your device. This method works best with root.

The second method works by using the Android SDK. Connect your device (with USB-Debugging enabled) and, at a Terminal enter the following:

Читайте также:  Linux command install directory

The -d option tells adb to copy the entire File Log from the Android System. Because you seem to know how UNIX Systems work, I won’t explain the rest of the command.

A third option (if you are rooted, that is) is to install a Terminal Emulator on your Android device. Open the Terminal Emulator and enter the command:

$ logcat -d > /sdcard/my-log-file.txt

This will do the same as above (except you don’t need a computer, and the file saves on your device/SDcard. Feel free to change the » /sdcard/my-log-file.txt » part to anything you like, but I strongly recommend you save it to either your external or internal storage — so in short: Save it to a location you can accsess without # (superuser) permission!

Источник

Android linux log files

В данной заметке будут рассмотрены средства реализации автоматического тестирования. Рассматриваются только инструменты, входящие в Android SDK или распространяющиеся под Open Source лицензией.

Концепция автоматического тестирования

Задача — с наибольшей точностью автоматизировать действия, которые выполняет тестировщик. Давайте их рассмотрим. В наличии есть несколько приложений и несколько Android устройств. Для каждого приложения и каждого устройства выполняются следующие шаги:

  1. Установка приложения на устройство
  2. Запуск приложения
  3. Тестирование приложения выбранным способом
  4. Удаление приложения
  5. Сброс состояния устройства

На каждом шаге нужно собрать и проанализировать данные, например логи и скриншоты. Затем на основе этих данных сформировать результат тестирования.

Далее рассматриваются средства, позволяющие автоматизировать перечисленные шаги.

Управление Android устройствами

Для начала нужно выделить компьютер на котором будет запускаться автоматическое тестирование и настроить на нем Android SDK . Примеры приводятся для компьютера с установленной ОС Linux.

На всех тестируемых устройствах нужно отключить экран блокировки и максимально увеличить время ожидания. Для некоторых методов тестирования нужно отключить смену ориентации экрана.

В Android SDK имеются две утилиты для управления устройствами: adb и MonkeyRunner.

Я постараюсь подробно описать автоматизацию действий, использующихся при тестировании. Тем, кто знаком с ADB и MonkeyRunner имеет смысл сразу переходить к разделу « Способы автоматизированного тестирования ».

Управление с помощью утилиты ADB

ADB (Android Debug Bridge) – утилита для управления Android устройствами из командной строки. Официальная документация по ADB: developer.android.com/tools/help/adb.html

Утилита adb находится в директории /platform-tools/ . Путь к данной директории рекомендуется прописать в переменной окружения PATH .

Устанавливаем и настраиваем Android SDK, подключаем к компьютеру Android устройства и выполняем команду:

Команда выдаст список всех подключенных устройств. Если список устройств не пуст, значит ADB настроен и работает.

Работа с несколькими устройствами

Чтобы указать ADB с каким устройством нужно работать, следует прописать серийный номер устройства после ключа -s :

Серийный номер устройства можно посмотреть командой adb devices . Ключ -s позволяет работать одновременно с несколькими подключенными устройствами. В дальнейшем ключ -s в командах я указывать не буду.

Читайте также:  Installing packages in debian linux

Открыть консоль на устройстве:

Запустить команду на устройстве:

В Android присутствуют многие стандартные утилиты Linux: ls, cat, dmesg,…

Установить приложение из apk файла:

Название package можно получить из apk файла командой:

aapt dump badging example.apk | grep «package»

Загрузить файл с устройства на компьютер:

Загрузить файл с компьютера на устройство:

В большинство директорий на устройстве разрешен доступ только на чтение. Доступ на запись разрешен в директорию /sdcard (из нее нельзя запускать программы) и /data/local/tmp/ .

Запускает указанную activity. Название activity, которая запускается при выборе приложения в меню можно получить из apk файла командой:

aapt dump badging example.apk | grep «launchable-activity»

Чтение логов в Android производится утилитой logcat.

Считать логи с устройства (блокируется до нажатия Ctrl-C):

Очистить буфер логов на устройстве:

Считать буфер логов на устройстве (выдает текущее содержимое буфера, не блокируется):

adb logcat -c # очищаем буфер логов

adb logcat -d > file.log # сохраняем текущее содержимое буфера логов в file.log

Снятие скриншотов с помощью утилиты screencap

Утилита screencap сохраняет текущее содержимое экрана в графический файл:

adb shell screencap /sdcard/screen.png

adb pull /sdcard/screen.png screen.png

adb shell rm /sdcard/screen.png

Утилита screencap имеется на телефонах с Android 4.x и выше. На предыдущих версиях Android снятие скриншотов можно производить с помощью MonkeyRunner.

Пример BASH скрипта для тестирования приложения c помощью ADB

# Пример BASH скрипта для автоматического тестирования приложения c помощью ADB

# 1. Устанавливает приложение

# 3. Тестирует приложение с помощью monkey

# На каждом шаге собираются и сохраняются log-файлы.

# 1. Устанавливаем приложение

adb uninstall $PACKAGE # удаляем приложение

adb logcat -c # очищаем буфер логов

adb install $APK # устанавливаем приложение

adb logcat -d > log/install.log # записываем логи установки приложения

adb shell am start -n $PACKAGE/$ACTIVITY # запускаем приложение

sleep 10 # ожидаем 10 сек чтобы приложение полностью загрузилось

adb logcat -d > log/start.log

# тестируем приложение с помощью monkey

adb shell monkey —pct-touch 70 -p $PACKAGE -v 1000 —throttle 500

adb logcat -d > log/uninstall.log

  • Логирование в Android приложениях с автоматическим формированием имени места вызова логирующей функции
  • Как отлаживаться в Android
  • Как создать Android-сервис с использованием Qt
  • Анализ памяти для Android приложений с помощью DDMS
  • Работа с утилитой ADB: основные команды, чтение логов, создание скриншотов
  • Как подключить внутренний диск Android в режиме записи (каталог /system)
  • Автоматизация тестирования Android-приложений с помощью MonkeyRunner
  • Тестирование Android-приложений с помощью Robotion
  • В чем отличия версий SDK в Android
  • Как перезапускать сервис в Android, если его работа по какой-то причине была завершена
  • Энергоэффективный способ определять местоположение в Android
  • Первичная настройка Android Studio в Linux на примере версии SDk 3.2.1

Источник

Оцените статью
Adblock
detector