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()); }