Без цих команд не обійтись кожному, хто тестує і налагоджує смартфони на базі операційної системи Android в середовищі Linux. Знання ADB і FASTBOOT є основою в обслуговуванні мобільних пристроїв.
Що таке ADB?

ADB – це абревіатура від Android Debugging Bridge (Міст Налагодження Android), утиліта командого рядка для тестування і налагодження Android-пристроїв з допомогою ПК, один із компонентів пакету Android Software Development Kit (SDK). Працює за принципом “клієнт-сервер”.
Android Debugging Bridge дозволяє:
- Віддалено керувати пристроями Android з допомогою ПК;
- Переглядати системні журнали Android, збирати програмну і апаратну інформацію, виявляти помилки, аналізувати процеси та події, формувати звіти;
- Працювати з даними, виконувати операції копіювання, редагування, переміщення, видалення і т.д.;
- Керувати додатками, встановлювати apk-застосунки, оновлювати, вилучати;
- Проводити операції з накопичувачем, форматувати розділи, очищати кеш;
- Прошивати, модифікувати, оновлювати компоненти операційної системи Android;
- Встановлювати і запускати різноманітні скрипти, віддалено виконувати команди;
- Керувати обліковими записами і мережевими параметрами;
- Керувати безпекою мобільного пристрою і Android.
В Linux ADB можна встановити однією командою: sudo apt install adb
Повний список команд ADB

