assistd / go-ios

MIT License
2 stars 0 forks source link

无法使用xctest方式拉起企业签名的xcuitest类app #31

Open prife opened 1 year ago

prife commented 1 year ago

go-ios拉起开发者账号签名的scrcpy-Runner,可以正常拉起

./go-ios runwda --bundleid=com.wetest.wda-scrcpy.xctrunner --testrunnerbundleid=com.wetest.wda-scrcpy.xctrunner --xctestconfig=scrcpy.xctest                                                                                                              [21:12:57]
INFO[0000]utils.go:73 no udid specified using first device in list  udid=00008110-00142C9A3642801E
INFO[0000]main.go:878 Running wda                                   bundleid=com.wetest.wda-scrcpy.xctrunner testbundleid=com.wetest.wda-scrcpy.xctrunner xctestconfig=scrcpy.xctest
INFO[0001]conn.go:162 OpenFile path:tmp/2ff63e2e-73e5-47e6-b80a-98f402110322.xctestconfiguration
INFO[0001]conn.go:337 Close connection
INFO[0001]processcontrol.go:48 Launching process                             bundleID=com.wetest.wda-scrcpy.xctrunner channel_id=com.apple.instruments.server.services.processcontrol
INFO[0001]processcontrol.go:65 Process started successfully                  channel_id=com.apple.instruments.server.services.processcontrol pid=9814
INFO[0001]connection.go:77 2022-11-30 21:13:36.722694+0800 scrcpy-Runner[9814:302165] Running tests...
INFO[0002]xcuitestrunner.go:206 device called local method                    sel=_XCT_didBeginExecutingTestPlan
INFO[0002]xcuitestrunner.go:206 device called local method                    sel=_XCT_didBeginInitializingForUITesting
INFO[0002]connection.go:77 Test Suite 'All tests' started at 2022-11-30 21:13:38.098
INFO[0002]connection.go:77 XCTestOutputBarrier
INFO[0002]xcuitestrunner.go:206 device called local method                    sel="_XCT_testSuite:didStartAt:"
INFO[0002]connection.go:77 Test Suite 'scrcpy.xctest' started at 2022-11-30 21:13:38.099
XCTestOutputBarrier
INFO[0002]xcuitestrunner.go:206 device called local method                    sel="_XCT_testSuite:didStartAt:"
INFO[0002]connection.go:77 Test Suite 'UITestingUITests' started at 2022-11-30 21:13:38.099
XCTestOutputBarrier
INFO[0002]xcuitestrunner.go:206 device called local method                    sel="_XCT_testSuite:didStartAt:"
INFO[0002]connection.go:77     t =      nans Suite Set Up
INFO[0002]xcuitestrunner.go:206 device called local method                    sel="_XCT_testCase:method:willStartActivity:"
INFO[0003]connection.go:77 2022-11-30 21:13:38.113058+0800 scrcpy-Runner[9814:302165] [User Defaults] Couldn't write values for keys (
    KeyboardAutocorrection
) in CFPrefsPlistSource<0x283ee5080> (Domain: com.apple.keyboard.preferences, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No): setting preferences outside an application's container requires user-preference-write or file-write-data sandbox access
INFO[0003]connection.go:77 2022-11-30 21:13:38.113536+0800 scrcpy-Runner[9814:302165] [User Defaults] Couldn't write values for keys (
    "KeyboardAutocorrection_changedAt"
) in CFPrefsPlistSource<0x283ee5080> (Domain: com.apple.keyboard.preferences, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No): setting preferences outside an application's container requires user-preference-write or file-write-data sandbox access
INFO[0003]connection.go:77 2022-11-30 21:13:38.113924+0800 scrcpy-Runner[9814:302165] [User Defaults] Couldn't write values for keys (
    "KeyboardAutocorrection_buildAtChange"
) in CFPrefsPlistSource<0x283ee5080> (Domain: com.apple.keyboard.preferences, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No): setting preferences outside an application's container requires user-preference-write or file-write-data sandbox access
INFO[0003]connection.go:77 2022-11-30 21:13:38.114280+0800 scrcpy-Runner[9814:302165] [User Defaults] Couldn't write values for keys (
    "KeyboardAutocorrection_previousValue"
) in CFPrefsPlistSource<0x283ee5080> (Domain: com.apple.keyboard.preferences, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No): setting preferences outside an application's container requires user-preference-write or file-write-data sandbox access
INFO[0003]connection.go:77 2022-11-30 21:13:38.114639+0800 scrcpy-Runner[9814:302165] [User Defaults] Couldn't write values for keys (
    "KeyboardAutocorrection_analyzedAt"
) in CFPrefsPlistSource<0x283ee5080> (Domain: com.apple.keyboard.preferences, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No): setting preferences outside an application's container requires user-preference-write or file-write-data sandbox access
INFO[0003]connection.go:77 2022-11-30 21:13:38.122786+0800 scrcpy-Runner[9814:302165] [User Defaults] Couldn't write values for keys (
    KeyboardPrediction
) in CFPrefsPlistSource<0x283ee5080> (Domain: com.apple.keyboard.preferences, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No): setting preferences outside an application's container requires user-preference-write or file-write-data sandbox access
INFO[0003]connection.go:77 2022-11-30 21:13:38.123170+0800 scrcpy-Runner[9814:302165] [User Defaults] Couldn't write values for keys (
    KeyboardShowPredictionBar
) in CFPrefsPlistSource<0x283ee5080> (Domain: com.apple.keyboard.preferences, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No): setting preferences outside an application's container requires user-preference-write or file-write-data sandbox access
INFO[0003]xcuitestrunner.go:206 device called local method                    sel="_XCT_testCase:method:didFinishActivity:"
INFO[0003]connection.go:77 Test Case '-[UITestingUITests testRunner]' started.
INFO[0003]xcuitestrunner.go:206 device called local method                    sel="_XCT_testCaseDidStartForTestClass:method:"
INFO[0003]connection.go:77 XCTestOutputBarrier
INFO[0003]xcuitestrunner.go:206 device called local method                    sel="_XCT_testCase:method:willStartActivity:"
INFO[0003]connection.go:77     t =     0.00s Start Test at 2022-11-30 21:13:38.127
INFO[0003]xcuitestrunner.go:206 device called local method                    sel="_XCT_testCase:method:didFinishActivity:"
INFO[0003]xcuitestrunner.go:206 device called local method                    sel="_XCT_testCase:method:willStartActivity:"
INFO[0003]connection.go:77     t =     0.00s Set Up
INFO[0003]xcuitestrunner.go:206 device called local method                    sel="_XCT_testCase:method:didFinishActivity:"
INFO[0003]connection.go:77 Socket successfully created..
INFO[0003]connection.go:77 Socket successfully binded..
2022-11-30 21:13:38.128053+0800 scrcpy-Runner[9814:302175] TouchServer: listening at 21343...
INFO[0003]connection.go:77 2022-11-30 21:13:38.128354+0800 scrcpy-Runner[9814:302165] VideoServer: listening at 21344...
INFO[0003]connection.go:77 2022-11-30 21:13:38.131303+0800 scrcpy-Runner[9814:302165] Getting the most recent active application (out of 1 total items)
INFO[0003]connection.go:77     t =     0.01s Requesting snapshot of accessibility hierarchy for app with pid 61
INFO[0003]xcuitestrunner.go:206 device called local method                    sel="_XCT_testCase:method:willStartActivity:"
INFO[0003]xcuitestrunner.go:206 device called local method                    sel="_XCT_testCase:method:didFinishActivity:"
prife commented 1 year ago
diff --git a/ios/testmanagerd/xcuitestrunner.go b/ios/testmanagerd/xcuitestrunner.go
index 6fb2c25..9abaa99 100644
--- a/ios/testmanagerd/xcuitestrunner.go
+++ b/ios/testmanagerd/xcuitestrunner.go
@@ -430,6 +430,8 @@ func startTestRunner12(pControl *instruments.ProcessControl, xctestConfigPath st
                "XCTestSessionIdentifier":         sessionIdentifier,
        }

