diff --git a/app/src/main/java/name/monwf/customiuizer/MainModule.java b/app/src/main/java/name/monwf/customiuizer/MainModule.java index c4e829d7..0a1f4932 100644 --- a/app/src/main/java/name/monwf/customiuizer/MainModule.java +++ b/app/src/main/java/name/monwf/customiuizer/MainModule.java @@ -638,6 +638,7 @@ private void handleLoadLauncher(final PackageLoadedParam lpparam) { if (mPrefs.getBoolean("launcher_renameapps")) Launcher.RenameShortcutsHook(lpparam); if (mPrefs.getBoolean("launcher_darkershadow")) Launcher.TitleShadowHook(lpparam); if (mPrefs.getBoolean("controls_nonavbar")) Launcher.HideNavBarHook(lpparam); + if (mPrefs.getBoolean("launcher_disableprestart")) Launcher.DisablePrestartHook(lpparam); if (mPrefs.getBoolean("launcher_infinitescroll")) Launcher.InfiniteScrollHook(lpparam); if (mPrefs.getBoolean("launcher_hidetitles")) Launcher.HideTitlesHook(lpparam); if (mPrefs.getBoolean("launcher_fixlaunch")) Launcher.FixAppInfoLaunchHook(lpparam); diff --git a/app/src/main/java/name/monwf/customiuizer/mods/Launcher.java b/app/src/main/java/name/monwf/customiuizer/mods/Launcher.java index a43215d7..9c62defd 100644 --- a/app/src/main/java/name/monwf/customiuizer/mods/Launcher.java +++ b/app/src/main/java/name/monwf/customiuizer/mods/Launcher.java @@ -42,6 +42,7 @@ import android.widget.TextView; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -604,6 +605,33 @@ public void run() { }); } + + public static void DisablePrestartHook(PackageLoadedParam lpparam) { + final Set prop = new HashSet<>(Arrays.asList( + "persist.sys.usap_pool_enabled", + "persist.sys.dynamic_usap_enabled", + "persist.sys.prestart.proc", + "persist.sys.prestart.feedback.enable", + "persist.sys.launch_response_optimization.enable" + )); + + ModuleHelper.findAndHookMethod( + "com.miui.launcher.utils.SystemProperties", + lpparam.getClassLoader(), + "getBoolean", + String.class, + boolean.class, + new HookerClassHelper.MethodHook() { + @Override + protected void before(final io.github.libxposed.api.XposedInterface.BeforeHookCallback param) throws Throwable { + String key = (String) param.getArgs()[0]; + if (key != null && prop.contains(key)) { + param.returnAndSkip(false); + } + } + } + ); + } public static void InfiniteScrollHook(PackageLoadedParam lpparam) { ModuleHelper.findAndHookMethod("com.miui.home.launcher.ScreenView", lpparam.getClassLoader(), "getSnapToScreenIndex", int.class, int.class, int.class, new MethodHook() { @Override diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 5c7c1042..8ba7d3a7 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -451,6 +451,8 @@ 启动快捷方式 要启动的活动 启动器 + 禁用应用预加载 + 禁用应用预加载 无限滚动 从末页跳到首页,反之亦然 状态栏时钟始终显示 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3a5deab3..17f5110f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -462,6 +462,8 @@ Shortcut to launch Activity to launch Launcher + Disable prestart + Disable prestart Infinite scrolling Jump from the last page to the first one and vice versa No clock hide diff --git a/app/src/main/res/xml/prefs_launcher.xml b/app/src/main/res/xml/prefs_launcher.xml index 07e26c86..20cba934 100644 --- a/app/src/main/res/xml/prefs_launcher.xml +++ b/app/src/main/res/xml/prefs_launcher.xml @@ -204,6 +204,11 @@ android:key="pref_key_launcher_cat_other" android:title="@string/system_mods_other"> + +