Loading core/java/android/os/ZygoteProcess.java +5 −5 Original line number Diff line number Diff line Loading @@ -352,8 +352,8 @@ public class ZygoteProcess { if ((debugFlags & Zygote.DEBUG_ENABLE_SAFEMODE) != 0) { argsForZygote.add("--enable-safemode"); } if ((debugFlags & Zygote.DEBUG_ENABLE_DEBUGGER) != 0) { argsForZygote.add("--enable-debugger"); if ((debugFlags & Zygote.DEBUG_ENABLE_JDWP) != 0) { argsForZygote.add("--enable-jdwp"); } if ((debugFlags & Zygote.DEBUG_ENABLE_CHECKJNI) != 0) { argsForZygote.add("--enable-checkjni"); Loading @@ -367,6 +367,9 @@ public class ZygoteProcess { if ((debugFlags & Zygote.DEBUG_NATIVE_DEBUGGABLE) != 0) { argsForZygote.add("--native-debuggable"); } if ((debugFlags & Zygote.DEBUG_JAVA_DEBUGGABLE) != 0) { argsForZygote.add("--java-debuggable"); } if ((debugFlags & Zygote.DEBUG_ENABLE_ASSERT) != 0) { argsForZygote.add("--enable-assert"); } Loading @@ -379,9 +382,6 @@ public class ZygoteProcess { } argsForZygote.add("--target-sdk-version=" + targetSdkVersion); //TODO optionally enable debuger //argsForZygote.add("--enable-debugger"); // --setgroups is a comma-separated list if (gids != null && gids.length > 0) { StringBuilder sb = new StringBuilder(); Loading core/java/com/android/internal/os/Zygote.java +4 −2 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ public final class Zygote { */ /** enable debugging over JDWP */ public static final int DEBUG_ENABLE_DEBUGGER = 1; public static final int DEBUG_ENABLE_JDWP = 1; /** enable JNI checks */ public static final int DEBUG_ENABLE_CHECKJNI = 1 << 1; /** enable Java programming language "assert" statements */ Loading @@ -46,8 +46,10 @@ public final class Zygote { public static final int DEBUG_GENERATE_DEBUG_INFO = 1 << 5; /** Always use JIT-ed code. */ public static final int DEBUG_ALWAYS_JIT = 1 << 6; /** Make the code debuggable with turning off some optimizations. */ /** Make the code native debuggable by turning off some optimizations. */ public static final int DEBUG_NATIVE_DEBUGGABLE = 1 << 7; /** Make the code Java debuggable by turning off some optimizations. */ public static final int DEBUG_JAVA_DEBUGGABLE = 1 << 8; /** No external storage should be mounted. */ public static final int MOUNT_EXTERNAL_NONE = 0; Loading core/java/com/android/internal/os/ZygoteConnection.java +10 −7 Original line number Diff line number Diff line Loading @@ -336,8 +336,9 @@ class ZygoteConnection { int[] gids; /** * From --enable-debugger, --enable-checkjni, --enable-assert, * --enable-safemode, --generate-debug-info and --enable-jni-logging. * From --enable-jdwp, --enable-checkjni, --enable-assert, * --enable-safemode, --generate-debug-info, --enable-jni-logging, * --java-debuggable, and --native-debuggable. */ int debugFlags; Loading Loading @@ -447,8 +448,8 @@ class ZygoteConnection { targetSdkVersionSpecified = true; targetSdkVersion = Integer.parseInt( arg.substring(arg.indexOf('=') + 1)); } else if (arg.equals("--enable-debugger")) { debugFlags |= Zygote.DEBUG_ENABLE_DEBUGGER; } else if (arg.equals("--enable-jdwp")) { debugFlags |= Zygote.DEBUG_ENABLE_JDWP; } else if (arg.equals("--enable-safemode")) { debugFlags |= Zygote.DEBUG_ENABLE_SAFEMODE; } else if (arg.equals("--enable-checkjni")) { Loading @@ -459,6 +460,8 @@ class ZygoteConnection { debugFlags |= Zygote.DEBUG_ALWAYS_JIT; } else if (arg.equals("--native-debuggable")) { debugFlags |= Zygote.DEBUG_NATIVE_DEBUGGABLE; } else if (arg.equals("--java-debuggable")) { debugFlags |= Zygote.DEBUG_JAVA_DEBUGGABLE; } else if (arg.equals("--enable-jni-logging")) { debugFlags |= Zygote.DEBUG_ENABLE_JNI_LOGGING; } else if (arg.equals("--enable-assert")) { Loading Loading @@ -670,14 +673,14 @@ class ZygoteConnection { * Applies debugger system properties to the zygote arguments. * * If "ro.debuggable" is "1", all apps are debuggable. Otherwise, * the debugger state is specified via the "--enable-debugger" flag * the debugger state is specified via the "--enable-jdwp" flag * in the spawn request. * * @param args non-null; zygote spawner args */ public static void applyDebuggerSystemProperty(Arguments args) { if (RoSystemProperties.DEBUGGABLE) { args.debugFlags |= Zygote.DEBUG_ENABLE_DEBUGGER; args.debugFlags |= Zygote.DEBUG_ENABLE_JDWP; } } Loading @@ -699,7 +702,7 @@ class ZygoteConnection { int peerUid = peer.getUid(); if (args.invokeWith != null && peerUid != 0 && (args.debugFlags & Zygote.DEBUG_ENABLE_DEBUGGER) == 0) { (args.debugFlags & Zygote.DEBUG_ENABLE_JDWP) == 0) { throw new ZygoteSecurityException("Peer is permitted to specify an" + "explicit invoke-with wrapper command only for debuggable" + "applications."); Loading services/core/java/com/android/server/am/ActivityManagerService.java +2 −1 Original line number Diff line number Diff line Loading @@ -3753,7 +3753,8 @@ public final class ActivityManagerService extends ActivityManagerNative } int debugFlags = 0; if ((app.info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0) { debugFlags |= Zygote.DEBUG_ENABLE_DEBUGGER; debugFlags |= Zygote.DEBUG_ENABLE_JDWP; debugFlags |= Zygote.DEBUG_JAVA_DEBUGGABLE; // Also turn on CheckJNI for debuggable apps. It's quite // awkward to turn on otherwise. debugFlags |= Zygote.DEBUG_ENABLE_CHECKJNI; Loading Loading
core/java/android/os/ZygoteProcess.java +5 −5 Original line number Diff line number Diff line Loading @@ -352,8 +352,8 @@ public class ZygoteProcess { if ((debugFlags & Zygote.DEBUG_ENABLE_SAFEMODE) != 0) { argsForZygote.add("--enable-safemode"); } if ((debugFlags & Zygote.DEBUG_ENABLE_DEBUGGER) != 0) { argsForZygote.add("--enable-debugger"); if ((debugFlags & Zygote.DEBUG_ENABLE_JDWP) != 0) { argsForZygote.add("--enable-jdwp"); } if ((debugFlags & Zygote.DEBUG_ENABLE_CHECKJNI) != 0) { argsForZygote.add("--enable-checkjni"); Loading @@ -367,6 +367,9 @@ public class ZygoteProcess { if ((debugFlags & Zygote.DEBUG_NATIVE_DEBUGGABLE) != 0) { argsForZygote.add("--native-debuggable"); } if ((debugFlags & Zygote.DEBUG_JAVA_DEBUGGABLE) != 0) { argsForZygote.add("--java-debuggable"); } if ((debugFlags & Zygote.DEBUG_ENABLE_ASSERT) != 0) { argsForZygote.add("--enable-assert"); } Loading @@ -379,9 +382,6 @@ public class ZygoteProcess { } argsForZygote.add("--target-sdk-version=" + targetSdkVersion); //TODO optionally enable debuger //argsForZygote.add("--enable-debugger"); // --setgroups is a comma-separated list if (gids != null && gids.length > 0) { StringBuilder sb = new StringBuilder(); Loading
core/java/com/android/internal/os/Zygote.java +4 −2 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ public final class Zygote { */ /** enable debugging over JDWP */ public static final int DEBUG_ENABLE_DEBUGGER = 1; public static final int DEBUG_ENABLE_JDWP = 1; /** enable JNI checks */ public static final int DEBUG_ENABLE_CHECKJNI = 1 << 1; /** enable Java programming language "assert" statements */ Loading @@ -46,8 +46,10 @@ public final class Zygote { public static final int DEBUG_GENERATE_DEBUG_INFO = 1 << 5; /** Always use JIT-ed code. */ public static final int DEBUG_ALWAYS_JIT = 1 << 6; /** Make the code debuggable with turning off some optimizations. */ /** Make the code native debuggable by turning off some optimizations. */ public static final int DEBUG_NATIVE_DEBUGGABLE = 1 << 7; /** Make the code Java debuggable by turning off some optimizations. */ public static final int DEBUG_JAVA_DEBUGGABLE = 1 << 8; /** No external storage should be mounted. */ public static final int MOUNT_EXTERNAL_NONE = 0; Loading
core/java/com/android/internal/os/ZygoteConnection.java +10 −7 Original line number Diff line number Diff line Loading @@ -336,8 +336,9 @@ class ZygoteConnection { int[] gids; /** * From --enable-debugger, --enable-checkjni, --enable-assert, * --enable-safemode, --generate-debug-info and --enable-jni-logging. * From --enable-jdwp, --enable-checkjni, --enable-assert, * --enable-safemode, --generate-debug-info, --enable-jni-logging, * --java-debuggable, and --native-debuggable. */ int debugFlags; Loading Loading @@ -447,8 +448,8 @@ class ZygoteConnection { targetSdkVersionSpecified = true; targetSdkVersion = Integer.parseInt( arg.substring(arg.indexOf('=') + 1)); } else if (arg.equals("--enable-debugger")) { debugFlags |= Zygote.DEBUG_ENABLE_DEBUGGER; } else if (arg.equals("--enable-jdwp")) { debugFlags |= Zygote.DEBUG_ENABLE_JDWP; } else if (arg.equals("--enable-safemode")) { debugFlags |= Zygote.DEBUG_ENABLE_SAFEMODE; } else if (arg.equals("--enable-checkjni")) { Loading @@ -459,6 +460,8 @@ class ZygoteConnection { debugFlags |= Zygote.DEBUG_ALWAYS_JIT; } else if (arg.equals("--native-debuggable")) { debugFlags |= Zygote.DEBUG_NATIVE_DEBUGGABLE; } else if (arg.equals("--java-debuggable")) { debugFlags |= Zygote.DEBUG_JAVA_DEBUGGABLE; } else if (arg.equals("--enable-jni-logging")) { debugFlags |= Zygote.DEBUG_ENABLE_JNI_LOGGING; } else if (arg.equals("--enable-assert")) { Loading Loading @@ -670,14 +673,14 @@ class ZygoteConnection { * Applies debugger system properties to the zygote arguments. * * If "ro.debuggable" is "1", all apps are debuggable. Otherwise, * the debugger state is specified via the "--enable-debugger" flag * the debugger state is specified via the "--enable-jdwp" flag * in the spawn request. * * @param args non-null; zygote spawner args */ public static void applyDebuggerSystemProperty(Arguments args) { if (RoSystemProperties.DEBUGGABLE) { args.debugFlags |= Zygote.DEBUG_ENABLE_DEBUGGER; args.debugFlags |= Zygote.DEBUG_ENABLE_JDWP; } } Loading @@ -699,7 +702,7 @@ class ZygoteConnection { int peerUid = peer.getUid(); if (args.invokeWith != null && peerUid != 0 && (args.debugFlags & Zygote.DEBUG_ENABLE_DEBUGGER) == 0) { (args.debugFlags & Zygote.DEBUG_ENABLE_JDWP) == 0) { throw new ZygoteSecurityException("Peer is permitted to specify an" + "explicit invoke-with wrapper command only for debuggable" + "applications."); Loading
services/core/java/com/android/server/am/ActivityManagerService.java +2 −1 Original line number Diff line number Diff line Loading @@ -3753,7 +3753,8 @@ public final class ActivityManagerService extends ActivityManagerNative } int debugFlags = 0; if ((app.info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0) { debugFlags |= Zygote.DEBUG_ENABLE_DEBUGGER; debugFlags |= Zygote.DEBUG_ENABLE_JDWP; debugFlags |= Zygote.DEBUG_JAVA_DEBUGGABLE; // Also turn on CheckJNI for debuggable apps. It's quite // awkward to turn on otherwise. debugFlags |= Zygote.DEBUG_ENABLE_CHECKJNI; Loading