簡體   English   中英

是否可以在越獄的 ios 上使用外部鍵盤模擬觸摸事件?

[英]Is possible to simulate touch event using an external keyboard on ios jailbroken?

是否可以在ios越獄和越獄涉及的所有元素上按下財政外部鍵盤(通過相機連接套件或藍牙的USB)上的特定鍵在特定屏幕的坐標中模擬觸摸事件?

我會用它用我的腳按下應用程序中的按鈕(幅度),我想將鍵盤用作腳踏開關。

僅供私人使用。 沒有 Appstore 或 Cydia。 謝謝。

您可以在計算機上編寫腳本,並使用鍵盤和鼠標基於模擬觸摸庫來控制您的 iOS 設備。

iOS13-SimulateTouch是一個開源庫,可以讓你在系統層面模擬觸摸事件。 您可以使用任何編程語言編寫腳本來遠程或本地模擬 iOS 設備上的觸摸事件。 請查看[Github] iOS13-SimulateTouch 中的源代碼


IOS13-SimulateTouch

iOS 11.0 - 13.6 系統級觸控模擬 iOS13 模擬觸控

需要越獄設備

描述

該庫使您能夠僅用一行代碼在 iOS 11.0 - 13.6 上模擬觸摸事件! 所有源代碼將在稍后發布。

特征

  1. 支持多點觸控(您找不到其他庫支持多點觸控)。
  2. 可編程的。 可以使用您想要的所有編程語言對控制腳本進行編程。
  3. 支持即時控制。 可以在沒有其他設備/計算機延遲的情況下控制 ios 設備。
  4. 系統級觸摸模擬(不會注入任何進程)。

安裝

  1. 打開 Cydia - 來源 - 編輯 - 添加 - http://47.114.83.227 (“http”而不是“https”!!!請仔細檢查。)
  2. 安裝“ZJXTouchSimulation”調整
  3. 完畢

代碼示例

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),然后“離開”屏幕。 所有觸摸事件均無延遲地執行。

用法

  1. 安裝后,tweak 將開始偵聽端口 6000。
  2. 使用套接字將觸摸數據字段發送到調整

數據字段應始終為十進制數字,如下所述事件數據 img

注意:將來可能會更新用法。 我會更新這篇文章,但請在 github 上的Usage_iOS13-SimulateTouch上跟蹤

Event Count (1 位):指定單個事件的計數。 如果您有多個事件要同時發送,只需增加事件計數並將事件附加到數據中即可。

在單個事件中

Type (1 位):指定單個事件的類型。

支持的事件類型:

  1. 事件:觸摸。 標志:0。 描述:將事件指定為觸摸事件
  2. 事件:觸地。 標志:1. 描述:將事件指定為觸地事件
  3. 事件:觸摸移動。 Flag:2. 描述:指定事件為觸摸移動事件(移動手指)
  4. 事件:設置大小。 Flag: 9. 說明: 設置屏幕大小(必填!!下面會解釋)

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。

重要的提示

觸摸坐標不取決於設備的方向。 請參閱下圖以獲取更多信息。 無論您如何放置設備,屏幕上的點擊點都不會改變。 坐標注釋 img

該網站提供了有關如何使用私有API模擬觸摸的清晰,最新指南。 既然您已經說過,這不是為了分發,那應該正是您要尋找的。

在越獄的設備上,我相信有BTStack庫可以攔截藍牙鍵盤事件,該庫可以與下面的鏈接中的代碼鏈接。

http://www.cocoawithlove.com/2008/10/synthesizing-touch-event-on-iphone.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM