Написать бота для андроида

Написать бота для андроида

Для функционирования программы необходимы права 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

Источник

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

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

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

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

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

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

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

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

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

Читайте также:  Как заблокировать процесс android

Добавив несколько команд для бота, такие как: отправка, чтение СМС, просмотр пропущенных звонков, информация о батарее, определение местоположения и др., я опубликовал приложение в 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 устройстве и трудностями, с которыми я столкнулся. Сейчас я занимаюсь проектом в свободное от работы время, добавляю новые команды и исправляю возникающие ошибки.

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

Источник

Программы для Android. Автоматизация любых действий на Android планшете или телефоне с помощью Android Bot Maker

У вас никогда не возникало необходимости в том, чтобы ваш телефон или планшет в определенное время, без вашего участия самостоятельно выполнил какие-либо действия?

Если да, то приложение Android Bot Maker создано именно для вас. Оно умеет записывать ваши жесты, прикосновения к определенным точкам экрана, нажатие на клавиши, текстовый ввод и запускать их в заданное пользователем время.

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

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

Приложение умеет работать в фоновом режиме, и вы можете остановить его выполнение в любой момент, кликнув по ярлыку в панели уведомлений (опция меню настроек Show Notifications).

Android Bot Maker работает на любом устройстве с операционной системой Android 4.1 и выше, и что самое ценное в программе – делает всё вышеперечисленное она абсолютно бесплатно (правда, за счет показа рекламы). Единственное ограничение – вам потребуется наличие root прав.

Работать с программой очень просто. После запуска приложения вы сразу же можете начать запись макроса. Нажмите на плюс, чтобы добавить новое действие, выбрав его из списка. Вы можете добавить следующие операции: «Tap» — клик по экрану, «Swipe» — прокрутка экрана, «Key Press» — нажатие кнопки, «Text input» — ввод текста, и «Sleep» — задержка в секундах между операциями.

В «Tap» и «Swipe» записываются координаты ваших касаний к экрану, а в «Key Press» нажатие любых аппаратных кнопок вашего устройства, таких как регулировка громкости, «Домой», «Назад» и т.п. Вы можете задать любое нажатие клавиши, но к сожалению, комбинацию из двух одновременно нажатых клавиш программа записывать не умеет.

При редактировании списка вы можете менять строки местами, выбрав любые два действия, нажав на их порядковые номера и нажав на «Switch rows».

После того, как вы записали свой макрос, можете перейти к настройкам приложения, сдвинув его основной экран влево. Здесь вы найдете уже известную опцию показа значка в панели уведомлений «Show Notifications», включение режима запуска с задержкой «Delayed start», и режима работы без гашения экрана устройства «Use Wake Lock».

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

Читайте также:  Items ini android где находится

Скачать Android Bot Maker вы можете абсолютно бесплатно в Google Play Маркете.

Источник

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

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

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

Введение

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

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

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

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

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

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

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

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

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

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

Мануал юзера

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

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

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

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

Источник

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