У меня есть одно Android-устройство, на котором работает Jelly Bean OS. Есть ли способ обнаружить, что процесс запущен или не используется командой ADB , если я знаю имя пакета ?
Rinkal Bhanderi 22 май 2013, в 14:46
Поделиться
Поделиться:
6 ответов
Лучший ответ
Не нужно использовать grep. ps в Android можно фильтровать по значению COMM (последние 15 символов имени пакета в случае приложения java) Скажем, мы хотим проверить, работает ли com.android.phone :
adb shell ps m.android.phone USER PID PPID VSIZE RSS WCHAN PC NAME radio 1389 277 515960 33964 ffffffff 4024c270 S com.android.phone
Фильтрация с помощью параметра COMM значение удалена из ps в Android 7.0. Чтобы проверить запущенный процесс по имени в Android 7.0, вы можете использовать команду pidof :
adb shell pidof com.android.phone
Он возвращает PID, если этот процесс был найден или пустая строка в противном случае.
Alex P. 22 май 2013, в 18:08
Поделиться
Обратите внимание, что это не удастся, если последние 15 символов имени пакета начинаются с цифры. (Пример: com.number13.example.debug, где последние 15 символов — «3.example.debug»).
Как удалить системные приложения в телефоне? Освободи память телефона. ADB AppControl инструкция
Причина? Команда фильтрует по pid вместо имени процесса, если первый символ является цифрой: github.com/android/platform_system_core/blob/master/toolbox/…
Madis Pink 18 май 2015, в 05:11
Примечание для pidof : иногда я получаю «удаленные» процессы, когда pidof readlink /proc/$PID/exe .
jozxyqk 12 апр. 2017, в 01:37
Большой! Спасибо! работает на Android 7.0 (Galaxy S8 +) и 8.0 (эмулятор)
hungtdo 09 нояб. 2017, в 16:30
Но корневое устройство или текущий прогресс не нужны вообще! 🙁
hungtdo 09 нояб. 2017, в 18:12
Показать ещё 2 комментария
Вы можете использовать
adb shell ps | grep apps | awk »
для вывода вывода, например:
com.google.process.gapps com.google.android.apps.uploader com.google.android.apps.plus com.google.android.apps.maps com.google.android.apps.maps:GoogleLocationService com.google.android.apps.maps:FriendService com.google.android.apps.maps:LocationFriendService
adb shell ps возвращает список всех запущенных процессов на устройстве Android, grep-приложения ищут любую строку с «приложениями», как вы можете видеть выше, это все com.google.android.APPS. или GAPPS, awk извлекает 9-й столбец, который в этом случае является именем пакета.
Для поиска конкретного использования пакета
adb shell ps | grep PACKAGE.NAME.HERE | awk »
i.e adb shell ps | grep com.we7.player | awk »
Если он запущен, появится имя, если не будет возвращен результат.
o0rebelious0o 22 май 2013, в 13:15
Поделиться
Спасибо за ответ, я просто хочу, чтобы список процессов, например, отображался в инструментах DDMS под устройством в Eclipse.
Rinkal Bhanderi 22 май 2013, в 12:23
поэтому я должен выполнить процессы активности ADB Shell Dumpsys | grep apps | awk ‘
‘ .
Rinkal Bhanderi 22 май 2013, в 13:11
Извините, я изменил свой ответ, используйте то, что показано выше, adb shell ps | grep apps | awk »
o0rebelious0o 22 май 2013, в 16:33
Основная идея — это звук, но эта последовательность команд, скорее всего, будет работать только на пользовательских дисках или с установкой busybox, так как в официальных выпусках Android только недавно был добавлен grep , и до сих пор нет awk
Удали системные приложения на ЛЮБЫХ телефонах андроид без рут прав и разблокировки загрузчика
Chris Stratton 22 май 2013, в 16:42
Вы запускаете его из оболочки буровой установки, это не имеет ничего общего с тем, что на android есть grep, как на grep и awk на локальной машине, а не на устройстве.
o0rebelious0o 22 май 2013, в 18:23
Эмулятор терминала в моем Nexus 6 работает 6.0 говорит, что awk не найден. Я что-то здесь упускаю?
Hendra Anggrian 29 март 2016, в 19:15
Gene Pavlovsky 14 нояб.
2016, в 22:40
Источник: overcoder.net
Android: get all installed packages using ADB [duplicate]
How I can get the list of all installed on my Android 8 packages using ADB Shell? I preference to query Sqlite base, but accept any command-line solution.
6,326 5 5 gold badges 21 21 silver badges 45 45 bronze badges
asked Dec 5, 2018 at 14:11
Евгений Шахов Евгений Шахов
679 1 1 gold badge 5 5 silver badges 8 8 bronze badges
2 Answers 2
adb shell cmd package list packages
This will return a list of the package names of the apps installed on the device. Each line is prefixed by package: .
There are even some options you can use:
list packages [-f] [-d] [-e] [-s] [-3] [-i] [-l] [-u] [-U] [—uid UID] [—user USER_ID] [FILTER] Prints all packages; optionally only those whose name contains the text in FILTER. Options: -f: see their associated file -d: filter to only show disabled packages -e: filter to only show enabled packages -s: filter to only show system packages -3: filter to only show third party packages -i: see the installer for the packages -l: ignored (used for compatibility with older releases) -U: also show the package UID -u: also include uninstalled packages —uid UID: filter to only show packages with the given UID —user USER_ID: only list packages belonging to the given user
An alternative for older Android versions is
adb shell pm list packages
but this is deprecated and will likely be removed in the future.
Источник: stackoverflow.com
Мобильные ОСИ
18:00
Trader
No comments
![]() |
Android Debug Bridge список команд |
Перечень команд Android Debug Bridge
adb shell cat /proc/partitions
Выводит на экран информацию по имеющимся блокам.
adb shell su -c dd if=/dev/block/mmcblk0p9 of=/sdcard/factoryfs.img bs=4096
Выполняет копирование блока. Задавать необходимо сам блок и выходящее имя.
adb shell rm /data/system/gesture.key
Разблокирует от графического ключа при блокировке Android-девайса. После введения команды можно ввести любой жест.
Команда будет послана только на устройство, которое подключено к компьютеру через USB. Если подключено больше одного устройство, выдаст ошибку.
Команда будет послана на устройство, запущенное в эмуляторе. Выдаст ошибку, если одновременно запущено больше одного эмулятора.
Команда будет послана на устройство с указанным серийным номером.
Команда будет послана на девайс с указанным именем. Примечание: если не указывать ключ –p, то используется значение переменной ANDROID_PRODUCT_OUT.
Выводит на экран список всех подключенных к компьютеру устройств.
Производит подключение к указанному хосту посредством протокола TCP/IP. Порт можно не указывать, тогда будет использован порт по умолчанию – 5555.
Производит отключение от указанного хоста, подключенного посредством протокола TCP/IP. Порт можно не указывать, тогда будет использован порт по умолчанию –5555. Если не задать ни один из параметров, то будет произведено отключение от всех активных в текущий момент соединений.
Производит копирование файла или папки с компьютера на Android-устройство.
Производит копирование файла или папки с Android-устройства на компьютер. Если не задан второй параметр, то копирование производится в папку ADB.
Производит копирование на компьютер только новых файлов. Если ввести ключ –l, то копирование производится не будет, будет создан только список новых файлов.
Запускает несколько упрощенный UNIX Shell.
Выполнение команды посредством Shell. Например:
adb shell rm -r /system/sd/app
Удаление приложений, которые были установлены на карту памяти.
adb shell rm -r /system/sd/app-private
Удаление приложений, которые были установлены на карту памяти в раздел app-private.
adb shell cat /proc/mtd
Вывод информации о разделах внутренней памяти устройства, в подобном виде:
dev: size erasesize name
mtd0: 000a0000 00020000 «misc»
mtd1: 00420000 00020000 «recovery»
mtd2: 002c0000 00020000 «boot»
mtd3: 0fa00000 00020000 «system»
mtd4: 02800000 00020000 «cache»
mtd5: 0af20000 00020000 «userdata»
Вывод информации о свободных ресурсах в памяти устройства, в подобном виде:
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 160664 0 160664 0% /dev
/dev/block/mtdblock4 40960 1292 39668 3% /cache
/dev/block/mtdblock3 256000 146888 109112 57% /system
/dev/block/mtdblock5 179328 125728 53600 70% /data
/dev/block/mmcblk0p1 15521280 10056880 5464400 65% /sdcard
Команда будет послана в консоль запущенного эмулятора, например:
adb shell mount -o rw /dev/block/mtdblock3 /system
adb shell mount -o rw /dev/block/mtdblock5 /data
Выполняется монтирование разделов /system и /data с использованием режима ClockworkMod Recovery.
adb install [-l] [-r] [-s]
Указанное приложение будет отправлено на Android-девайс и будет произведена его установка, например команда
adb install C:/adb/app/test.apk
выполнит установку test.apk, который находится в директории /adb/app/ на диске C:/.
Ключи к данной команде:
-l – выполняет блокировку приложения.
-r – приложение будет переустановлено с сохранением данных.
-s – приложение будет установлено на карту памяти.
adb uninstall [-k]
Производит деинсталляцию (удаление) указанного приложения. Если использовать ключ –k, то приложение будет деинсталлировано без удаления данных пользователя.
Ожидание подключения Android-девайса.
Запуск службы (daemon).
Остановка службы (daemon).
Выводит текущий статус подключенного устройства:
offline – девайс выключен.
bootloader – девайс в режиме предварительной загрузки (бутлоадер).
device – девайс работает.
Выводит на экран серийный номер подключенного устройства.
Производит непрерывный опрос состояния подключенного устройства.
Выполняет перемонтирование подключенного Android-девайса для последующей записи. Команда необходима для работы скриптов, которые изменяют данные на устройстве.
adb reboot bootloader
Перезагрузка подключенного Android-устройства в режиме булоадера (загрузчика).
adb reboot recovery
Перезагрузка подключенного Android-устройства в режиме Recovery.
Выполняется перезапуск службы (daemon) с Root-правами.
Выполняется перезапуск службы (daemon) с «прослушиванием» USB.
Выполняется перезапуск службы (daemon) с «прослушиванием» указанного порта.
adb ppp [параметры]
Запуск службы с указанными параметрами через USB. Допустимые параметры: defaultroute dump debug notty usepeerdns local.
Используется для отладки. Выводит записи логов с отладочной информацией подключенного Android-устройства. logcat допустимо использовать с машины разработки ($ adb logcat) или через удаленный Shell (# logcat).
Каждое сообщение в логе Android-девайса имеет свой тэг и свой приоритет. Тэг – строка, которая указывает на компонент системы, отправивший сообщение (к примеру, View – для системы view и так далее). Приоритет может иметь одно из следующих значений (от наименьшего к наибольшему):
V – Verbose (самый низкий приоритет).
S – Silent (Самый высокий приоритет, при котором не выводится ничего).
Чтобы получить список используемых в системе тэгов вместе с их приоритетами, можно запустить logcat. При этом в первых двух столбцах каждого выведенного сообщения из системного лога будут указаны его приоритет и тэг. Например:
I/ActivityManager( 585): Starting activity: Intent
Чтобы уменьшить вывод лога до не таких больших размеров, можно использовать выражение фильтра, то есть с командой logcat использовать необходимые комбинации тэга и приоритета, и тогда все сообщения, которые не подходят под запрос, не будут выводиться. Фильтр выражается как :, где , соответственно, указывает на нужный тэг, а — на минимальный уровень приоритета для указанного тэга. В лог записываются сообщения с выбранным тэгом и приоритетом на указанном уровне или выше него. Количество пар : не ограничено в одном выражении фильтра, для их разделения используется пробел.
Разберем на примере, какие сообщения будут выведены в лог:
adb logcat TestTag:I TestApp:D *:S
Данная команда выведет все сообщения с тэгом TestTag, которые имеют приоритет «Info» или выше, а также сообщения с тэгом TestApp с приоритетом «Debug» или выше. Последний же элемент *:S устанавливает самый высокий «Silent» приоритет для всех остальных тэгов, по сути препятствуя их выведению. Таким образом, выводиться будут только сообщения для тэгов TestTag и TestApp. *:S – самый удобный способ вывода только сообщений, соответствующих указанным фильтрам.
Приведем еще один пример:
Данная команда выведет все сообщения, которые имеют приоритет «Warning» или выше для любых тэгов.
В том случае, если команда logcat выполняется на машине разработчика, а не через удаленный Shell, можно установить значение фильтра по умолчанию, задав переменную ANDROID_LOG_TAGS следующим образом:
export ANDROID_LOG_TAGS=» TestTag:I TestApp:D *:S»
Заданная переменная окружения ANDROID_LOG_TAGS не будет работать через эмулятор или на устройстве, если logcat будет использоваться в удаленном Shell или через adb shell logcat. Данная команда export выполняется только в UNIX-системах, и не работоспособна в Windows.
Сообщения лога, помимо тэга и приоритета, содержат в себе несколько полей с метаданными. Формат вывода сообщений можно задать таким образом, чтобы изменять показ полей метаданных. Для этого используется параметр –v с указанием одного из следующих форматов вывода:
brief – отображает тэг, приоритет и PID процесса (формат вывода по умолчанию).
process – отображение только PID.
tag – вывод только приоритета и тэга.
thread – отображает только процесс:поток и тэг с приоритетом.
raw – выводит необработанное сообщение, без отображения полей с метаданными.
time – отображает дату, время вызова, тэг с приоритетом, и PID процесса.
long – отображает все поля с метаданными, а также отдельно сообщения с пустыми строками.
adb logcat -v thread
Команда выведет сообщения в формате thread.
Система логов Android имеет несколько кольцевых буферов, где содержатся логии сообщений, так что не все сообщения отправляются в основной буфер. Для того, чтобы отобразить дополнительные сообщения лога, используется параметр –b. Последний позволяет просмотреть один из альтернативных буферов:
radio – отображение буфера с сообщениями, которые связаны с телефонией или радиомодулем.
events – отображение буфера с сообщениями, которые связаны с событиями.
main – отображение основного буфера (используется по умолчанию).
Через adb также можно просмотреть stdout и stderr. По умолчанию вывод stdout и stderr идёт в /dev/null/, то есть происходит их удаление. В процессах, выполняемых в виртуальной машине Dalvik, может быть осуществлена запись копии вывода в лог. В таком случае система записывает сообщения в лог с тэгами stdout и stderr с приоритетом I. Чтобы перенаправить вывод, необходимо остановить эмулятор или Android-устройство, и выполнить Shell setprop, чтобы включить перенаправление вывода. Пример, как это сделать:
$ adb shell setprop log.redirect-stdio true
$ adb shell start
Указанная настройка будет сохранена в системе до тех пор, пока работает эмулятор или устройство. Для использования данной настройки по умолчанию, вышеописанную команду следует добавить в /data/local.prop.
Полный список параметров команды logcat:
-b — загрузка альтернативного буфера лога для последующего просмотра, такого как event или radio. По умолчанию используется основной буфер.
-c – сброс (очистка) лога и выход.
-d – вывод лога на экран и выход.
-f — запись лога в указанный файл . По умолчанию запись происходит в stdout.
-g – вывод размера указанного буфера с последующим выходом.
-n — установка максимального количества ротаций лога (количества хранимых сжатых фрагментов лога) . По умолчанию значение равно 4. Для работы требуется параметр -r.
-r — выполнение ротации каждые вывода (разделять лог на фрагменты по указанному числу ). По умолчанию значение равно 16. Для работы требуется параметр -f.
-s – установка «Silent» как фильтр по умолчанию.
-v — установка формата вывода сообщений лога. По умолчанию установлено значение «brief».
Posted in: android
Источник: mobileosreviewer.blogspot.com