From f955835df5cd99436933e0066b958b0702393ed4 Mon Sep 17 00:00:00 2001 From: jiqiu2021 Date: Fri, 27 Jun 2025 16:46:09 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=96=87=E4=BB=B6=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E5=99=A8=E5=A2=9E=E5=8A=A0=E4=B8=BA=E4=B8=89=E7=A7=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jiqiu/configapp/ConfigManager.java | 48 +++++++++++++------ 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/configapp/src/main/java/com/jiqiu/configapp/ConfigManager.java b/configapp/src/main/java/com/jiqiu/configapp/ConfigManager.java index e880090..103c434 100644 --- a/configapp/src/main/java/com/jiqiu/configapp/ConfigManager.java +++ b/configapp/src/main/java/com/jiqiu/configapp/ConfigManager.java @@ -332,21 +332,34 @@ public class ConfigManager { private void deployGadgetConfigFile(String packageName, GadgetConfig gadgetConfig) { try { // Create gadget config JSON - String configJson = String.format( - "{\n" + - " \"interaction\": {\n" + - " \"type\": \"listen\",\n" + - " \"address\": \"%s\",\n" + - " \"port\": %d,\n" + - " \"on_port_conflict\": \"%s\",\n" + - " \"on_load\": \"%s\"\n" + - " }\n" + - "}", - gadgetConfig.address, - gadgetConfig.port, - gadgetConfig.onPortConflict, - gadgetConfig.onLoad - ); + String configJson; + if ("script".equals(gadgetConfig.mode)) { + configJson = String.format( + "{\n" + + " \"interaction\": {\n" + + " \"type\": \"script\",\n" + + " \"path\": \"%s\"\n" + + " }\n" + + "}", + gadgetConfig.scriptPath + ); + } else { + configJson = String.format( + "{\n" + + " \"interaction\": {\n" + + " \"type\": \"listen\",\n" + + " \"address\": \"%s\",\n" + + " \"port\": %d,\n" + + " \"on_port_conflict\": \"%s\",\n" + + " \"on_load\": \"%s\"\n" + + " }\n" + + "}", + gadgetConfig.address, + gadgetConfig.port, + gadgetConfig.onPortConflict, + gadgetConfig.onLoad + ); + } // Write to temp file String tempFile = context.getCacheDir() + "/" + gadgetConfig.gadgetName + ".config"; @@ -573,10 +586,15 @@ public class ConfigManager { } public static class GadgetConfig { + public String mode = "server"; // "server" or "script" + // Server mode config public String address = "0.0.0.0"; public int port = 27042; public String onPortConflict = "fail"; public String onLoad = "wait"; + // Script mode config + public String scriptPath = "/data/local/tmp/script.js"; + // Common config public String gadgetName = "libgadget.so"; } } \ No newline at end of file