gooftool: wipe: don't delete .developer_mode if GBB flags are not cleared

In early build, we might decide to keep GBB flags so we can stay in
developer mode. In this case, clobber-state will still generate
'.developer_mode' tag in stateful partition, and wipe will still delete
it.  So on next boot (in release image), Chrome OS can't find the tag,
and will start power washing immediately, which is time consuming.  To
prevent this, add code to detect if GBB flags are cleared, if not and
dev switch is forced on, we won't delete the tag.

BUG=None
TEST=make test

Change-Id: Ibef294472ffb44f1e38d5606151e6ea00432a623
Reviewed-on: https://chromium-review.googlesource.com/1485561
Commit-Ready: Wei-Han Chen <stimim@chromium.org>
Tested-by: Wei-Han Chen <stimim@chromium.org>
Reviewed-by: Chun-Tsen Kuo <chuntsen@chromium.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
diff --git a/py/gooftool/commands.py b/py/gooftool/commands.py
index 157330f..cf1342c 100755
--- a/py/gooftool/commands.py
+++ b/py/gooftool/commands.py
@@ -208,6 +208,13 @@
     '--wipe_finish_token',
     help='Required token when notifying station after wipe finished')
 
+_keep_developer_mode_flag_after_clobber_state_cmd_arg = CmdArg(
+    # The argument name is super long because you should never use it by
+    # yourself when using command line tools.
+    '--keep_developer_mode_flag_after_clobber_state',
+    action='store_true', default=None,
+    help='After clobber-state, do not delete .developer_mode')
+
 _waive_list_cmd_arg = CmdArg(
     '--waive_list', nargs='*', default=[], metavar='SUBCMD',
     help='A list of waived checks, separated by whitespace. '
@@ -446,17 +453,20 @@
          _release_rootfs_cmd_arg,
          _station_ip_cmd_arg,
          _station_port_cmd_arg,
-         _wipe_finish_token_cmd_arg)
+         _wipe_finish_token_cmd_arg,
+         _keep_developer_mode_flag_after_clobber_state_cmd_arg)
 def WipeInit(options):
-  GetGooftool(options).WipeInit(options.wipe_args,
-                                options.shopfloor_url,
-                                options.state_dev,
-                                options.release_rootfs,
-                                options.root_disk,
-                                options.old_root,
-                                options.station_ip,
-                                options.station_port,
-                                options.wipe_finish_token)
+  GetGooftool(options).WipeInit(
+      options.wipe_args,
+      options.shopfloor_url,
+      options.state_dev,
+      options.release_rootfs,
+      options.root_disk,
+      options.old_root,
+      options.station_ip,
+      options.station_port,
+      options.wipe_finish_token,
+      options.keep_developer_mode_flag_after_clobber_state)
 
 @Command('verify',
          CmdArg('--no_write_protect', action='store_true',