adb help– загальна довідка по ADB;adb version– показати версію Android Debug Bridge;adb devices– список підключених до ПК по USB мобільних пристроїв;adb devices -l– деталізований список підключених пристроїв;adb -s XXXXX– запустити команду з вибором конкретного мобільного пристрою, де ‘XXXXX’ це ідентифікатор пристрою з adb devices;adb start-server– примусово запустити сервер ADB;adb kill-server– примусово зупинити сервер ADB;adb bugreport– створення zip-архіву з повним дампом системних журналів, процесів, помилок, характеристик мобільного пристрою;adb -s XXXX bugreport– створення звіту для конкретного мобільного пристрою за вказаним ідентифікатором ‘XXXX’;adb logcat– перегляд усіх логів мобільного пристрою в режимі реальному часу;adb logcat -d– вивід останніх записів логу;adb logcat -d > file.log– зберегти в файл всі останні записи логу;adb logcat >> file.log– зберігати в лог усі записи логу в реальному часі (динамічне наповнення);adb logcat '*:E'– вивід логів з помилками в реальному часі. Можна також задати інші параметри: V — Verbose, D — Debug, I — Info, W — Warn, E — Error, F — Fatal, S — Silent.adb logcat -v color– підсвітка кольором різних типів записів логу;adb logcat -v brief– вивід логів в реальному часі у форматі PID;adb logcat '*:E' -v color | grep appname.app– пошук записів логу за вказаним значенням з допомогою команди grep;adb logcat '*:V'– фільтрувати записи логу за приорітетом;adb logcat –b events– переглянути системні події;adb logcat –help– детальна довідка по logcat;adb shell– запуск оболонки командного рядка ОС Android безпосередньо на самому пристрої;adb shell ps– вивести активні процеси в ОС Android;adb shell top– вивести деталізовану таблицю всіх процесів із вказаним споживанням пам’яті та PID;adb shell getprop– показує значення (values) усіх сервісів в системі;adb shell getprop -T– показує тип усіх сервісів (string/integer);adb shell dumpsys– зробити дамп усіх сервісів;adb shell dumpsys -l– вивести список сервісів, які доступні для дампу;adb shell dumpsys battery– зробити дамп батареї пристрою;adb shell netstat– показати інформацію по мережевим портам і інтерфейсам;adb shell netstat -r– показати таблицю адрес маршрутизації (роутинг);adb shell netstat -a– показати таблицю сокетів;adb shell netstat -l– показати сокети, які прослуховує сервер;adb shell netstat -t– показати TCP-сокети;adb shell netstat -u– показати UDP-сокети;adb shell netstat -p– вивести PID сокетів;adb shell ifconfig– вивести список активних мережевих пристроїв та інтерфейсів;adb shell ip addr show wlan0– показати IP-адресу вказаного мережевого інтерфейсу;adb shell ip route– показати маршрутизацію IP-адреси поточного мережевого інтерфейсу;adb shell ip neighbour– показати ARP-таблицю;adb tcpip 5555– встановлення TCP/IP з’єднання на вказаному порту;adb connect 192.168.0.100– підключення до пристрою із зазначеною локальною IP-адресою (disconnect – відключення);adb shell am force-stop android.app– примусово зупинити зазначений додаток;adb shell pm list packages– перегляд встановлених сервісів на мобільному пристрої;adb shell pm list packages -f– показати усі встановлені сервіси та apk-файли до них;adb shell pm path com.android.chrome– вивести шлях розташування вказаного додатка;adb shell pm disable com.google.android.calendar– вимкнути зазначений додаток;adb shell pm list packages -s– показати лише системні сервіси;adb shell pm clear app.name– очистити усі дані (включаючи кеш), пов’язані із зазначеним додатком;adb shell pm grant app.name android.permission.CAMERA– видати дозвіл вказаному додатку на доступ до камери мобільного пристрою (revoke – позбавити права);adb shell svc wifi disable– вимкнути Wi-Fi (enable – включити);adb shell am monitor– моніторинг крешів ОС Android в режимі реального часу;adb shell am start –n com.android.settings/.Settings– виконує зазначену дію, застосовуючи класи Activity та Intent перейти у налаштування Settings;adb shell am start –a android.intent.action.CALL tel:123– зателефонувати на вказаний номер з мобільного пристрою;adb shell am start –a android.intent.action.VIEW 'http://example.com'– відкрити зазначену веб-сторінку у браузері;adb shell am start –a android.intent.action.SENDTO –d sms:НОМЕР_ТЕЛЕФОНУ —es sms_body “ТЕКСТ_СМС” —ez exit_on_senttrue– відправити SMS з мобільного пристрою на зазначений номер телефону;adb shell am kill com.android.browser– завершити роботу вказаного додатка;adb shell am kill-all– завершити усі додатки;adb shell screencap /sdcard/file.png– зробити знімок дисплея і зберегти за вказаним шляхом в png-файл;adb shell screenrecord /sdcard/video.mp4– зробити запис відео екрана і зберегти за вказаним шляхом в mp4-файл. Щоб зупинити запис – натиснути комбінацію клавіш Ctrl+C;adb shell screenrecord –time – limit 30 /sdcard/video.mp4– записати відео дисплея тривалістю 30 секунд та зберегти у файл;adb shell screenrecord —size 1280×720 —bit–rate 6000000 —time–limit 20 —verbose /sdcard/video.mp4– записати відео із зазначеними характеристиками;adb install file.apk– віддалено встановити додаток APK (uninstall – видалити);adb connect ip:port– підключення до вказаної мережі чи пристрою (потрібен режим “Налагодження по Wi-Fi”, вмикається в опціях розробника);adb reboot– перезавантаження пристрою;adb reboot bootloader– перезавантаження пристрою в режим утиліти Fastboot для подальшого сервісного обслуговування, встановлення прошивок і т.д.;adb reboot recovery– перезавантаження пристрою в режимі відновлення (recovery);adb sideload file.zip– віддалене встановлення додатків, оновлень, OTA-прошивок через режим ADB Sideload;adb backup -f backup.ab -apk -all -nosystem– зробити резервну копію усіх додатків, окрім системних;adb restore backup.ab– відновлення даних на мобільному пристрої з резервної копії;adb root– запустити ADB з правами root (попередньо необхідно зайти в Developer Mode і увімкнути USB Rooted Debugging);adb push file.apk /storage/– скопіювати файл з ПК на мобільний пристрій в зазначену теку;adb pull /storage/file.png– скопіювати вказаний файл з мобільного пристрою на локальний ПК;adb pull /dir1/dir2/– скопіювати папку разом з усіма файлами на локальний ПК;adb shell ls– лістинг директорій на мобільному пристрої;adb shell cd data– перейти у вказану папку на мобільному пристрої;adb shell rm file.zip– вилучити зазначений файл на мобільному пристрої;adb shell mkdir– створити нову папку на мобільному пристрої в поточній директорії;adb touch– створити новий файл на мобільному пристрої в поточній директорії;adb shell pwd– показати поточне розташування на мобільному пристрої;adb shell cp– копіювати файли на мобільному пристрої;adb shell mv– перейменувати або перенести файли на мобільному пристрої;adb shell whoami– отримати ім’я активного користувача;adb shell su– – перейти в обліковий запис root;adb shell uname -a– отримати точну версію операційної системи;adb get-serialno– вивести серійний номер S/N мобільного пристрою;adb -s <device> shell getprop ro.product.model– отримати модель вказаного мобільного пристрою;adb -s <device> forward tcp:2222 tcp:22– ретранслювати (форвардинг) зазначений порт на поточний локальний комп’ютер (порт повинен бути відкритим на мобільному пристрої).
Пошук та вивантаження баз даних з мобільного пристрою:
adb shell su -c "id"– перевірка root-прав;adb shell su -c "find /data/data -name '*.db' 2>/dev/null" | head -30– пошук всіх баз даних на мобільному пристрої;adb shell "su -c 'mkdir -p /sdcard/temp_backup'"– створення директорії на мобільному пристрої;adb shell "su -c 'cp -r /data/data/com.google.android.youtube/databases/* /sdcard/temp_backup/'"– скопіювати бази даних на SD-карту;adb pull /sdcard/temp_backup/ .– вивантажуємо папку з файлами з мобільного на ПК у поточну директорію;adb shell su -c "tar -czf /sdcard/whatsapp_full.tar.gz /data/data/com.whatsapp"– створення дампу-архіву даних і збереження в директорії sdcard;adb shell su -c "cp /data/data/com.android.providers.telephony/databases/mmssms.db /sdcard/sms.db"– вивантаження бази даних SMS;adb shell su -c "cp /data/data/com.android.providers.contacts/databases/calllog.db /sdcard/calllog.db"– вивантаження історії дзвінків;adb shell su -c "cp /data/data/com.android.providers.contacts/databases/contacts2.db /sdcard/contacts.db"– вивантаження контактів.
Що таке Fastboot?

