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 dea0ead2..3a1bc5f4 100644 --- a/core/src/main/java/org/lsposed/lspd/service/ConfigManager.java +++ b/core/src/main/java/org/lsposed/lspd/service/ConfigManager.java @@ -85,7 +85,6 @@ public class ConfigManager { private boolean verboseLog = true; private String miscPath = null; - private final String manager = BuildConfig.DEFAULT_MANAGER_PACKAGE_NAME; private int managerUid = -1; private final Handler cacheHandler; @@ -234,11 +233,11 @@ public class ConfigManager { public synchronized void updateManager() { if (!PackageService.isAlive()) return; try { - PackageInfo info = PackageService.getPackageInfo(manager, 0, 0); + PackageInfo info = PackageService.getPackageInfo(BuildConfig.DEFAULT_MANAGER_PACKAGE_NAME, 0, 0); if (info != null) { managerUid = info.applicationInfo.uid; } else { - Log.w(TAG, "manager is not installed"); + Log.i(TAG, "manager is not installed"); } } catch (RemoteException ignored) { } @@ -820,14 +819,14 @@ public class ConfigManager { return true; } - public boolean isManager(String packageName) { - return packageName.equals(manager); - } - public boolean isManager(int uid) { return uid == managerUid; } + public boolean isManagerInstalled() { + return managerUid != -1; + } + public String getPrefsPath(String fileName, int uid) { int userId = uid / PER_USER_RANGE; return miscPath + "/prefs" + (userId == 0 ? "" : String.valueOf(userId)) + "/" + fileName; 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 c88156a1..3f6e8b0d 100644 --- a/core/src/main/java/org/lsposed/lspd/service/LSPManagerService.java +++ b/core/src/main/java/org/lsposed/lspd/service/LSPManagerService.java @@ -263,6 +263,10 @@ public class LSPManagerService extends ILSPManagerService.Stub { public static void createOrUpdateShortcut() { try { + if (ConfigManager.getInstance().isManagerInstalled()) { + Log.d(TAG, "Manager has installed, skip adding shortcut"); + return; + } while (!UserService.isUserUnlocked(0)) { Log.d(TAG, "user is not yet unlocked, waiting for 1s..."); Thread.sleep(1000); diff --git a/core/src/main/java/org/lsposed/lspd/service/LSPosedService.java b/core/src/main/java/org/lsposed/lspd/service/LSPosedService.java index cb69698d..8b41cc3d 100644 --- a/core/src/main/java/org/lsposed/lspd/service/LSPosedService.java +++ b/core/src/main/java/org/lsposed/lspd/service/LSPosedService.java @@ -34,6 +34,8 @@ import android.os.Bundle; import android.os.IBinder; import android.util.Log; +import org.lsposed.lspd.BuildConfig; + import java.util.Arrays; public class LSPosedService extends ILSPosedService.Stub { @@ -149,7 +151,7 @@ public class LSPosedService extends ILSPosedService.Stub { LSPManagerService.broadcastIntent(moduleName, userId); } - if (moduleName != null && ConfigManager.getInstance().isManager(moduleName) && userId == 0) { + if (BuildConfig.DEFAULT_MANAGER_PACKAGE_NAME.equals(moduleName) && userId == 0) { Log.d(TAG, "Manager updated"); try { ConfigManager.getInstance().updateManager();