Resolve ro.debuggable at build time Ignore-AOSP-First: cherry-pick for tm-qpr-dev Test: n/a Bug: 193912100 Bug: 243645021 Merged-In: I83b0021b91536335c63d19f8a65933bad1b26b4e Change-Id: I42c4b1e81383d83c73a565c5e74ac22f17389faf
diff --git a/debuggerd/Android.bp b/debuggerd/Android.bp index ad0231d..5198872 100644 --- a/debuggerd/Android.bp +++ b/debuggerd/Android.bp
@@ -14,9 +14,15 @@ "-Wno-nullability-completeness", "-Os", "-fno-finite-loops", + "-DANDROID_DEBUGGABLE=0", ], local_include_dirs: ["include"], + product_variables: { + debuggable: { + cflags: ["-UANDROID_DEBUGGABLE", "-DANDROID_DEBUGGABLE=1"], + } + }, } cc_library_headers {
diff --git a/debuggerd/include/debuggerd/handler.h b/debuggerd/include/debuggerd/handler.h index bc08327..68b2e67 100644 --- a/debuggerd/include/debuggerd/handler.h +++ b/debuggerd/include/debuggerd/handler.h
@@ -62,10 +62,11 @@ #define DEBUGGER_SIGNAL BIONIC_SIGNAL_DEBUGGER static void __attribute__((__unused__)) debuggerd_register_handlers(struct sigaction* action) { + bool enabled = true; +#if ANDROID_DEBUGGABLE char value[PROP_VALUE_MAX] = ""; - bool enabled = - !(__system_property_get("ro.debuggable", value) > 0 && !strcmp(value, "1") && - __system_property_get("debug.debuggerd.disable", value) > 0 && !strcmp(value, "1")); + enabled = !(__system_property_get("debug.debuggerd.disable", value) > 0 && !strcmp(value, "1")); +#endif if (enabled) { sigaction(SIGABRT, action, nullptr); sigaction(SIGBUS, action, nullptr);