+       log.Infoln("runner iOS12+:  ", env)
+
        for _, entrystring := range wdaenv {
                entry := strings.Split(entrystring, "=")
                key := entry[0]
@@ -466,8 +468,9 @@ func setupXcuiTest(device ios.DeviceEntry, bundleID string, testRunnerBundleID s
        }
        log.Debugf("app info found: %+v", info)

-       fsync, err := afc.NewHouseArrestContainerFs(device, testRunnerBundleID)
+       fsync, err := afc.New(device)
        if err != nil {
+               log.Errorln("Connect to container failed: ", err)
                return uuid.UUID{}, "", nskeyedarchiver.XCTestConfiguration{}, testInfo{}, err
        }
        defer fsync.Close()
diff --git a/main.go b/main.go
index 80e2eea..f37f215 100644
--- a/main.go
+++ b/main.go
@@ -64,7 +64,7 @@ func initLog() {
                        return "", fmt.Sprintf("%s:%d", filename, f.Line)
                },
        })
-       log.SetLevel(log.InfoLevel)
+       log.SetLevel(log.DebugLevel)
 }

 // Main Exports main for testing

load-scrcpy-ent.txt load-scrcpy-dev.txt

prife commented 1 year ago

普通app使能文件共享目录方法:找到info.txt,添加 UIFileSharingEnabled 为true 明天工作:

  1. 使用filebrower本地版本调试runner的Documents目录是否存在
  2. 使用root手机确定Documents目录路径,或者确定 fsync ls / 绝对文件路径。
