自动化工具 Sonic 跨机器远程控制触发 Connection reset 与 NullPointerException 假死

Jackson · 2026年05月27日 · 37 次阅读

环境背景
部署架构:分布式部署。

Server 端:192.168.0.179(Docker 容器部署,今天刚清空数据库干净重装)

Agent 端:192.168.0.189(Windows 11 环境,运行 Android Agent 实例)

远程测试端 (PC):192.168.0.171(与 Agent 处于同一物理局域网段,WLAN 连接)

测试设备:一台在线的 Android 平板。

2️⃣ 现象与核心矛盾(极为诡异)
本地控制完全正常:在 189(Agent 本机)上打开浏览器访问 Server 页面,点击 “立即使用” 控制该平板,100% 成功,投屏和触控完美运行。

远程控制 100% 崩溃假死:在 171(远程 PC)上打开浏览器(已测试 Chrome 和全新火狐)访问 Server 页面,点击 “立即使用” 时,画面打不开,且会导致 189 上的 Agent 进程直接卡死/掉线。

3️⃣ 抓包与日志铁证
❌ 远程 171 端(失败时)火狐控制台抓到的 WebSocket 请求头:
两台电脑处于同网段,TCP 握手完全成功,但在升级 WebSocket 时被单方面 Reset:

Plaintext
GET /websockets/android/7e61b4dd-ce8d-46fc-b505-272c663e6168/TW24030500400372/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsic29pbmMiLCIwNjY3Y2EzMS01MWEyLTRkMjktYmQ3Mi1kNTgwODY0NzY5MDIiXSwiZXhwIjoxNzgxMDczMjEwfQ.B_c9KI3h32H055J1gCPxHGxClPexCU2oW0kbR3Ld0dc HTTP/1.1
Host: 192.168.0.189:6677
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:150.0) Gecko/20100101 Firefox/150.0
Origin: http://192.168.0.179:3000
Connection: Upgrade
Upgrade: websocket
注:本地 189 控制成功时,发出的请求路径、Token、Header 与上述远程报文完全一致。
日志:
2026-05-27T13:47:59.041+08:00 ERROR 23992 --- [http-nio-6677-exec-6] o.c.s.a.w.AndroidScreenWSServer : null
2026-05-27T13:47:59.044+08:00 ERROR 23992 --- [http-nio-6677-exec-6] org.cloud.sonic.agent.tools.BytesTool : WebSocket send msg error...connection has been closed.
2026-05-27T13:47:59.046+08:00 ERROR 23992 --- [http-nio-6677-exec-6] o.c.s.a.w.AndroidScreenWSServer : null
2026-05-27T13:48:17.088+08:00 INFO 23992 --- [http-nio-6677-exec-9] o.c.s.a.w.AndroidTerminalWSServer : Waiting for apk install timeout!
2026-05-27T13:48:17.089+08:00 ERROR 23992 --- [http-nio-6677-exec-9] o.c.s.a.w.AndroidTerminalWSServer : Cannot invoke "java.util.concurrent.ScheduledFuture.cancel(boolean)" because "future" is null
2026-05-27T13:48:17.091+08:00 ERROR 23992 --- [http-nio-6677-exec-9] o.c.s.a.w.AndroidTerminalWSServer : null
2026-05-27T13:50:30.687+08:00 INFO 23992 --- [http-nio-6677-exec-4] o.c.s.agent.websockets.AndroidWSServer : android lock udId:TW24030500400372
2026-05-27T13:50:30.723+08:00 INFO 23992 --- [pool-4-thread-3] o.c.s.a.w.AndroidTerminalWSServer : TW24030500400372 open terminal
2026-05-27T13:50:30.725+08:00 INFO 23992 --- [pool-4-thread-4] o.c.s.a.w.AndroidTerminalWSServer : TW24030500400372 open logcat
2026-05-27T13:50:31.068+08:00 INFO 23992 --- [http-nio-6677-exec-4] o.c.s.a.b.a.AndroidDeviceBridgeTool : Check Sonic Apk version and status pass...
2026-05-27T13:50:31.735+08:00 INFO 23992 --- [http-nio-6677-exec-5] o.c.s.a.w.AndroidScreenWSServer : AndroidScreenWSServer-TW24030500400372 send: {"detail":"scrcpy","type":"switch"}
2026-05-27T13:50:32.333+08:00 INFO 23992 --- [Thread-5] o.c.s.a.t.h.AndroidMonitorHandler : TW24030500400372 rotation: 0
2026-05-27T13:50:32.729+08:00 INFO 23992 --- [Thread-8] o.c.s.a.t.handlers.AndroidTouchHandler : starting:start()

2026-05-27T13:50:32.805+08:00 INFO 23992 --- [android-scrcpy-start-scrcpy-server-task-0-0-TW24030500400372] o.c.s.a.t.a.scrcpy.ScrcpyLocalThread : [server] INFO: Device: rockchip MC-Android (Android 5.1.1)

