Clone of chromium aad1ce808763f59c7a3753e08f1500a104ecc6fd refs/remotes/origin/HEAD
diff --git a/build/android/enable_asserts.py b/build/android/enable_asserts.py
new file mode 100755
index 0000000..0e30bc2
--- /dev/null
+++ b/build/android/enable_asserts.py
@@ -0,0 +1,38 @@
+#!/usr/bin/env python
+#
+# Copyright (c) 2012 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Enables dalvik vm asserts in the android device."""
+
+from pylib import android_commands
+from pylib.device import device_utils
+import optparse
+import sys
+
+
+def main(argv):
+  option_parser = optparse.OptionParser()
+  option_parser.add_option('--enable_asserts', dest='set_asserts',
+      action='store_true', default=None,
+      help='Sets the dalvik.vm.enableassertions property to "all"')
+  option_parser.add_option('--disable_asserts', dest='set_asserts',
+      action='store_false', default=None,
+      help='Removes the dalvik.vm.enableassertions property')
+  options, _ = option_parser.parse_args(argv)
+
+  # TODO(jbudorick): Accept optional serial number and run only for the
+  # specified device when present.
+  devices = android_commands.GetAttachedDevices()
+  for device in [device_utils.DeviceUtils(serial) for serial in devices]:
+    if options.set_asserts != None:
+      if device.SetJavaAsserts(options.set_asserts):
+        # TODO(jbudorick) How to best do shell restarts after the
+        #                 android_commands refactor?
+        device.RunShellCommand('stop')
+        device.RunShellCommand('start')
+
+
+if __name__ == '__main__':
+  main(sys.argv)