amari-iPhone:/var/mobile/Containers/Data/Application/094C667E-DB1C-4A35-B959-896B71419C8C root# ls -l
total 0
drwxr-xr-x 3 mobile mobile  96 Dec  1 21:08 Documents/
drwxr-xr-x 6 mobile mobile 192 Dec  1 20:58 Library/
drwxr-xr-x 2 mobile mobile  64 Dec  1 20:58 SystemData/
drwxr-xr-x 2 mobile mobile  64 Dec  1 20:58 tmp/

amari-iPhone:/var/mobile/Containers/Data/Application/094C667E-DB1C-4A35-B959-896B71419C8C root# ls Documents/
hello.txt

amari-iPhone:/var/mobile/Containers/Data/Application/094C667E-DB1C-4A35-B959-896B71419C8C root# ps -ef | grep demo
  501   966   965   0  9:06PM ??         0:00.63 /var/containers/Bundle/Application/B4373798-52C4-403D-86C3-D516139D3C58/demo1.app/demo1
prife commented 1 year ago

启动wda后,查看进程

/var/containers/Bundle/Application/C8A1E21B-528D-4DE5-9CD0-289A8FF97EB7/WebDriverAgentRunner-Runner.app/WebDriverAgentRunner-Runner -NSTreatUnknownArgumentsAsOpen NO -ApplePersistenceIgnoreState YES
prife commented 1 year ago

拉起wda

./go-ios runwda --bundleid com.facebook.WebDriverAgentRunner.xctrunner --testrunnerbundleid com.facebook.WebDriverAgentRunner.xctrunner --xctestconfig WebDriverAgentRunner.xctest

拉起scrcpy-runner

./go-ios runwda --bundleid=com.wetest.wda-scrcpy.xctrunner --testrunnerbundleid=com.wetest.wda-scrcpy.xctrunner --xctestconfig=scrcpy.xctest

prife commented 1 year ago

iOS 16.0,iPhoneX,无法拉起企业签名版本scrcpy-Runner