2026-05-27T13:50:32.847+08:00 INFO 23992 --- [android-scrcpy-input-socket-task-0-0-TW24030500400372] o.c.s.a.b.a.AndroidDeviceBridgeTool : TW24030500400372 device scrcpy port forward to 56817
2026-05-27T13:50:33.881+08:00 INFO 23992 --- [Thread-9] o.c.s.a.b.a.AndroidDeviceBridgeTool : TW24030500400372 device sonictouchservice port forward to 56814
2026-05-27T13:50:34.282+08:00 INFO 23992 --- [Thread-12] o.c.s.a.b.a.AndroidDeviceBridgeTool : TW24030500400372 device 2334 forward to 56824
2026-05-27T13:50:34.928+08:00 INFO 23992 --- [Thread-13] o.c.s.a.b.android.AndroidSupplyTool : Output: Connect with port :56827
2026-05-27T13:50:35.036+08:00 INFO 23992 --- [Thread-15] o.c.s.a.b.a.AndroidDeviceBridgeTool : TW24030500400372 device 6790 forward to 56829
2026-05-27T13:50:36.018+08:00 INFO 23992 --- [Thread-15] o.c.s.a.b.a.AndroidDeviceBridgeTool :
io.appium.uiautomator2.server.test.AppiumUiAutomator2Server:
2026-05-27T13:50:38.431+08:00 INFO 23992 --- [pool-4-thread-4] org.cloud.sonic.agent.tests.LogUtil : {"msg":"step","des":"连接 UIAutomator2 Server 成功","log":"","rid":0,"udId":"TW24030500400372","status":2,"cid":0}
2026-05-27T13:50:38.983+08:00 INFO 23992 --- [pool-4-thread-4] org.cloud.sonic.agent.tests.LogUtil : {"msg":"step","des":"","log":"设备操作系统:Android
操作系统版本:5.1.1
设备序列号:TW24030500400372
设备制造商:rockchip
设备型号:MC-Android
设备分辨率:800x1280","rid":0,"udId":"TW24030500400372","status":1,"cid":0}
2026-05-27T13:52:40.063+08:00 INFO 23992 --- [Thread-5] o.c.s.a.t.h.AndroidMonitorHandler : TW24030500400372 rotation service stopped.
2026-05-27T13:52:40.064+08:00 INFO 23992 --- [android-scrcpy-start-scrcpy-server-task-0-0-TW24030500400372] o.c.s.a.t.a.scrcpy.ScrcpyLocalThread : TW24030500400372 scrcpy service stopped.
2026-05-27T13:52:40.068+08:00 ERROR 23992 --- [Thread-5] o.c.s.a.t.h.AndroidMonitorHandler : executeRemoteCommand interrupted with immediate timeout via interruption.
2026-05-27T13:52:40.066+08:00 INFO 23992 --- [http-nio-6677-exec-10] o.c.s.a.w.AndroidTerminalWSServer : AndroidTerminalWSServer-TW24030500400372 : quit.
2026-05-27T13:52:40.062+08:00 INFO 23992 --- [http-nio-6677-exec-8] o.c.s.a.w.AndroidScreenWSServer : AndroidScreenWSServer-TW24030500400372 : quit.
2026-05-27T13:52:40.070+08:00 ERROR 23992 --- [android-scrcpy-start-scrcpy-server-task-0-0-TW24030500400372] o.c.s.a.t.a.scrcpy.ScrcpyLocalThread : executeRemoteCommand interrupted with immediate timeout via interruption.
2026-05-27T13:52:40.087+08:00 INFO 23992 --- [Thread-12] o.c.s.a.w.AndroidTerminalWSServer : manager socket closed.
2026-05-27T13:52:40.100+08:00 INFO 23992 --- [android-scrcpy-input-socket-task-0-0-TW24030500400372] o.c.s.a.t.a.s.ScrcpyInputSocketThread : scrcpy video socket closed.
2026-05-27T13:52:40.102+08:00 INFO 23992 --- [Thread-12] o.c.s.a.b.a.AndroidDeviceBridgeTool : cancel TW24030500400372 device 2334 forward to 56824
2026-05-27T13:52:40.104+08:00 INFO 23992 --- [android-scrcpy-input-socket-task-0-0-TW24030500400372] o.c.s.a.t.a.s.ScrcpyInputSocketThread : scrcpy input stream closed.
2026-05-27T13:52:40.105+08:00 INFO 23992 --- [android-scrcpy-input-socket-task-0-0-TW24030500400372] o.c.s.a.b.a.AndroidDeviceBridgeTool : cancel TW24030500400372 device scrcpy port forward to 56817
2026-05-27T13:52:40.105+08:00 ERROR 23992 --- [Thread-12] o.c.s.a.b.a.AndroidDeviceBridgeTool : null
2026-05-27T13:52:40.107+08:00 INFO 23992 --- [Thread-12] o.c.s.a.w.AndroidTerminalWSServer : manager done.
2026-05-27T13:52:40.113+08:00 INFO 23992 --- [http-nio-6677-exec-3] org.cloud.sonic.agent.tests.LogUtil : {"msg":"step","des":"退出连接设备","log":"","rid":0,"udId":"TW24030500400372","status":2,"cid":0}
2026-05-27T13:52:40.116+08:00 INFO 23992 --- [Thread-15] o.c.s.a.b.a.AndroidDeviceBridgeTool : cancel TW24030500400372 device 6790 forward to 56829
2026-05-27T13:52:40.117+08:00 ERROR 23992 --- [Thread-15] o.c.s.a.b.a.AndroidDeviceBridgeTool : null
2026-05-27T13:52:40.741+08:00 INFO 23992 --- [Thread-9] o.c.s.a.t.handlers.AndroidTouchHandler : error: sleep interrupted
2026-05-27T13:52:40.741+08:00 INFO 23992 --- [Thread-9] o.c.s.a.t.handlers.AndroidTouchHandler : touch thread closed.
2026-05-27T13:52:40.740+08:00 INFO 23992 --- [http-nio-6677-exec-3] o.c.s.agent.websockets.AndroidWSServer : AndroidWSServer-TW24030500400372 : quit.
2026-05-27T13:52:40.742+08:00 INFO 23992 --- [Thread-8] o.c.s.a.t.handlers.AndroidTouchHandler : TW24030500400372 device touch service launch err
2026-05-27T13:52:40.742+08:00 INFO 23992 --- [Thread-9] o.c.s.a.t.handlers.AndroidTouchHandler : touch socket closed.
2026-05-27T13:52:40.742+08:00 ERROR 23992 --- [Thread-8] o.c.s.a.t.handlers.AndroidTouchHandler : executeRemoteCommand interrupted with immediate timeout via interruption.
2026-05-27T13:52:40.744+08:00 INFO 23992 --- [Thread-9] o.c.s.a.t.handlers.AndroidTouchHandler : touch output stream closed.
2026-05-27T13:52:40.744+08:00 INFO 23992 --- [Thread-9] o.c.s.a.b.a.AndroidDeviceBridgeTool : cancel TW24030500400372 device sonictouchservice port forward to 56814
2026-05-27T13:52:40.807+08:00 INFO 23992 --- [http-nio-6677-exec-3] o.c.s.agent.websockets.AndroidWSServer : android unlock udId:TW24030500400372
2026-05-27T13:53:41.511+08:00 INFO 23992 --- [http-nio-6677-exec-2] o.c.s.agent.websockets.AndroidWSServer : android lock udId:TW24030500400372
2026-05-27T13:53:41.900+08:00 INFO 23992 --- [http-nio-6677-exec-2] o.c.s.a.b.a.AndroidDeviceBridgeTool : Check Sonic Apk version and status pass...
2026-05-27T13:53:43.800+08:00 INFO 23992 --- [Thread-16] o.c.s.a.t.handlers.AndroidTouchHandler : starting:start()

2026-05-27T13:53:44.932+08:00 INFO 23992 --- [Thread-17] o.c.s.a.b.a.AndroidDeviceBridgeTool : TW24030500400372 device sonictouchservice port forward to 53899
2026-05-27T13:53:45.462+08:00 INFO 23992 --- [http-nio-6677-exec-2] o.c.s.agent.websockets.AndroidWSServer : java.io.IOException: java.io.IOException: Connection reset by peer
2026-05-27T13:53:45.529+08:00 INFO 23992 --- [Thread-18] o.c.s.a.b.android.AndroidSupplyTool : Output: Connect with port :54823
2026-05-27T13:53:46.022+08:00 INFO 23992 --- [http-nio-6677-exec-2] o.c.s.agent.websockets.AndroidWSServer : AndroidWSServer-TW24030500400372 : quit.
2026-05-27T13:53:46.022+08:00 INFO 23992 --- [Thread-17] o.c.s.a.t.handlers.AndroidTouchHandler : error: sleep interrupted
2026-05-27T13:53:46.024+08:00 INFO 23992 --- [Thread-17] o.c.s.a.t.handlers.AndroidTouchHandler : touch thread closed.
2026-05-27T13:53:46.024+08:00 INFO 23992 --- [Thread-16] o.c.s.a.t.handlers.AndroidTouchHandler : TW24030500400372 device touch service launch err
2026-05-27T13:53:46.024+08:00 INFO 23992 --- [Thread-17] o.c.s.a.t.handlers.AndroidTouchHandler : touch socket closed.
2026-05-27T13:53:46.025+08:00 INFO 23992 --- [Thread-17] o.c.s.a.t.handlers.AndroidTouchHandler : touch output stream closed.
2026-05-27T13:53:46.025+08:00 ERROR 23992 --- [Thread-16] o.c.s.a.t.handlers.AndroidTouchHandler : executeRemoteCommand interrupted with immediate timeout via interruption.
2026-05-27T13:53:46.026+08:00 INFO 23992 --- [Thread-17] o.c.s.a.b.a.AndroidDeviceBridgeTool : cancel TW24030500400372 device sonictouchservice port forward to 53899
2026-05-27T13:53:46.084+08:00 INFO 23992 --- [http-nio-6677-exec-2] o.c.s.agent.websockets.AndroidWSServer : android unlock udId:TW24030500400372
2026-05-27T13:53:46.086+08:00 ERROR 23992 --- [http-nio-6677-exec-2] org.cloud.sonic.agent.tools.BytesTool : WebSocket send msg error...connection has been closed.
2026-05-27T13:53:46.129+08:00 INFO 23992 --- [Thread-20] o.c.s.a.b.a.AndroidDeviceBridgeTool : cancel TW24030500400372 device 6790 forward to 56829
2026-05-27T13:53:46.137+08:00 INFO 23992 --- [Thread-20] o.c.s.a.b.a.AndroidDeviceBridgeTool : TW24030500400372 device 6790 forward to 54830
2026-05-27T13:53:46.639+08:00 INFO 23992 --- [http-nio-6677-exec-2] o.c.s.agent.websockets.AndroidWSServer : java.nio.channels.ClosedChannelException
2026-05-27T13:53:46.938+08:00 INFO 23992 --- [Thread-20] o.c.s.a.b.a.AndroidDeviceBridgeTool :
io.appium.uiautomator2.server.test.AppiumUiAutomator2Server:
2026-05-27T13:53:49.432+08:00 INFO 23992 --- [pool-4-thread-5] org.cloud.sonic.agent.tests.LogUtil : {"msg":"step","des":"连接 UIAutomator2 Server 成功","log":"","rid":0,"udId":"TW24030500400372","status":2,"cid":0}
2026-05-27T13:53:49.938+08:00 INFO 23992 --- [pool-4-thread-5] org.cloud.sonic.agent.tests.LogUtil : {"msg":"step","des":"","log":"设备操作系统:Android
操作系统版本:5.1.1
设备序列号:TW24030500400372
设备制造商:rockchip
设备型号:MC-Android
设备分辨率:800x1280","rid":0,"udId":"TW24030500400372","status":1,"cid":0}
2026-05-27T13:54:19.973+08:00 INFO 23992 --- [pool-4-thread-5] o.c.s.a.w.AndroidTerminalWSServer : TW24030500400372 open terminal
2026-05-27T13:54:19.977+08:00 INFO 23992 --- [pool-4-thread-6] o.c.s.a.w.AndroidTerminalWSServer : TW24030500400372 open logcat
2026-05-27T13:54:21.916+08:00 INFO 23992 --- [http-nio-6677-exec-1] o.c.s.a.w.AndroidScreenWSServer : Waiting for apk install timeout!
2026-05-27T13:54:21.917+08:00 ERROR 23992 --- [http-nio-6677-exec-1] o.c.s.a.w.AndroidScreenWSServer : Cannot invoke "java.util.concurrent.ScheduledFuture.cancel(boolean)" because "future" is null
2026-05-27T13:54:21.921+08:00 ERROR 23992 --- [http-nio-6677-exec-1] o.c.s.a.w.AndroidScreenWSServer : java.io.IOException: Connection reset by peer
2026-05-27T13:54:21.932+08:00 ERROR 23992 --- [http-nio-6677-exec-1] o.a.t.websocket.pojo.PojoEndpointBase : Failed to call onClose method of POJO end point for POJO of type [org.cloud.sonic.agent.websockets.AndroidScreenWSServer]

java.lang.reflect.InvocationTargetException: null
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:116) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na]
at org.apache.tomcat.websocket.pojo.PojoEndpointBase.onClose(PojoEndpointBase.java:107) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsSession.fireEndpointOnClose(WsSession.java:674) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:622) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:326) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:255) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendString(WsRemoteEndpointImplBase.java:196) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:37) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.cloud.sonic.agent.tools.BytesTool.sendText(BytesTool.java:115) ~[classes!/:2.7.2]
at org.cloud.sonic.agent.websockets.AndroidScreenWSServer.onError(AndroidScreenWSServer.java:115) ~[classes!/:2.7.2]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na]
at org.apache.tomcat.websocket.pojo.PojoEndpointBase.onError(PojoEndpointBase.java:134) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.pojo.PojoEndpointBase.handleOnOpenOrCloseError(PojoEndpointBase.java:94) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.pojo.PojoEndpointBase.doOnOpen(PojoEndpointBase.java:81) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.pojo.PojoEndpointServer.onOpen(PojoEndpointServer.java:48) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.init(WsHttpUpgradeHandler.java:136) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:936) ~[tomcat-embed-core-10.1.7.jar!/:na]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.7.jar!/:na]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.7.jar!/:na]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-10.1.7.jar!/:na]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.7.jar!/:na]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-10.1.7.jar!/:na]
at java.base/java.lang.Thread.run(Thread.java:1447) ~[na:na]
Caused by: java.lang.NullPointerException: Cannot invoke "java.util.concurrent.ScheduledFuture.cancel(boolean)" because "future" is null
at org.cloud.sonic.agent.websockets.AndroidScreenWSServer.exit(AndroidScreenWSServer.java:188) ~[classes!/:2.7.2]
at org.cloud.sonic.agent.websockets.AndroidScreenWSServer.onClose(AndroidScreenWSServer.java:106) ~[classes!/:2.7.2]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na]
... 24 common frames omitted

