Утилиты (ZD)

Оглавление


Описание

В данном экшене собраны различные полезные функции: выполнение консольной команды (ADB Shell), получение структуры элементов и другие.


Как добавить действие в проект?

Через контекстное меню Добавить действиеAndroidУтилиты

Либо воспользуйтесь умным поиском.


Как работать с экшеном?


Консольная команда (ADB Shell)

 

Данный экшен - это НЕ команды ADB!

Экшен позволяет выполнить встроенные в Android консольные Linux команды.
Примерно то же самое, что и выполнение команд в приложении Terminal Emulator for Android.

Начиная с версии 2.2.5 у экшена есть таймаут выполнения в 10 секунд. Если команда не выполнилась за это время, то экшен завершит работу с ошибкой (выход по красной ветке).

Примеры команд:

ls -la /sdcard/Download - получить все файлы и директории по пути /sdcard/Download
pm list packages - все установленные приложения.
pm list packages -3 - только сторонние приложения.

Команда ADB Shell - команда, которую нужно выполнить.

Положить результат в переменную - здесь необходимо указать существующую или создать новую переменную, в которую будет сохранён результат работы.

-rw-rw---- root sdcard_r 0 2019-01-25 16:42 .nomedia drwxrwx--- u0_a22 sdcard_r 2019-01-26 16:40 com.android.browser drwxrwx--- u0_a15 sdcard_r 2021-07-03 17:57 com.android.vending drwxrwx--- u0_a23 sdcard_r 2021-07-03 22:53 com.cyanogenmod.filemanager drwxrwx--- u0_a8 sdcard_r 2019-04-11 13:29 com.google.android.gms drwxrwx--- u0_a12 sdcard_r 2019-01-25 16:42 com.microvirt.guide

Более подробно о работе с данным экшеном написано в статье Команды ADB Shell (Консольные команды).

Отправка/получение файлов и папок

Начиная с версии 2.3.2 данный экшен поддерживает выполнение команд для отправки файлов на устройство и получения файлов с устройства:

Первый параметр откуда, второй параметр куда.

  • Отправить папку: adb push "c:\MyFolder" /sdcard/

  • Отправить файл: adb push "{-Project.Directory-}myFile.txt" /sdcard/myFileNewName.txt

  • Получить папку: adb pull /sdcard/myFolder c:\Users\Public

  • Получить файл: adb pull /sdcard/myFile.txt "{-Project.Directory-}myFileNewName.txt"


Установка Geo-позиции

Данное действие позволяет подменить местоположение устройства.

Широта - допустимые значения от -90 до 90.

Долгота - допустимые значения от -180 до 180.

Можно использовать дробные значения. Разделитель дробной части либо [.](точка), либо [,](запятая).

Пример: широта и долгота Нью-Йорка 40.7143 и -74.006


Настройка WiFi

С помощью этого экшена можно подменить имя WiFi сети (SSID), через который “подключен” эмулятор.


Сбросить Google Advert Id

Данное действие сбрасывает рекламный идентификатор устройства.


Получить структуру элементов (XML)

С помощью этого действия можно получить структуру элементов экрана в виде XML строки. Это те же данные, что отображены в Окне дерева элементов, только в виде XML строки.

Затем эти данные можно разобрать с помощью экшена Обработка JSON и XML и XPath.

Среди самых полезных атрибутов, которые можно получить у элемента:

  • координаты и ширину с высотой (атрибут bounds)

  • отображаемый текст (атрибут text)

  • сведения о том, отображён ли элемент (атрибут displayed)


Масштабирование

Данный экшен позволяет Отдалить (уменьшить) или Приблизить (увеличить) масштаб.

Координаты - точка, относительно которой будет изменяться масштаб.

Коэффициент - как сильно нужно уменьшить\увеличить масштаб.


Отправить SMS на устройство

 

Данный экшен позволяет эмулировать отправку SMS на устройство.

Телефон - номер телефона отправителя.

Сообщение - текстовое сообщение.

На устройстве должно быть установлено приложение для приема сообщений (например, Google Сообщения, LineageOS Messaging или другое)


Получить параметры подключения ADB

 

Данный экшен позволяет получить адрес и порт подключенного устройства.

Используется при необходимости выполнить специфичные команды ADB (adb -s serial mdns services)


Получить буфер обмена устройства

Экшен позволяет сохранить содержимое буфера обмена устройства в переменную.


Задать буфер обмена на устройстве.

Экшен позволяет задать содержимое буфера обмена на устройстве.

С помощью экшена https://zennolab.atlassian.net/wiki/spaces/RU/pages/1867743710 содержимое буфера может быть вставлено в нужное поле через макрос {AndroidKeys.PASTE}


Выполнить запрос SQLite3

 

Экшен позволяет выполнить SQL-запрос к базе данных на устройстве. При первом запуске все необходимые файлы будут автоматически установлены на устройство в зависимости от его архитектуры.

Путь к базе данных: полный путь к файлу, например, /data/data/com.android.providers.contacts/databases/contacts2.db

Запрос: SQL-запрос, например, SELECT * FROM contacts

Ответ в формате JSON: если установлен данный параметр, результат запроса будет возвращен в формате JSON (данные можно разобрать с помощью экшена Обработка JSON и XML). В противном случае ответ будет в виде массива строк. Разделителем в строке является символ | (вертикальная черта)


Выполнить скрипт Frida

 

Экшен позволяет выполнить на устройстве скрипт Frida для приложения. При первом запуске все необходимые файлы будут автоматически установлены на устройство в зависимости от его архитектуры. После чего будет запущен сервер Frida.

Имя приложения: название приложения в которое необходимо загрузить скрипт.

Скрипт: содержимое скрипта. Поддерживаются макросы

Подробнее про работу с Frida можно прочитать в теме https://zennolab.atlassian.net/wiki/spaces/RU/pages/2284060714


Полезные ссылки