diff --git a/manager/src/main/java/org/lsposed/lspatch/manager/ManagerService.kt b/manager/src/main/java/org/lsposed/lspatch/manager/ManagerService.kt index a95f939..cb1a840 100644 --- a/manager/src/main/java/org/lsposed/lspatch/manager/ManagerService.kt +++ b/manager/src/main/java/org/lsposed/lspatch/manager/ManagerService.kt @@ -15,19 +15,19 @@ object ManagerService : ILSPApplicationService.Stub() { private const val TAG = "ManagerService" - override fun getLegacyModulesList(): MutableList { - TODO("Not yet implemented") - } - - override fun getModulesList(): List { + override fun getLegacyModulesList(): List { val app = lspApp.packageManager.getNameForUid(Binder.getCallingUid()) val list = app?.let { runBlocking { ConfigManager.getModuleFilesForApp(it) } }.orEmpty() - Log.d(TAG, "$app calls getModulesList: $list") + Log.d(TAG, "$app calls getLegacyModulesList: $list") return list } + override fun getModulesList(): List { + return emptyList() + } + override fun getPrefsPath(packageName: String): String { TODO("Not yet implemented") } diff --git a/patch-loader/src/main/java/org/lsposed/lspatch/loader/LSPApplication.java b/patch-loader/src/main/java/org/lsposed/lspatch/loader/LSPApplication.java index 1cbb936..9095039 100644 --- a/patch-loader/src/main/java/org/lsposed/lspatch/loader/LSPApplication.java +++ b/patch-loader/src/main/java/org/lsposed/lspatch/loader/LSPApplication.java @@ -85,8 +85,7 @@ public class LSPApplication { } disableProfile(context); - Startup.initXposed(false, ActivityThread.currentProcessName(), ActivityThread.currentApplication().getPackageCodePath(), service); - Log.i(TAG, "Bootstrap Xposed"); + Startup.initXposed(false, ActivityThread.currentProcessName(), context.getApplicationInfo().dataDir, service); Startup.bootstrapXposed(); // WARN: Since it uses `XResource`, the following class should not be initialized // before forkPostCommon is invoke. Otherwise, you will get failure of XResources diff --git a/patch-loader/src/main/java/org/lsposed/lspatch/service/LocalApplicationService.java b/patch-loader/src/main/java/org/lsposed/lspatch/service/LocalApplicationService.java index fb378e3..04a6067 100644 --- a/patch-loader/src/main/java/org/lsposed/lspatch/service/LocalApplicationService.java +++ b/patch-loader/src/main/java/org/lsposed/lspatch/service/LocalApplicationService.java @@ -58,13 +58,13 @@ public class LocalApplicationService extends ILSPApplicationService.Stub { } @Override - public List getLegacyModulesList() throws RemoteException { - return null; + public List getLegacyModulesList() { + return modules; } @Override public List getModulesList() { - return modules; + return new ArrayList<>(); } @Override @@ -76,4 +76,9 @@ public class LocalApplicationService extends ILSPApplicationService.Stub { public ParcelFileDescriptor requestInjectedManagerBinder(List binder) { return null; } + + @Override + public IBinder asBinder() { + return this; + } } diff --git a/patch-loader/src/main/java/org/lsposed/lspatch/service/RemoteApplicationService.java b/patch-loader/src/main/java/org/lsposed/lspatch/service/RemoteApplicationService.java index 0e271f2..fdea12a 100644 --- a/patch-loader/src/main/java/org/lsposed/lspatch/service/RemoteApplicationService.java +++ b/patch-loader/src/main/java/org/lsposed/lspatch/service/RemoteApplicationService.java @@ -34,7 +34,7 @@ public class RemoteApplicationService implements ILSPApplicationService { private static final String TAG = "LSPatch"; private static final String MODULE_SERVICE = Constants.MANAGER_PACKAGE_NAME + ".manager.ModuleService"; - private ILSPApplicationService service; + private volatile ILSPApplicationService service; @SuppressLint("DiscouragedPrivateApi") public RemoteApplicationService(Context context) throws RemoteException { @@ -48,8 +48,8 @@ public class RemoteApplicationService implements ILSPApplicationService { @Override public void onServiceConnected(ComponentName name, IBinder binder) { Log.i(TAG, "Manager binder received"); - latch.countDown(); service = Stub.asInterface(binder); + latch.countDown(); } @Override