Андроид для создания ботов

Андроид для создания ботов

Для функционирования программы необходимы права root пользователя.

Краткое описание:
Инструмент автоматизации, который превратит ваше андроид-устройство в бота для выполнения повторяющихся задач.

Описание:
Возможности программы:
— Поддерживаются касания, долгий тап, текстовый ввод и физические клавиши управления.
— Отключение блокировки для предотвращения выключения экрана.
— Задержка запуска, дает необходимое времени, для того, чтобы сделать то, что вам нужно перед запуском виполнения.
— Экспорт/импорт ваших отредактированных файлов (в расширении .abm)
— Добавляйте, выбирайте, переключайте, изменяйте и удаляйте действия из списка.
— Экспортируйте их в скрипт, выполняемый из эмулятора терминала или через ADB.
— Добавляйте виджеты, чтобы выполнять предварительно созданные задания!
— Просматривайте свои файлы в приложении!

Полезные подсказки:
— Чтобы отредактировать задание, нужно сделать долгий тап по нему и задать требуемые значения.
— Чтобы выбрать действие просто нажмите на него.
— Чтобы поменять местами два, находящихся рядом действия, выберите их и нажмите кнопку «Поменять местами строки»
— Чтобы остановить выполнение в фоновом режиме просто тапните по уведомлению.
— Чтобы удалить элементы в файловом менеджере сделайте по ним долгий тап.

Русский интерфейс: Да
Версия андроида 4.1+

версия 3.4: AndroidBotMaker_3.4.apk ( 672.37 КБ )

версия 1.9:AndroidBotMaker_1.9.apk ( 1.1 МБ )
версия 1.9 Rus:AndroidBotMaker 1.9_Rus.apk ( 1.13 МБ )

Сообщение отредактировал Slav_nsk — 10.12.19, 18:53

Источник

Игровые боты. Начало

Что может быть интереснее процесса игры в игры? Правильно! Процесс наблюдения за тем, как играет в игры написанный тобой бот.

Некоторое время, я размышлял, о чём бы написать свою первую статейку. Хотел написать о программировании микроконтроллеров, но оказалось трудно отделить части рабочих проектов от тех, что можно опубликовать без оглядки на коллег. Остановился на идее о ботах.

Введение

Боты для онлайн игр я бы грубо разделил на 3 разновидности по способам реализации:
1. Боты не использующие приложение игры. Имитирующие протокол обмена с сервером.
2. Боты работающие с процессом приложения игры. В случае с Web, работающие с окном браузера.
3. Боты работающие со скриншотом и имитирующие устройства ввода мышь и клавиатуру.

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

Вторая разновидность более реальна и может быть реализована. Бот второго вида получает полезную информацию из памяти процесса игры. Недостаток — версии клиентов могут регулярно обновляться и тогда может потребоваться заново искать интересующие адреса памяти.

Мы рассмотрим третюю разновидность ботов, т.к. ИМХО они более привлекательны, хоть и не лишены недостатков.
А так же, такой подход более спортивный 🙂

В этой статье я рассмотрю набор инструментов для самого простого бота для Windows.

Для самого простого бота достаточно эмитировать события мыши и клавиатуры. В большинстве случаев этого оказывается достаточно для решения (не самого эффективного, но не требующего участия человека) рутинных дел в различных играх. Для более эффективной работы бота требуется обратная связь с игрой, т.е. получение и обработка скриншотов игры.

Для разработки приложений я буду использовать Qt Creator + Qt 5 либы (так мне привычнее) и раз бот для Виндовс то + windows.h (WinAPI).

Регистрация горячих кнопок для управления ботом:

Обработка событий нажатия кнопок управления ботом:

Перемещение указателя мыши к нужной точке:
(выполнено не очень аккуратно, обещаю исправиться :-))

Мануал юзера

Перед запуском бота горячей кнопкой Alt-F1, бот следует сначала настроить, определив верные координаты органов управления по которым бот будет кликать.
Для запоминания координат точки наводим указатель месту и жмём Alt-F4.
Для проверки корректности точки отводим указатель в сторону и жмём Alt-F3.
Для настройки следующей точки жмём Alt-F2.
Для сохранения верных координат жмём Alt-F5.

Подводные камни

Опыт показывает, что не стоит торопиться кликать по органам управления и двигать указатель. Часто игры притормаживают, при наведении мыши на кнопку срабатывает отрисовка подсветки и прочие неведанные процессы и торопливость приводит к несрабатыванию клика или захвата при перетягивании и т.п. и как следствие неработоспособность бота. При ручном управлении, люди обычно таких досадных мелочей даже не замечают, так как работает обратная связь через органы зрения. Решение — делать паузы после всех элементарных действий.

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

