Советы и рекомендации ADB: команды ADB, о которых должен знать каждый опытный пользователь!
Советы и рекомендации ADB: команды ADB, о которых должен знать каждый опытный пользователь!
В Android Debug Bridge есть много того, о чем вы, возможно, не знаете.
В Android есть удобный инструмент, доступный разработчикам, который называется Android Debug Bridge или сокращенно ADB. Он используется в Android Studio и вручную разработчиками Android для установки и тестирования приложений на смартфонах Android и эмулированных устройствах Android.
Но ADB может многое сделать, и большая часть из них недоступна& #39;т полезно только для разработчиков. Даже если вы не разработчик и читаете эту статью, есть большая вероятность, что вы использовали ADB один или два раза для установки приложения или настройки разрешения. Но это еще не все, для чего можно использовать ADB. Продолжайте читать, чтобы узнать о некоторых советах и рекомендациях по использованию ADB, о которых вы, возможно, не знали.
Примечание: на вашем компьютере должен быть загружен и запущен ADB.
Доступ к оболочке
Если вы раньше использовали ADB, возможно, вы привыкли запускать команды в одной строке. Но вы также можете использовать ADB, чтобы открыть оболочку терминала на вашем устройстве и напрямую запускать команды. И это просто!
В терминале или в окне командной строки:
adb shell
Затем вас встретит $ символ, где вы можете запускать команды прямо на своем устройстве.
Список установленных приложений через ADB
Чтобы просмотреть установленные приложения на вашем устройстве, вы можете использовать следующую команду:
adb shell pm list packages Эта команда вернет список имен пакетов установленных приложений, каждое из которых находится в отдельной строке с префиксом package:.
Параметры
Существуют также некоторые параметры, которые можно использовать для получения более конкретных списков.
- — f будет содержать путь к базовому APK для каждого приложения, а также имя его пакета.
- -a обеспечит возврат всех известных пакетов, отличных от APEX.
- -d приведет к тому, что команда вернет только отключенные пакеты.
- -e приведет к тому, что команда вернет только включенные пакеты.
- -s заставит команду возвращать только системные пакеты.
- -3 приведет к тому, что команда будет возвращать только сторонние пакеты.
- -i будет включать имя установочного пакета для каждого пакета.
- -U будет включать UID пакета для каждого пакета.
- -u будет включать удаленные пакеты.
- —show-versioncode будет включать код версии для каждого пакета.
- —apex-only возвращает только пакеты APEX.
- —uid <UID> покажет только пакеты с заданным UID.
- —user <USER_ID> покажет только пакеты, принадлежащие данному идентификатору пользователя.
Установка & Удаление приложений через ADB
Это относительно распространенное использование ADB, но все равно стоит упомянуть. Помимо прочего, вы также можете использовать ADB для установки и удаления приложений Android на вашем устройстве Android.
Установка APK
Если вы Если у вас есть APK на вашем компьютере, вы можете установить его на свое устройство следующим образом:
adb install -r someapk.apk
Не забудьте заменить someapk.apk полным путем к APK, который вы хотите установить.
Варианты
Существует множество вариантов установки APK через ADB.
- -р Параметр позволяет установить ADB поверх существующего приложения (т. е. обновить). В Android Pie и более поздних версиях этот параметр указывать не нужно.
- Параметр -R для Android Pie и более поздних версий приведет к сбою установки, если приложение уже установлено.
- Параметр -i позволяет указать имя пакета установщика. Это то, что возвращается, если Android хочет знать, что установило APK.
- Параметр -t позволяет установить APK с android:testOnly=»true» в манифесте.
- Параметр -d позволяет использовать указанный APK для понижения до уже установленного приложения. Это работает только в том случае, если обе версии приложения являются отлаживаемыми.
- Параметр -g для Android Marshmallow и более поздних версий автоматически предоставляет все разрешения во время выполнения установленному приложению.
Это еще не все. Если вам нужен полный список, вы можете ознакомиться со встроенной документацией.
Несколько APK и пакетов
Если у вас есть несколько APK, которые вы хотите установить одновременно, либо из нескольких приложений, либо из-за того, что вы устанавливаете пакет приложений, вы можете использовать функции ADB для установки нескольких пакетов и установки нескольких пакетов.
Если все ваши APK предназначены для одного приложения, используйте install-multi-package:
adb install-multiple apk1.apk apk2.apk … В противном случае используйте install-multi-package:
adb install-multi-package app1.apk app2.apk …Параметры этих команд аналогичны команде install, но с некоторыми ограничениями. Ознакомьтесь со встроенной документацией ADB, для которой доступны параметры.
Удаление приложения
Чтобы удалить с помощью ADB, вам понадобится имя пакета приложения, которое вы хотите удалить.
После того, как вы узнаете имя пакета, удалить его будет так же просто, как:
adb uninstall <packagename>
Извлечение APK с ADB
Существует множество причин, по которым вы можете захотеть извлечь APK-файлы для приложения. Может быть, вы хотите создать резервную копию для будущего использования, или, может быть, оно больше недоступно в Интернете, и вы хотите перенести его на другое устройство.
Извлечь приложение с помощью ADB довольно просто. Во-первых, вам нужно найти имя пакета приложения, которое вы хотите извлечь. Есть несколько способов сделать это, но обычно проще всего использовать приложение «Настройки» вашего устройства, чтобы просмотреть список всех установленных приложений, выбрать нужное и прокрутить вниз, пока не найдете имя пакета или идентификатор приложения. .
После получения имени пакета выполните следующую команду:
adb shell pm path <packagename>
Эта команда вернет путь ко всем APK для этого имени пакета.
Затем вы можете использовать следующую команду, чтобы загрузить каждый APK на свой компьютер:
adb pull /path/to/apk.apk
Список компонентов приложения
Компонентами приложения являются такие вещи, как его Activity, BroadcastReceivers, Services и т. д. Иногда полезно знать названия этих компонентов в конкретном приложении, особенно если вы хотите запустить скрытые действия или отправить трансляцию с определенными данными.
К сожалению, у ADB нет очень четкого способа перечисления компонентов приложения. Но это возможно. Выполните следующую команду:
adb shell dumpsys package <packagename>
Будет возвращено много текста.
- Прокручивайте, пока не найдете заголовок Таблица преобразователя действий, чтобы увидеть действия.
- Найдите BroadcastReceivers в разделе Таблица разрешения получателей.
- Проверьте Таблицу преобразователя служб на наличие служб.
- И так далее.
Для каждого компонента будет показано действие, необходимое для его запуска, имя компонента и, возможно, дополнительная информация.
В качестве альтернативы, если вам нужен более простой способ просмотра действий, служб и получателей, вы можете использовать мое приложение Root Activity Launcher. Он покажет вам эти компоненты для каждого приложения, а также множество других полезных функций.
Запуск действий, служб и BroadcastReceivers
ADB также можно использовать для запуска действий, запуска служб и уведомления BroadcastReceivers. При необходимости вы даже можете указать URI данных и дополнительные намерения.
Чтобы запустить компоненты, вам понадобится имя компонента, который вы хотите запустить. Вы можете увидеть, как это сделать, в разделе Список компонентов приложения.
Команда Синтаксис запуска действия примерно такой:
am start -a <action> -n <component>Синтаксис команды для запуска Службы примерно такой:
am startservice -a <action> -n <component>Синтаксис команды для уведомления BroadcastReceiver примерно такой:
am широковещательный -a <action> -n <component>В большинстве случаев для действий и служб не нужно явно указывать действие. Обычно он требуется только в том случае, если компонент использует другой, кроме android.intent.action.MAIN.
Помимо основного синтаксиса, здесь как указать больше данных для передачи. Как правило, все значения данных должны быть заключены в двойные кавычки.
- -d позволяет указать URI данных.
- -e <key> <значение> или —es <key> <value> позволяет указать дополнительную строку.
- —esn <key> позволяет указать дополнительную нулевую строку.
- —ez <ключ> <значение> используется для указания логического дополнения.
- —ei <key> <value> используется для указания дополнительного целого числа.
- —el <key> <value> предназначен для указания длинного дополнительного значения.
- —ef <key> <value> будет передавать дополнительное число с плавающей запятой.
- —eu <key> <значение> передает дополнительный URI.
- —ecn <key> <value> можно использовать для дополнительного указания имени компонента.
- —eia <key> <value1>,<value2>,… будут передавать значения как дополнительный Integer[].
- —eial <key> <value1>,<value2>,… будут передавать значения в виде List<Integer>.
- Те же самые аргументы массива и списка также работают для длинных чисел, чисел с плавающей запятой и строк. Просто замените i соответствующей буквой.
- -f позволяет указать флаг.
Есть еще больше вариантов поведения, которые вы можете использовать, поэтому ознакомьтесь с подробной документацией по сборке. .
Отключение & Включение практически любого приложения
Системные приложения в Android нельзя удалить, и многие из них также нельзя отключить в настройках. Хотя ADB не позволит вам удалить их, он может помочь вам отключить их.
Во-первых, убедитесь, что вы получили имя пакета приложения, которое хотите отключить. Затем попробуйте эти команды. Если это не помогло, попробуйте следующий вариант.
- pm disable <package>
- Чтобы снова включить, используйте pm enable < ;package>
- pm disable-user —user 0 <package>
- Чтобы снова включить, используйте pm enable <package>
- pm hide <package>
- Чтобы снова включить, используйте pm unhide <package>
- pm suspend <package>
- Чтобы снова включить, используйте pm unsuspend <package>
- pm uninstall -k —user 0 <package>
- Чтобы снова включить, используйте pm install-existing <package>
- Примечание. Это эффективно удаляет приложение из вашего профиля пользователя. Хотя команда повторного включения должна работать, нет никакой гарантии, что она сработает. Возможно, вам потребуется выполнить сброс до заводских настроек, чтобы восстановить приложение.
Если вы’ ;при использовании нескольких профилей пользователей на вашем устройстве обязательно замените 0 в приведенных выше командах фактическим идентификатором пользователя, который у вас есть.
ADB — невероятно мощный инструмент, и он может сделать гораздо больше, чем то, что указано выше. Команды в этой статье — всего лишь полезная отправная точка. Для более продвинутого использования ознакомьтесь с такими командами, как cmd -l, чтобы увидеть различные службы, с которыми вы можете взаимодействовать, или ls -l /system/bin, чтобы увидеть другую команду. доступны исполняемые файлы.