Як користуватись adb
Adb набір утиліт для роботи з телефоном Android через консоль.
Іноді простіше працювати через неї, ніж шукати потрібне налаштування або програму, пальцем у телефоні.
Для початку корисна команда отримання даних із телефону adb shell getprop. Наприклад версію андроїда отримуємо на ім'я ro.build.version.release.
adb shell getprop ro.build.version.release
adb shell
Передає доступ до телефону. Як правило, у всіх андроїдах shell просто /bin/sh
Загалом, щоб отримати доступ, просто вбиваємо.
в shell можна використовувати практично всі команди та утиліти, що працюють в unix системах. ls , cd , Надсилання на телефон файлів виконує команда push На телефонах андроїд папка Download розташовується на шляху /sdcard/Download
adb push somefile /sdcard/Downdload
shell pm
pm - Package manager (package) commands: працює в shell менеджер додатків android телефону.
pm list packages
Переглянути всі встановлені програми на телефоні можна за допомогою команди: pm list packages . Якщо ми вже знаходимося в shell. Інакше попередньо прокидаємо adb shell
adb shell
'pm list packages'
Опції list packages
| Опції | Відображення |
|---|
| -d |
disabled тільки заблоковані програми. |
| -e |
enabled тільки включені програми. |
| -3 |
third party тільки сторонні програми. |
| -s |
system тільки системні програми. |
Приклади list packages
Спочатку висновок включає слово package: прибрати цей висновок можна командою sed
adb shell
'pm list packages'
|
sed
's/.*://g'
Для зручності можна використовувати пайпи із сортуванням та передачею в less для детального аналізу.
adb shell
'pm list packages'
|
sed
's/.*://g'
|
sort
|
less
Переглянути список заблокованих програм можна за допомогою ключа -d :
adb shell
'pm list packages -d'
|
sed
's/.*://g'
|
sort
Очистка apk
Очищення даних програми.
pm
clear
com.google.android.youtube
Блокування / розблокування apk
# Блокування програми
adb shell pm disable-user app.package.name
# Розблокування виконується командою.
adb shell pm
enable
app.package.name
## наприклад заблокувати програму youtube
## блокуються навіть системні apk
adb shell pm disable-user com.google.android.youtube
Видалення apk
За допомогою такої ж процедури можна видаляти програми зовсім.
# попереднє очищення програми
adb shell pm
clear
com.google.android.youtube
# видалення програми
adb shell pm uninstall com.google.android.youtube
## якщо вилітає помилка Failure [DELETE_FAILED_INTERNAL_ERROR] то:
adb shell pm uninstall --user
0
com.google.android.youtube
adb shell am start -a android.intent.action.UNINSTALL_PACKAGE -d
"package:com.google.android.youtube"
## або
adb shell am start -n com.android.packageinstaller/.UninstallerActivity -d
"package:com.google.android.youtube"
викликає діалогове вікно видалення, але якщо програма системна, то видалення не відбудеться.
Зупинити програму
adb shell am force-stop com.apk.name
Корисності adb
Docker-android
# Приклад з гітхабу
docker
run --privileged -d -p
6080:6080 -p
5554:5554 -p
5555:5555 -e
DEVICE="Samsung Galaxy S6"
--name android-container budtmo/docker-android-x86-8.1
# З автовидалення образу
docker
run --privileged --rm -d -p
6080:6080 -p
5554:5554 -p
5555:5555 -e
DEVICE="Samsung Galaxy S6"
--name android-container budtmo/docker-android-x86-8.1
scrcpy
На мою думку найкраща програма управлінням android пристроями.
Установка
# linux
apt
install
scrcpy
#mac
brew
install
scrcpy
Підключення
adb connect
192.168.43.141
scrcpy -s
192.168.43.141:5555
Списки додатків
Так як сам використовую телефон xiaomi, буду писати про них.
Позбутися проблем штатним видаленням або блокуванням не виходить, прошивка не дозволяє.
Доводиться або використовувати кастомні прошивки, або юзати adb - Android Debug Bridge через USB-кабель або WIFI
Не можна видаляти
Нижче наведений список програм, у жодному разі не видаляти з телефонів xiaomi .
Проблеми та їх опис можуть бути відсутніми.
| Додаток | Результат |
|---|
| com.xiaomi.finddevice |
нескінченний цикл завантаження через деякий час попросить стерти телефон і почати заново. Вгадайте, як я навчився цього? |
| com.miui.securitycenter |
телефон перезавантажується тільки в режимі кавері |
| com.android.contacts |
ви втрачаєте значок телефону |
| com.mi.android.globalminusscreen |
Якщо ви увійшли до системи з обліковим записом Mi, пристрій блокується, для розблокування необхідно принести його до сервісного центру Xiaomi. |
Можна блокувати
com.miui.powerkeeper
com.android.browser
com.android.emergency
com.android.dreams.phototable
Можна видаляти
| Додаток | Роль |
|---|
| com.miui.analytics |
Аналітика miui |
| com.xiaomi.joyose |
Якийсь мотлох |
| com.xiaomi.mipicks |
GetApps - магазин програм на кшталт Google Play від Xiaomi. Найдратівливіший, періодично показує рекламу. |
| com.mi.android.globalminusscreen |
Рекламні служби MIUI також відповідають за показ реклами. |
| com.miui.cloudservice, com.miui.cloudservice.sysbase, com.miui.newmidrive |
Рекламні служби MIUI також відповідають за показ реклами. |
com.miui.analytics
com.xiaomi.mipicks
com.miui.translation.youdao
Посилання
- Офіційний хелп за ADB
- Тема на 4pda форумі, де зібрано список програм, які можна видалити в MIUI
- Синтаксис команди list packages
- Хороша стаття в англ. інтернет по xiaomi софту
- Ріпа scrcpy
- Емулятор Android в образі докер
Основні команди ADB та Fastboot
Зібрав основні команди ADB та Fastboot в одному пості. Кожна команда супроводжується коротким описом.
Команди ADB
- adb devices - виведення списку підключених пристроїв;
- adb reboot - перезавантаження пристрою;
- adb reboot recovery – перезавантаження пристрою на режим відновлення (recovery);
- adb reboot bootloader – перезавантаження пристрою на режим fastboot для подальшого виконання fastboot-команд;
- adb install app.apk – встановлення програми на картку пам'яті (необхідно попередньо завантажити .apk-файл у папку з ADB або вказати повний шлях до нього);
- adb install -f app.apk – встановлення програми у внутрішню пам'ять;
- adb install -t app.apk - встановлення програми для тестування;
- adb install -r app.apk – переустановка програми зі збереженням даних користувача;
- adb uninstall com.app.example – видалення програми;
- adb shell – виклик консолі Android (shell) до виконання Linux-команд;
- adb shell screencap /sdcard/screenshot.png – створення скріншота (більше подробиць у написаному мною посібнику зі створення скріншотів на смартфонах Samsung);
- adb shell screenrecord /sdcard/video.mp4 – запис скринкасту (захоплення зображення з екрану);
- adb shell dumpsys package com.app.example – виведення інформації про програму;
- adb shell pm list packages – виведення списку встановлених програм;
- adb shell pm grant com.app.example android.permission.SEND_SMS – видача дозволу додатку (у разі на відправку повідомлень);
- adb shell pm revoke com.app.example android.permission.CAMERA – блокування доступу додатку (у разі до камери);
- adb backup -apk -shared -all -f C:\backup.ab – створення резервної копії даних, включаючи встановлені програми та файли, що зберігаються на карті пам'яті (ім'я файлу створюваного бекапу та шлях до нього можна змінити);
- adb restore C:\backup.ab – відновлення даних із створеної резервної копії;
- adb tcpip 5555 – встановлення з'єднання протоколу TCP/IP через порт 5555;
- adb connect 192.168.0.100 – підключення до пристрою (дізнатися IP-адресу пристрою можна у налаштуваннях у розділі «Про телефон»);
- adb disconnect 192.168.0.100 – відключення від пристрою;
- adb sideload /sdcard/firmware.zip – встановлення прошивки, коли пристрій завантажено у recovery;
- adb push C:\app.apk /sdcard/Download – відправка файлу з комп'ютера на смартфон (можливе відправлення каталогів);
- adb pull /sdcard/video.mp4 C:\Users\Overclocker\Downloads - копіювання файлу з комп'ютера на смартфон (можливе копіювання каталогів);
- adb start-server – перезапуск демона;
- adb kill-server – зупинка демона.
Команди Fastboot
- fastboot devices – виведення списку підключених пристроїв, завантажених у режимі fastboot;
- fastboot reboot - перезавантаження пристрою, запуск Android;
- fastboot reboot recovery – перезавантаження пристрою режим відновлення (recovery);
- fastboot oem device-info – перевірка стану завантажувача;
- fastboot oem unlock – розблокування завантажувача на старих пристроях, наприклад, у всіх моделях Google Nexus;
- fastboot flashing unlock – розблокування завантажувача на нових пристроях, наприклад на всіх моделях Google Pixel;
- fastboot oem unlock **************** – розблокування завантажувача на пристроях, які вимагають проходження процедури отримання коду. До таких пристроїв належать смартфони та планшети Xiaomi, Sony, HTC, Huawei, Honor та багатьох інших виробників. Кількість символів у коді підтвердження може бути різною;
- fastboot oem lock – блокування завантажувача на старих пристроях;
- fastboot flashing lock – блокування завантажувача на нових пристроях;
- fastboot oem relock **************** – блокування завантажувача на пристроях, що вимагають проходження процедури отримання коду;
- fastboot getvar all – виведення технічної інформації про пристрій, яка включає дані про IMEI, серійний номер, версію завантажувача, стан батареї та інші відомості.
Очищення розділів перед прошивкою:
- fastboot erase system;
- fastboot erase userdata;
- fastboot erase recovery;
- fastboot erase boot;
- fastboot erase cache;
- fastboot erase radio;
- fastboot -w – скидання налаштувань, очищення розділу /data.
Прошивка розділів:
- fastboot flash system system-filename.img;
- fastboot flash userdata userdata-filename.img;
- fastboot flash recovery recovery-filename.img;
- fastboot flash boot boot-filename.img;
- fastboot flash cache cache-filename.img;
- fastboot flash radio radio-filename.img;
- flash-all – прошивка всіх розділів (необхідно завантажити файли прошивки в папку з Fastboot, при цьому серед них повинен бути .bat-файл з назвою flash-all);
- fastboot flashall – аналогічна попередня команда;
- fastboot update firmware-filename.zip – встановлення прошивки у форматі .zip.