Ликбез
(к счастью, только на не современных версиях Android). Троян может
парсить лог и искать там интересные записи. Логгирование — процесс, в общем-то, бесконечный.
Потому его нужно вручную прерывать при воспроизведении проблемы. Очень хорошо то, что логи хранятся в буфере до его заполнения.
Если баг воспроизвёлся, а устройство не было подключено, то можно сразу подключить его и перенаправить лог в файл. Информация
соберётся не с момента выполнения команды, а ещё и за последние несколько минут (или даже часов!). Потому у logcat есть полезный ключ -d, который выводит содержимое буфера, и выполнение
команды завершается, ждать ничего не нужно. К сожалению простое выполнение ADB logcat даёт
не так много информации, как хотелось бы. Нет PIDов процессов,
например, не тот уровень логгирования. Потому, если хотите собрать
максимально полезный лог, используйте подобные команды:
adb logcat -v threadtime *V > file.txt
adb logcat -f /sdcard/file.txt -v
threadtime *V
Они обе будут сохранять одинаковый
лог, только первая — на вашем компьютере (так что после > напишите
полный путь к файлу), а вторая — на
карте памяти. Вторая полезна, если
вы подключены к устройству через,
скажем, SSH.
adb bugreport. Выводит сборную
информацию от команд dumpsys,
dumpstateи logcat. Полезно, если
устройство не ваше, вам его принесли со словами «вот, только что
опять». Вы собираете эту информацию и возвращаете устройство
владельцу.
Работа с данными
Вообще работа с файловой системой устройства через ADB реализована довольно нудно и проще установить плагин к файловому менеджеру, который даст возможность
работать с устройством так, как будто это флешка подключена. Но для
автоматизации или быстрых операций командная строка предпочтительнее. Здесь всего три нужных
команды:
adb install «file.apk». Команда
install устанавливает apk на устройство и возвращает Success, если всё нормально и текст ошибки, если что-то не так. Чаще всего
«не так» бывают «приложение уже
установлено», и значит нужно либо его удалить, либо использовать
ключ -r (install -r), чтобы сделать
upgrade (или даже -d, чтобы сделать даунгрейд; но такое не нужно
почти никогда) ; «невалидная цифровая подпись» — значит приложе41