Использование python ppadb для автоматизации кликов. Касание ввода работало нормально, но было медленно, поэтому я внедрил свое устройство (android 10, пиксель 2), чтобы использовать sendevent / dev / input / event #. Я использовал adb shell getevent для прослушивания касаний и определения определенных c значений для моего устройства (event2 и команды для касания вниз, ввода координат, подъема и 0 0 0 для их отправки)
import utils as u, random, time, sys, os
driver= u.Driver(id)
sendCmd = "su +c sendevent /dev/input/event2 "
driver.device.shell(sendCmd + "3 57 374")
driver.device.shell(sendCmd + "3 54 970")
driver.device.shell(sendCmd + "3 53 900")
driver.device.shell(sendCmd + "0 0 0")
driver.device.shell(sendCmd + "3 57 -1")
driver.device.shell(sendCmd + "0 0 0")
Это работало, но было довольно медленно. Из того, что я читал, это может быть связано с тем, что su каждый раз открывает новый экземпляр оболочки. Я пытался отправить «su» сам по себе, но он неизменно зависает. (Я пробовал \ n и ~ в качестве доводчиков). Когда я вручную отправляю код через cmd, "adb shell su" зависает, но если я введу и вставлю команды sendevent. Могу отправлять клики на телефон. Кроме того, если я попробую «adb shell» в cmd, а затем в следующей строке введите «su», он изменится с walleye: / $ на walleye: / #, и я также могу вставить туда события sendevents. (Эти щелчки выполняются довольно быстро, если я вставляю сразу несколько)
Моя следующая попытка была go в ppadb и посмотреть, как обрабатывались сокеты, но это немного прошло мимо меня. Я немного поигрался с этим, но я не мог получить несколько команд, отправленных через одно «su». Я также пытался использовать функцию root в ppadb.devices, но получил сообщение «RuntimeError: adbd не может работать как root в производственных сборках».
Другая возможность, которую я видел, - это перезапись файла sendevent. c, как в ответе здесь: Android sendevent действительно медленный - как его ускорить?
На данный момент, поскольку я не уверен, что вызывает медленную работу sendevent, я не уверен, что делать дальше.
Изменить: я смог использовать MagiskHide Props Config для изменения значений свойств, ro.adb.secure = 0, ro.secure = 0 и ro.debuggable = 1. Я все еще получаю сообщение «adbd не может работать как root в серийных сборках ». getprop ro.build.type возвращает «пользователя».
https://github.com/pcboy/adb-insecure-patcher выглядит многообещающим, но я не уверен, как его использовать.
Edit2: Открыл. sh в adb-insecure-patcher, похоже, он делает то же самое, что и я с MagiskHide Props. В настоящее время изучается, как переписать sendevent. c