Источник

Запускаем Telegram-бота на Android устройстве (Remote Bot for Telegram)

Четыре месяца назад у меня появилась идея написать Telegram-бота, который будет запускаться не на внешнем сервере, как большинство ботов, а на мобильном телефоне.

Идея родилась не на пустом месте: я часто пропускал входящие звонки и СМС, когда телефон был в куртке или в кармане, поэтому мне нужен был дополнительный способ уведомлений. А так как я активно использую Telegram на компьютере, то подумал, что было бы не плохо, если бы входящие СМС и пропущенные звонки приходили в Telegram. Немного покопавшись, я решил написать бота.

Разработка прототипа

Я стал изучать тему создания Telegram ботов по официальной документации и по примерам. В основном все примеры были написаны на Python. Поэтому не долго думая, стал искать способы запуска Python сервера на Android. Но оценив время на изучение Python и не найдя ничего подходящего для запуска сервера, занялся поиском альтернатив и наткнулся на несколько библиотек на Java для написания Telegram ботов. В итоге остановился на проекте от Pengrad: java-telegram-bot-api.

Читайте также:  Amazon app store для android

Данная библиотека позволяла, на тот момент, инициализировать бота и получать-отправлять сообщения, что мне было и нужно. Добавив библиотеку в свой проект, я реализовал простой сервис, который запускал в фоновом потоке цикл по получению сообщений из Telegram и их обработке. Предварительно необходимо было зарегистрировать нового бота через родительский бот @Botfather и получить его токен. Подробнее о создании бота по ссылке.

Для того, чтобы сервис не убивался системой, когда устройство находится с выключенным экраном, при запуске сервиса, устанавливался WakeLock.

Приведу в пример функцию, позволяющую получать последние сообщения и отправлять их на обработку:

Позже, в целях безопасности, я добавил возможность привязки бота к разрешенным Telegram-аккаунтам и возможность запрета выполнения определенных команд для заданных пользователей.

Добавив несколько команд для бота, такие как: отправка, чтение СМС, просмотр пропущенных звонков, информация о батарее, определение местоположения и др., я опубликовал приложение в Google Play, создал темы на нескольких форумах, стал ждать комментарии и отзывы.

В основном отзывы были хорошие, но вскрылась проблема большого расхода батареи, что, как вы могли догадаться, было связано с WakeLock и постоянной активностью сервиса.Немного погуглив, решил периодически запускать сервис через AlarmManager, затем после получения сообщений и ответа на них сервис останавливать.

Это немного помогло, но появилась другая проблема, AlarmManager некорректно работал на некоторых китайских устройствах. И поэтому бот иногда не просыпался после нескольких часов, проведенных в состоянии сна. Изучая официальную документацию, я читал о том, что Long Polling это не единственная возможность получения сообщений, сообщения еще можно было получать используя Webhook.

Получение сообщений через Webhook

Я зарегистрировался на Digital Ocean, создал VPS на Ubuntu, затем реализовал простейший http сервер на Java, использующий Spark Framework. На сервер можно делать запросы 2 типов: push (отправка пуш-уведомления через webhook) и ping.

Пуш-нотификации отправлялись с помощью Google Firebase.

Генерация SSL сертификата

Протестировав отправку пуш-уведомлений, я стал разбираться с тем, как настроить и запустить сервер с HTTPS, так как это одно из требований при получении сообщений из Telegram через webhook.

Бесплатный сертификат можно сгенерировать с помощью сервиса letsencrypt.org, но одним из ограничений является то, что указываемый хост при генерации сертификата не может быть ip адресом. Регистрировать доменное имя я пока не хотел, тем более официальная документация Telegram Bot API разрешает использование самоподписанных сертификатов, поэтому я стал разбираться, как создать свой сертификат.

После нескольких часов, проведенных в попытках и поисках, получился скрипт, позволяющий сгенерировать нужный сертификат.

После запуска скрипта, на выходе получаем два файла: keystore.jks — используется на сервере, public_cert.pem — используется при установке webhook в Android приложении.

Для того, чтобы запустить HTTPS на Spark Framework достаточно добавить 2 строки, одну указывающую порт (разрешенные порты для webhook: 443, 80, 88, 8443), другую, указывающую сгенерированный сертификат и пароль к нему:

Чтобы установить webhook для бота, необходимо добавить в андроид-приложение следующие строки:

При регистрации webhook, в качестве URL указывается адрес webhook, затем передается пуш-токен, необходимый для отправки пуш-уведомлений и секретный ключ, генерируемый на устройстве, который я добавил для дополнительной проверки входящих уведомлений.

