Перейти к содержанию

ADB и беспроводное подключение. Часть II - Скриптописание


Рекомендуемые сообщения

  • Модераторы

Продолжаем серию статей о беспроводном ADB. Эта часть более трудная, но необходимая.

Чтобы стало чуть понятней, рекомендую посмотреть очень понятную статью "Как работает ADB"

А также все это дает ответы на вопрос: "Да как же, черт побери, установить нативное разрешение непосредственное из шлема?!.."

Все написано здесь. 

Ссылка на комментарий
Поделиться на другие сайты

  • Администраторы

Итак, продолжим. Напишем какой-нибудь скрипт, а затем и выполним его, на шлеме.

 

Давайте для примера возьмем самое простое:

#!/bin/sh
echo hello, my friend!

Откройте текстовый редактор и вставьте в него этот код. Затем сохраните файл с именем, например, hello и расширением sh. Скрипт почти готов. Почему почти? А потому что мы редактировали его под Windows, и есть вероятность проблем с концом строк. В операционных системах *NIX (включая Android) строки заканчиваются переводом строки (LF \n или 0x0A), а в DOS/Windows — возвратом каретки + переводом строки (CRLF; \r\n или 0x0D0x0A). На Mac CR есть только маркер конца строки. Поэтому некоторые текстовые редакторы могут кодировать неправильные разрывы строк в сценариях оболочки.

Стало быть, надо избавиться от неправильных концов строк, для этого служит утилита dos2unix, встроенная в Андроид. Вот ей мы и воспользуемся.

Работать можно непосредственно из оболочки, если в консоли cmd дать команду adb shell, но упростим задачу и будем делать все через батник.

Итак, создаем любой батник и вписываем в него команду отправки (push) нашего скрипта туда, где мы сможем (где разрешено) его запустить):

adb push hello.sh /data/local/tmp/

 

Затем комментируем эту команду и вписываем в батник другую, которая нам и поправит наш скрипт прям на месте:

adb shell dos2unix /data/local/tmp/hello.sh

 

А затем, в том же батнике прописываем команду на запуск нашего скрипта:

adb shell sh /data/local/tmp/hello.sh

 

В итоге в той же консоли мы увидим несколько служебных сообщений и также результат работы скрипта, вот такую надпись:

hello, my friend!

Собственно, это все! Скрипт создан и запущен и успешно отработан. А вот теперь скажите, сложно это или нет.

 

Чтобы удалить неиспользуемый скрипт, даем такую команду:

adb shell rm /data/local/tmp/hello.sh

Удачи в скриптописании и скриптовыполнении!

Для использования этого способа необходим включенный Режим разработчика

Ссылка на комментарий
Поделиться на другие сайты

  • Модераторы

Чуть усложним задачу. 

 

Вот еще один пример запуска и работы скрипта, уже посложней, с использованием дополнительной программы.

Скачиваем с гитхаба утилитку под Андроид : aapt-arm-pie. Она может рассказать о пакетах и приложения много интересного. В примере мы узнаем, как можно выдернуть из шлема имя приложения и название пакета.

Нашел скрипт sh, позволящий узнать имя приложения по названию его пакета:

#!/system/bin/sh
aapt=/data/local/tmp/aapt-arm-pie
pm list packages -3 | sed 's/^package://g' | while read line; do 
    path=$(pm path $line | sed 's/^package://g'); 
    label=$($aapt d badging $path  | grep 'application: label=' | cut -d "'" -f2);  
    printf "app $label having package name $line\n"; 
    printf "\n"; 
done 

 

Не пугайтесь, с этим скриптом ничего делать не придется, если не хотите. Его будет нужно просто скопировать и вставить в файл, только и всего.

Небольшое пояснение к скрипту:

Команда pm list packages -3 отобразит только неофициальные приложения.  Можно поменять последний ключ на один из таких:

  • -a Отобразит все приложения
  • -s Отобразит только системные приложения
  • -e Только включенные приложения
  • -d Только отключенные приложения
  • словодляпоиска  Если вводить не ключ, а фильтр, например face или oculus, то скрипт покажет только те пакеты, в которых есть это слово

Сохраняем его в файл, например aaptname.sh

Затем делаем все как в предыдущем примере - пишем батник, который выполнит нужные нам действия.

Пример такого батника с пояснениями к каждой строчке:

:: Отправляем утилиту aat-arm-pie на шлем
adb push aapt-arm-pie /data/local/tmp/
:: Отправляем туда же наш скрипт
@adb push aaptname.sh /data/local/tmp/
:: На всякий случай исправляем концы строк в скрипте
@adb shell dos2unix /data/local/tmp/aaptname.sh
:: Даем права на запуск и выполнение утилите aapt-arm-pie
@adb shell chmod 0755 /data/local/tmp/aapt-arm-pie
:: То же самое будет делать ключ chmod +x, строчку закомментируем, чтоб не выполнялась дважды
::@adb shell chmod +x /data/local/tmp/aapt-arm-pie
:: И запускаем на выполнение наш скрипт.
@adb shell sh /data/local/tmp/aaptname.sh
pause

Кладем рядом с батником утилиту aapt-arm-pie и запускаем батник, он выведет нам список имен приложений и их пакетов.

 

Ссылка на комментарий
Поделиться на другие сайты

  • Заголовок был изменён на ADB и беспроводное подключение. Часть II - Скриптописание

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...

Важная информация

Правила пользования сайтом Условия использования