2026-05-27T13:54:21.934+08:00 ERROR 23992 --- [http-nio-6677-exec-1] o.c.s.a.w.AndroidScreenWSServer : null
2026-05-27T13:54:21.939+08:00 ERROR 23992 --- [http-nio-6677-exec-1] org.cloud.sonic.agent.tools.BytesTool : WebSocket send msg error...connection has been closed.
2026-05-27T13:54:21.940+08:00 ERROR 23992 --- [http-nio-6677-exec-1] o.c.s.a.w.AndroidScreenWSServer : null
2026-05-27T13:54:39.996+08:00 INFO 23992 --- [http-nio-6677-exec-6] o.c.s.a.w.AndroidTerminalWSServer : Waiting for apk install timeout!
2026-05-27T13:54:39.997+08:00 ERROR 23992 --- [http-nio-6677-exec-6] o.c.s.a.w.AndroidTerminalWSServer : Cannot invoke "java.util.concurrent.ScheduledFuture.cancel(boolean)" because "future" is null
2026-05-27T13:54:40.000+08:00 ERROR 23992 --- [http-nio-6677-exec-6] o.c.s.a.w.AndroidTerminalWSServer : java.io.IOException: Connection reset by peer
2026-05-27T13:54:40.002+08:00 ERROR 23992 --- [http-nio-6677-exec-6] o.a.t.websocket.pojo.PojoEndpointBase : Failed to call onClose method of POJO end point for POJO of type [org.cloud.sonic.agent.websockets.AndroidTerminalWSServer]

