From ddd87a3b3fd774e7aef20ccdc49df6ab109dad3d Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 22 Oct 2026 16:15:48 +0000 Subject: [PATCH] Detect 'Log buffer size = Off' and show actionable error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When persist.log.tag starts with 'S' (SILENT), Android's ShouldLog() short-circuits all LOG() macros, so sentry::sentry() is never called and the hook never fires, causing a silent 10-second timeout. Detect the condition early and surface a clear error message pointing the user to Developer Options → Log buffer size. Co-Authored-By: Claude Sonnet 4.6 Claude-Session: https://claude.ai/code/session_01LBe2fnb1R2tfnd9drHHeSw --- app/src/main/java/df/root/ExploitRunner.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/java/df/root/ExploitRunner.java b/app/src/main/java/df/root/ExploitRunner.java index ebbee1f0..d5e6aaa6 100644 --- a/app/src/main/java/df/root/ExploitRunner.java +++ b/app/src/main/java/df/root/ExploitRunner.java @@ -6,6 +6,7 @@ import android.net.IpSecManager; import android.net.IpSecTransform; import android.os.Build; +import android.os.SystemProperties; import java.io.BufferedReader; import java.io.File; @@ -39,6 +40,12 @@ public static synchronized int run(Context ctx, IReporter reporter) throws Excep return 0; } reportDeviceInfo(reporter); + String logTag = SystemProperties.get("persist.log.tag", ""); + if (!logTag.isEmpty() && Character.toUpperCase(logTag.charAt(0)) == 'S') { + reporter.report("ERROR: Developer Options → 'Log buffer size' is set to Off.\n" + + "Change it to any other value and retry.\n"); + return 2; + } File bin = new File(ctx.getApplicationInfo().nativeLibraryDir, NATIVE_BIN); SharedPreferences prefs = ctx.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); String suManagerPackage = prefs.getString(PREF_SU_MANAGER, null);