Функция чтения публичного сертификата из RAW ресурса:

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

Автоматическое создание бота

После обновления механизма получения сообщений, осталась еще одна проблема, которая не позволяла пользоваться приложением некоторому проценту пользователей из-за сложности создания бота через BotFather. Поэтому я решил автоматизировать этот процесс.

В этом мне помогла библиотека tdlib от создателей Telegram. К сожалению, я нашел очень мало примеров использования этой библиотеки, но разобравшись в API, оказалось, что не так все сложно. В итоге удалось реализовать авторизацию в Telegram по номеру телефона, добавление @Botfather в список контактов и отправку и получение сообщений заданному контакту, а в конкретном случае, боту @Botfather.

Добавление новых возможностей

После решения первостепенных проблем с автономностью, я занялся добавлением новых команд.
В итоге были добавлены такие команды как: фото, запись видео, диктофон, скриншот экрана, управление плеером, запуск избранных приложений и т.д. Для удобного запуска команд, добавил Telegram-клавиатуру и разбил команды по категориям.

По просьбам пользователей, я также добавил возможность вызова команд Tasker и отправки сообщений из Tasker в Telegram.

После этого я задумался о том, что неплохо бы добавить внешний доступ из сторонних приложений для оправки сообщений в Telegram. Сообщения могут быть как текстовыми, так и включать в себя аудио, видео, местоположение по координатам. В итоге, я написал библиотеку, которую можно добавить в свой проект.

Заключение

В этой статье я постарался поделиться краткой историей работы над проектом по созданию бота, работающего на Android устройстве и трудностями, с которыми я столкнулся. Сейчас я занимаюсь проектом в свободное от работы время, добавляю новые команды и исправляю возникающие ошибки.

Большое спасибо за внимание. Буду рад услышать от Вас полезные замечания и предложения.

Источник

Читайте также:  Как оплачивать телефоном вместо карты райффайзен банка андроид

Bot Maker

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

Bot Maker – приложение для мобильных устройств под управлением Android, с помощью которого можно автоматизировать выполнение простых задач. Утилита позволяет создать бота, который будет нажимать на заданные кнопки. Для корректного функционирования приложения требуются root права.

Список задач

С помощью утилиты пользователи могут создать задания для бота. В главном меню доступны следующие действия:

  • короткое или долгое нажатие в определенное место на экране;
  • ввод текста;
  • нажатие виртуальной кнопки;
  • отключение экрана.

Есть возможность задать время задержки, а также добавить комментарии к каждому действию. Кроме того, приложение позволяет выбрать время запуска и длительность выполнения задачи.

Отметим, что утилита требует наличия прав суперпользователя. Получить их можно с помощью Baidu Root или другого приложения с аналогичным функционалом.

Сохранение и запуск скриптов

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

Также поддерживается работа утилиты в фоновом режиме. Доступна функция отправки сохраненного файла с расширением ABM по электронной почте или с помощью мессенджера.

Источник

Разработка приложений для Android. Простой бот на WebKit. Тестировалось на Samsung Galaxy Y S5360

Накрылась моя старенькая Nokia N72.

Выпил пива (и не только), вырубился, перед этим, вероятнее всего, разлил на себя тоже пиво ну и телефон отказался работать.

Вообще, телефонов у меня было много. Думаю что не у меня одного. Вот только покупал я себе самые простые. В первую очередь это для меня средство связи. Иногда нужен интернет. Почту, например, прочитать. Ну и все. Плюс долго они у меня не задерживаются. То разобью, то потеряю, то промочу. Если дал за телефон несколько сотен гривен, то не так обидно его терять, если бы дал за него несколько тысяч.

Тот, что купил тоже не очень дорогой (чуть больше 1000 гривен в магазине). Это, наверное, один из самых дешевых, учитывая эго возможности. Запихнули туда все, что можно, хотя и с минимальными параметрами.

Фото Samsung Galaxy Y S5360 (оригинальное 4800 x 1800 px):

В общем, пост не о моих телефонах и не о моем последнем приобретении. Так как я программист, первым делом после покупки и настройки девайса пошел в гугл искать информацию о программировании для Android.

До этого имел опыт программирования под Symbian OS 9.1 стоявшую на моей Nokia N73. Я, хоть и фанат C++, дальше Hello World не пошел. Пришлось осваивать Java. Так как это внук или правнук C++, особых проблем с освоением не возникло. И так на свет появилось несколько уровней «Klotski» под Symbian OS. Сделал примерно за день и это вместе с освоением неизвестного мне языка и системы.

