- OFF: Shell-скриптинг под Android
- Сообщения 13
- 1 Тема от teadrinker 2016-02-01 19:32:18
- Тема: OFF: Shell-скриптинг под Android
- 2 Ответ от atomix 2016-02-01 22:11:23
- Re: OFF: Shell-скриптинг под Android
- 3 Ответ от teadrinker 2016-02-01 22:37:40
- Re: OFF: Shell-скриптинг под Android
- 4 Ответ от teadrinker 2016-02-02 06:53:28
- Re: OFF: Shell-скриптинг под Android
- 5 Ответ от BeginnerJS 2016-03-23 12:57:52
- Re: OFF: Shell-скриптинг под Android
- 6 Ответ от teadrinker 2016-03-23 15:46:18
- Re: OFF: Shell-скриптинг под Android
- 7 Ответ от Poltergeyst 2016-10-09 23:30:05
- Re: OFF: Shell-скриптинг под Android
- 8 Ответ от Poltergeyst 2016-10-09 23:32:16 (изменено: Poltergeyst, 2017-12-09 23:50:09)
- Re: OFF: Shell-скриптинг под Android
- 9 Ответ от Poltergeyst 2016-10-26 20:04:09
- Re: OFF: Shell-скриптинг под Android
- 10 Ответ от Poltergeyst 2016-10-30 18:40:49 (изменено: Poltergeyst, 2017-04-16 23:38:53)
- Re: OFF: Shell-скриптинг под Android
- 11 Ответ от Poltergeyst 2016-10-30 18:46:28
- Re: OFF: Shell-скриптинг под Android
- 12 Ответ от Poltergeyst 2017-04-09 18:13:53
- Re: OFF: Shell-скриптинг под Android
- Как запустить скрипт BASH на моем Android?
- Termux шаг за шагом (Часть 2)
- Шаг 4
- Погружаемся в кроличью нору Termux:API
- Несколько примеров Termux:API
- Шаг 5
- Установим Python и nano
- HelloWorld на Python в Termux
- Шаг 6
- Bash-скрипты
- Bash-скрипт с Termux:API
- Шаг 7
- Сделаем хоть что-то полезное
OFF: Shell-скриптинг под Android
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщения 13
1 Тема от teadrinker 2016-02-01 19:32:18
- teadrinker
- Администратор
- Неактивен
- Рейтинг : [ 723 | 0 ]
Тема: OFF: Shell-скриптинг под Android
Кто-нибудь знаком с сабжем? Пытался написать скрипт для завершения приложения и запустить его через Tasker, но ничего не работает. Отзовитесь, кто в теме.
2 Ответ от atomix 2016-02-01 22:11:23
- atomix
- Администратор
- Неактивен
- Рейтинг : [ 35 | 0 ]
Re: OFF: Shell-скриптинг под Android
3 Ответ от teadrinker 2016-02-01 22:37:40
- teadrinker
- Администратор
- Неактивен
- Рейтинг : [ 723 | 0 ]
Re: OFF: Shell-скриптинг под Android
Первое читал. Проблема в том, что у меня почему-то не запускаются ни скрипты, ни команды через таскер. Вы им пользуетесь?
4 Ответ от teadrinker 2016-02-02 06:53:28
- teadrinker
- Администратор
- Неактивен
- Рейтинг : [ 723 | 0 ]
Re: OFF: Shell-скриптинг под Android
Всё, разобрался, таскеру root-права предоставлены не были.
5 Ответ от BeginnerJS 2016-03-23 12:57:52
- BeginnerJS
- Участник
- Неактивен
- Рейтинг : [ 0 | 0 ]
Re: OFF: Shell-скриптинг под Android
Никогда не держал в руках Андроид. Можно узнать, какие скрипты и шеллы есть стандартно?
6 Ответ от teadrinker 2016-03-23 15:46:18
- teadrinker
- Администратор
- Неактивен
- Рейтинг : [ 723 | 0 ]
Re: OFF: Shell-скриптинг под Android
Первая ссылка atomix‘а.
7 Ответ от Poltergeyst 2016-10-09 23:30:05
- Poltergeyst
- Разработчик
- Неактивен
- Рейтинг : [ 0 | 0 ]
Re: OFF: Shell-скриптинг под Android
Вот ещё хорошая ссылка: Android Shell
Попробовал «убить» процесс через консоль Android Terminal Emulator, с помощью команды kill. Так понял, помимо root прав на андроиде, нужно не забыть ввести команду su в консоли, чтобы действовать от имени суперпользователя.
Чтобы запустить процесс нужно знать класс приложения и класс активности окна, каковые можно выловить например так:
Покажет что то вроде:
это и есть строка запуска приложения, осталось запустить:
8 Ответ от Poltergeyst 2016-10-09 23:32:16 (изменено: Poltergeyst, 2017-12-09 23:50:09)
- Poltergeyst
- Разработчик
- Неактивен
- Рейтинг : [ 0 | 0 ]
Re: OFF: Shell-скриптинг под Android
Если батарея андроида изнашивается, а рекалибровка уже не помогает, можно попробовать переделать андроид-планшет под питание от сети, без батареи. Нужно изьять батарею, отсоединить от батареи контроллер питания, подпаять к нему выводы зарядного устройства(вместо батареи, соблюдая полярность) и восстановить схему.
Осталось проверить запуск планшета и откалибровать уже несуществующую батарею, например, с помощью программы battery calibration, чтобы андроид сбросил статистику использования изьятой физической батареи и не сходил с ума по поводу её отсутствия.Зарядное устройство должно быть импульсным и давать хороший ток 1000-2000 mA при напряжении 4.7-5.3 v, т.е. эмулировать мощность аккумулятора.
(у меня это прокатило на Tesla)
9 Ответ от Poltergeyst 2016-10-26 20:04:09
- Poltergeyst
- Разработчик
- Неактивен
- Рейтинг : [ 0 | 0 ]
Re: OFF: Shell-скриптинг под Android
Выводит список имён процессов, запущенных от имени пользователя(используется Android Terminal Emulator):
10 Ответ от Poltergeyst 2016-10-30 18:40:49 (изменено: Poltergeyst, 2017-04-16 23:38:53)
- Poltergeyst
- Разработчик
- Неактивен
- Рейтинг : [ 0 | 0 ]
Re: OFF: Shell-скриптинг под Android
Остановка всех сторонних приложений и очистка их кэша, за исключением Tasker и брандмауэра :
Аналогичный сценарий, чистит процессы сторонних пакетов(установленных пользователем), а также процессы, классы которых читаются из файла, например:
shutdown.txtpcleaner.sh
Очистка кэша всех приложений(осторожно):
Подстановочная команда ограничена символом `, не следует путать с одиночной кавычкой ‘.
11 Ответ от Poltergeyst 2016-10-30 18:46:28
- Poltergeyst
- Разработчик
- Неактивен
- Рейтинг : [ 0 | 0 ]
Re: OFF: Shell-скриптинг под Android
Набор сервисного номера, например *104#:
Специальный символ # заменяется кодом %23, иначе он не будет пропущен.
12 Ответ от Poltergeyst 2017-04-09 18:13:53
- Poltergeyst
- Разработчик
- Неактивен
- Рейтинг : [ 0 | 0 ]
Re: OFF: Shell-скриптинг под Android
Проверить флэш-накопители андроида на предмет неполадок файловой системы можно, например, с помощью команды fsck_msdos. Сначала нужно обнаружить путь к накопителю, с помощью команды mount без параметров (или mount | grep sdcard). В выводе команды содержатся строки содержащие пути к накопителям, наподобие:
Источник
Как запустить скрипт BASH на моем Android?
Мой же сценарий BASH работает в Fedora / CentOS.
Но я тестирую один Android eee pad transformer .
Где у меня есть доступ к терминалу, и я написал небольшой тестовый скрипт. Но он не работает, как я могу это исправить? Что я делаю не так?
Следовать за:
Это мой скрипт, который теперь работает:
Может быть, это будет работать при вызове интерпретатора со сценарием?
Я видел, что, хотя указанная ошибка #!/bin/bash была отправлена sh – может быть, это неправильно.
В Android оболочка находится в /system/bin/sh not /bin/sh как в большинстве Unix-подобных систем. Поэтому, даже если вы измените #!/bin/bash на #!/bin/sh он все равно не будет работать. Вам придется использовать #!/system/bin/sh
Android не является дистрибутивом GNU / Linux, поэтому вы не можете ожидать, что все скрипты, работающие на GNU / Linux, также будут работать на Android.
На большинстве Android-устройств не установлен интерпретатор bash. Если вам действительно нужно запустить скрипт через Linux и Android, вы можете попробовать использовать BusyBox, но для этого потребуется укоренение вашего устройства (и, возможно, аннулирование гарантии). Однако даже тогда я не знаю, включена ли утилита ifconfig в BusyBox.
Я настоятельно рекомендую использовать Android SDK для написания приложения, чтобы сделать все, что вы пытаетесь выполнить.
Как уже было сказано, ОС Android (вплоть до 4.0 включительно) не включает в себя интерпретатор BASH (только оболочка). В то время как BusyBox – отличный инструмент, я считаю, что это всего лишь один исполняемый файл, который объединяет выпущенные унифицированные унифицированные утилиты UNIX, но на самом деле не включает в себя BASH-интерпретатор.
Для скомпилированной версии интерпретатора BASH для Android см. Этот раздел форума: http://forum.xda-developers.com/showthread.php?t=537827
Вы можете использовать install Busybox , который предоставляет вам множество утилит, таких как awk, file и т. Д. И Terminal Emulator .
- Создайте файл оболочки с #! / System / bin / sh в качестве первой строки (shebang)
- Теперь поместите заполненный скрипт в / system / xbin или / system / bin и запустите его из эмулятора терминала
Источник
Termux шаг за шагом (Часть 2)
В прошлой части мы с вами познакомились с базовыми командами Termux’а, настроили SSH соединение с ПК, научились создавать alias’ы и установили несколько полезных утилит. В этот раз нам предстоит шагнуть еще дальше, мы с вами:
- узнаем про Termux:API
- установим Python и nano, а также напишем «Hello, world!» на Python
- узнаем про bash-скрипты, и напишем скрипт с использованием Termux:API
- используя bash-скрипт, Termux:API и Python напишем простую программку
Поскольку мы теперь понимаем, что делают вводимые команды, то со следующего шага я не буду так подробно расписывать каждое действие, но там где могут быть затруднения, пояснять буду обязательно.
Я часто применяю alias’ы, поэтому используемые в этой части сокращения показаны здесь:
План готов, можно приступать! И конечно же не забывайте про «волшебный Tab» (См. Часть 1).
Шаг 4
Погружаемся в кроличью нору Termux:API
API как много в этом слове для сердца кодера слилось
Если не затрагивать тему Termux:API, то все наши шаги можно было свести к простому пересказу какой-нибудь брошюры типа «Линукс для чайников», как было справедливо подмечено в комментариях к первой части.
Для начала установим Termux:API из Google Play Market’а (после не помешает перезапустить Termux):
Далее нам нужно установить пакет API в консоли Termux’а:
Для экспериментов я использую Android 5.1.1, для владельцев Android 7 нужно «защитить» Termux: API, зайдя в ‘Настройки’ > ‘Защищенные приложения’, в противном случае вызовы API, такие как termux-battery-status , будут зависать. (См. wiki проекта)
Теперь стоит поближе познакомится с приобретенными возможностями. Самое свежее и подробное описание Termux:API можно найти на wiki проекта. Я же постараюсь выбрать самое наглядное и интересное, что позволит набить руку для самостоятельной работы в дальнейшем.
Несколько примеров Termux:API
- termux-battery-status
Возвращает состояние батареи
termux-brightness
Устанавливает яркость экрана от 0 до 255
termux-toast
Показывает временное всплывающее уведомление
termux-torch
Включает фонарик
termux-wifi-scaninfo
Возвращает информацию о последнем сканировании сетей Wi-Fi
Нетрудно заметить, что возвращаемые значения являются строками, словарями, списками словарей, в общем типами данных, с которыми прекрасно работает Python, поэтому следующим шагом мы его установим.
Шаг 5
Установим Python и nano
Для установки Python’а пишем в терминале:
Теперь у нас установлен 2 и 3 Python.
За время работы над статьей, я открыл для себя еще один текстовый редактор nano, который приглянулся мне больше чем vim, давайте его установим:
Пользоваться им проще чем vim’ом, и nano имеет более дружественный интерфейс. На Android устройстве все же удобнее vim.
HelloWorld на Python в Termux
По большому счету можно было обойтись и без этого пункта, но поставить Python в Termux и не написать HelloWorld, на мой взгляд, моветон.
Я не ставлю своей целью учить кого-либо Python’у, так что не знающие могут просто скопировать код (или начать изучать самостоятельно, благо литературы хватает), а знающие могут и сами что-нибудь наваять. А я «под шумок» еще покажу способ вводить текст в терминале без редактора.
Если в процессе ввода вы не заметили ошибку и уже нажали Enter, то перейти на строку выше не получится, для этого закончите ввод нажав Ctrl + D (можно вообще прервать Ctrl + Z) и повторите все с начала. Поскольку мы использовали ‘>’ то файл будет переписан полностью. По этой причине не рекомендую использовать такой метод ввода, если вы не уверены что напишете код сразу без ошибок.
Шаг 6
Bash-скрипты
Bash-скрипты это замечательный способ автоматизации работы с терминалом. Скрипт представляет из себя файл с расширением .sh (расширение не обязательно) содержащий набор команд терминала часть из которых мы уже изучили. Вот список большинства команд, все должно работать, но обратите внимание, что это список для «взрослого» Linux’а, а не для Termux’а, а вот просто шикарный материал по bash-скриптам.
При помощи скриптов можно автоматизировать практически все монотонные действия. Напишем простейший bash-скрипт выводящий значение из созданной им же переменной, я снова воспользуюсь cat’ом, вы же можете использовать нормальный текстовый редактор, а особо желающие себя потренировать могут использовать echo.
Один добрый человек справедливо заметил, что команда export лишняя если переменная используется в рамках одного скрипта, так как вынесет переменную в окружение, то есть сделает ее доступной вне скрипта, занимая лишнюю память. Таким образом после выполнения test.sh мы сможем обращаться к переменной $str из командной строки.
Bash-скрипт с Termux:API
Давайте напишем уже что-нибудь отличающееся от пресловутых HelloWorld’ов, но столь же бесполезное. Наш скрипт будет:
- выполнять запрос API termux-battery-status
- сохранять полученные данные в файл test.txt
- выводить данные из файла на экран
- выполнять написанную ранее программу hello-world.py
- полученные от программы данные записывать в файл test.txt
- выводить данные из файла на экран
- переносить данные из файла в буфер обмена
- выводить на экран содержимое буфера обмена
- выводить всплывающее сообщение с данными из буфера обмена
Сначала создадим папку для работы и скопируем туда hello-world.py как test.py, создадим в этой папке файлы test.sh и test.txt:
Теперь любым удобным способом в файл test.sh запишем скрипт:
Теперь находясь в папке bashscript пишем ./test.sh наблюдаем в терминале на Android устройстве:
Вот мы и написали запланированный bash-скрипт. Можно разбавить его выводом в консоль информации по выполнению каждого действия (при помощи echo), это оставлю для читателей.
Шаг 7
Сделаем хоть что-то полезное
Сформулируем техзадание
Приложение должно после запуска помещать в буфер обмена случайную строку из файла и оповещать об этом всплывающим сообщением.За основу возьмем bash-скрипт, случайную строку из файла будем извлекать при помощи подпрограммы на Python’е. Составим план работы скрипта:
- Запустить подпрограмму
- Передать результат работы подпрограммы в буфер обмена
- Вывести всплывающее сообщение
Определимся с названиями директории и файлов приложения:
- папка rndstr в домашней директории
- source — файл из которого будем брать строки
- rndstr.py — подпрограмма выводящая в консоль случайную строку из файла source
- rndstr.sh — файл скрипта
Создаем директорию приложения и переместившись в нее создаем там файлы.
Первые два пункта плана скрипта можно объединить конвейером, в итоге, используя Termux:API получаем:
В файл source вы можете поместить любой текст логически разделенный на строки, я решил поместить афоризмы:
Нам осталось создать подпрограмму извлекающую случайную строку из файла source.
Распишем алгоритм работы подпрограммы:- Открываем файл source
- Считаем количество строк в открытом файле
- Закрываем файл (нечего его лишнее время открытым держать)
- Генерируем случайное целое число в пределах количества строк файла source
- Открываем файл source
- Выводим строку под номером сгенерированного числа
- Закрываем файл
Реализуем алгоритм на Python (я пишу под Python 3.7):
После того как файлы созданы и записаны, нужно дать права на исполнение файлу rndstr.sh , и создать alias для быстрого запуска.
Теперь введя в терминале rnst мы получим в буфер обмена случайный афоризм, который, например, можно использовать в переписке.
Вот мы и написали хоть что-то полезное. Относительно полезное.
Я намеренно в последнем шаге не стал приводить скриншоты и не разобрал подробно некоторые действия, расписав только содержимое файлов, чтобы у читателей была возможность поработать самостоятельно.
Изначально я планировал показать в этом цикле как пользоваться nmap, sqlmap, но и без меня уже много статей на эту тему. Если есть желание, чтобы я продолжил «Termux шаг за шагом», то ниже есть опрос, а в комментариях можете предложить о чем еще написать.
Источник