hjw
2026-04-28 08a3fefb4e20177a8c1d450dd271927c1ddd1f1e
app/src/main/java/com/jwipc/nodka_reboot_under/utils/Utils.java
....@@ -1,6 +1,7 @@
11 package com.jwipc.nodka_reboot_under.utils;
22
33 import java.io.BufferedReader;
4
+import java.io.DataInputStream;
45 import java.io.DataOutputStream;
56 import java.io.File;
67 import java.io.FileNotFoundException;
....@@ -11,29 +12,18 @@
1112 import java.lang.reflect.Method;
1213 import java.util.ArrayList;
1314 import java.util.Calendar;
14
-import java.util.List;
1515
1616 import android.app.ActivityManager;
1717 import android.content.Context;
18
-import android.content.Intent;
1918 import android.content.SharedPreferences;
2019 import android.content.SharedPreferences.Editor;
21
-import android.hardware.spirit.AlarmPowerItem;
2220 import android.hardware.spirit.AlarmPowerManager;
2321 import android.jwipc.spirit.SpiritAlarmManager;
24
-import android.net.ConnectivityManager;
25
-import android.net.NetworkInfo;
26
-import android.net.NetworkInfo.DetailedState;
2722 import android.os.Build;
2823 import android.os.PowerManager;
29
-import android.os.RemoteException;
3024 import android.text.format.DateFormat;
31
-import android.util.Log;
3225
3326 import com.jwipc.nodka_reboot_under.MyApplication;
34
-import com.nodka.api.NodkaAPI;
35
-import com.nodka.api.NodkaNative;
36
-
3727
3828 public class Utils {
3929
....@@ -257,7 +247,7 @@
257247 new AlarmPowerManager().removeAllalarmPower();
258248 setFileState("0", "/sys/class/minix-rtc/MCURTCDATA");
259249 } else {
260
- MyApplication.getApplication().getNodkaAPI().alarm_removeAllalarmPower();
250
+ MyApplication.getApplication().getAndroidAPI().alarm_removeAllalarmPower();
261251 setFileState("0", "/sys/class/minix-rtc/minix_RTC_DATA");
262252 }
263253
....@@ -273,7 +263,7 @@
273263 new SpiritAlarmManager().setSpiritAlarmWithDay(1, hms_on[0], hms_on[1]);
274264 setFileState("1", "/sys/class/minix-rtc/MCURTCDATA");
275265 } else {
276
- MyApplication.getApplication().getNodkaAPI().alarm_setSpiritAlarmWithDay(1, hms_on[0], hms_on[1]);
266
+ MyApplication.getApplication().getAndroidAPI().alarm_setSpiritAlarmWithDay(1, hms_on[0], hms_on[1]);
277267 setFileState("1", "/sys/class/minix-rtc/minix_RTC_DATA");
278268 }
279269
....@@ -308,7 +298,7 @@
308298
309299 new AlarmPowerManager().updateAlarmPowerActive(0, active+"");
310300 } else {
311
- MyApplication.getApplication().getNodkaAPI().alarm_creatOneAlarmPower(calendar.get(Calendar.YEAR)+"",
301
+ MyApplication.getApplication().getAndroidAPI().alarm_creatOneAlarmPower(calendar.get(Calendar.YEAR)+"",
312302 calendar.get(Calendar.MONTH)+1+"",
313303 calendar.get(Calendar.DAY_OF_MONTH)+"",
314304 hms_on[0]+"",
....@@ -320,7 +310,7 @@
320310 hms_on[0]>12? "0":"1",
321311 hms_off[0]>12? "0":"1");
322312
323
- MyApplication.getApplication().getNodkaAPI().alarm_updateAlarmPowerActive(0, active+"");
313
+ MyApplication.getApplication().getAndroidAPI().alarm_updateAlarmPowerActive(0, active+"");
324314 }
325315 }
326316 }
....@@ -688,6 +678,66 @@
688678
689679 return re;
690680 }
681
+
682
+ public String getRootCmdSilent(String cmd) {
683
+ DataOutputStream dos = null;
684
+ DataInputStream dis = null;
685
+ Process process = null;
686
+ try {
687
+ process = Runtime.getRuntime().exec("su");
688
+ dos = new DataOutputStream(process.getOutputStream());
689
+ dis = new DataInputStream(process.getInputStream());
690
+ dos.write(cmd.getBytes());
691
+ dos.flush();
692
+ dos.close();
693
+ process.waitFor();
694
+ return getStrFromDataInPutStream(dis);
695
+ } catch (Exception e) {
696
+ e.printStackTrace();
697
+ return null;
698
+ } finally {
699
+ if (dos != null) {
700
+ try {
701
+ dos.close();
702
+ } catch (IOException e) {
703
+ e.printStackTrace();
704
+ }
705
+ }
706
+ if (dis != null) {
707
+ try {
708
+ dis.close();
709
+ } catch (IOException e) {
710
+ e.printStackTrace();
711
+ }
712
+ }
713
+ if (process != null) {
714
+ process.destroy();
715
+ }
716
+ }
717
+ }
718
+
719
+ private String getStrFromDataInPutStream(DataInputStream dos) {
720
+ if (null == dos) {
721
+ return "";
722
+ }
723
+ int BUFFER_SIZE = 512;
724
+ byte[] buffer = new byte[BUFFER_SIZE];
725
+ StringBuilder result = new StringBuilder();
726
+ try {
727
+ while (true) {
728
+ int read = dos.read(buffer);
729
+ if (read > 0) {
730
+ result.append(new String(buffer, 0, read));
731
+ }
732
+ if (read < BUFFER_SIZE) {
733
+ break;
734
+ }
735
+ }
736
+ } catch (Exception e) {
737
+ e.printStackTrace();
738
+ }
739
+ return result.toString();
740
+ }
691741
692742 public boolean isSpiritVersion() {
693743 return Build.VERSION.SDK_INT <= 25;