java.lang.reflect.InvocationTargetException: null
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:116) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na]
at org.apache.tomcat.websocket.pojo.PojoEndpointBase.onClose(PojoEndpointBase.java:107) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsSession.fireEndpointOnClose(WsSession.java:674) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:622) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:326) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:255) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendString(WsRemoteEndpointImplBase.java:196) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:37) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.cloud.sonic.agent.tools.BytesTool.sendText(BytesTool.java:115) ~[classes!/:2.7.2]
at org.cloud.sonic.agent.websockets.AndroidTerminalWSServer.onError(AndroidTerminalWSServer.java:266) ~[classes!/:2.7.2]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na]
at org.apache.tomcat.websocket.pojo.PojoEndpointBase.onError(PojoEndpointBase.java:134) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.pojo.PojoEndpointBase.handleOnOpenOrCloseError(PojoEndpointBase.java:94) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.pojo.PojoEndpointBase.doOnOpen(PojoEndpointBase.java:81) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.pojo.PojoEndpointServer.onOpen(PojoEndpointServer.java:48) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.init(WsHttpUpgradeHandler.java:136) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:936) ~[tomcat-embed-core-10.1.7.jar!/:na]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.7.jar!/:na]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.7.jar!/:na]
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-10.1.7.jar!/:na]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.7.jar!/:na]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-10.1.7.jar!/:na]
at java.base/java.lang.Thread.run(Thread.java:1447) ~[na:na]
Caused by: java.lang.NullPointerException: Cannot invoke "java.util.concurrent.ScheduledFuture.cancel(boolean)" because "future" is null
at org.cloud.sonic.agent.websockets.AndroidTerminalWSServer.exit(AndroidTerminalWSServer.java:272) ~[classes!/:2.7.2]
at org.cloud.sonic.agent.websockets.AndroidTerminalWSServer.onClose(AndroidTerminalWSServer.java:258) ~[classes!/:2.7.2]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na]
... 24 common frames omitted