INFO[0001]conn.go:162 OpenFile path:Documents/3c1a2934-004e-4b9c-8b97-1ec23a2fdd75.xctestconfiguration INFO[0001]conn.go:337 Close connection INFO[0001]processcontrol.go:57 Launching process bundleID=com.wetest.wda-scrcpy.xctrunner channel_id=com.apple.instruments.server.services.processcontrol ERRO[0001]processcontrol.go:67 failed starting process: com.wetest.wda-scrcpy.xctrunner channel_id=com.apple.instruments.server.services.processcontrol error="Failed invoking method 'launchSuspendedProcessWithDevicePath:bundleIdentifier:environment:arguments:options:' with error: {%!s(uint64=2) com.apple.dt.deviceprocesscontrolservice map[NSLocalizedDescription:Request to launch com.wetest.wda-scrcpy.xctrunner failed. NSLocalizedFailureReason:The request to open \"com.wetest.wda-scrcpy.xctrunner\" failed. : Failed to launch process with bundle identifier 'com.wetest.wda-scrcpy.xctrunner'. NSUnderlyingError:{%!s(uint64=1) FBSOpenApplicationServiceErrorDomain map[BSErrorCodeDescription:RequestDenied FBSOpenApplicationRequestID:0xaba9 NSLocalizedDescription:The request to open \"com.wetest.wda-scrcpy.xctrunner\" failed. NSLocalizedFailureReason:The request was denied by service delegate (SBMainWorkspace) for reason: Security (\"Unable to launch com.wetest.wda-scrcpy.xctrunner because it has an invalid code signature, inadequate entitlements or its profile has not been explicitly trusted by the user\"). NSUnderlyingError:{%!s(uint64=3) FBSOpenApplicationErrorDomain map[BSErrorCodeDescription:Security NSLocalizedFailureReason:Unable to launch com.wetest.wda-scrcpy.xctrunner because it has an invalid code signature, inadequate entitlements or its profile has not been explicitly trusted by the user.]}]}]}" FATA[0001]main.go:891 Failed running WDA error="Failed invoking method 'launchSuspendedProcessWithDevicePath:bundleIdentifier:environment:arguments:options:' with error: {%!s(uint64=2) com.apple.dt.deviceprocesscontrolservice map[NSLocalizedDescription:Request to launch com.wetest.wda-scrcpy.xctrunner failed. NSLocalizedFailureReason:The request to open \"com.wetest.wda-scrcpy.xctrunner\" failed. : Failed to launch process with bundle identifier 'com.wetest.wda-scrcpy.xctrunner'. NSUnderlyingError:{%!s(uint64=1) FBSOpenApplicationServiceErrorDomain map[BSErrorCodeDescription:RequestDenied FBSOpenApplicationRequestID:0xaba9 NSLocalizedDescription:The request to open \"com.wetest.wda-scrcpy.xctrunner\" failed. NSLocalizedFailureReason:The request was denied by service delegate (SBMainWorkspace) for reason: Security (\"Unable to launch com.wetest.wda-scrcpy.xctrunner because it has an invalid code signature, inadequate entitlements or its profile has not been explicitly trusted by the user\"). NSUnderlyingError:{%!s(uint64=3) FBSOpenApplicationErrorDomain map[BSErrorCodeDescription:Security NSLocalizedFailureReason:Unable to launch com.wetest.wda-scrcpy.xctrunner because it has an invalid code signature, inadequate entitlements or its profile has not been explicitly trusted by the user.]}]}]}"

原因已经清楚:因为没有验证企业签名,需要【设置】-【通用】-【设备管理】,验证app

结论:iOS16+,企业签名,可以使用xcuitest方式拉起

prife commented 1 year ago

iOS 13.6,iPhone7

INFO[0000]utils.go:79 no udid specified using first device in list udid=411b30cc78f3fa087b1c27d9e6aaea82da42503f INFO[0000]main.go:882 Running wda bundleid=com.wetest.wda-scrcpy.xctrunner testbundleid=com.wetest.wda-scrcpy.xctrunner xctestconfig=scrcpy.xctest INFO[0000]xcuitestrunner.go:382 iOS version: 13.3.1 detected, running with ios11 support INFO[0001]conn.go:162 OpenFile path:Documents/a4c46d17-7a4a-4b22-91a3-33eed34ffab2.xctestconfiguration INFO[0001]conn.go:337 Close connection INFO[0001]processcontrol.go:57 Launching process bundleID=com.wetest.wda-scrcpy.xctrunner channel_id=com.apple.instruments.server.services.processcontrol INFO[0001]processcontrol.go:74 Process started successfully channel_id=com.apple.instruments.server.services.processcontrol pid=317 INFO[0001]connection.go:77 2022-12-02 21:42:47.573 scrcpy-Runner[317:14832] Running tests... INFO[0001]connection.go:77 objc[317]: Class LRUCache is implemented in both /System/Library/Frameworks/CFNetwork.framework/CFNetwork (0x1d6e8b8e0) and /private/var/containers/Bundle/Application/B7AAF2F9-E4EA-4C86-AF0D-EB838943A4DC/scrcpy-Runner.app/PlugIns/scrcpy.xctest/scrcpy (0x104bf8970). One of the two will be used. Which one is undefined. INFO[0001]xcuitestrunner.go:214 device called local method sel=_XCT_didBeginExecutingTestPlan INFO[0001]xcuitestrunner.go:214 device called local method sel=_XCT_didBeginInitializingForUITesting INFO[0001]xcuitestrunner.go:214 device called local method sel="_XCT_initializationForUITestingDidFailWithError:" INFO[0001]xcuitestrunner.go:211 _XCT_didFinishExecutingTestPlan received. Closing test. INFO[0001]connection.go:77 2022-12-02 21:42:47.616 scrcpy-Runner[317:14832] Failed to initialize for UI testing: Error Domain=XCTDaemonErrorDomain Code=41 "Not authorized for performing UI testing actions." UserInfo={samples={ SpringBoard = "Error Domain=XCTDaemonErrorDomain Code=20 \"Failed to spawn process for sample: 0 - Undefined error: 0\" UserInfo={NSLocalizedDescription=Failed to spawn process for sample: 0 - Undefined error: 0}"; backboardd = "Error Domain=XCTDaemonErrorDomain Code=20 \"Failed to spawn process for sample: 0 - Undefined error: 0\" UserInfo={NSLocalizedDescription=Failed to spawn process for sample: 0 - Undefined error: 0}"; }, NSLocalizedDescription=Not authorized for performing UI testing actions.}