Кстати о Nokia N73: покупал я его очень давно стоял он тогда где-то 3500 гривен, ну и одним прекрасным вечером я снова немного перебрал. Мимо проезжали стражи порядка, увидев меня решили остановиться и поболтать о том о сем. Из-за моей неадекватности, конструктивного диалога не получилось и было решено прокатить меня на машине к ближайшему упорному пункту. Перед тем как ехать один из них попросил у меня телефон, чтобы позвонить. Больше я телефон не видел. Покупался он конечно за не малые деньги, но радует то, что я им пользовался много лет ну и что его цена за это время существенно упала. Та и состояние у него было не на пять с плюсом.

Вернемся к сути поста, а именно к Android OS.

В первую очередь понадобится среда разработки. Я, конечно, очень привык к Visual Studio та и есть в сети статьи по теме разработки приложений для Android в ней. Пишут, что вроде как можно писать на Java, C++ и даже на C#. Я особо не вникал в тему, поэтому не знаю, что и где качать, каким образом это все настраивать и использовать. В общем, решил послушать совета гугла который рекомендует использовать Eclipse с плагином Android Development Tools (ADT).

Перед тем как ставить среду необходимо поставить Java SDK (JDK). Скачать можно здесь. После загрузки и установки можно ставить и среду. Можно ставить все по отдельности: Eclipse, Android SDK, Android Development Tools (ADT) но зачем нам лишняя трата времени на настройку, если гугл предлагает скачать все это вместе? Качать от сюда. Для загрузки гугл предлагает обычный архив, без установочного пакета, поэтому после скачивания просто извлеките содержимое в какую-то папку в корень диска, например «C:\android». Если положить куда-то глубже будут проблемы. Особенно если в пути будут пробелы или русские символы.

Запустите SDK Manager. Вы увидите список компонентов, которые можно загрузить через интернет. В колонке «Status» указано, установлен компонент или нет и есть ли для него обновление.

В идеале нужно установить все флажки и нажать на кнопку «Install package» и тем самым загрузить и установить все существующие компоненты. Учтите, что это займет очень много времени, так как качать придется не один гигабайт информации. Если у вас быстрый интернет и нет ограничений в трафике тогда все норм, в противном случае я бы рекомендовал вам обновить установленные компоненты и установить платформу, для которой вы собираетесь компилировать программы. Я выбрал Android 2.2 (API 8). Для установки только платформы без примеров и дополнительных API необходимо установить флажок «SDK Platform».

Читайте также:  Icon pack для андроид darkonis

После загрузки и установки необходимых вам компонентов нужно создать Android Virtual Device (AVD), эмулятор смартфонов с которым будет работать Eclipse. Запускаем среду, открываем меню «Window» и выбираем пункт «Android Virtual Deviсe Manager». В появившемся диалоге на вкладке «Android Virtual Deviсe» нажимаем кнопку «New» после чего появится еще один диалог. В поле «AVD Name» вводим имя устройства на ваше усмотрение. Оно может состоять из произвольного набора символов. В выпадающем списке «Deviсe» выбираем желаемое устройство. Основное их отличие это размер экрана. Честно говоря, не знаю, чем они еще отличаются. В списке «Target» можно выбрать одну из установленных платформ. Еще можно установить размер «SD Card», например, 512 MiB. После чего жмем кнопку «Ok» и закрываем диалог «Android Virtual Deviсe Manager».

Теперь можно создавать приложения и тестировать на своем компьютере. Согласитесь, что подключать устройство для каждого тестового запуска программы менее удобно. Да и не у всех есть такое устройство. Кстати, перед релизом все-таки нужно будет протестировать программу на устройстве, так как тесты в эмуляторе и непосредственно на конечном устройстве естественно имеют существенные отличия. К примеру, в эмуляторе вы не сможете в полной мере протестировать обработку сенсорного управления.

Во время первых запусков проекта созданного мастером у меня появлялись различные ошибки. Лечил гуглением. Так что если будут ошибки, просто переписываем сообщение об ошибке в строку поиска гугл и переходим по какому-то результату. В основном решение находится сразу.

Так как основная моя специализация это написание различных ботов было решено написать для Android простой бот. Думаю что большинству извесно что Android построен на Linux, а браузер эго на WebKit который и будет использоватся программой в качестве движка. Программа будет иметь кнопку, текстовое поле и пространство для отображения страниц. После ввода в текстовое поле поискового запроса и нажатия на кнопку программа перейдет на Яндекс затем с помощью JavaScript введет поисковую фразу и отправит форму для поиска. Приступ.

Нажимаем «File» > «New» > «Android Application Project» откроется мастер создания проекта.

