From 08a3fefb4e20177a8c1d450dd271927c1ddd1f1e Mon Sep 17 00:00:00 2001
From: hjw <hjw@ma.nodka.com>
Date: Tue, 28 Apr 2026 08:15:56 +0000
Subject: [PATCH] 更新AndroidAPI1.5, 支持非su系统下非systemuid应用进行静默安装/卸载
---
app/src/main/java/com/jwipc/nodka_reboot_under/The_Service.java | 8 ++++----
/dev/null | 0
app/src/main/java/com/jwipc/nodka_reboot_under/BroadcastReceiver_Sys.java | 10 ++++------
app/src/main/libs/arm64-v8a/libandroid-jni.so | 0
app/src/main/java/com/jwipc/nodka_reboot_under/MyApplication.java | 16 ++++++++--------
app/src/main/java/com/jwipc/nodka_reboot_under/utils/Utils.java | 19 ++++---------------
app/libs/AndroidAPI-sources.jar | 0
app/src/main/java/com/jwipc/nodka_reboot_under/BroadcastReceiver_Boot.java | 2 +-
app/libs/AndroidAPI.jar | 0
app/build.gradle | 2 +-
10 files changed, 22 insertions(+), 35 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 7e429df..917de14 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -39,6 +39,6 @@
dependencies {
implementation 'com.android.support:support-v4:25.+'
implementation files('libs/spirit.jar')
- implementation files('libs/NodkaAPI.jar')
+ implementation files('libs/AndroidAPI.jar')
compileOnly files('libs/classes-header.jar')
}
diff --git a/app/libs/AndroidAPI-sources.jar b/app/libs/AndroidAPI-sources.jar
new file mode 100644
index 0000000..2be0a1b
--- /dev/null
+++ b/app/libs/AndroidAPI-sources.jar
Binary files differ
diff --git a/app/libs/AndroidAPI.jar b/app/libs/AndroidAPI.jar
new file mode 100644
index 0000000..c3d5dff
--- /dev/null
+++ b/app/libs/AndroidAPI.jar
Binary files differ
diff --git a/app/libs/NodkaAPI.jar b/app/libs/NodkaAPI.jar
deleted file mode 100644
index 30d17ab..0000000
--- a/app/libs/NodkaAPI.jar
+++ /dev/null
Binary files differ
diff --git a/app/src/main/java/com/jwipc/nodka_reboot_under/BroadcastReceiver_Boot.java b/app/src/main/java/com/jwipc/nodka_reboot_under/BroadcastReceiver_Boot.java
index fe9ad09..cbeac55 100644
--- a/app/src/main/java/com/jwipc/nodka_reboot_under/BroadcastReceiver_Boot.java
+++ b/app/src/main/java/com/jwipc/nodka_reboot_under/BroadcastReceiver_Boot.java
@@ -56,7 +56,7 @@
AlarmPowerManager mAlarmPowerManager = new AlarmPowerManager();
mAlarmPowerManager.removeAllalarmPower();
} else {
- MyApplication.getApplication().getNodkaAPI().alarm_removeAllalarmPower();
+ MyApplication.getApplication().getAndroidAPI().alarm_removeAllalarmPower();
}
mUtils.remove_String_From_SharedPreferences(mUtils.repeat_alarm_poweron_time);
diff --git a/app/src/main/java/com/jwipc/nodka_reboot_under/BroadcastReceiver_Sys.java b/app/src/main/java/com/jwipc/nodka_reboot_under/BroadcastReceiver_Sys.java
index 45e5037..8950a87 100644
--- a/app/src/main/java/com/jwipc/nodka_reboot_under/BroadcastReceiver_Sys.java
+++ b/app/src/main/java/com/jwipc/nodka_reboot_under/BroadcastReceiver_Sys.java
@@ -126,9 +126,8 @@
*/
String path = intent.getStringExtra("path");
if (!TextUtils.isEmpty(path)) {
- String params = "pm install -r " + path;
- String result = mUtils.getRootCmdSilent(params);
- Log.i(TAG, "onReceive: PKG_INSTALL, params = " + params + ", result = " + result);
+ MyApplication.getApplication().getAndroidAPI().sysctrl_installApplicationLocal(path);
+ Log.i(TAG, "onReceive: PKG_INSTALL, path = " + path);
}
} else if (action.equals("com.nodka.action.PKG_UNINSTALL")) {
/**
@@ -142,9 +141,8 @@
*/
String pkgName = intent.getStringExtra("pkgName");
if (!TextUtils.isEmpty(pkgName)) {
- String params = "pm uninstall " + pkgName;
- String result = mUtils.getRootCmdSilent(params);
- Log.i(TAG, "onReceive: PKG_UNINSTALL, params = " + params + ", result = " + result);
+ MyApplication.getApplication().getAndroidAPI().sysctrl_uninstallApplicationLocal(pkgName);
+ Log.i(TAG, "onReceive: PKG_UNINSTALL, pkgName = " + pkgName);
}
} else if (action.equals("com.nodka.action.BLUETOOTH")) {
/**
diff --git a/app/src/main/java/com/jwipc/nodka_reboot_under/MyApplication.java b/app/src/main/java/com/jwipc/nodka_reboot_under/MyApplication.java
index f54af1e..06e5c30 100644
--- a/app/src/main/java/com/jwipc/nodka_reboot_under/MyApplication.java
+++ b/app/src/main/java/com/jwipc/nodka_reboot_under/MyApplication.java
@@ -2,30 +2,30 @@
import android.app.Application;
-import com.nodka.api.NodkaAPI;
+import com.android.api.AndroidAPI;
public class MyApplication extends Application {
- private NodkaAPI mNodkaAPI;
+ private AndroidAPI mAndroidAPI;
private static MyApplication mApp;
@Override
public void onCreate() {
super.onCreate();
mApp = this;
- createNorcoAPI();
+ createAndroidAPI();
}
public static MyApplication getApplication() {
return mApp;
}
- private void createNorcoAPI() {
- mNodkaAPI = NodkaAPI.nodkaAPICreate(this);
- mNodkaAPI.alarm_start();
+ private void createAndroidAPI() {
+ mAndroidAPI = AndroidAPI.androidAPICreate(this);
+ mAndroidAPI.alarm_start();
}
- public NodkaAPI getNodkaAPI() {
- return mNodkaAPI;
+ public AndroidAPI getAndroidAPI() {
+ return mAndroidAPI;
}
}
diff --git a/app/src/main/java/com/jwipc/nodka_reboot_under/The_Service.java b/app/src/main/java/com/jwipc/nodka_reboot_under/The_Service.java
index b81bd45..feb85f0 100644
--- a/app/src/main/java/com/jwipc/nodka_reboot_under/The_Service.java
+++ b/app/src/main/java/com/jwipc/nodka_reboot_under/The_Service.java
@@ -1,8 +1,8 @@
package com.jwipc.nodka_reboot_under;
+import com.android.api.AndroidAPI;
import com.jwipc.nodka_reboot_under.utils.Utils;
-import com.nodka.api.NodkaAPI;
import android.app.Service;
import android.content.Context;
@@ -26,7 +26,7 @@
public static final int apk_feed_dog = 1;
- private NodkaAPI mNodkaAPI = MyApplication.getApplication().getNodkaAPI();
+ private AndroidAPI mAndroidAPI = MyApplication.getApplication().getAndroidAPI();
private Thread gpioThread;
private static boolean gpioRead;
@@ -56,7 +56,7 @@
}
private void startGpioThread() {
- mNodkaAPI.gpio_export(95);
+ mAndroidAPI.gpio_export(95);
gpioRead = true;
gpioThread = new Thread(() -> {
while (gpioRead) {
@@ -70,7 +70,7 @@
}
private boolean isActive() {
- return mNodkaAPI.gpio_read(95) == 1;
+ return mAndroidAPI.gpio_read(95) == 1;
}
private void keycodePower() {
diff --git a/app/src/main/java/com/jwipc/nodka_reboot_under/utils/Utils.java b/app/src/main/java/com/jwipc/nodka_reboot_under/utils/Utils.java
index 4f07730..ae31493 100644
--- a/app/src/main/java/com/jwipc/nodka_reboot_under/utils/Utils.java
+++ b/app/src/main/java/com/jwipc/nodka_reboot_under/utils/Utils.java
@@ -12,29 +12,18 @@
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Calendar;
-import java.util.List;
import android.app.ActivityManager;
import android.content.Context;
-import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
-import android.hardware.spirit.AlarmPowerItem;
import android.hardware.spirit.AlarmPowerManager;
import android.jwipc.spirit.SpiritAlarmManager;
-import android.net.ConnectivityManager;
-import android.net.NetworkInfo;
-import android.net.NetworkInfo.DetailedState;
import android.os.Build;
import android.os.PowerManager;
-import android.os.RemoteException;
import android.text.format.DateFormat;
-import android.util.Log;
import com.jwipc.nodka_reboot_under.MyApplication;
-import com.nodka.api.NodkaAPI;
-import com.nodka.api.NodkaNative;
-
public class Utils {
@@ -258,7 +247,7 @@
new AlarmPowerManager().removeAllalarmPower();
setFileState("0", "/sys/class/minix-rtc/MCURTCDATA");
} else {
- MyApplication.getApplication().getNodkaAPI().alarm_removeAllalarmPower();
+ MyApplication.getApplication().getAndroidAPI().alarm_removeAllalarmPower();
setFileState("0", "/sys/class/minix-rtc/minix_RTC_DATA");
}
@@ -274,7 +263,7 @@
new SpiritAlarmManager().setSpiritAlarmWithDay(1, hms_on[0], hms_on[1]);
setFileState("1", "/sys/class/minix-rtc/MCURTCDATA");
} else {
- MyApplication.getApplication().getNodkaAPI().alarm_setSpiritAlarmWithDay(1, hms_on[0], hms_on[1]);
+ MyApplication.getApplication().getAndroidAPI().alarm_setSpiritAlarmWithDay(1, hms_on[0], hms_on[1]);
setFileState("1", "/sys/class/minix-rtc/minix_RTC_DATA");
}
@@ -309,7 +298,7 @@
new AlarmPowerManager().updateAlarmPowerActive(0, active+"");
} else {
- MyApplication.getApplication().getNodkaAPI().alarm_creatOneAlarmPower(calendar.get(Calendar.YEAR)+"",
+ MyApplication.getApplication().getAndroidAPI().alarm_creatOneAlarmPower(calendar.get(Calendar.YEAR)+"",
calendar.get(Calendar.MONTH)+1+"",
calendar.get(Calendar.DAY_OF_MONTH)+"",
hms_on[0]+"",
@@ -321,7 +310,7 @@
hms_on[0]>12? "0":"1",
hms_off[0]>12? "0":"1");
- MyApplication.getApplication().getNodkaAPI().alarm_updateAlarmPowerActive(0, active+"");
+ MyApplication.getApplication().getAndroidAPI().alarm_updateAlarmPowerActive(0, active+"");
}
}
}
diff --git a/app/src/main/libs/arm64-v8a/libandroid-jni.so b/app/src/main/libs/arm64-v8a/libandroid-jni.so
new file mode 100644
index 0000000..a46a6bf
--- /dev/null
+++ b/app/src/main/libs/arm64-v8a/libandroid-jni.so
Binary files differ
diff --git a/app/src/main/libs/arm64-v8a/libnodka-jni.so b/app/src/main/libs/arm64-v8a/libnodka-jni.so
deleted file mode 100644
index dc8ea8f..0000000
--- a/app/src/main/libs/arm64-v8a/libnodka-jni.so
+++ /dev/null
Binary files differ
--
Gitblit v1.6.2