HEZI0427 commented 1 year ago

iOS 13.3.1 iPhone 6s

INFO[0000]utils.go:79 no udid specified using first device in list udid=b90bf1dc928bca9f3e689bc0ec931ceba781d4d7 INFO[0000]main.go:882 Running wda bundleid=com.wetest.wda-scrcpy.xctrunner testbundleid=com.wetest.wda-scrcpy.xctrunner xctestconfig=scrcpy.xctest INFO[0000]xcuitestrunner.go:382 iOS version: 13.3.1 detected, running with ios11 support INFO[0001]conn.go:162 OpenFile path:Documents/7906c13f-aefe-4741-9900-f9120143450e.xctestconfiguration INFO[0001]conn.go:337 Close connection INFO[0001]processcontrol.go:57 Launching process bundleID=com.wetest.wda-scrcpy.xctrunner channel_id=com.apple.instruments.server.services.processcontrol INFO[0001]processcontrol.go:74 Process started successfully channel_id=com.apple.instruments.server.services.processcontrol pid=304 INFO[0001]connection.go:77 2022-12-02 22:32:36.555 scrcpy-Runner[304:18917] Running tests... INFO[0001]connection.go:77 objc[304]: Class LRUCache is implemented in both /System/Library/Frameworks/CFNetwork.framework/CFNetwork (0x1d37db8e0) and /private/var/containers/Bundle/Application/39E58DEE-9535-40B6-ABBC-2EC3FB828C05/scrcpy-Runner.app/PlugIns/scrcpy.xctest/scrcpy (0x1067e0970). One of the two will be used. Which one is undefined. INFO[0001]xcuitestrunner.go:214 device called local method sel=_XCT_didBeginExecutingTestPlan INFO[0001]xcuitestrunner.go:214 device called local method sel=_XCT_didBeginInitializingForUITesting INFO[0001]xcuitestrunner.go:214 device called local method sel="_XCT_initializationForUITestingDidFailWithError:" INFO[0001]xcuitestrunner.go:211 _XCT_didFinishExecutingTestPlan received. Closing test. INFO[0001]connection.go:77 2022-12-02 22:32:36.596 scrcpy-Runner[304:18917] Failed to initialize for UI testing: Error Domain=XCTDaemonErrorDomain Code=41 "Not authorized for performing UI testing actions." UserInfo={samples={ SpringBoard = "Error Domain=XCTDaemonErrorDomain Code=20 \"Failed to spawn process for sample: 35 - Resource temporarily unavailable\" UserInfo={NSLocalizedDescription=Failed to spawn process for sample: 35 - Resource temporarily unavailable}"; backboardd = "Error Domain=XCTDaemonErrorDomain Code=20 \"Failed to spawn process for sample: 35 - Resource temporarily unavailable\" UserInfo={NSLocalizedDescription=Failed to spawn process for sample: 35 - Resource temporarily unavailable}"; }, NSLocalizedDescription=Not authorized for performing UI testing actions.}