Fastboot – це утиліта командного рядка, призначена для встановлення і оновлення програмних компонентів, прошивок, додатків для мобільних пристроїв Android, є одним із компонентів пакету Android Software Development Kit (SDK).
Fastboot дозволяє:
- Розблоковувати OEM/BootLoader;
- Прошивати заводські компоненти;
- Змінювати розділи;
- Перезавантажувати BootLoader;
- Тестувати ядро системи;
- Працювати з розділами завантаження A/B;
- Збирати системну інформацію, апаратні характеристики, будувати звіти.
Повний список команд Fastboot
fastboot devices– вивести список підключених пристроїв в режимі fastboot;fastboot reboot– перезавантажити пристрій;fastboot reboot recovery– перезавантаження пристрою в режимі відновлення (recovery);fastboot oem device-info– вивід заводської інформації;fastboot oem unlock– розблокування завантажувача BootLoader на старих моделях пристроїв;fastboot flashing unlock– ще одна можливість розблокування BootLoader;fastboot oem unlock XXXX– розблокування завантажувача за вказаним сервісним ключем;fastboot oem lock– блокування завантажувача;fastboot flashing lock– блокування завантажувача;fastboot oem relock XXXX– блокування завантажувача за сервісним ключем;fastboot getvar all– вивід повної технічної інформації про мобільний пристрій;fastboot erase system– очищення системного розділу;fastboot erase userdata– очищення розділу userdata;fastboot erase recovery– очищення розділу відновлення;fastboot erase boot– очищення завантажувача;fastboot erase cache– очищення кешу;fastboot erase radio– очищення радіо;fastboot -w– скидання налаштувань, очищення розділу /data;fastboot flash system system.img– прошивка системного розділу;fastboot flash userdata userdata.img– прошивка розділу userdata;fastboot flash recovery recovery.img– прошивка розділу відновлення;fastboot flash boot boot.img– прошивка завантажувача;fastboot flash cache cache.img– прошивка розділу кешування;fastboot flash radio radio-filename.img– прошивка розділу радіо;flash-all– прошивка усіх розділів (необхідно попередньо завантажити файли прошивки в директорію з Fastboot, серед них має бути скрипт .bat-файл з назвою flash-all);fastboot flashall– аналогічна попередній команда;fastboot update firmware.zip– встановлення прошивки у форматі .zip;fastboot boot kernel ramdisk– тестування ядра операційної системи;fastboot getvar version-bootloader– показати версію завантажувача;fastboot –set-active b– зробити активним слот b на мобільному пристрої.
Корисні посилання
Автор: © Konrad Ravenstone, KR. Laboratories Research

