From c741133b6777f939e8a43077a0c48a02ff7b7925 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Wed, 26 May 2021 18:56:09 +0800 Subject: [PATCH] [core] Delay kill ppid (#682) * Delay kill ppid * remove useless nohup * Exit when received uncaught exception --- core/magisk_module/post-fs-data.sh | 2 +- core/magisk_module/service.sh | 2 +- .../main/java/org/lsposed/lspd/service/ServiceManager.java | 6 ++++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/core/magisk_module/post-fs-data.sh b/core/magisk_module/post-fs-data.sh index 54664d6c..60dc6a42 100644 --- a/core/magisk_module/post-fs-data.sh +++ b/core/magisk_module/post-fs-data.sh @@ -135,4 +135,4 @@ if [ ! -z "${MISC_PATH}" ]; then start_log_catcher all "LSPosed:V XSharedPreferences:V LSPosed-Bridge:V LSPosedManager:V LSPosedService:V *:F" true ${LOG_VERBOSE} fi -nohup /system/bin/app_process -Djava.class.path=$(magisk --path)/.magisk/modules/riru_lsposed/framework/lspd.dex /system/bin --nice-name=lspd org.lsposed.lspd.core.Main >/dev/null 2>&1 +/system/bin/app_process -Djava.class.path=$(magisk --path)/.magisk/modules/riru_lsposed/framework/lspd.dex /system/bin --nice-name=lspd org.lsposed.lspd.core.Main >/dev/null 2>&1 diff --git a/core/magisk_module/service.sh b/core/magisk_module/service.sh index 0fa3ae4f..d88e8ef6 100644 --- a/core/magisk_module/service.sh +++ b/core/magisk_module/service.sh @@ -20,4 +20,4 @@ # # post-fs-data.sh may be blocked by other modules. retry to start this -nohup /system/bin/app_process -Djava.class.path=$(magisk --path)/.magisk/modules/riru_lsposed/framework/lspd.dex /system/bin --nice-name=lspd org.lsposed.lspd.core.Main --from-service >/dev/null 2>&1 +/system/bin/app_process -Djava.class.path=$(magisk --path)/.magisk/modules/riru_lsposed/framework/lspd.dex /system/bin --nice-name=lspd org.lsposed.lspd.core.Main --from-service >/dev/null 2>&1 diff --git a/core/src/main/java/org/lsposed/lspd/service/ServiceManager.java b/core/src/main/java/org/lsposed/lspd/service/ServiceManager.java index 8e309749..b7bbdacc 100644 --- a/core/src/main/java/org/lsposed/lspd/service/ServiceManager.java +++ b/core/src/main/java/org/lsposed/lspd/service/ServiceManager.java @@ -59,7 +59,6 @@ public class ServiceManager { public static void start(String[] args) { if (!ConfigManager.getInstance().tryLock()) System.exit(0); - android.os.Process.killProcess(android.system.Os.getppid()); for (String arg : args) { if (arg.equals("--debug")) { DdmHandleAppName.setAppName("lspd", 0); @@ -72,7 +71,8 @@ public class ServiceManager { Log.i(TAG, String.format("version %s (%s)", BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE)); Thread.setDefaultUncaughtExceptionHandler((t, e) -> { - Log.e(TAG, Log.getStackTraceString(e)); + Log.e(TAG, "Uncaught exception", e); + System.exit(1); }); Looper.prepareMainLooper(); @@ -84,6 +84,8 @@ public class ServiceManager { systemServerService.putBinderForSystemServer(); + android.os.Process.killProcess(android.system.Os.getppid()); + waitSystemService("package"); waitSystemService("activity"); waitSystemService(Context.USER_SERVICE);