From 096572d762ff299ba13ff95069c1c7bdecc87a17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Zsolt=20Balatoni?= Date: Thu, 22 May 2025 05:41:38 +0200 Subject: [PATCH 1/2] Make it possible to add system/0 to the scope from the CLI --- daemon/src/main/java/org/lsposed/lspd/cli/Main.java | 8 ++++---- daemon/src/main/java/org/lsposed/lspd/cli/Utils.java | 11 +++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/daemon/src/main/java/org/lsposed/lspd/cli/Main.java b/daemon/src/main/java/org/lsposed/lspd/cli/Main.java index 709c5512c..377b2b7b6 100644 --- a/daemon/src/main/java/org/lsposed/lspd/cli/Main.java +++ b/daemon/src/main/java/org/lsposed/lspd/cli/Main.java @@ -282,26 +282,26 @@ public Integer call() throws RemoteException { objArgs.bSet = true; } - boolean bAndroidExist = false; + boolean bAndroidOrSystemExist = false; if (objArgs.bSet) { var lstScope = manager.getModuleScope(moduleName); if (lstScope == null) { System.err.println(manager.getLastErrorMsg()); return ERRCODES.SET_SCOPE.ordinal(); } - bAndroidExist = Utils.checkPackageInScope("android", lstScope); + bAndroidOrSystemExist = Utils.checkPackageInScope("android", lstScope) | Utils.checkPackageInScope("system", lstScope); } for(var scope : scopes) { if (Utils.validPackageNameAndUserId(manager, scope.packageName, scope.userId)) { - if (scope.packageName.equals("android")) { + if (scope.packageName.equals("android") || scope.packageName.equals("system")) { bMsgReboot = true; } } else if (!bIgnore) { throw new RuntimeException("Error: " + scope.packageName + (scope.userId < 0? "" : ("/" + scope.userId)) + " is not a valid package name"); } } - if (bAndroidExist && !bMsgReboot) { // if android is removed with setcommand reboot is required + if (bAndroidOrSystemExist && !bMsgReboot) { // if android or system is removed with setcommand reboot is required bMsgReboot = true; } if (bMsgReboot) { diff --git a/daemon/src/main/java/org/lsposed/lspd/cli/Utils.java b/daemon/src/main/java/org/lsposed/lspd/cli/Utils.java index cee26d4df..30c33782c 100644 --- a/daemon/src/main/java/org/lsposed/lspd/cli/Utils.java +++ b/daemon/src/main/java/org/lsposed/lspd/cli/Utils.java @@ -2,6 +2,7 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; +import android.os.Parcel; import android.os.RemoteException; import org.lsposed.lspd.ICLIService; @@ -35,6 +36,16 @@ private static void initPackagesMap(ICLIService managerService) throws RemoteExc for (var packageInfo: packages) { int userid = packageInfo.applicationInfo.uid / 100000; packagesMap.put(packageInfo.packageName + "|" + userid, packageInfo); + + if ("android".equals(packageInfo.packageName)) { + var p = Parcel.obtain(); + packageInfo.writeToParcel(p, 0); + p.setDataPosition(0); + PackageInfo system = PackageInfo.CREATOR.createFromParcel(p); + system.packageName = "system"; + system.applicationInfo.packageName = system.packageName; + packagesMap.put(system.packageName + "|" + userid, system); + } } } From e18911bfb54f014c9ca7293df00a06cf3ebcc1a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Zsolt=20Balatoni?= Date: Thu, 22 May 2025 16:51:01 +0200 Subject: [PATCH 2/2] Add building information to README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 9226d06f8..d226f3205 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,10 @@ We use our own module repository. We welcome developers to submit modules to our - [LSPosed Module Repository](https://github.com/Xposed-Modules-Repo) +## Building locally +- Clone [libxposed:api](https://github.com/libxposed/api/commit/54582730315ba4a3d7cfaf9baf9d23c419e07006) and [libxposed:service](https://github.com/libxposed/service) +- Execute `./gradlew publishToMavenLocal` so these dependencies can directly be referenced by this project + ## Translation Contributing You can contribute translation [here](https://crowdin.com/project/lsposedmod).