Ignore signal registration for debugging

It's difficult to identify native crash/error of 3rd party app.
Because they can control their app with own signal handling.
Therefore I would like to support the way to ignore signal
registration in 3rd party app with the specific property.

To enable this, do just setprop "debug.ignoreappsignalhandler 1".

Test: test app to hook signal, then setprop debug.ignoreappsignalhandler 1

Merged-In: I2af98a0f58e5ac039eab0ebe9c3780357aca7820
Exempt-From-Owner-Approval: Cherry-pick
Change-Id: I2af98a0f58e5ac039eab0ebe9c3780357aca7820
Signed-off-by: randy.jeong <randy.jeong@samsung.com>
This commit is contained in:
randy.jeong
2019-05-29 10:43:39 +09:00
committed by Andreas Gampe
parent a671dcd061
commit 3ea9580a29
2 changed files with 11 additions and 0 deletions

View File

@@ -106,6 +106,14 @@ public final class Zygote {
*/
public static final int USE_APP_IMAGE_STARTUP_CACHE = 1 << 16;
/**
* When set, application specified signal handlers are not chained (i.e, ignored)
* by the runtime.
*
* Used for debugging only. Usage: set debug.ignoreappsignalhandler to 1.
*/
public static final int DEBUG_IGNORE_APP_SIGNAL_HANDLER = 1 << 17;
/** No external storage should be mounted. */
public static final int MOUNT_EXTERNAL_NONE = IVold.REMOUNT_MODE_NONE;
/** Default external storage should be mounted. */

View File

@@ -1544,6 +1544,9 @@ public final class ProcessList {
if ("1".equals(SystemProperties.get("debug.assert"))) {
runtimeFlags |= Zygote.DEBUG_ENABLE_ASSERT;
}
if ("1".equals(SystemProperties.get("debug.ignoreappsignalhandler"))) {
runtimeFlags |= Zygote.DEBUG_IGNORE_APP_SIGNAL_HANDLER;
}
if (mService.mNativeDebuggingApp != null
&& mService.mNativeDebuggingApp.equals(app.processName)) {
// Enable all debug flags required by the native debugger.