Как вытащить скрытые данные и телеметрию из Android через чистый ADB

16 авг 2026

Репозиторий давно не обновлялся

Последнее обновление было 6 месяцев назад.

481
95
18
6 месяцев

Android Forensics Logo

Когда ко мне в руки попадает тестовый девайс с плавающим багом или подозрительным поведением, стандартного окна Android Studio Logcat часто не хватает. Хочется быстро снять слепок системы: какие учетные записи привязаны, сколько раз телефон перезагружался, что висит в фоновых службах и как расходовался аккумулятор.

Большинство людей в таких случаях сразу ищут рут-права или качают тяжелые GUI-утилиты. На самом деле стандартный Android Debug Bridge (ADB) умеет отдавать огромные массивы данных без стороннего софта. Проект AndroidForensics от разработчика Douglas Fresh Habian как раз собирает все эти команды в единый справочник и два готовых Bash-скрипта.

Что внутри репозитория

По своей сути репозиторий представляет собой шпаргалку и набор скриптов автоматизации для форензики и глубокой диагностики Android-устройств. Проект ориентирован на работу с девайсами без рут-прав, хотя часть низкоуровневых команд раскроется лучше на инженерных прошивках.

В репозитории лежат два основных исполняемых файла:

Реклама
  1. extract.sh — скрипт первичного триажа и сбора пользовательских данных. Он вытягивает свойства системы, сетевую конфигурацию, списки установленных пакетов, активные сервисы, а также пытается прочитать контент-провайдеры.
  2. dumpsys.sh — сборщик системной телеметрии. Скрипт опрашивает более двух десятков внутренних подсистем Android через утилиту dumpsys и раскладывает логи по отдельным текстовым файлам.

Каждый запуск создает отдельную папку с временным штампом, куда аккуратно складываются результаты работы каждой отдельной команды. Это избавляет от каши в терминале и помогает сразу зафиксировать состояние системы на конкретную минуту.

Полезные команды, которые стоит утащить в свой арсенал

В README собраны как базовые вызовы getprop, так и неочевидные однострочники с парсингом вывода через grep, sed и awk.

Сбор данных об аккаунтах и почтовых адресах

Через менеджер аккаунтов можно быстро узнать, к каким сервисам привязан телефон, и собрать все зарегистрированные email-адреса:

adb shell dumpsys account | grep -i com.*$ -o | cut -d' ' -f1 | cut -d} -f1 | grep -v com$

Для поиска адресов электронной почты автор предлагает регулярку прямо по дампу системы:

adb shell dumpsys | grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b"

Команда полезна, когда нужно быстро проверить, не забыл ли предыдущий тестировщик разлогиниться из рабочих аккаунтов на общем тестовом стенде.

Счетчик перезагрузок и системный таймлайн

Иногда баг воспроизводится только после холодного рестарта, но пользователь утверждает, что телефон не выключался. Проверить это можно через глобальные настройки:

adb shell settings list global | grep "boot_count=" | cut -d= -f2 | head -n 1 | xargs echo "Booted:" | sed 's/$/ times/g'

А если нужно понять общую картину расхода ресурсов и активности приложений во времени, на помощь приходят команды статистики:

adb shell dumpsys usagestats
adb shell dumpsys batterystats
adb shell settings list system

Доступ к контент-провайдерам

Для извлечения контактов, истории вызовов и сообщений скрипт делает прямые запросы к системным URI:

# Список контактов и номеров телефонов
adb shell content query --uri content://contacts/phones/ --projection display_name:number

# Журнал звонков
adb shell content query --uri content://call_log/calls

# База входящих и исходящих SMS
adb shell content query --uri content://sms/

Тут кроется важное техническое ограничение. Начиная с Android 11 Google существенно ужесточил модель безопасности. На свежих версиях ОС прямой опрос content://sms/ или контактов через ADB без специальных разрешений или рута завершится ошибкой доступа. Однако на старых тестовых трубках (Android 9–10) или на кастомных девелоперских сборках эти команды продолжают стабильно работать.

Как устроена автоматизация

Если запускать команды руками долго, скрипты автоматизируют рутину. Для старта достаточно склонировать репозиторий и выдать права на исполнение:

git clone https://github.com/DouglasFreshHabian/AndroidForensics.git
cd AndroidForensics
chmod +x extract.sh dumpsys.sh

При запу ./extract.sh скрипт сначала проверяет наличие установленного adb, пингует подключенные устройства и стартует сбор.

Во время работы extract.sh выполняет несколько параллельных задач:

  • Создает директорию вида ADB_Report_20251025_163200.
  • Опрашивает свойства девайса (ro.product.model, ro.build.version.release, ro.serialno).
  • Снимает срез последних строк системного лога через adb logcat -d.
  • В фоновом режиме запускает генерацию полного отчета adb bugreport, не блокируя терминал.
  • По завершении выводит цветную сводную таблицу с размерами всех сохраненных файлов.

Второй скрипт, dumpsys.sh, ориентирован исключительно на диагностику системных служб. Он последовательно опрашивает meminfo, wifi, power, location, sensorservice, netstats и еще 15 сервисов, сохраняя каждый вывод в wifi.txt, meminfo.txt и так далее. Если служба недоступна, скрипт отмечает ее как упавшую и продолжает работу.

Где это пригодится на практике

У проекта есть несколько очевидных областей применения:

  • QA и тестирование мобильных приложений. Скрипт dumpsys.sh помогает за пару секунд собрать полный контекст состояния девайса перед заведением сложного бага на утечку памяти или энергопотребление.
  • Аудит устройств перед передачей. Если парк тестовых девайсов ходит по рукам команды, полезно быстро прогонять скрипт очистки и проверки, чтобы убедиться, что на смартфоне не осталось чужих учеток или тяжелых фоновых процессов.
  • Первичный триаж инцидентов. Специалистам по безопасности скрипты дают быстрый способ снять дамп состояния смартфона без установки сомнительных APK и без внесения лишних изменений в файловую систему.

AndroidForensics не пытается изобрести велосипед или заменить полноценные криминалистические пакеты вроде Autopsy. Сила репозитория в другом — он берет стандартные утилиты командной строки Android, упаковывает их в читаемый вид и экономит время на ручном написании bash-пайплайнов.

Если вы регулярно подключаете Android-смартфоны к компьютеру для отладки, тестирования или анализа безопасности, добавьте эти скрипты себе в локальный инструментарий. Они запускаются за секунды и часто находят то, что ускользает при беглом взгляде через GUI.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.