From 024cca3104304a6ed52123f3616a8d43ef837436 Mon Sep 17 00:00:00 2001 From: liuguijing <1440265357@qq.com> Date: Wed, 7 May 2025 20:08:44 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=B5=8B=E8=AF=95getInt=E9=94=81=E4=BD=8F?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xypower/mpapp/MicroPhotoService.java | 3 + .../com/xypower/mpmaster/MpMasterService.java | 60 ++++++++++++++++++- 2 files changed, 60 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java index 4d2f29a2..68723511 100644 --- a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java +++ b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java @@ -460,6 +460,9 @@ public class MicroPhotoService extends Service { private void ProcessReceivedAction(final Context context, final Intent intent) { String action = intent.getAction(); + infoLog("MpApp验证电压读取的问题开始"); + int gpioInt = getGpioInt(117); + infoLog("MpApp验证电压读取的问题结束:" + gpioInt); if (TextUtils.equals(ACTION_HEARTBEAT, action)) { long ts = System.currentTimeMillis(); long expectedHbTime = intent.getLongExtra("HeartbeatTime", ts); diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java index 047c64ce..9055b25d 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java @@ -233,6 +233,8 @@ public class MpMasterService extends Service { mPreviousMpHbTime = System.currentTimeMillis(); mTimeToStartMpApp = mPreviousMpHbTime; + buildChargingBatteryVoltage(System.currentTimeMillis()); + logger.info("MpMaster started version=" + mMpMasterVersion); mHander = new Handler(); @@ -333,7 +335,9 @@ public class MpMasterService extends Service { } catch (Exception ex) { } } - + if (batterySingleThread != null) { + batterySingleThread.shutdown(); + } super.onDestroy(); } @@ -665,6 +669,8 @@ public class MpMasterService extends Service { mService.mPreviousHeartbeatTime = 0; mService.registerHeartbeatTimer(); + mService.buildChargingBatteryVoltage(System.currentTimeMillis()); + if (!keepAlive) { mService.startMaster(false); } @@ -1083,6 +1089,44 @@ public class MpMasterService extends Service { return signalLevel; } + public static String getBatteryVoltage() { + int val = 0; + for (int idx = 0; idx < 3; idx++) { + val = MpMasterService.getInt(117); + if (val > 0) { + return Integer.toString(val / 1000) + "." + Integer.toString((val % 1000) / 100); + } + } + + return ""; + } + + private void buildChargingBatteryVoltage(long ts) { + batterySingleThread = SingletonThread.getInstance(); + batterySingleThread.execute(new Runnable() { + @Override + public void run() { + logger.info("电压线程开始"); + int val = 0; + for (int idx = 0; idx < 3; idx++) { + logger.info("电压测试第" + idx + "次开始读取"); + val = MpMasterService.getInt(112); + logger.info("电压测试第" + idx + "次读取结束 " + val); + if (val > 0) { + break; + } + } + if (val > 0) { + if (val > mMaxBCV) { + mMaxBCV = val; + mMaxBCVTime = ts; + } + } + } + }); + + } + public String getAndResetMaxBCV() { String val = Integer.toString(mMaxBCV / 1000) + "." + Integer.toString((mMaxBCV % 1000) / 100) + "/" + Long.toString(mMaxBCVTime / 1000); @@ -1093,6 +1137,18 @@ public class MpMasterService extends Service { return val; } + public static String getChargingBatteryVoltage() { + int val = 0; + for (int idx = 0; idx < 3; idx++) { + val = MpMasterService.getInt(112); + if (val > 0) { + return Integer.toString(val / 1000) + "." + Integer.toString((val % 1000) / 100); + } + } + + return ""; + } + public void downloadAndInstall(final String url) { final Context context = getApplicationContext(); @@ -1488,8 +1544,6 @@ public class MpMasterService extends Service { public native static int[] getStats(long ts); - public native static long[] getBatteryInfo(); - public native static String getSystemProperty(String key); public native static void rebootDevice(); From 0d2090153fe3b72c4d0437671ce282f9b11174bb Mon Sep 17 00:00:00 2001 From: liuguijing <1440265357@qq.com> Date: Sun, 11 May 2025 15:52:57 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=9F=AD=E4=BF=A1adb?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=E6=89=A7=E8=A1=8C=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xypower/mpmaster/sms/AdbUtil.java | 70 ++++++++++--------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/sms/AdbUtil.java b/mpmaster/src/main/java/com/xypower/mpmaster/sms/AdbUtil.java index 04ad4648..efcaf708 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/sms/AdbUtil.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/sms/AdbUtil.java @@ -24,44 +24,46 @@ public class AdbUtil { } public static void ShellList(ArrayList shellList) { - try { - for (String cmd : shellList) { - Process process = Runtime.getRuntime().exec(cmd); - // 处理输出和错误流 - process.waitFor(); - } - } catch (Exception e) { - e.printStackTrace(); - } - - // try { -// // 使用 su 获取 root 权限 -// Process process = Runtime.getRuntime().exec(); -// -// // 获取输出流,用于发送命令 -// DataOutputStream outputStream = new DataOutputStream(process.getOutputStream()); -// -// for (int i = 0; i < shellList.size()-1; i++) { -// outputStream.writeBytes(shellList.get(i)+"\n"); +// for (String cmd : shellList) { +// Process process = Runtime.getRuntime().exec(cmd); +// // 处理输出和错误流 +// int i = process.waitFor(); +// System.out.println(""+i); // } -// // 执行命令(例如:列出 /data 目录) -// -// outputStream.writeBytes("exit\n"); // 退出 su -// outputStream.flush(); -// -// // 读取命令输出 -// BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); -// String line; -// while ((line = reader.readLine()) != null) { -// Log.d("Output", line); // 打印输出 -// } -// -// // 等待命令执行完成 -// int i = process.waitFor(); -// } catch (IOException | InterruptedException e) { +// } catch (Exception e) { // e.printStackTrace(); // } + + + try { + // 使用 su 获取 root 权限 + Process process = Runtime.getRuntime().exec("su"); + + // 获取输出流,用于发送命令 + DataOutputStream outputStream = new DataOutputStream(process.getOutputStream()); + + for (int i = 0; i < shellList.size(); i++) { + outputStream.writeBytes(shellList.get(i)+"\n"); + } + // 执行命令(例如:列出 /data 目录) + + outputStream.writeBytes("exit\n"); // 退出 su + outputStream.flush(); + outputStream.close(); + + // 读取命令输出 + BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); + String line; + while ((line = reader.readLine()) != null) { + Log.d("Output", line); // 打印输出 + } + + // 等待命令执行完成 + int i = process.waitFor(); + } catch (IOException | InterruptedException e) { + e.printStackTrace(); + } } } From 7558b79c5ef05e87b5af63626b13afd54533f5d5 Mon Sep 17 00:00:00 2001 From: liuguijing <1440265357@qq.com> Date: Sun, 11 May 2025 16:04:46 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=B9=8B=E5=89=8D?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=9A=84=E6=97=A5=E5=BF=97=20=E5=88=A0?= =?UTF-8?q?=E9=99=A4MpMaster=E4=B8=AD=E7=9A=84=E8=AF=BB=E5=8F=96=E7=94=B5?= =?UTF-8?q?=E5=8E=8B=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xypower/mpapp/MicroPhotoService.java | 3 - .../com/xypower/mpmaster/MpMasterService.java | 60 +------------------ 2 files changed, 3 insertions(+), 60 deletions(-) diff --git a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java index 68723511..4d2f29a2 100644 --- a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java +++ b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java @@ -460,9 +460,6 @@ public class MicroPhotoService extends Service { private void ProcessReceivedAction(final Context context, final Intent intent) { String action = intent.getAction(); - infoLog("MpApp验证电压读取的问题开始"); - int gpioInt = getGpioInt(117); - infoLog("MpApp验证电压读取的问题结束:" + gpioInt); if (TextUtils.equals(ACTION_HEARTBEAT, action)) { long ts = System.currentTimeMillis(); long expectedHbTime = intent.getLongExtra("HeartbeatTime", ts); diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java index 9055b25d..047c64ce 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java @@ -233,8 +233,6 @@ public class MpMasterService extends Service { mPreviousMpHbTime = System.currentTimeMillis(); mTimeToStartMpApp = mPreviousMpHbTime; - buildChargingBatteryVoltage(System.currentTimeMillis()); - logger.info("MpMaster started version=" + mMpMasterVersion); mHander = new Handler(); @@ -335,9 +333,7 @@ public class MpMasterService extends Service { } catch (Exception ex) { } } - if (batterySingleThread != null) { - batterySingleThread.shutdown(); - } + super.onDestroy(); } @@ -669,8 +665,6 @@ public class MpMasterService extends Service { mService.mPreviousHeartbeatTime = 0; mService.registerHeartbeatTimer(); - mService.buildChargingBatteryVoltage(System.currentTimeMillis()); - if (!keepAlive) { mService.startMaster(false); } @@ -1089,44 +1083,6 @@ public class MpMasterService extends Service { return signalLevel; } - public static String getBatteryVoltage() { - int val = 0; - for (int idx = 0; idx < 3; idx++) { - val = MpMasterService.getInt(117); - if (val > 0) { - return Integer.toString(val / 1000) + "." + Integer.toString((val % 1000) / 100); - } - } - - return ""; - } - - private void buildChargingBatteryVoltage(long ts) { - batterySingleThread = SingletonThread.getInstance(); - batterySingleThread.execute(new Runnable() { - @Override - public void run() { - logger.info("电压线程开始"); - int val = 0; - for (int idx = 0; idx < 3; idx++) { - logger.info("电压测试第" + idx + "次开始读取"); - val = MpMasterService.getInt(112); - logger.info("电压测试第" + idx + "次读取结束 " + val); - if (val > 0) { - break; - } - } - if (val > 0) { - if (val > mMaxBCV) { - mMaxBCV = val; - mMaxBCVTime = ts; - } - } - } - }); - - } - public String getAndResetMaxBCV() { String val = Integer.toString(mMaxBCV / 1000) + "." + Integer.toString((mMaxBCV % 1000) / 100) + "/" + Long.toString(mMaxBCVTime / 1000); @@ -1137,18 +1093,6 @@ public class MpMasterService extends Service { return val; } - public static String getChargingBatteryVoltage() { - int val = 0; - for (int idx = 0; idx < 3; idx++) { - val = MpMasterService.getInt(112); - if (val > 0) { - return Integer.toString(val / 1000) + "." + Integer.toString((val % 1000) / 100); - } - } - - return ""; - } - public void downloadAndInstall(final String url) { final Context context = getApplicationContext(); @@ -1544,6 +1488,8 @@ public class MpMasterService extends Service { public native static int[] getStats(long ts); + public native static long[] getBatteryInfo(); + public native static String getSystemProperty(String key); public native static void rebootDevice();