|
@@ -7,51 +7,32 @@ from pymobiledevice3.services.installation_proxy import InstallationProxyService
|
|
|
from pymobiledevice3.services.dvt.dvt_secure_socket_proxy import DvtSecureSocketProxyService
|
|
from pymobiledevice3.services.dvt.dvt_secure_socket_proxy import DvtSecureSocketProxyService
|
|
|
|
|
|
|
|
BUNDLE_ID = 'com.laiwang.DingTalk'
|
|
BUNDLE_ID = 'com.laiwang.DingTalk'
|
|
|
-# >ios17 pymobiledevice3 lockdown start-tunnel
|
|
|
|
|
-# <ios17:
|
|
|
|
|
-COMMAND = 'pymobiledevice3 remote start-tunnel'
|
|
|
|
|
|
|
|
|
|
-async def main():
|
|
|
|
|
|
|
+def main():
|
|
|
try:
|
|
try:
|
|
|
- # 使用命令方式启动管道
|
|
|
|
|
- try:
|
|
|
|
|
- # 使用 -S 参数让 sudo 从 stdin 读取密码
|
|
|
|
|
- result = subprocess.run(
|
|
|
|
|
- ["sudo", "-S"] + COMMAND.split(),
|
|
|
|
|
- input="d123456\n",
|
|
|
|
|
- text=True,
|
|
|
|
|
- capture_output=True,
|
|
|
|
|
- check=True
|
|
|
|
|
- )
|
|
|
|
|
- sleep(5)
|
|
|
|
|
- if result.stdout:
|
|
|
|
|
- print('管道启动成功')
|
|
|
|
|
- # 连接手机
|
|
|
|
|
- lockdown = create_using_usbmux()
|
|
|
|
|
- print("开发者模式",lockdown.developer_mode_status)
|
|
|
|
|
- # 获取钉钉-app
|
|
|
|
|
- with InstallationProxyService(lockdown) as installer:
|
|
|
|
|
- # 查找特定应用
|
|
|
|
|
- ddApp = [app for app in installer.get_apps() if 'DingTalk' in app]
|
|
|
|
|
- if len(ddApp):
|
|
|
|
|
- print("找到包",ddApp[0])
|
|
|
|
|
- if ddApp[0] == BUNDLE_ID:
|
|
|
|
|
- # 打开app
|
|
|
|
|
- with DvtSecureSocketProxyService(lockdown) as dvt:
|
|
|
|
|
- process_control = ProcessControl(dvt)
|
|
|
|
|
- pid = process_control.launch(BUNDLE_ID)
|
|
|
|
|
- print("启动app",pid)
|
|
|
|
|
- else:
|
|
|
|
|
- print("包名不匹配")
|
|
|
|
|
- else:
|
|
|
|
|
- print("没找到包,请安装钉钉")
|
|
|
|
|
|
|
+ # 连接手机
|
|
|
|
|
+ lockdown = create_using_usbmux()
|
|
|
|
|
+ print("开发者模式",lockdown.developer_mode_status)
|
|
|
|
|
+ # 获取钉钉-app
|
|
|
|
|
+ with InstallationProxyService(lockdown) as installer:
|
|
|
|
|
+ # 查找特定应用
|
|
|
|
|
+ ddApp = [app for app in installer.get_apps() if 'DingTalk' in app]
|
|
|
|
|
+ if len(ddApp):
|
|
|
|
|
+ print("找到包",ddApp[0])
|
|
|
|
|
+ if ddApp[0] == BUNDLE_ID:
|
|
|
|
|
+ # 打开app
|
|
|
|
|
+ with DvtSecureSocketProxyService(lockdown) as dvt:
|
|
|
|
|
+ process_control = ProcessControl(dvt)
|
|
|
|
|
+ pid = process_control.launch(BUNDLE_ID)
|
|
|
|
|
+ print("启动app",pid)
|
|
|
|
|
+ else:
|
|
|
|
|
+ print("包名不匹配")
|
|
|
else:
|
|
else:
|
|
|
- print("管道启动识别:", result.stderr)
|
|
|
|
|
- except subprocess.CalledProcessError as e:
|
|
|
|
|
- print(f"命令执行失败 (退出码: {e.stderr}):")
|
|
|
|
|
|
|
+ print("没找到包,请安装钉钉")
|
|
|
|
|
+
|
|
|
except ConnectionError as e:
|
|
except ConnectionError as e:
|
|
|
print(f"连接失败")
|
|
print(f"连接失败")
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
if __name__ == '__main__':
|
|
|
- asyncio.run(main())
|
|
|
|
|
|
|
+ main()
|