可以在特定屏幕的坐标上模拟触摸事件,在ios越狱上按下fisical外部键盘上的特定键(通过相机连接套件或蓝牙),以及越狱所涉及的所有元素吗?
我会用这个用脚按下应用程序(振幅)中的按钮,我想用键盘作为脚踏开关。
仅供私人使用。没有Appstore或Cydia。 感谢。
答案 0 :(得分:2)
您可以在计算机上编写脚本,并使用键盘和鼠标基于模拟触摸库来控制iOS设备。
iOS13-SimulateTouch 是一个开放源代码库,可让您在系统级别模拟触摸事件。您可以远程或本地使用任何编程语言编写脚本来模拟iOS设备上的触摸事件。请通过[Github] iOS13-SimulateTouch
查看源代码iOS 11.0-13.6系统级触摸模拟iOS13模拟触摸
需要越狱设备
使用此库,您只需一行代码即可在iOS 11.0-13.6上模拟触摸事件!所有源代码都将在以后发布。
Python Version
import socket
import time
# event types
TOUCH_UP = 0
TOUCH_DOWN = 1
TOUCH_MOVE = 2
SET_SCREEN_SIZE = 9
# you can copy and paste this method to your code
def formatSocketData(type, index, x, y):
return '{}{:02d}{:05d}{:05d}'.format(type, index, int(x*10), int(y*10))
s = socket.socket()
s.connect(("127.0.0.1", 6000)) # connect to the tweak. Replace "127.0.0.1" with the ip address of your device
s.send(("1"+formatSocketData(SET_SCREEN_SIZE, 0, 2048, 2732)).encode()) # tell the tweak that the screen size is 2048x2732 (your screen size might differ). This should be send to the tweak every time you kill the SpringBoard (just send once)
time.sleep(1) # sleep for 1 sec to get setting size process finished
s.send(("1"+formatSocketData(TOUCH_DOWN, 7, 300, 400)).encode()) # tell the tweak to touch 300x400 on the screen
# IMPORTANT: NOTE the "1" at the head of the data. This indicates the event count and CANNOT BE IGNORED.
s.close()
实际上,触摸只执行一行:
s.send(("1"+formatSocketData(TOUCH_DOWN, 7, 300, 400)).encode())
整洁又容易。
执行触摸移动
s.send(("1"+formatSocketData(TOUCH_MOVE, 7, 800, 400)).encode()) # tell the tweak to move our finger "7" to (800, 400)
进行润色
s.send(("1"+formatSocketData(TOUCH_UP, 7, 800, 400)).encode()) # tell the tweak to touch up our finger "7" at (800, 400)
将它们组合
s.send(("1"+formatSocketData(TOUCH_DOWN, 7, 300, 400)).encode())
time.sleep(1)
s.send(("1"+formatSocketData(TOUCH_MOVE, 7, 800, 400)).encode())
time.sleep(1)
s.send(("1"+formatSocketData(TOUCH_UP, 7, 800, 400)).encode())
首先手指触摸(300,400),然后移动到(800,400),然后“离开”屏幕。所有触摸事件均无延迟地执行。
数据字段应始终为十进制数字,如下所示
注意:将来可能会更新用法。我将更新这篇文章,但请在Usage_iOS13-SimulateTouch
的github上跟踪 Event Count
(1位数字):指定单个事件的计数。如果您要同时发送多个事件,只需增加事件计数并将事件追加到数据即可。
Type
(1位数字):指定单个事件的类型。
支持的事件类型:
Touch Index
(2位数字):Apple支持多点触摸,因此在发布触摸事件时必须指定手指索引。手指食指的范围是1-20(保留0,请勿将0用作手指食指)。
x Coordinate
(5位数字):您要触摸的位置的x坐标。前4位数字是整数部分,后一位数字是小数部分。例如,如果要触摸屏幕上的(123.4,2432.1),则应为此填写“ 01234”。
y Coordinate
(5位数字):您要触摸的位置的y坐标。前4位数字是整数部分,后一位数字是小数部分。例如,如果要触摸屏幕上的(123.4,2432.1),则应为此填写“ 24321”。
因此,如果要在屏幕上用手指“ 3”触摸(123.4,1032.1),只需使用套接字连接到调整按钮并发送“ 11030123410321”即可。
数字0:“ 1”表示只有一个事件要执行。
数字1:“ 1”表示事件类型:TOUCH_DOWN(标志为1)。
数字2-3:“ 03”表示此事件是由手指“ 3”执行的。
数字4-8:“ 01234”表示x坐标123.4。
数字9-13:“ 10321”表示y坐标1032.1。
触摸坐标不取决于设备的方向。请参阅下面的图片以获取更多信息。无论您放置设备如何,屏幕上的点击点将不更改。
答案 1 :(得分:0)
本网站有关于如何使用私有API来模拟触摸的清晰,更新的指南。既然你已经说过这不是为了分发,那应该就是你正在寻找的东西。
在越狱设备上,我相信有用于拦截蓝牙键盘事件的BTStack库,可以与下面链接中的代码链接。
http://www.cocoawithlove.com/2008/10/synthesizing-touch-event-on-iphone.html