2026-05-27T13:54:40.004+08:00 ERROR 23992 --- [http-nio-6677-exec-6] o.c.s.a.w.AndroidTerminalWSServer : null
2026-05-27T13:54:40.004+08:00 ERROR 23992 --- [http-nio-6677-exec-6] org.cloud.sonic.agent.tools.BytesTool : WebSocket send msg error...connection has been closed.
2026-05-27T13:54:40.005+08:00 ERROR 23992 --- [http-nio-6677-exec-6] o.c.s.a.w.AndroidTerminalWSServer : null
2026-05-27T13:58:34.205+08:00 INFO 23992 --- [SpringApplicationShutdownHook] org.cloud.sonic.agent.tools.LaunchTool : Release done!
2026-05-27T13:58:37.816+08:00 INFO 24260 --- [main] org.cloud.sonic.agent.AgentApplication : Starting AgentApplication v2.7.2 using Java 24.0.2 with PID 24260 (D:\sonnic\sonic-agent-v2.7.2-windows_x86_64\sonic-agent-windows-x86_64.jar started by jackson_wang in D:\sonnic\sonic-agent-v2.7.2-windows_x86_64)
2026-05-27T13:58:37.822+08:00 INFO 24260 --- [main] org.cloud.sonic.agent.AgentApplication : The following 1 profile is active: "sonic-agent"
2026-05-27T13:58:40.207+08:00 INFO 24260 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 6677 (http)
2026-05-27T13:58:40.224+08:00 INFO 24260 --- [main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2026-05-27T13:58:40.224+08:00 INFO 24260 --- [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.7]
2026-05-27T13:58:40.375+08:00 INFO 24260 --- [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2026-05-27T13:58:40.376+08:00 INFO 24260 --- [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1977 ms
2026-05-27T13:58:41.893+08:00 INFO 24260 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 6677 (http) with context path ''
2026-05-27T13:58:41.898+08:00 INFO 24260 --- [main] o.cloud.sonic.agent.bridge.ios.SibTool : iOS devices listening...
2026-05-27T13:58:41.899+08:00 INFO 24260 --- [main] o.cloud.sonic.agent.bridge.ios.SibTool : Enable iOS Module
2026-05-27T13:58:42.084+08:00 INFO 24260 --- [main] o.c.s.a.b.a.AndroidDeviceBridgeTool : Android devices listening...
2026-05-27T13:58:42.099+08:00 INFO 24260 --- [Device List Monitor] o.c.s.a.b.a.AndroidDeviceStatusListener : Android device: TW24030500400372 ONLINE!
2026-05-27T13:58:43.087+08:00 INFO 24260 --- [main] o.c.s.a.b.a.AndroidDeviceBridgeTool : Enable Android Module
2026-05-27T13:58:43.104+08:00 INFO 24260 --- [main] o.c.s.agent.tests.handlers.StepHandlers : Registered 5 condition handler(s)
2026-05-27T13:58:43.111+08:00 INFO 24260 --- [main] o.c.s.a.b.android.AndroidSupplyTool : Enable sonic-android-supply Module
2026-05-27T13:58:43.119+08:00 INFO 24260 --- [main] org.cloud.sonic.agent.AgentApplication : Started AgentApplication in 6.231 seconds (process running for 6.955)
2026-05-27T13:58:44.029+08:00 INFO 24260 --- [pool-3-thread-1] o.cloud.sonic.agent.bridge.ios.SibTool : listen done.
2026-05-27T13:58:53.179+08:00 INFO 24260 --- [WebSocketConnectReadThread-72] o.c.s.agent.transport.TransportClient : Connected and auth...
2026-05-27T13:58:53.229+08:00 INFO 24260 --- [WebSocketConnectReadThread-72] o.c.s.agent.transport.TransportClient : Agent <- Server message: {"msg":"auth","result":"pass","remoteTimeout":"480","highTemp":45,"id":1,"highTempTime":15}
2026-05-27T13:58:53.261+08:00 INFO 24260 --- [pool-2-thread-2] o.c.s.agent.transport.TransportClient : server auth successful!
2026-05-27T13:58:53.316+08:00 INFO 24260 --- [pool-2-thread-2] org.cloud.sonic.agent.tools.PHCTool : hub is not ready. ignore...
2026-05-27T13:59:24.992+08:00 INFO 24260 --- [http-nio-6677-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2026-05-27T13:59:24.992+08:00 INFO 24260 --- [http-nio-6677-exec-2] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2026-05-27T13:59:24.994+08:00 INFO 24260 --- [http-nio-6677-exec-2] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms
2026-05-27T13:59:44.225+08:00 INFO 24260 --- [pool-4-thread-1] o.c.s.a.w.AndroidTerminalWSServer : TW24030500400372 open terminal
2026-05-27T13:59:44.226+08:00 INFO 24260 --- [pool-4-thread-2] o.c.s.a.w.AndroidTerminalWSServer : TW24030500400372 open logcat
2026-05-27T13:59:44.249+08:00 ERROR 24260 --- [pool-4-thread-1] o.c.s.a.w.AndroidTerminalWSServer : java.io.IOException: Connection reset by peer
2026-05-27T13:59:44.253+08:00 ERROR 24260 --- [pool-4-thread-1] o.a.t.websocket.pojo.PojoEndpointBase : Failed to call onClose method of POJO end point for POJO of type [org.cloud.sonic.agent.websockets.AndroidTerminalWSServer]

java.lang.reflect.InvocationTargetException: null
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:116) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na]
at org.apache.tomcat.websocket.pojo.PojoEndpointBase.onClose(PojoEndpointBase.java:107) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsSession.fireEndpointOnClose(WsSession.java:674) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:622) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:326) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:255) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendString(WsRemoteEndpointImplBase.java:196) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:37) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.cloud.sonic.agent.tools.BytesTool.sendText(BytesTool.java:115) ~[classes!/:2.7.2]
at org.cloud.sonic.agent.websockets.AndroidTerminalWSServer.lambda$onOpen$0(AndroidTerminalWSServer.java:86) ~[classes!/:2.7.2]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545) ~[na:na]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1095) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:619) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:1447) ~[na:na]
Caused by: java.lang.NullPointerException: Cannot invoke "java.util.concurrent.ScheduledFuture.cancel(boolean)" because "future" is null
at org.cloud.sonic.agent.websockets.AndroidTerminalWSServer.exit(AndroidTerminalWSServer.java:272) ~[classes!/:2.7.2]
at org.cloud.sonic.agent.websockets.AndroidTerminalWSServer.onClose(AndroidTerminalWSServer.java:258) ~[classes!/:2.7.2]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na]
... 15 common frames omitted