Application name — это название программы, которое будет отображаться в списке программ на смартфоне.
Project Name – имя проекта, которое будет отображаться в списке проектов в Eclipse
Package name – префикс для классов проекта. Я использую com.zmax.androidbot. после первой точки название фирмы (если ее нет, можете написать, к примеру, свой ник). После второй точки название проекта.
Minimum Required SDK – минимальная версия Android на которой будет работать программа.
Target SDK – максимальная версия Android на которой тестируется приложение.
Compile With – возможности какой версии будут доступны программе.
Везде выбираем Android 2.2 (Froyo). В общем, то что вы скачали.
Theme – выбираем None.

Оставляем два флажка: Create Activity и Create Project in Workspace.

Так как на следующих диалогах ничего менять не нужно, можно сразу нажимать Finish. Проект успешно создан.

Теперь необходимо добавить элементы управления. Это можно сделать в визуальном редакторе или за счет редактирования activity_main.xml. Нужно написать следующее:

xmlns:android = «httр://schemas.android.com/apk/res/andr oid»
xmlns:tools = «httр://schemas.android.com/tools»
android:layout_width = «match_parent»
android:layout_height = «match_parent»
android:paddingBottom = «@dimen/activity_vertical_margin»
android:paddingLeft = «@dimen/activity_horizontal_margin»
android:paddingRight = «@dimen/activity_horizontal_margin»
android:paddingTop = «@dimen/activity_vertical_margin»
tools:context = «.MainActivity» >

android:id = «@+id/editText1»
android:layout_width = «wrap_content»
android:layout_height = «wrap_content»
android:layout_alignParentLeft = «true»
android:layout_alignParentTop = «true»
android:ems = «10»
android:text = «»ZMax Home Industry»»/>

android:id = «@+id/button1»
style = «?android:attr/buttonStyleSmall»
android:layout_width = «wrap_content»
android:layout_height = «wrap_content»
android:layout_alignBaseline = «@+id/editText1»
android:layout_alignBottom = «@+id/editText1»
android:layout_alignParentRight = «true»
android:layout_marginRight = «17dp»
android:text = «Search»/>

android:id = «@+id/webView1»
android:layout_width = «match_parent»
android:layout_height = «match_parent»
android:layout_alignLeft = «@+id/editText1»
android:layout_below = «@+id/editText1»
android:layout_marginTop = «18dp»/>

А теперь можно немного покодить. В MainActivity.java в метод onCreate нужно дописать:

findViewById ( R . id . button1 ). setOnClickListener ( new OnClickListener () <
@Override public void onClick ( View v ) <
final WebView webView = ( WebView ) findViewById ( R . id . webView1 );
webView . getSettings (). setJavaScriptEnabled ( true );
webView . setWebViewClient ( new WebViewClient () <
@Override public void onPageFinished ( WebView view , String url ) <
String strSearch = (( TextView ) findViewById ( R . id . editText1 )). getText (). toString ();
String strScript =
«javascript:» +
«inputText=document.getElementById(‘quer y’);» +
«inputText.value='» + strSearch + «‘;» +
«inputText.form.submit();» ;
webView . loadUrl ( strScript );
>
>);
webView . loadUrl ( «htt р ://www.yandex.ru/m/» );
>
>);

С помощью метода setOnClickListener устанавливаем обработчик нажатия на кнопку. Переопределяем метод onClick. Берем WebView и с помощью метода setJavaScriptEnabled включаем JavaScript. Устанавливаем WebViewClient и переопределяем метод onPageFinished который вызывается после загрузки страницы. В нутрии него формируем скрипт и выполняем его с помощью loadUrl. Далее по коду идет еще один loadUrl который и загрузит Яндекс.

В AndroidManifest.xml нужно дописать:

Это для того чтобы система дала программе права на доступ в интернет.

Ну, вот и все! Программа готова для запуска в эмуляторе или на устройстве с Android 2.2 либо выше.

Вот так выглядит в эмуляторе, после загрузки Яндекса и выполнения скрипта

Проект положил в архив. Качать тут. В папке «bin» есть откомпилированная программа готовая для установки на устройство.

Так как это мой первый проект под Android, та и один из первых на Java, код и программа довольно таки сыроваты. Не знаю почему, сначала программа у меня не работала. Переходила на Яндекс но не вводила запрос. Как мне кажется, особых изменений в код я не вносил, но в один прекрасный момент она заработала. Еще один глюк: если изменить положение телефона, страница исчезает с экрана. Также хз, от чего и почему.

Ну, в общем, система меня заинтересовала. Думаю над каким-то серьезным проектом. Если сделаю программу или узнаю что-то интересное о Android, тогда напишу пост.

Источник

Оцените статью