Перейти к содержанию
Последние версии прошивок: Quest 3:60.0.0.107.366.536455832 | Quest 2: 59.0.0.173.706.535795449
  • 0

Как запустить собственный скрипт на шлеме


Varset

Вопрос

  • Модераторы

А вы знали, что на шлеме вполне можно выполнять скрипты sh?

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

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

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

Сейчас я расскажу, как это делать.

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

#!/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, но упростим задачу и будем делать все через батник.

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

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

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

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

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

  • 1
  • Модераторы

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

Скачиваем с гитхаба утилитку под Андроид : 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 и запускаем батник, он выведет нам список имен приложений и их пакетов.

 

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

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

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

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

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

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

Войти

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

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

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

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