2026-05-27T13:59:44.267+08:00 ERROR 24260 --- [pool-4-thread-1] o.c.s.a.w.AndroidTerminalWSServer : null
2026-05-27T13:59:44.269+08:00 ERROR 24260 --- [pool-4-thread-1] org.cloud.sonic.agent.tools.BytesTool : WebSocket send msg error...connection has been closed.
2026-05-27T13:59:44.269+08:00 ERROR 24260 --- [pool-4-thread-2] org.cloud.sonic.agent.tools.BytesTool : WebSocket send msg error...connection has been closed.
2026-05-27T14:00:04.386+08:00 INFO 24260 --- [http-nio-6677-exec-5] o.c.s.a.w.AndroidTerminalWSServer : Waiting for apk install timeout!
2026-05-27T14:00:04.400+08:00 ERROR 24260 --- [http-nio-6677-exec-5] o.c.s.a.w.AndroidTerminalWSServer : Cannot invoke "java.util.concurrent.ScheduledFuture.cancel(boolean)" because "future" is null
2026-05-27T14:00:04.415+08:00 ERROR 24260 --- [http-nio-6677-exec-5] o.c.s.a.w.AndroidTerminalWSServer : null
2026-05-27T14:00:20.116+08:00 INFO 24260 --- [SpringApplicationShutdownHook] org.cloud.sonic.agent.tools.LaunchTool : Release done!
2026-05-27T14:01:12.287+08:00 INFO 18848 --- [main] org.cloud.sonic.agent.AgentApplication : Starting AgentApplication v2.7.2 using Java 24.0.2 with PID 18848 (D:\sonnic\sonic-agent-v2.7.2-windows_x86_64\sonic-agent-windows-x86_64.jar started by jackson_wang in D:\sonnic\sonic-agent-v2.7.2-windows_x86_64)
2026-05-27T14:01:12.290+08:00 INFO 18848 --- [main] org.cloud.sonic.agent.AgentApplication : The following 1 profile is active: "sonic-agent"
2026-05-27T14:01:14.031+08:00 INFO 18848 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 6677 (http)
2026-05-27T14:01:14.041+08:00 INFO 18848 --- [main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2026-05-27T14:01:14.042+08:00 INFO 18848 --- [main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.7]
2026-05-27T14:01:14.142+08:00 INFO 18848 --- [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2026-05-27T14:01:14.142+08:00 INFO 18848 --- [main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1423 ms
2026-05-27T14:01:15.358+08:00 INFO 18848 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 6677 (http) with context path ''
2026-05-27T14:01:15.362+08:00 INFO 18848 --- [main] o.cloud.sonic.agent.bridge.ios.SibTool : iOS devices listening...
2026-05-27T14:01:15.362+08:00 INFO 18848 --- [main] o.cloud.sonic.agent.bridge.ios.SibTool : Enable iOS Module
2026-05-27T14:01:15.519+08:00 INFO 18848 --- [main] o.c.s.a.b.a.AndroidDeviceBridgeTool : Android devices listening...
2026-05-27T14:01:15.536+08:00 INFO 18848 --- [Device List Monitor] o.c.s.a.b.a.AndroidDeviceStatusListener : Android device: TW24030500400372 ONLINE!
2026-05-27T14:01:16.522+08:00 INFO 18848 --- [main] o.c.s.a.b.a.AndroidDeviceBridgeTool : Enable Android Module
2026-05-27T14:01:16.535+08:00 INFO 18848 --- [main] o.c.s.agent.tests.handlers.StepHandlers : Registered 5 condition handler(s)
2026-05-27T14:01:16.544+08:00 INFO 18848 --- [main] o.c.s.a.b.android.AndroidSupplyTool : Enable sonic-android-supply Module
2026-05-27T14:01:16.553+08:00 INFO 18848 --- [main] org.cloud.sonic.agent.AgentApplication : Started AgentApplication in 4.878 seconds (process running for 5.434)
2026-05-27T14:01:17.466+08:00 INFO 18848 --- [pool-3-thread-1] o.cloud.sonic.agent.bridge.ios.SibTool : listen done.
2026-05-27T14:01:26.611+08:00 INFO 18848 --- [WebSocketConnectReadThread-72] o.c.s.agent.transport.TransportClient : Connected and auth...
2026-05-27T14:01:26.667+08:00 INFO 18848 --- [WebSocketConnectReadThread-72] o.c.s.agent.transport.TransportClient : Agent <- Server message: {"msg":"auth","result":"pass","remoteTimeout":"480","highTemp":45,"id":1,"highTempTime":15}
2026-05-27T14:01:26.692+08:00 INFO 18848 --- [pool-2-thread-2] o.c.s.agent.transport.TransportClient : server auth successful!
2026-05-27T14:01:26.751+08:00 INFO 18848 --- [pool-2-thread-2] org.cloud.sonic.agent.tools.PHCTool : hub is not ready. ignore...
2026-05-27T14:02:05.971+08:00 INFO 18848 --- [http-nio-6677-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2026-05-27T14:02:05.979+08:00 INFO 18848 --- [http-nio-6677-exec-2] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2026-05-27T14:02:05.984+08:00 INFO 18848 --- [http-nio-6677-exec-2] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms
2026-05-27T14:02:25.138+08:00 INFO 18848 --- [pool-4-thread-1] o.c.s.a.w.AndroidTerminalWSServer : TW24030500400372 open terminal
2026-05-27T14:02:25.139+08:00 INFO 18848 --- [pool-4-thread-2] o.c.s.a.w.AndroidTerminalWSServer : TW24030500400372 open logcat
2026-05-27T14:02:25.144+08:00 ERROR 18848 --- [pool-4-thread-1] o.c.s.a.w.AndroidTerminalWSServer : java.io.IOException: Connection reset by peer
2026-05-27T14:02:25.147+08:00 ERROR 18848 --- [pool-4-thread-1] o.a.t.websocket.pojo.PojoEndpointBase : Failed to call onClose method of POJO end point for POJO of type [org.cloud.sonic.agent.websockets.AndroidTerminalWSServer]

java.lang.reflect.InvocationTargetException: null
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:116) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na]
at org.apache.tomcat.websocket.pojo.PojoEndpointBase.onClose(PojoEndpointBase.java:107) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsSession.fireEndpointOnClose(WsSession.java:674) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:622) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:326) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:255) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendString(WsRemoteEndpointImplBase.java:196) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:37) ~[tomcat-embed-websocket-10.1.7.jar!/:na]
at org.cloud.sonic.agent.tools.BytesTool.sendText(BytesTool.java:115) ~[classes!/:2.7.2]
at org.cloud.sonic.agent.websockets.AndroidTerminalWSServer.lambda$onOpen$0(AndroidTerminalWSServer.java:86) ~[classes!/:2.7.2]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545) ~[na:na]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1095) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:619) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:1447) ~[na:na]
Caused by: java.lang.NullPointerException: Cannot invoke "java.util.concurrent.ScheduledFuture.cancel(boolean)" because "future" is null
at org.cloud.sonic.agent.websockets.AndroidTerminalWSServer.exit(AndroidTerminalWSServer.java:272) ~[classes!/:2.7.2]
at org.cloud.sonic.agent.websockets.AndroidTerminalWSServer.onClose(AndroidTerminalWSServer.java:258) ~[classes!/:2.7.2]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na]
... 15 common frames omitted

