From b76ef7efb3c2d74b57faad0d44ec1bacc04c9963 Mon Sep 17 00:00:00 2001 From: WhiteChi Date: Thu, 2 Nov 2023 08:05:16 +0800 Subject: [PATCH] `Shamrock`: Allow modification of active WebSocket listening address Signed-off-by: WhiteChi --- .../shamrock/remote/service/WebSocketService.kt | 2 +- .../remote/service/api/WebSocketTransmitServlet.kt | 3 ++- .../java/moe/fuqiuluo/shamrock/xposed/XposedEntry.kt | 6 +++--- .../shamrock/xposed/actions/InitRemoteService.kt | 12 +++++++++++- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/WebSocketService.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/WebSocketService.kt index 7599b48..873dbf1 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/WebSocketService.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/WebSocketService.kt @@ -21,7 +21,7 @@ import org.java_websocket.WebSocket import org.java_websocket.handshake.ClientHandshake import java.net.URI -internal class WebSocketService(port: Int): WebSocketTransmitServlet(port) { +internal class WebSocketService(host: String, port: Int): WebSocketTransmitServlet(host, port) { private val eventJobList = mutableSetOf() override fun submitFlowJob(job: Job) { diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/api/WebSocketTransmitServlet.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/api/WebSocketTransmitServlet.kt index 5331302..1913e4e 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/api/WebSocketTransmitServlet.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/api/WebSocketTransmitServlet.kt @@ -32,8 +32,9 @@ import java.util.Collections import kotlin.concurrent.timer internal abstract class WebSocketTransmitServlet( + host:String, port: Int -) : BaseTransmitServlet, WebSocketServer(InetSocketAddress(port)) { +) : BaseTransmitServlet, WebSocketServer(InetSocketAddress(host, port)) { protected val eventReceivers: MutableList = Collections.synchronizedList(mutableListOf()) override val address: String diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/XposedEntry.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/XposedEntry.kt index a0136fe..987e9f2 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/XposedEntry.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/XposedEntry.kt @@ -118,9 +118,9 @@ internal class XposedEntry: IXposedHookLoadPackage { log("Process Name = " + MobileQQ.getMobileQQ().qqProcessName.apply { // if (!contains("msf", ignoreCase = true)) return // 非MSF进程 退出 - if (contains("peak")) { - PlatformUtils.killProcess(ctx, this) - } + //if (contains("peak")) { + // PlatformUtils.killProcess(ctx, this) + //} }) PlatformUtils.isTim() diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/actions/InitRemoteService.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/actions/InitRemoteService.kt index 6cc2884..7dfcdc7 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/actions/InitRemoteService.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/xposed/actions/InitRemoteService.kt @@ -70,7 +70,17 @@ internal class InitRemoteService : IAction { private fun startWebSocketServer() { GlobalScope.launch { try { - val server = WebSocketService(ShamrockConfig.getActiveWebSocketConfig()?.port ?: 5700) + val config = ShamrockConfig.getActiveWebSocketConfig() ?: return@launch + config.address ?: kotlin.run { + LogCenter.log("WebSocketServer地址不合法", Level.ERROR) + return@launch + } + config.port ?: kotlin.run { + LogCenter.log("WebSocketServer端口不合法", Level.ERROR) + return@launch + } + require(config.port in 0 .. 65536) { "WebSocketServer端口不合法" } + val server = WebSocketService(config.address, config.port!!) server.start() } catch (e: Throwable) { LogCenter.log(e.stackTraceToString(), Level.ERROR)