- Как устанавливать скрипты android
- Автоматизация установки множества apk файлов на Android
- Способ с локальным хранилищем apk файлов
- Так как всё-таки скачать?
- Как быть с обновлениями
- Способ без локального хранилища apk файлов
- DroidScript – простой и функциональный инструмент для разработки мобильных приложений под Android
- Что такое DroidScript?
- Установка и настройка
- Shell-скриптинг в среде Android
- Содержание статьи
- Особенности Android-окружения
- Хакер #185. Докажи баг!
- Первый пример
- Автозапуск
- Запуск скриптов до и после установки прошивки
- Что еще?
- Вместо выводов
- Евгений Зобнин
Как устанавливать скрипты android
По функционалу программы:
— При первом запуске было бы хорошо если б программа определяла свое место положение, а не C:\****
— Лучше если б папки «входящие файлы» (добавляем файлы) и «исходящие файлы» (сохраняем архив) были б созданы сразу. Ну и путь к ним сразу определился
— Заполненные параметры «пути» в закладках Файлы и Сборка — иногда сбрасываются при переходе между этими закладками
— Непонятно для чего кнопка «сохранить» в закладке Скрипт
— Сделать выбор бинарника, т.к. они не 100% универсальны
— Расширить варианты выбора скриптов
Пожелания по удобству использования:
— чтоб исключить синтаксические ошибки — ввести выделение красным отсутствие символа в команде, т.е. выделять ошибки
— на примере http://www.softportal.…ad-fisherman-big-4.gif хотелось бы.
а) список скриптов и их описание сбоку, а не в выпадающем меню
б) выделение команды одним цветом, а значения — другим (гораздо удобнее)
— сделать другую компоновку кнопок, поле скрипта и свободного места в окне программы, а именно более компактней. т.к. очень много пустого места, а при написании скрипта на экране много других окон открыто, которые не хотелось бы перекрывать.
— назвать исполняемый файл согласно названию программы (непонятно почему ACC)
— убрать из корня папки программы весь «мусор», закинуть его в отдельную папку. оставить лишь запуск программы и папки «входящие», «исходящие».
— для закладки Файлы — при нажатии кнопки «добавить» создавался бы список файлов, которые уже добавили (т.е. отображение того что в итоге будет записываться в скрипт)
Спасибо за начало разработки такой полезной программы.
Выше написал от себя пожелания, исходя из опыта работы в других программах (Notepad++, HtmlPad FisherMan). Правда еще не пробовал работу скрипта на планшете.
Также стоит Вам отписаться в теме Android update-script для привлечения людей к тестированию.
Для связывания тем — добавлю ссылку на эту тему в топик Android update-script , можно взаимно )
Новая версия, от 12-04-2014 Скачать
Версия: 1.0 BETA Android_Script_BETA.zip ( 7.3 МБ )
Добавлено:
1. Выбор бинарника. (свой бинарник пока что нельзя выбрать, но в будущем можно будет и выбирать)
2. Добавлено описание к командам и примеры.
3. На странице «Скрипт», напротив синтаксиса команды, добавлена кнопка «Добавить». Вы можете отредактировать синтаксис команды, нажав кнопку «Добавить» программа добавит строчку с вашей командой в скрипт.
4. Имя программы изменено.
Отвечаю на вопросы:
На стадии бета тестирования такого не будет, программа запоминает последний вобранный путь (после сборки), или в файле sfdata.ini вы сами можете указать пути которые вам удобны.
он подтягивается с файла sfdata.ini, после добавления файлов программа запоминает путь.
когда вы собрали апдейт, временная папка вместе с файлом скрипта удаляется, для того что-бы собрать новый апдейт, необходимо на вкладке «Скрипт» нажать «Сохранить», для того что-бы создался файл скрипта. (в будущем исправлю этот баг)
Шаблоны будут, но позже. Или вы имеете что-то другое?
на дынный момент, эта программа пишется на движке AMS, и у него нет синтексеса, если он появится добавлю синтаксис.
Пока это бета версия, мусор будет.
Возможно, но это бета тестирование. Пока что уделять этому время не буду. Когда программа покажет результат, примусь за внешний вид))) и все красивости.
Вопрос, какие шаблоны добавить в программу?
Вроде-бы нечего не забыл)
Спасибо за внимание 🙂
Сообщение отредактировал vadeus — 13.04.14, 08:04
Новая версия, от 13-04-2014 Скачать
версия: 1.0 BETA Android_Script_BETA.zip ( 7.62 МБ )
Добавлено:
1. Добавлен «Статус сборки» ( теперь будет видно что пошло не так)
2. Исправлены некоторые ошибки
3. В блок «О программе» добавлены ссылки на обсуждения.
4. Добавлен бинарник «ROM CyanogenMod 10.1 Android 4.2.2 (09-07-2013)» т.к. он хорошо работает с старыми рекавери CyanogenMod
Источник
Автоматизация установки множества apk файлов на Android
Приходилось ли вам сталкиваться с ситуацией, когда вам нужно автоматизировать установку определённого списока приложений на андроид девайс? Такой вопрос может возникнуть у вас в случае, если у вас много устройств и на все требуется установить одни и те же программы. Или в ситуации, если вы часто перепрошиваете свой смартфон разными прошивками и хотите сразу иметь определённые приложения на борту для работы.
Как это можно осуществить? В официальном магазине Google Play вы не можете этого сделать. Там есть категория «Мои приложения», в которой две вкладки: «установленные» и «все» (которые когда-либо были установлены, а затем удалены). Также есть категория «Список желаний». Но нигде нет кнопки для установки всего списка желаний, и нигде нет списка «Избранные».
Таким образом, в Google Play для установки нужного списка программ вам придётся долго и терпеливо выбирать из вашего списка по одному приложению и на каждом нажимать кнопку установить. Такой вариант нас не устраивает.
Способ с локальным хранилищем apk файлов
Следующий вариант: попробуем закачать к себе все приложения в виде apk файлов и устанавить их. Плюс этого способа в том, что не надо зависеть от Google Play и бояться, что там удалят какое-то приложение. Также можно ставить свои приложения, которых нет в Google Play.
Тут начинается самое интересное. Как скачать из Google Play? Просто так вытянуть из него apk файл не получится. На сайте play.google.com просто нет кнопки «Скачать». Есть только «установить» (и то только в случае «совместимости» с устройством) и «добавить в список желаний». Во-вторых, на телефоне мы можем не увидеть интересующие нас приложения. Те, которые «несовместимы» с вашим устройством, просто не отображаются, как будто их нет. Слово «Несовместимы» в кавычках — потому что на самом деле приложение вполне может быть совместимым. Это искусственное ограничение на установку делается по вполне понятным причинам — ограничение себя от отрицательных отзывов и соблюдение местного законодательства, или же желание дать доступ к приложение только определённой «илите». На «несовместимость» могут влиять название производителя телефона, разрешение экрана, страна проживания, сотовый оператор, частота и архитектура процессора и так далее (существуют программы для подмены всего этого). И, видимо, поэтому нельзя просто так взять и скачать apk c Google play. Этот сервис хочет знать под какой конкретный аппарат и аккаунт скачивается приложение и выдать ему нужный apk.
Так как всё-таки скачать?
Погуглив проблему, нашел я такой онлайн сервис как APK downloader (http://apps.evozi.com/apk-downloader/). Вы даёте ссылку на приложение на сайте play.google.com и получаете прямую ссылку на apk. Однако этим сервисом нельзя скачать с Samsung Apps.
Закачиваем себе всё необходимое. Теперь подключаем девайс, включаем отладку по usb и устанавливаем скриптом все приложения. Примерно такой скрипт:
#/bin/sh
for i in <1..50>
do
adb install apk$i.apk
done
Всё. Теперь все приложения установлены.
Решение это не очень красивое. В любой момент APK Downloader может быть прикрыт. И вообще для меня этот сервис как черный ящик. Я не знаю, как он качает. Кстати, этот же Apk downloader доступен в виде неофициального расширения для хрома (crx). Это zip архив с файлами. Я планирую посмотреть исходники из него. Может быть узнаю как инициализируется скачка. Вот он: codekiem.com/apk-downloader/crx/1.2.crx
Догадываюсь, что единственным способом скачать с плея остаётся закачка на какой-то девайс. Этот сервис наверняка так и скачивает: извлекает файл из «памяти устройства», а потом отдаёт уже скачанный апк. Почему бы тогда ему так же не сделать скачку и с самсунг аппс?
Как быть с обновлениями
Тут ещё проблема с обновлениями. Как мне обновлять приложения в своём хранилище? Всё заново качать? Нет удобного просмотра версии пакета и вообще автоматического обновления. Но есть одна софтина, которая может решить все эти проблемы. Правда, я её не пробовал стаить. Называется она Real apk leecher. Автор выложил исходный код на xda developers.
Вот здесь 4pda.ru/forum/index.php?showtopic=384677&st=60#entry16248359 инструкция как обновлять локальное хранилище.
Способ без локального хранилища apk файлов
Хотелось бы иметь возможность установки не только со своего хранилища, а прямо с гугл плея. Это решает проблему старых версий приложений. Как это сделать программно я не знаю.
Для установки apk на устройство можно использовать такие команды:
$ adb install
или же
$ adb shell pm install [опции]
Обратите внимание, что в Google Play на компьютере есть кнопка «установить» под приложением. Нажитие на неё прводит к чтению разрешений и подтверждением желания установки. Далее на телефон подключенный к интернету [ К НЕМУ ВООБЩЕ ДАЖЕ МОЖЕМ НЕ ПРИКАСАТЬСЯ ] приходит сам апк и устанавливается. То есть достаточно прислать какую-то команду из интернета на телефон и он всё сделает. Это вселяет какую-то надежду. Точно так же с сайта кнопкой можно установить приложение из Samsung Apps.
Я догадываюсь, что маркетодержатели (Гугл и Самсунг) оставили себе возможность подключения к рутовому шеллу. При нажатии кнопки «установить» на сайте они делают
$ adb shell pm install .
Потом кидают в уведомления «успешно установлено». Или какая-то похожая схема. Вот и получается установка с компа.
Проблема тогда в том, как узнать какую команду и каким образом надо послать на телефон, чтобы он сам всё скачал и установил из их хранилища? Они же наверняка спрашивают телефон о его серийнике, версии установленной уже программы. Может надо предварительно поставить сниффер и прослушивать весь траффик, между телом и интернетом. Но я не знаю как это сделать. Опытные хабровчане подскажут?
Источник
DroidScript – простой и функциональный инструмент для разработки мобильных приложений под Android
Что такое DroidScript?
DroidScript представляет собой приложение Android, которое включает в себя среду разработки и выполнения программного кода на Android устройстве. Он позволяет создавать приложения двух типов – JavaScript (с нативным интерфейсом) и HTML (гибридные).
Для создания нативного UI и доступа к программно-аппаратным ресурсам Android, JavaScript используется совместно с API DroidScript, который позволяет работать с WebView, SQLite, email, SMS, WebGL, сенсорами, Web-серверами, сокетами, спрайтовой анимацией и многим другим, а также осуществлять взаимодействие с внешними устройствами посредством Bluetooth, WiFi, USB и LAN.
Впечатляющая функциональность ”из коробки” – это одна из особенностей DroidScript. Другая особенность – простота его использования. В чём она состоит? Прежде всего, в кодировании. Ниже дан пример кода простого приложения:
Всё кодируется на JavaScript и API DroidScript без использования xml-разметки, подключения библиотек, создания классов и др.
В DroidScript нет визуальных средств проектирования интерфейса, как в Android Studio, AIDE или MIT App Inventor, но в нём можно реализовать LivePreview на Android для ещё более быстрой разработки интерактивных прототипов, а также расширить функциональность при помощи плагинов, написанных на JavaScript или Java.
Простота работы с DroidScript заключается не только в кодировании. Он изначально разрабатывался так, чтобы дать начинающим разработчикам под Android просто и быстро погрузиться в этот процесс.
Установка и настройка
В случае отсутствия под рукой телефона или планшета с операционной системой Android можно воспользоваться её эмулятором, например, BlueStacks или Nox APP Player.
Устанавливаем DroidScript из Google Play и открываем его. На экране появляется интерфейс с единственным приложением Hello World в области приложений.
Короткое касание пиктограммы приложения приведёт к его запуску. Для редактирования кода нужно выполнить долгое касание пиктограммы и выбрать опцию Edit в появившемся списке действий.
Панель управления включает в себя кнопки для доступа к документации, соединения с WiFi IDE, общим командам и примерам.
Настройка удалённой среды разработки WiFi IDE происходит так:
- Запускаем DroidScript и переходим в настройки по команде …/Settings для изменения пароля доступа или его сброса.
- В панели управления нажимаем кнопку со стрелкой вверх. Появляется диалог с адресом DroidScript.
- На настольном компьютере или ноутбуке открываем браузер и вводим полученный в предыдущем пункте адрес. Появляется диалог запроса пароля, если он не был сброшен. Вводим пароль, и после успешного получения доступа на экране отобразится интерфейс среды разработки.
В левой части окна располагаются вкладки с областью приложений, редактором, ресурсными файлами, а в правой — вкладки с новостями, справкой, примерами и отладчиком.
В WiFi IDE заложена возможность расширения его функциональности за счёт добавления вкладок. Вкладка “Espruino” является примером данного расширения.
В самом простом случае приложение может состоять из одного файла с расширением js, в котором код хранится в исходном виде. Для обмена проектом в исходном коде его можно запаковать в spk-архив. Также возможна сборка проекта в apk-файл, но для этого необходимо купить и установить плагин ApkBuilder.
Когда впервые видишь столь простые интерфейсы DroidScript и WiFi IDE, после работы в десктопной или web-среде, то возникает логичный вопрос, а можно ли с помощью этого cделать что-то серьёзное? Безусловно! Как известно, и с помощью простых инструментов можно создавать впечатляющие вещи!
Источник
Shell-скриптинг в среде Android
Содержание статьи
Android основан на ядре Linux, включает в себя набор стандартных UNIX-команд и простой шелл sh. Все это значит, что мы можем не только использовать командную строку для выполнения низкоуровневых операций, но и писать шелл-скрипты, которые будут выполнять функции, недоступные из графического интерфейса. В этой статье мы поговорим о том, что с их помощью можно сделать и зачем все это нужно.
Для прошлого номера журнала я написал статью о Tasker — системе, которая позволяет автоматизировать работу Android и заменить сотни сторонних приложений. К сожалению, Tasker ограничен высокоуровневыми функциями Android и не позволяет выполнять такие низкоуровневые операции, как монтирование файловых систем, изменение параметров ядра, системных переменных или запуск демонов. Зато все это можно сделать с помощью скриптов.
Сразу оговорюсь, что в этой статье речь пойдет о шелл-скриптах в традиционном для Linux понимании, без использования инструментов вроде SL4A, QPython или Roboto. Главное назначение таких скриптов — изменение поведения системы, параметров ядра, работа с демонами (ADB, например) и тому подобное. Скрипты могут стартовать на этапе загрузки ОС, установки новой прошивки, после тапа по кнопке или же по традиции — из терминала.
В статье я расскажу, как писать такие скрипты, как заставить их стартовать автоматически, привязывать к определенному системному событию. В качестве бонуса также объясню, как заставить консоль восстановления (recovery) выполнить необходимые тебе действия перед установкой или сразу после установки новой прошивки. Начинаем.
Особенности Android-окружения
В самой своей основе, там, где нет Java и Dalvik, Android представляет собой минималистичный Linux-дистрибутив со всеми свойственными ему атрибутами: ядром, системой инициализации, набором библиотек, демонов, консольных команд и, конечно же, шеллом. Последний — это не что иное, как mksh из MirBSD, переименованный в sh; простой командный интерпретатор с поддержкой языковых конструкций классического Bourne shell из UNIX и автодополнением по нажатию Tab.
В качестве комплекта базовых UNIX-команд здесь используется toolbox, своего рода урезанная альтернатива BusyBox, которая позволяет вызывать несколько разных команд из одного бинарника (с помощью симлинков). Toolbox включает в себя очень ограниченный набор команд, в котором нет не только grep или sort, но даже cp. Поэтому для полноценной работы со скриптами настоятельно рекомендуется установка BusyBox, благо в маркете полно бесплатных инсталляторов.
Сам шелл располагается не совсем по адресу, поэтому «шибанг» в скриптах будет выглядеть несколько по-иному, а именно #!/system/bin/sh. Зато о расположении бинарников можно не думать вообще, так как в переменной $PATH всегда прописаны правильные значения. Каталогов для поиска команд тут всегда три: /system/bin/, /system/sbin/ и /system/xbin/ для внешних бинарников. Туда обычно устанавливается BusyBox.
Основное назначение скриптинга в Android — работа с ядром и системными утилитами. Ядро тут стандартное и экспортирует все те же интерфейсы /proc и /sys, через которые можно рулить железом и состоянием системы. Плюс есть набор специфичных для Android утилит, которые будут очень полезны при разработке скриптов:
- pm — менеджер пакетов, позволяет устанавливать, удалять и перемещать софт;
- am — менеджер активностей (Activity), может быть использован для запуска приложений;
- dumpsys — дамп в консоль массы различной информации о состоянии системы;
- screencap — утилита для снятия скриншота;
- screenrecord — утилита для записи скринкастов;
- getprop/setprop — команды для чтения и изменения системных переменных;
- start/stop — запуск и остановка системных служб;
- input — позволяет отправлять в текущее окно кей-коды (эмуляция клавиатуры);
- service — утилита для управления Java-сервисами, имеет очень много возможностей;
- svc — позволяет управлять Wi-Fi, USB-подключением и питанием.
Часть вывода команды dumpsys
Хакер #185. Докажи баг!
Первый пример
Теперь давайте попробуем написать первый скрипт. Делать это лучше на компе, а еще лучше в Linux или редакторе, который умеет создавать текстовые файлы без символа возврата каретки (который при открытии в Android будет выглядеть как ^M в конце каждой строки). Наш первый скрипт будет состоять всего из двух строк, которые делают бэкап всех установленных приложений на карту памяти. Его код (требует BusyBox):
Сохраняем (пусть он называется apk_backup.sh) и перекидываем на смартфон с помощью ADB:
Теперь его нужно запустить. Проще всего сделать это с помощью все того же ADB:
Примерно таким же образом скрипт можно запустить из консоли на самом смартфоне/планшете:
Само собой, такой способ не очень удобен. Поэтому нам нужен какой-то быстрый способ запуска скрипта. Наиболее удобное из найденных мной решений — это приложение QuickTerminal. Устанавливаем, запускаем, переходим на вкладку Quick Command, нажимаем кнопку «+», вбиваем имя (произвольное) и команду (sh /sdcard/apk_backup.sh), в поле Output Type выбираем либо Dialog Output, либо Nothing. В первом случае во время выполнения скрипта на экране появится окно с результатом, во втором все пройдет в фоне. Кому что удобнее. Далее сохраняем и получаем кнопку, с помощью которой скрипт можно будет запустить быстро и легко.
Теперь напишем скрипт, который восстановит наш бэкап:
В нем мы задействовали команду pm с опцией install и флагами -t и -r, которые заставляют систему устанавливать приложения, даже если они подписаны тестовым ключом или уже установлены. Также можно использовать флаг -s, который принуждает приложения к установке на карту памяти (если такая возможность есть), или -f — установка во внутреннюю память устройства.
Почти все команды Android имеют подробную справку
Имея рут, можно даже сделать бэкап настроек всех приложений с помощью копирования и архивации каталога /data/data/, однако восстановить его будет очень проблематично, так как в Android каждое приложение исполняется от имени созданного специально для него Linux-юзера и хранит настройки внутри каталога, принадлежащего этому пользователю. Проблема здесь в том, что идентификатор Linux-юзера для каждого приложения генерируется динамически, поэтому после восстановления бэкапа в заново установленной системе идентификаторы не будут совпадать и приложения не смогут прочитать свои настройки. Придется вручную выяснять ID юзера для каждого приложения и менять права доступа на каталоги с данными.
С другой стороны, мы можем использовать встроенный в Android Backup Manager, позволяющий сторонним приложениям использовать возможности системы для бэкапа и восстановления приложений и их данных. Управлять им можно из консоли (а значит, и с помощью скриптов), но сам по себе он никакого бэкапа не производит, а возлагает эту работу на сторонние приложения. Helium — одно из таких приложений. Если установить и настроить его, операцию бэкапа и восстановления можно будет заскриптовать. Например, следующий простой скрипт сделает резервную копию всех сторонних приложений:
Конструкция $
Автозапуск
«Это все круто, но скрипты должны запускаться сами», — скажешь ты и будешь абсолютно прав. Без автозапуска от скриптов толку мало, но это легко исправить, если воспользоваться все тем же Tasker. Он умеет запускать любые шелл-команды в ответ на любое событие. Чтобы воспользоваться этой функциональностью, достаточно создать новый профиль, выбрать событие (для бэкапа лучшим событием будет время), затем добавляем действие, выбираем Script -> Run Shell, вбиваем команду (sh /sdcard/script.sh), выбираем, если необходимо, файл для записи результата и включаем профиль.
Другой популярный способ автозапуска — это использование средств автоматического исполнения скриптов при загрузке в сторонних прошивках. Сегодня почти все сколько-нибудь известные кастомные прошивки умеют стартовать скрипты из каталога /system/etc/init.d/, а в стоке такую функциональность можно получить с помощью приложения Universal init.d из маркета. С последним, однако, надо быть осторожным, так как оно запускает скрипты не на раннем этапе загрузки, как это происходит в том же CyanogenMod, а уже после полной загрузки системы.
Итак, что мы можем поместить в автозагрузку? Например, скрипт запуска демона ADB в сетевом режиме:
Для подключения к нему с ПК набираем такую команду:
Также мы можем применить некоторые оптимизации подсистемы виртуальной памяти:
Ну или подогнать механизм lowmemorykiller (автоматическое убийство фоновых приложений при нехватке памяти) под наши нужды:
Ну и конечно же, автоматический выбор планировщика процессов:
Все это можно сделать с помощью специализированного софта, но зачем загружать систему дополнительным ПО, которое еще и будет висеть в фоне, когда можно обойтись несколькими простыми скриптами?
Как запустить скрипт с помощью Tasker
Запуск скриптов до и после установки прошивки
Почти каждый, кто устанавливает на свой гаджет стороннюю прошивку, также ставит поверх нее пакет с фирменными приложениями Google (gapps), который включает в себя маркет, YouTube, Gmail и другой софт. Каждый раз, когда происходит обновление прошивки, раздел /system, содержащий ее и gapps, полностью стирается, но приложения Google всегда остаются на месте. Это происходит потому, что, кроме всего прочего, gapps содержит в своем составе специальный скрипт, который размещается в каталоге /system/addon.d/ и запускается консолью восстановления до и после установки прошивки. Этот скрипт делает бэкап и восстановление приложений Google.
Мы можем использовать эту возможность для выполнения наших собственных действий до и после установки прошивки. Вот так, например, выглядит мой скрипт восстановления, который ничего не бэкапит, но подчищает прошивку от мусора сразу после ее установки:
Скрипт удаляет рингтоны, уведомления, движок синтеза речи и несколько приложений. Все эти действия запускаются в ответ на передачу скрипту опции командной строки restore (это делает консоль восстановления после установки прошивки), однако также предусмотрены и варианты обработки таких опций, как backup, pre-backup, post-backup, pre-restore и post-restore. Здесь это просто заглушки, но если бы мы захотели сделать бэкап некоторых файлов и приложений перед установкой прошивки, мы могли бы добавить их в блок backup, как это сделано в скрипте /system/addon.d/70-gapps.sh:
Этот кусок скрипта прекрасно иллюстрирует, как сделать бэкап файлов. Ключевые элементы здесь: функция listfiles, которая при запуске выводит листинг файлов, и функция backupfile, которая является частью консоли восстановления (определена в файле /tmp/backuptool.functions). Она делает бэкап файлов в цикле.
Содержимое /system/addon.d/ в CyanogenMod 11 на Motorola Defy
Скрипт бэкапа приложений Google
По словам разработчика mksh, изначально пользовательские версии Android-смартфонов вообще не должны были иметь в своем составе шелл, но после выпуска смартфона для разработчиков HTC (T-Mobile) G1 он фактически стал стандартной частью системы.
Версии Android 2.3 и ниже вместо mksh использовали минималистичный шелл ash, который входит в базовый комплект всех BSD-систем.
Чтобы получить одни и те же скрипты на всех устройствах, можно использовать приложение DropSync или FolderSync (автоматическая синхронизация через Dropbox).
Что еще?
С помощью скриптов в Android можно сделать намного больше, чем бэкапы и настройка параметров системы. Вот, например, скрипт, который просыпается каждые десять минут и, если уровень заряда батареи стал меньше 30%, отключает Wi-Fi и Bluetooth:
Чтобы скрипт работал в фоне, достаточно вызвать его следующим образом:
А это скрипт, который позволяет быстро заполнять формы, требующие ввода имэйла и пароля (в приложениях и на веб-сайтах):
Запускать его можно разными способами. Либо перед запуском приложения, установив задержку:
Либо повесить на какое-то событие Tasker, например на взмах смартфоном. Другой вариант — использовать буфер обмена. В Android, чтобы вставить нужный текст в буфер обмена, достаточно выполнить такую команду:
Не ахти как удобно, зато работает. Как мы можем использовать такую функциональность? Например, сделать простенький скрипт clip.sh:
Соль в том, что скрипт можно вызывать через удаленный ADB либо вообще поместить в /system/etc/init.d/, заменив $1 на нужный текст. Так нужные нам данные всегда будут под рукой, а бесполезный на смартфоне механизм копирования/вставки получит хоть какое-то назначение. Консольные команды можно использовать и для более высокоуровневых операций, например позвонить по указанному номеру:
Или просто открыть окно номеронабирателя с нужным номером:
Примерно таким же образом можно отправить SMS:
Скрипт принимает два аргумента: номер телефона и содержимое SMS. После запуска он откроет окно SMS-приложения, вставит в него нужный текст, а затем нажмет кнопку Enter для отправки, после чего окно закроется.
Другие полезные при скриптинге команды:
- Перезагрузка в режим recovery:
- Мягкая перезагрузка (без перезапуска ядра):
- Открыть нужное приложение (в данном примере — «Настройки»):
- Открыть веб-страницу:
- Сообщить приложениям о низком уровне заряда батареи (есть софт, который при этом снижает свою активность):
- Изменить MAC-адрес:
- Активировать вибратор:
- Включить фонарик:
- Проиграть файл (может не сработать):
- Отключить указанное приложение (можно организовать цикл для отключения bloatware по списку):
- Получить список приложений, которые имеют уведомления в строке состояния:
- Оптимизировать внутренние базы данных с настройками (можно добавить скрипт в автозагрузку, требуется BusyBox):
- Переключить Wi-Fi-тизеринг на основной интерфейс (нужно для обмана операторов, которые ограничивают скорость соединения при раздаче интернета по Wi-Fi):
Для «отлова» нажатий кнопок можно использовать команду getevent
Вместо выводов
Для кого-то все описанное в статье может показаться несколько надуманным. Дескать, все это можно сделать с помощью стандартного софта и Tasker. Но зачем использовать тяжелый Java-софт там, где нужное действие можно выполнить с помощью простенького скрипта, который не занимает лишней памяти и может быть легко перенесен на другое устройство? Скрипты удобны, просты, быстро отрабатывают и дают возможность тонкой настройки под себя.
Евгений Зобнин
Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.
Источник