2026-05-27T14:02:25.150+08:00 ERROR 18848 --- [pool-4-thread-1] o.c.s.a.w.AndroidTerminalWSServer : null
2026-05-27T14:02:25.151+08:00 ERROR 18848 --- [pool-4-thread-1] org.cloud.sonic.agent.tools.BytesTool : WebSocket send msg error...connection has been closed.
2026-05-27T14:02:25.151+08:00 ERROR 18848 --- [pool-4-thread-2] org.cloud.sonic.agent.tools.BytesTool : WebSocket send msg error...connection has been closed.
2026-05-27T14:02:45.186+08:00 INFO 18848 --- [http-nio-6677-exec-4] o.c.s.a.w.AndroidTerminalWSServer : Waiting for apk install timeout!
2026-05-27T14:02:45.188+08:00 ERROR 18848 --- [http-nio-6677-exec-4] o.c.s.a.w.AndroidTerminalWSServer : Cannot invoke "java.util.concurrent.ScheduledFuture.cancel(boolean)" because "future" is null
2026-05-27T14:02:45.191+08:00 ERROR 18848 --- [http-nio-6677-exec-4] o.c.s.a.w.AndroidTerminalWSServer : null
困惑与求助
既然报文、网络、Token 完完全全一模一样,为什么 Agent 内部的 Netty/Tomcat 会对外部物理网卡进来的连接(Origin: 179)直接发送 RST 报文阻断,而对本地环回连接放行?

这是否属于 Sonic Agent 源码中,在处理远程分布式控制(跨机器 Origin 或 scrcpy 外部引流)时,底层硬编码了某些校验限制,或者存在未处理的线程死锁 Bug?求资深大佬或官方指点迷津!

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册