Browse Source

测试打开app正常

caner 8 months ago
parent
commit
fe99de066f
2 changed files with 30 additions and 41 deletions
  1. 9 1
      README.md
  2. 21 40
      main.py

+ 9 - 1
README.md

@@ -1,3 +1,11 @@
 # dingding-ios-auto
 
-钉钉自动打卡
+钉钉自动打卡
+
+## lib pymobiledevice3
+ios:
+    mac 需要安装xcode
+    window 需要安装ituns 
+    需要安装ptyhon3.9+的版本
+    手机需要开启开发者模式
+    ios<17

+ 21 - 40
main.py

@@ -7,51 +7,32 @@ from pymobiledevice3.services.installation_proxy import InstallationProxyService
 from pymobiledevice3.services.dvt.dvt_secure_socket_proxy import DvtSecureSocketProxyService
 
 BUNDLE_ID = 'com.laiwang.DingTalk'
-# >ios17 pymobiledevice3 lockdown start-tunnel
-# <ios17:
-COMMAND = 'pymobiledevice3 remote start-tunnel' 
 
-async def main():
+def main():
     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:
-                print("管道启动识别:", result.stderr)
-        except subprocess.CalledProcessError as e:
-            print(f"命令执行失败 (退出码: {e.stderr}):")
+                print("没找到包,请安装钉钉")
+
     except ConnectionError as e:
         print(f"连接失败")    
 
 
 if __name__ == '__main__':
-    asyncio.run(main())
+    main()