HEZI0427 commented 1 year ago

tidevice 报类似错误 修改patch:

diff --git a/tidevice/_device.py b/tidevice/_device.py
index 29ccd30..adaf2db 100644
--- a/tidevice/_device.py
+++ b/tidevice/_device.py
@@ -826,18 +826,18 @@ class BaseDevice():
         assert exec_name.endswith("-Runner"), "Invalid CFBundleExecutable: %s" % exec_name
         target_name = exec_name[:-len("-Runner")]

-        xctest_path = f"/tmp/{target_name}-{str(session_identifier).upper()}.xctestconfiguration"  # yapf: disable
+        xctest_path = f"/Documents/{target_name}-{str(session_identifier).upper()}.xctestconfiguration"  # yapf: disable
         xctest_content = bplist.objc_encode(bplist.XCTestConfiguration({
             "testBundleURL": bplist.NSURL(None, f"file://{app_info['Path']}/PlugIns/{target_name}.xctest"),
             "sessionIdentifier": session_identifier,
             "targetApplicationBundleID": target_app_bundle_id,
         }))  # yapf: disable

-        fsync = self.app_sync(bundle_id, command="VendContainer")
-        for fname in fsync.listdir("/tmp"):
+        fsync = self.app_sync(bundle_id, command="VendDocuments")
+        for fname in fsync.listdir("/Documents"):
             if fname.endswith(".xctestconfiguration"):
-                logger.debug("remove /tmp/%s", fname)
-                fsync.remove("/tmp/" + fname)
+                logger.debug("remove /Documents/%s", fname)
+                fsync.remove("/Documents/" + fname)
         fsync.push_content(xctest_path, xctest_content)

         # service: com.apple.instruments.remoteserver

机型: iOS 13.3.1 iPhone 6s

documents目录

image

命令: $tidevice xctest --debug

日志:

tidevice_error.log

[D 221202 23:09:29 _instruments:616] RECV DTXMessage: expects_reply:1 flags:2 conv:0 ('_XCT_logDebugMessage:', ['23:09:29.654 scrcpy-Runner[334:24995] Failed to initialize for UI testing: Error Domain=XCTDaemonErrorDomain Code=41 "Not authorized for performing UI testing actions." UserInfo={samples={\n SpringBoard = "Error Domain=XCTDaemonErrorDomain Code=20 \"Failed to spawn process for sample: 34 - Result too large\" UserInfo={NSLocalizedDescription=Failed to spawn process for sample: 34 - Result too large}";\n backboardd = "Error Domain=XCTDaemonErrorDomain Code=20 \"Failed to spawn process for sample: 34 - Result too large\" UserInfo={NSLocalizedDescription=Failed to spawn process for sample: 34 - Result too large}";\n}, NSLocalizedDescription=Not authorized for performing UI testing actions.}\n']) [D 221202 23:09:29 _instruments:397] SEND DTXMessage: channel:1 expect_reply:0 data_length:48, data... [D 221202 23:09:29 _instruments:616] RECV DTXMessage: expects_reply:1 flags:2 conv:0 ('_XCT_initializationForUITestingDidFailWithError:', [NSError(CODE:41 DOMAIN:XCTDaemonErrorDomain INFO:{'NSLocalizedDescription': 'Not authorized for performing UI testing actions.', 'samples': {'SpringBoard': NSError(CODE:20 DOMAIN:XCTDaemonErrorDomain INFO:{'NSLocalizedDescription': 'Failed to spawn process for sample: 34 - Result ' 'too large'}), 'backboardd': NSError(CODE:20 DOMAIN:XCTDaemonErrorDomain INFO:{'NSLocalizedDescription': 'Failed to spawn process for sample: 34 - Result ' 'too large'})}})]) [D 221202 23:09:29 _instruments:397] SEND DTXMessage: channel:1 expect_reply:0 data_length:48, data... [D 221202 23:09:29 _instruments:616] RECV DTXMessage: expects_reply:1 flags:2 conv:0 ('_XCT_logDebugMessage:', ["23:09:29.655 scrcpy-Runner[334:24995] Creating future for 'flushing telemetry' with timeout 10.00\n"])