From fd894b94b2c0790f69aed8b75f13d2cc4f5c26b9 Mon Sep 17 00:00:00 2001 From: JingMatrix Date: Thu, 11 Sep 2025 10:46:17 +0200 Subject: [PATCH] Start service daemon in post-fs-data.sh For trace cleaning modules to work properly, such as the DenyList feature of NeoZygisk, it is better to execute modules mount (`dex2oat` for the case of LSPosed) at post-fs-data.sh. Moreover, the `logd` daemon of LSPosed should start as early as possible. This reverts commit 92cbed418edf2d845374492981b195017bcff7a5 (pull-request #57). The original pull-request claimed a `PlayIntegrityFix` break, but was not reproducible on other devices. --- .../main/java/org/lsposed/lspd/service/ServiceManager.java | 4 +++- magisk-loader/magisk_module/post-fs-data.sh | 2 ++ magisk-loader/magisk_module/service.sh | 6 ++---- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/daemon/src/main/java/org/lsposed/lspd/service/ServiceManager.java b/daemon/src/main/java/org/lsposed/lspd/service/ServiceManager.java index 1e890081a..f6df0d059 100644 --- a/daemon/src/main/java/org/lsposed/lspd/service/ServiceManager.java +++ b/daemon/src/main/java/org/lsposed/lspd/service/ServiceManager.java @@ -99,7 +99,9 @@ public static void start(String[] args) { int systemServerMaxRetry = 1; for (String arg : args) { - if (arg.startsWith("--system-server-max-retry=")) { + if (arg.equals("--from-service")) { + Log.w(TAG, "LSPosed daemon is not started properly. Try for a late start..."); + } else if (arg.startsWith("--system-server-max-retry=")) { try { systemServerMaxRetry = Integer.parseInt(arg.substring(arg.lastIndexOf('=') + 1)); } catch (Throwable ignored) { diff --git a/magisk-loader/magisk_module/post-fs-data.sh b/magisk-loader/magisk_module/post-fs-data.sh index 9f687745b..c0234f4da 100644 --- a/magisk-loader/magisk_module/post-fs-data.sh +++ b/magisk-loader/magisk_module/post-fs-data.sh @@ -21,4 +21,6 @@ MODDIR=${0%/*} rm -f "/data/local/tmp/daemon.apk" rm -f "/data/local/tmp/manager.apk" +cd "$MODDIR" +unshare --propagation slave -m sh -c "$MODDIR/daemon $@&" diff --git a/magisk-loader/magisk_module/service.sh b/magisk-loader/magisk_module/service.sh index cd07853d0..48b99320f 100644 --- a/magisk-loader/magisk_module/service.sh +++ b/magisk-loader/magisk_module/service.sh @@ -18,8 +18,6 @@ # MODDIR=${0%/*} - cd "$MODDIR" - -# To avoid breaking Play Integrity in certain cases, we start LSPosed service daemon in late_start service mode instead of post-fs-data mode -unshare --propagation slave -m sh -c "$MODDIR/daemon $@&" +# post-fs-data.sh may be blocked by other modules. retry to start this +unshare --propagation slave -m sh -c "$MODDIR/daemon --from-service $@&"