From 818b2f4f519e28822ad5dee66748fedc4c3b9906 Mon Sep 17 00:00:00 2001 From: mars <3361409208@qq.com> Date: Mon, 3 Aug 2026 10:26:48 +0800 Subject: [PATCH] =?UTF-8?q?fix(tng):=20=E9=98=B2=E6=AD=A2=20SIGABRT=20?= =?UTF-8?q?=E8=B7=B3=20LR=20=E6=AD=BB=E5=BE=AA=E7=8E=AF=EF=BC=8C=E6=94=B9?= =?UTF-8?q?=20pc+4=20=E4=B8=8E=20streak=20freeze?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 吞 ABRT 时若跳回近距 LR 会瞬间再 abort 刷屏;改为优先 pc+4,同 tid+pc 超阈值后冻结工作线程,主线程仅 bail。 --- magisk-modules/tng_exit_guard/jni/main.cpp | 65 +++++++++++++++--- .../tng_exit_guard/zygisk/arm64-v8a.so | Bin 186384 -> 186384 bytes 2 files changed, 55 insertions(+), 10 deletions(-) diff --git a/magisk-modules/tng_exit_guard/jni/main.cpp b/magisk-modules/tng_exit_guard/jni/main.cpp index 3b6c09c..78f71c9 100644 --- a/magisk-modules/tng_exit_guard/jni/main.cpp +++ b/magisk-modules/tng_exit_guard/jni/main.cpp @@ -123,21 +123,64 @@ static void promon_segv_handler(int sig, siginfo_t *info, void *ctx) { raise(SIGSEGV); } -/** libc++abi __cxa_guard_acquire 递归初始化 → abort;跳回 LR 继续而非杀进程。 */ +static std::atomic g_main_tid{0}; +static std::atomic g_abrt_swallow{0}; +static std::atomic g_abrt_last_tid{0}; +static std::atomic g_abrt_last_pc{0}; +static std::atomic g_abrt_streak{0}; +static constexpr int kMaxAbrtStreak = 3; + +/** ABRT/TRAP:pc+4 或远距 LR;同 tid+pc 连触发则 freeze,避免 LR 自旋死循环。 */ static void fatal_skip_handler(int sig, siginfo_t *info, void *ctx) { (void)info; ucontext_t *uc = reinterpret_cast(ctx); #if defined(__aarch64__) uintptr_t pc = uc->uc_mcontext.pc; uintptr_t lr = uc->uc_mcontext.regs[30]; - LOGI("swallowed signal %d tid=%d pc=%lx lr=%lx", sig, (int)gettid(), - (unsigned long)pc, (unsigned long)lr); - if (lr != 0) { - uc->uc_mcontext.pc = lr; + pid_t tid = gettid(); + + if (sig == SIGABRT) { + int streak = 1; + if (g_abrt_last_tid.load() == tid && g_abrt_last_pc.load() == pc) { + streak = g_abrt_streak.fetch_add(1) + 1; + } else { + g_abrt_last_tid.store(tid); + g_abrt_last_pc.store(pc); + g_abrt_streak.store(1); + } + if (streak > kMaxAbrtStreak) { + if (tid == g_main_tid.load()) { + LOGI("ABRT main-thread streak cap tid=%d pc=%lx — pc+4 bail", (int)tid, + (unsigned long)pc); + uc->uc_mcontext.pc = pc + 4; + g_abrt_streak.store(0); + return; + } + LOGI("ABRT streak cap tid=%d pc=%lx n=%d — freeze thread", (int)tid, + (unsigned long)pc, streak); + freeze_forever(); + } + uintptr_t delta = (pc > lr) ? (pc - lr) : (lr - pc); + uintptr_t target = pc + 4; + /* lr 距 pc 很近时仍在 abort/epilogue 内,跳 LR 会 instant 再 ABRT */ + if (lr != 0 && delta > 64) { + target = lr; + } + int n = ++g_abrt_swallow; + if (n <= 3 || n % 100 == 0) { + LOGI("ABRT skip tid=%d pc=%lx lr=%lx streak=%d -> %lx", (int)tid, + (unsigned long)pc, (unsigned long)lr, streak, + (unsigned long)target); + } + uc->uc_mcontext.pc = target; return; } - if (pc != 0) { - uc->uc_mcontext.pc = pc + 4; + + if (sig == SIGTRAP) { + uintptr_t target = pc != 0 ? pc + 4 : lr; + LOGI("TRAP skip tid=%d pc=%lx -> %lx", (int)tid, (unsigned long)pc, + (unsigned long)target); + uc->uc_mcontext.pc = target; return; } #endif @@ -151,7 +194,7 @@ static void install_fatal_skip_handlers() { sigemptyset(&sa.sa_mask); sigaction(SIGABRT, &sa, nullptr); sigaction(SIGTRAP, &sa, nullptr); - LOGI("fatal skip handlers (ABRT+TRAP→LR)"); + LOGI("fatal skip handlers (ABRT pc+4/streak-freeze + TRAP pc+4)"); } static void install_promon_segv_handler() { @@ -177,7 +220,7 @@ static void install_soft_signals() { sigaction(SIGABRT, &sa, nullptr); sigaction(SIGTRAP, &sa, nullptr); if (g_soft_sig_logged.fetch_add(1) == 0) { - LOGI("soft signals (ABRT+TRAP skip→LR)"); + LOGI("soft signals (ABRT streak-freeze + TRAP pc+4)"); } } @@ -342,7 +385,9 @@ static void *phase_thread(void *) { } static void install_all(zygisk::Api *api) { - LOGI("install pid=%d (PLT+ABRT/TRAP-skip+pc==lr-SEGV+exit_group@400ms)", getpid()); + g_main_tid.store(gettid()); + LOGI("install pid=%d main_tid=%d (PLT+ABRT-streak-freeze+TRAP+pc==lr-SEGV+exit_group@400ms)", + getpid(), (int)g_main_tid.load()); install_fatal_skip_handlers(); install_soft_signals(); install_plt(api); diff --git a/magisk-modules/tng_exit_guard/zygisk/arm64-v8a.so b/magisk-modules/tng_exit_guard/zygisk/arm64-v8a.so index 98a1bdc2e3bf97642f96b7ee16f396b001a57481..e58a6538dcfa92ea732e83cebd5c0f65de2a82c0 100644 GIT binary patch delta 55029 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 E0lR~VX#fBK delta 55030 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