From 5a3b7c1c5914d4da3f72afc04f8a66da09ffec0b Mon Sep 17 00:00:00 2001 From: Howard Wu <40033067+Howard20181@users.noreply.github.com> Date: Sun, 3 Oct 2021 10:49:27 +0800 Subject: [PATCH] [core] Fix the module scope setting on first installation --- .../java/org/lsposed/lspd/service/ConfigManager.java | 10 ++++++++-- .../org/lsposed/lspd/service/LSPManagerService.java | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/lsposed/lspd/service/ConfigManager.java b/core/src/main/java/org/lsposed/lspd/service/ConfigManager.java index 4bd266d2..395dc255 100644 --- a/core/src/main/java/org/lsposed/lspd/service/ConfigManager.java +++ b/core/src/main/java/org/lsposed/lspd/service/ConfigManager.java @@ -624,10 +624,16 @@ public class ConfigManager { } } - public boolean setModuleScope(String packageName, List scopes) { + public boolean setModuleScope(String packageName, List scopes) throws RemoteException { if (scopes == null) return false; int mid = getModuleId(packageName); - if (mid == -1) return false; + if (mid == -1) { + var info = PackageService.getPackageInfo(packageName, MATCH_ALL_FLAGS, 0); + if (info != null && updateModuleApkPath(packageName, getModuleApkPath(info.applicationInfo), false)) { + mid = getModuleId(packageName); + if (mid == -1) return false; + } else return false; + } Application self = new Application(); self.packageName = packageName; self.userId = 0; diff --git a/core/src/main/java/org/lsposed/lspd/service/LSPManagerService.java b/core/src/main/java/org/lsposed/lspd/service/LSPManagerService.java index f3addf0f..6ba27cf7 100644 --- a/core/src/main/java/org/lsposed/lspd/service/LSPManagerService.java +++ b/core/src/main/java/org/lsposed/lspd/service/LSPManagerService.java @@ -518,7 +518,7 @@ public class LSPManagerService extends ILSPManagerService.Stub { } @Override - public boolean setModuleScope(String packageName, ParceledListSlice scope) { + public boolean setModuleScope(String packageName, ParceledListSlice scope) throws RemoteException { return ConfigManager.getInstance().setModuleScope(packageName, scope.getList()); }