Перейти к основному содержимому

Как пользоваться adb

Adb набор утилит для работой с телефоном android через консоль.

adb shell

Передает доступ к shell телефона. Как правило во всех андроидах shell просто /bin/sh

В общем, чтобы получить доступ, вбиваем просто.

adb shell 

в shell можно использовать практически все команды и утилиты работающие в unix системах. ls, cd, Отправка на телефон файлов выполняет команда push На андроид телефонах папка Download располагается по пути /sdcard/Download

adb push somefile /sdcard/Downdload

shell pm

pm - Package manager (package) commands: работающий в shell менеджер приложений android телефона.

Инструкция по: pm команде

pm list packages

Посмотреть список всех установленных приложений на телефоне можно командой: pm list packages. Если мы уже находимся в shell. Иначе предварительно прокидываем adb shell

adb shell 'pm list packages'

Опции list packages

ОпцииОтображение
-ddisabled только заблокированные приложения.
-eenabled только включенные приложения.
-3third party только сторонние приложения.
-ssystem только системные приложения.

Примеры 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

С помощью такой же процедуры можно удалять программы совсем. Пример команды для удаления youtube:

# предварительная очистка приложения
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

Эмулятор 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.mipicksGetApps — магазин приложений наподобие 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

Ссылки

  • Тема на 4pda форуме, где собран список приложений которые можно удалить в MIUI
  • Синтаксис команды list packages
  • Хорошая статья в англ. интернете по xiaomi софту
  • Репа scrcpy
  • Эмулятор android в образе докер