diff --git a/tools/android/incremental_install.py b/tools/android/incremental_install.py
index bef9246..b02d722 100644
--- a/tools/android/incremental_install.py
+++ b/tools/android/incremental_install.py
@@ -46,10 +46,11 @@
                       "The number of instances of adb to use in parallel to "
                       "update files on the device",
                       lower_bound=1)
-gflags.DEFINE_enum("start", "no", ["no", "cold", "warm"], "Whether/how to "
-                   "start the app after installing it. 'cold' and 'warm' will "
-                   "both cause the app to be started, 'warm' will start it "
-                   "with previously saved application state.")
+gflags.DEFINE_enum("start", "no", ["no", "cold", "warm", "debug"],
+                   "Whether/how to start the app after installing it. 'cold' "
+                   "and 'warm' will both cause the app to be started, 'warm' "
+                   "will start it with previously saved application state, "
+                   "'debug' will wait for the debugger before a clean start.")
 gflags.DEFINE_boolean("start_app", False, "Deprecated, use 'start'.")
 gflags.DEFINE_string("user_home_dir", None, "Path to the user's home directory")
 gflags.DEFINE_string("flagfile", None,
@@ -275,8 +276,12 @@
     self._Shell("input keyevent KEYCODE_APP_SWITCH")
     self._Shell("am kill %s" % package)
 
-  def StartApp(self, package):
+  def StartApp(self, package, start_type):
     """Starts the app with the given package."""
+    if start_type == "debug":
+      self._Shell("am set-debug-app -w --persistent %s" % package)
+    else:
+      self._Shell("am clear-debug-app %s" % package)
     self._Shell("monkey -p %s -c android.intent.category.LAUNCHER 1" % package)
 
   def _Shell(self, cmd):
@@ -722,9 +727,9 @@
         else:
           adb.StopApp(app_package)
 
-    if start_type in ["cold", "warm"]:
+    if start_type in ["cold", "warm", "debug"]:
       logging.info("Starting application %s", app_package)
-      adb.StartApp(app_package)
+      adb.StartApp(app_package, start_type)
 
     with file(output_marker, "w") as _:
       pass
diff --git a/tools/android/incremental_install_test.py b/tools/android/incremental_install_test.py
index 64b31eb..46ceb3e 100644
--- a/tools/android/incremental_install_test.py
+++ b/tools/android/incremental_install_test.py
@@ -531,6 +531,25 @@
     self.assertTrue(("monkey -p %s -c android.intent.category.LAUNCHER 1" %
                      self._APP_PACKAGE) in self._mock_adb.shell_cmdlns)
 
+  def testDebugStart(self):
+    self._CreateZip()
+
+    with open("dex1", "w") as f:
+      f.write("content3")
+
+    self._CreateLocalManifest(
+        "zip1 zp1 ip1 0",
+        "zip1 zp2 ip2 0",
+        "dex1 - ip3 0")
+
+    self._CallIncrementalInstall(incremental=False, start_type="debug")
+    enable_debug_cmd = ("am set-debug-app -w --persistent %s" %
+                        self._APP_PACKAGE)
+    start_app_cmd = ("monkey -p %s -c android.intent.category.LAUNCHER 1" %
+                     self._APP_PACKAGE)
+    self.assertTrue(enable_debug_cmd in self._mock_adb.shell_cmdlns)
+    self.assertTrue(start_app_cmd in self._mock_adb.shell_cmdlns)
+
   def testColdStop(self):
     self._CreateRemoteManifest(
         "zip1 zp1 ip1 0",
