From c224efddcf40af5dae6cf55ca50cd0fe192f21ce Mon Sep 17 00:00:00 2001 From: LoveSy Date: Sat, 25 Sep 2021 16:35:38 +0800 Subject: [PATCH] Fix #1134 (#1171) --- .../java/org/lsposed/lspd/service/LSPManagerService.java | 8 ++++++-- .../src/main/java/org/lsposed/lspd/util/FakeContext.java | 9 +++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) 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 7093a543..9ba47792 100644 --- a/core/src/main/java/org/lsposed/lspd/service/LSPManagerService.java +++ b/core/src/main/java/org/lsposed/lspd/service/LSPManagerService.java @@ -189,6 +189,7 @@ public class LSPManagerService extends ILSPManagerService.Stub { } if (intent.getCategories() != null) intent.getCategories().clear(); intent.addCategory("org.lsposed.manager.LAUNCH_MANAGER"); + intent.setPackage(BuildConfig.MANAGER_INJECTED_PKG_NAME); managerIntent = (Intent) intent.clone(); } } catch (Throwable e) { @@ -252,16 +253,19 @@ public class LSPManagerService extends ILSPManagerService.Stub { try { var smCtor = ShortcutManager.class.getDeclaredConstructor(Context.class); smCtor.setAccessible(true); - var context = new FakeContext(); + var context = new FakeContext("com.android.settings"); var sm = smCtor.newInstance(context); if (!sm.isRequestPinShortcutSupported()) { Log.d(TAG, "pinned shortcut not supported, skipping"); return; } + var intent = getManagerIntent(); var shortcut = new ShortcutInfo.Builder(context, SHORTCUT_ID) .setShortLabel("LSPosed") .setLongLabel("LSPosed") - .setIntent(getManagerIntent()) + .setIntent(intent) + .setActivity(new ComponentName("com.android.settings", "android.__dummy__")) + .setCategories(intent.getCategories()) .setIcon(getManagerIcon()) .build(); diff --git a/core/src/main/java/org/lsposed/lspd/util/FakeContext.java b/core/src/main/java/org/lsposed/lspd/util/FakeContext.java index 53202b11..e285d560 100644 --- a/core/src/main/java/org/lsposed/lspd/util/FakeContext.java +++ b/core/src/main/java/org/lsposed/lspd/util/FakeContext.java @@ -19,14 +19,19 @@ import hidden.HiddenApiBridge; public class FakeContext extends ContextWrapper { static ApplicationInfo systemApplicationInfo = null; static Resources.Theme theme = null; - + private String packageName = "android"; public FakeContext() { super(null); } + public FakeContext(String packageName) { + super(null); + this.packageName = packageName; + } + @Override public String getPackageName() { - return "android"; + return packageName; } @Override