diff --git a/server/cros/faft/firmware_test.py b/server/cros/faft/firmware_test.py
index 7e5c338..b1ac6bb 100644
--- a/server/cros/faft/firmware_test.py
+++ b/server/cros/faft/firmware_test.py
@@ -164,7 +164,7 @@
 
         self.faft_config = FAFTConfig(
                 self.faft_client.system.get_platform_name())
-        self.checkers = FAFTCheckers(self, self.faft_client)
+        self.checkers = FAFTCheckers(self)
         self.switcher = ModeSwitcher(self)
 
         if self.faft_config.chrome_ec:
@@ -198,7 +198,7 @@
             # Remote is not responding. Revive DUT so that subsequent tests
             # don't fail.
             self._restore_routine_from_timeout()
-        self._restore_dev_mode()
+        self.switcher.restore_mode()
         self._restore_ec_write_protect()
         self._restore_gbb_flags()
         self._start_service('update-engine')
@@ -907,44 +907,6 @@
         """Power cycle DUT AC power."""
         self._client.power_cycle(self.power_control)
 
-    def setup_dev_mode(self, dev_mode):
-        """Setup for development mode.
-
-        It makes sure the system in the requested normal/dev mode. If not, it
-        tries to do so.
-
-        @param dev_mode: True if requested in dev mode; False if normal mode.
-        """
-        if dev_mode:
-            if (not self.faft_config.keyboard_dev and
-                not self.checkers.crossystem_checker({'devsw_cur': '1'})):
-                logging.info('Dev switch is not on. Now switch it on.')
-                self.switcher.reboot_to_mode(to_mode='dev')
-            if not self.checkers.crossystem_checker({'devsw_boot': '1',
-                    'mainfw_type': 'developer'}):
-                logging.info('System is not in dev mode. Reboot into it.')
-                if self._backup_dev_mode is None:
-                    self._backup_dev_mode = False
-                self.switcher.reboot_to_mode(to_mode='dev')
-                self.wait_dev_screen_and_ctrl_d()
-        else:
-            if (not self.faft_config.keyboard_dev and
-                not self.checkers.crossystem_checker({'devsw_cur': '0'})):
-                logging.info('Dev switch is not off. Now switch it off.')
-                self.switcher.reboot_to_mode(to_mode='normal')
-            if not self.checkers.crossystem_checker({'devsw_boot': '0',
-                    'mainfw_type': 'normal'}):
-                logging.info('System is not in normal mode. Reboot into it.')
-                if self._backup_dev_mode is None:
-                    self._backup_dev_mode = True
-                self.switcher.reboot_to_mode(to_mode='normal')
-
-    def _restore_dev_mode(self):
-        """Restores original dev mode status if it has changed."""
-        if self._backup_dev_mode is not None:
-            self.setup_dev_mode(self._backup_dev_mode)
-            self._backup_dev_mode = None
-
     def setup_rw_boot(self, section='a'):
         """Make sure firmware is in RW-boot mode.
 
diff --git a/server/cros/faft/utils/faft_checkers.py b/server/cros/faft/utils/faft_checkers.py
index 79f994e..7629c79 100644
--- a/server/cros/faft/utils/faft_checkers.py
+++ b/server/cros/faft/utils/faft_checkers.py
@@ -13,9 +13,10 @@
     """Class that contains FAFT checkers."""
     version = 1
 
-    def __init__(self, faftsequence, faft_client):
-        self.faftsequence = faftsequence
-        self.faft_client = faft_client
+    def __init__(self, faft_framework):
+        self.faft_framework = faft_framework
+        self.faft_client = faft_framework.faft_client
+        self.faft_config = faft_framework.faft_config
         self.fw_vboot2 = self.faft_client.system.get_fw_vboot2()
 
     def _parse_crossystem_output(self, lines):
@@ -100,6 +101,34 @@
                 succeed = False
         return succeed
 
+    def mode_checker(self, mode):
+        """Check the current system in the given mode.
+
+        @param mode: A string of mode, one of 'normal', 'dev', or 'rec'.
+        @return: True if the system in the given mode; otherwise, False.
+        """
+        if mode == 'normal':
+            if self.faft_config.keyboard_dev:
+                return self.crossystem_checker(
+                        {'devsw_boot': '0',
+                         'mainfw_type': 'normal'})
+            else:
+                return self.crossystem_checker(
+                        {'devsw_cur': '0'})
+        elif mode == 'dev':
+            if self.faft_config.keyboard_dev:
+                return self.crossystem_checker(
+                        {'devsw_boot': '1',
+                         'mainfw_type': 'developer'})
+            else:
+                return self.crossystem_checker(
+                        {'devsw_cur': '1'})
+        elif mode == 'rec':
+            return self.crossystem_checker(
+                    {'mainfw_type': 'recovery'})
+        else:
+            raise NotImplementedError('The given mode %s not supported' % mode)
+
     def fw_tries_checker(self,
                          expected_mainfw_act,
                          expected_fw_tried=True,
@@ -177,7 +206,7 @@
             succeed = False
         if not self.crossystem_checker(crossystem_dict):
             succeed = False
-        if self.faftsequence.check_ec_capability(suppress_warning=True):
+        if self.faft_framework.check_ec_capability(suppress_warning=True):
             expected_ec = ('RW' if twostop else 'RO')
             if not self.ec_act_copy_checker(expected_ec):
                 succeed = False
@@ -202,9 +231,9 @@
                  otherwise, False.
         """
         part = self.faft_client.system.get_root_part()[-1]
-        if self.faftsequence.ROOTFS_MAP[expected_part] != part:
+        if self.faft_framework.ROOTFS_MAP[expected_part] != part:
             logging.info("Expected root part %s but got %s",
-                         self.faftsequence.ROOTFS_MAP[expected_part], part)
+                         self.faft_framework.ROOTFS_MAP[expected_part], part)
             return False
         return True
 
diff --git a/server/cros/faft/utils/mode_switcher.py b/server/cros/faft/utils/mode_switcher.py
index eeb2747..81c391b 100644
--- a/server/cros/faft/utils/mode_switcher.py
+++ b/server/cros/faft/utils/mode_switcher.py
@@ -14,6 +14,35 @@
         self.faft_client = faft_framework.faft_client
         self.servo = faft_framework.servo
         self.faft_config = faft_framework.faft_config
+        self.checkers = faft_framework.checkers
+        self._backup_mode = None
+
+
+    def setup_mode(self, mode):
+        """Setup for the requested mode.
+
+        It makes sure the system in the requested mode. If not, it tries to
+        do so.
+
+        @param mode: A string of mode, one of 'normal', 'dev', or 'rec'.
+        """
+        if not self.checkers.mode_checker(mode):
+            logging.info('System not in expected %s mode. Reboot into it.',
+                         mode)
+            if self._backup_mode is None:
+                # Only resume to normal/dev mode after test, not recovery.
+                self._backup_mode = 'dev' if mode == 'normal' else 'normal'
+            self.reboot_to_mode(mode)
+            if mode == 'dev':
+                self.faft_framework.wait_dev_screen_and_ctrl_d()
+
+
+    def restore_mode(self):
+        """Restores original dev mode status if it has changed."""
+        if self._backup_mode is not None:
+            self.reboot_to_mode(self._backup_mode)
+            if self._backup_mode == 'dev':
+                self.faft_framework.wait_dev_screen_and_ctrl_d()
 
 
     def reboot_to_mode(self, to_mode, from_mode=None):
diff --git a/server/site_tests/firmware_CgptState/firmware_CgptState.py b/server/site_tests/firmware_CgptState/firmware_CgptState.py
index 69f4206..caa55ac 100644
--- a/server/site_tests/firmware_CgptState/firmware_CgptState.py
+++ b/server/site_tests/firmware_CgptState/firmware_CgptState.py
@@ -44,7 +44,7 @@
         super(firmware_CgptState, self).initialize(host, cmdline_args)
         self.host = host
         self.backup_cgpt_attributes()
-        self.setup_dev_mode(dev_mode=False)
+        self.switcher.setup_mode('normal')
         self.setup_usbkey(usbkey=False)
         self.setup_kernel('a')
 
diff --git a/server/site_tests/firmware_CgptStress/firmware_CgptStress.py b/server/site_tests/firmware_CgptStress/firmware_CgptStress.py
index 7d31da4..4736697 100644
--- a/server/site_tests/firmware_CgptStress/firmware_CgptStress.py
+++ b/server/site_tests/firmware_CgptStress/firmware_CgptStress.py
@@ -21,7 +21,7 @@
         self.faft_iterations = int(dict_args.get('faft_iterations', 1))
         super(firmware_CgptStress, self).initialize(host, cmdline_args)
         self.backup_cgpt_attributes()
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         self.setup_usbkey(usbkey=False)
         self.setup_kernel('a')
 
diff --git a/server/site_tests/firmware_ConsecutiveBoot/firmware_ConsecutiveBoot.py b/server/site_tests/firmware_ConsecutiveBoot/firmware_ConsecutiveBoot.py
index 49c2749..d62593b 100644
--- a/server/site_tests/firmware_ConsecutiveBoot/firmware_ConsecutiveBoot.py
+++ b/server/site_tests/firmware_ConsecutiveBoot/firmware_ConsecutiveBoot.py
@@ -27,7 +27,7 @@
         dict_args = utils.args_to_dict(cmdline_args)
         self.faft_iterations = int(dict_args.get('faft_iterations', 1))
         super(firmware_ConsecutiveBoot, self).initialize(host, cmdline_args)
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         self.setup_usbkey(usbkey=False)
 
     def shutdown_power_on(self):
diff --git a/server/site_tests/firmware_ConsecutiveBootPowerButton/firmware_ConsecutiveBootPowerButton.py b/server/site_tests/firmware_ConsecutiveBootPowerButton/firmware_ConsecutiveBootPowerButton.py
index e342d63..d70ea95 100644
--- a/server/site_tests/firmware_ConsecutiveBootPowerButton/firmware_ConsecutiveBootPowerButton.py
+++ b/server/site_tests/firmware_ConsecutiveBootPowerButton/firmware_ConsecutiveBootPowerButton.py
@@ -26,7 +26,7 @@
         self.faft_iterations = int(dict_args.get('faft_iterations', 1))
         super(firmware_ConsecutiveBootPowerButton,
               self).initialize(host, cmdline_args)
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         self.setup_usbkey(usbkey=False)
 
 
diff --git a/server/site_tests/firmware_CorruptBothFwBodyAB/firmware_CorruptBothFwBodyAB.py b/server/site_tests/firmware_CorruptBothFwBodyAB/firmware_CorruptBothFwBodyAB.py
index d0a9310..70769f2 100644
--- a/server/site_tests/firmware_CorruptBothFwBodyAB/firmware_CorruptBothFwBodyAB.py
+++ b/server/site_tests/firmware_CorruptBothFwBodyAB/firmware_CorruptBothFwBodyAB.py
@@ -30,9 +30,9 @@
         if (self.faft_client.bios.get_preamble_flags('a') &
                 vboot.PREAMBLE_USE_RO_NORMAL):
             self.use_ro = True
-            self.setup_dev_mode(dev_mode)
+            self.switcher.setup_mode('dev' if dev_mode else 'normal')
         else:
-            self.setup_dev_mode(dev_mode)
+            self.switcher.setup_mode('dev' if dev_mode else 'normal')
             self.setup_usbkey(usbkey=True, host=False)
 
     def cleanup(self):
diff --git a/server/site_tests/firmware_CorruptBothFwSigAB/firmware_CorruptBothFwSigAB.py b/server/site_tests/firmware_CorruptBothFwSigAB/firmware_CorruptBothFwSigAB.py
index ad20825..c9a7442 100644
--- a/server/site_tests/firmware_CorruptBothFwSigAB/firmware_CorruptBothFwSigAB.py
+++ b/server/site_tests/firmware_CorruptBothFwSigAB/firmware_CorruptBothFwSigAB.py
@@ -23,7 +23,7 @@
     def initialize(self, host, cmdline_args, dev_mode=False):
         super(firmware_CorruptBothFwSigAB, self).initialize(host, cmdline_args)
         self.backup_firmware()
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         self.setup_usbkey(usbkey=True, host=False)
 
     def cleanup(self):
diff --git a/server/site_tests/firmware_CorruptBothKernelAB/firmware_CorruptBothKernelAB.py b/server/site_tests/firmware_CorruptBothKernelAB/firmware_CorruptBothKernelAB.py
index 12693a6..e7f2115 100644
--- a/server/site_tests/firmware_CorruptBothKernelAB/firmware_CorruptBothKernelAB.py
+++ b/server/site_tests/firmware_CorruptBothKernelAB/firmware_CorruptBothKernelAB.py
@@ -38,7 +38,7 @@
         super(firmware_CorruptBothKernelAB, self).initialize(host, cmdline_args)
         self.backup_kernel()
         self.backup_cgpt_attributes()
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         self.setup_usbkey(usbkey=True, host=False)
         self.setup_kernel('a')
 
diff --git a/server/site_tests/firmware_CorruptFwBodyA/firmware_CorruptFwBodyA.py b/server/site_tests/firmware_CorruptFwBodyA/firmware_CorruptFwBodyA.py
index 70178d5..81360ec 100644
--- a/server/site_tests/firmware_CorruptFwBodyA/firmware_CorruptFwBodyA.py
+++ b/server/site_tests/firmware_CorruptFwBodyA/firmware_CorruptFwBodyA.py
@@ -23,7 +23,7 @@
     def initialize(self, host, cmdline_args, dev_mode=False):
         super(firmware_CorruptFwBodyA, self).initialize(host, cmdline_args)
         self.backup_firmware()
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         self.setup_usbkey(usbkey=False)
 
     def cleanup(self):
diff --git a/server/site_tests/firmware_CorruptFwBodyB/firmware_CorruptFwBodyB.py b/server/site_tests/firmware_CorruptFwBodyB/firmware_CorruptFwBodyB.py
index a25afbf..0322df2 100644
--- a/server/site_tests/firmware_CorruptFwBodyB/firmware_CorruptFwBodyB.py
+++ b/server/site_tests/firmware_CorruptFwBodyB/firmware_CorruptFwBodyB.py
@@ -23,7 +23,7 @@
     def initialize(self, host, cmdline_args, dev_mode=False):
         super(firmware_CorruptFwBodyB, self).initialize(host, cmdline_args)
         self.backup_firmware()
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         self.setup_usbkey(usbkey=False)
 
     def cleanup(self):
diff --git a/server/site_tests/firmware_CorruptFwSigA/firmware_CorruptFwSigA.py b/server/site_tests/firmware_CorruptFwSigA/firmware_CorruptFwSigA.py
index b6cb7f5..5ef442a 100644
--- a/server/site_tests/firmware_CorruptFwSigA/firmware_CorruptFwSigA.py
+++ b/server/site_tests/firmware_CorruptFwSigA/firmware_CorruptFwSigA.py
@@ -16,7 +16,7 @@
     def initialize(self, host, cmdline_args, dev_mode=False):
         super(firmware_CorruptFwSigA, self).initialize(host, cmdline_args)
         self.backup_firmware()
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         self.setup_usbkey(usbkey=False)
 
     def cleanup(self):
diff --git a/server/site_tests/firmware_CorruptFwSigB/firmware_CorruptFwSigB.py b/server/site_tests/firmware_CorruptFwSigB/firmware_CorruptFwSigB.py
index c748810..d23d680 100644
--- a/server/site_tests/firmware_CorruptFwSigB/firmware_CorruptFwSigB.py
+++ b/server/site_tests/firmware_CorruptFwSigB/firmware_CorruptFwSigB.py
@@ -16,7 +16,7 @@
     def initialize(self, host, cmdline_args, dev_mode=False):
         super(firmware_CorruptFwSigB, self).initialize(host, cmdline_args)
         self.backup_firmware()
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         self.setup_usbkey(usbkey=False)
 
     def cleanup(self):
diff --git a/server/site_tests/firmware_CorruptKernelA/firmware_CorruptKernelA.py b/server/site_tests/firmware_CorruptKernelA/firmware_CorruptKernelA.py
index be0ef7f..e242148 100644
--- a/server/site_tests/firmware_CorruptKernelA/firmware_CorruptKernelA.py
+++ b/server/site_tests/firmware_CorruptKernelA/firmware_CorruptKernelA.py
@@ -20,7 +20,7 @@
         super(firmware_CorruptKernelA, self).initialize(host, cmdline_args)
         self.backup_kernel()
         self.backup_cgpt_attributes()
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         self.setup_usbkey(usbkey=False)
         self.setup_kernel('a')
 
diff --git a/server/site_tests/firmware_CorruptKernelB/firmware_CorruptKernelB.py b/server/site_tests/firmware_CorruptKernelB/firmware_CorruptKernelB.py
index 4500395..908c7de 100644
--- a/server/site_tests/firmware_CorruptKernelB/firmware_CorruptKernelB.py
+++ b/server/site_tests/firmware_CorruptKernelB/firmware_CorruptKernelB.py
@@ -21,7 +21,7 @@
         super(firmware_CorruptKernelB, self).initialize(host, cmdline_args)
         self.backup_kernel()
         self.backup_cgpt_attributes()
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         self.setup_usbkey(usbkey=False)
         self.setup_kernel('a')
 
diff --git a/server/site_tests/firmware_DevBootUSB/firmware_DevBootUSB.py b/server/site_tests/firmware_DevBootUSB/firmware_DevBootUSB.py
index 4191293..5c38518 100644
--- a/server/site_tests/firmware_DevBootUSB/firmware_DevBootUSB.py
+++ b/server/site_tests/firmware_DevBootUSB/firmware_DevBootUSB.py
@@ -24,7 +24,7 @@
     def initialize(self, host, cmdline_args, ec_wp=None):
         super(firmware_DevBootUSB, self).initialize(host, cmdline_args,
                                                     ec_wp=ec_wp)
-        self.setup_dev_mode(dev_mode=True)
+        self.switcher.setup_mode('dev')
         self.setup_usbkey(usbkey=True, host=False)
 
         self.original_dev_boot_usb = self.faft_client.system.get_dev_boot_usb()
diff --git a/server/site_tests/firmware_DevMode/firmware_DevMode.py b/server/site_tests/firmware_DevMode/firmware_DevMode.py
index fcf11da..e54c754 100644
--- a/server/site_tests/firmware_DevMode/firmware_DevMode.py
+++ b/server/site_tests/firmware_DevMode/firmware_DevMode.py
@@ -16,13 +16,9 @@
     def initialize(self, host, cmdline_args, ec_wp=None):
         super(firmware_DevMode, self).initialize(host, cmdline_args,
                                                  ec_wp=ec_wp)
-        self.setup_dev_mode(dev_mode=False)
+        self.switcher.setup_mode('normal')
         self.setup_usbkey(usbkey=False)
 
-    def cleanup(self):
-        self.setup_dev_mode(dev_mode=False)
-        super(firmware_DevMode, self).cleanup()
-
     def run_once(self):
         logging.info("Enable dev mode.")
         self.check_state((self.checkers.crossystem_checker, {
diff --git a/server/site_tests/firmware_DevModeStress/firmware_DevModeStress.py b/server/site_tests/firmware_DevModeStress/firmware_DevModeStress.py
index 3a4c3e9..016a8cd 100644
--- a/server/site_tests/firmware_DevModeStress/firmware_DevModeStress.py
+++ b/server/site_tests/firmware_DevModeStress/firmware_DevModeStress.py
@@ -57,7 +57,7 @@
         dict_args = utils.args_to_dict(cmdline_args)
         self.faft_iterations = int(dict_args.get('faft_iterations', 1))
         super(firmware_DevModeStress, self).initialize(host, cmdline_args)
-        self.setup_dev_mode(dev_mode=True)
+        self.switcher.setup_mode('dev')
         self.setup_usbkey(usbkey=False)
 
     def run_once(self):
diff --git a/server/site_tests/firmware_DevScreenTimeout/firmware_DevScreenTimeout.py b/server/site_tests/firmware_DevScreenTimeout/firmware_DevScreenTimeout.py
index 0997b53..5fc32f5 100644
--- a/server/site_tests/firmware_DevScreenTimeout/firmware_DevScreenTimeout.py
+++ b/server/site_tests/firmware_DevScreenTimeout/firmware_DevScreenTimeout.py
@@ -81,7 +81,7 @@
     def initialize(self, host, cmdline_args):
         super(firmware_DevScreenTimeout, self).initialize(host, cmdline_args)
         # This test is run on developer mode only.
-        self.setup_dev_mode(dev_mode=True)
+        self.switcher.setup_mode('dev')
         self.setup_usbkey(usbkey=False)
 
     def run_once(self):
diff --git a/server/site_tests/firmware_DevTriggerRecovery/firmware_DevTriggerRecovery.py b/server/site_tests/firmware_DevTriggerRecovery/firmware_DevTriggerRecovery.py
index dc160ac..f93a42f 100644
--- a/server/site_tests/firmware_DevTriggerRecovery/firmware_DevTriggerRecovery.py
+++ b/server/site_tests/firmware_DevTriggerRecovery/firmware_DevTriggerRecovery.py
@@ -60,7 +60,7 @@
 
     def initialize(self, host, cmdline_args):
         super(firmware_DevTriggerRecovery, self).initialize(host, cmdline_args)
-        self.setup_dev_mode(dev_mode=False)
+        self.switcher.setup_mode('normal')
         self.setup_usbkey(usbkey=True, host=False)
 
     def run_once(self):
diff --git a/server/site_tests/firmware_ECBattery/firmware_ECBattery.py b/server/site_tests/firmware_ECBattery/firmware_ECBattery.py
index 0f7de5c..7aaa75e 100644
--- a/server/site_tests/firmware_ECBattery/firmware_ECBattery.py
+++ b/server/site_tests/firmware_ECBattery/firmware_ECBattery.py
@@ -39,7 +39,7 @@
     def initialize(self, host, cmdline_args):
         super(firmware_ECBattery, self).initialize(host, cmdline_args)
         # Only run in normal mode
-        self.setup_dev_mode(False)
+        self.switcher.setup_mode('normal')
         self.ec.send_command("chan 0")
 
 
diff --git a/server/site_tests/firmware_ECBootTime/firmware_ECBootTime.py b/server/site_tests/firmware_ECBootTime/firmware_ECBootTime.py
index 88f19ec..66cb20c 100644
--- a/server/site_tests/firmware_ECBootTime/firmware_ECBootTime.py
+++ b/server/site_tests/firmware_ECBootTime/firmware_ECBootTime.py
@@ -17,7 +17,7 @@
     def initialize(self, host, cmdline_args):
         super(firmware_ECBootTime, self).initialize(host, cmdline_args)
         # Only run in normal mode
-        self.setup_dev_mode(False)
+        self.switcher.setup_mode('normal')
 
     def check_boot_time(self):
         """Check EC and AP boot times"""
diff --git a/server/site_tests/firmware_ECCharging/firmware_ECCharging.py b/server/site_tests/firmware_ECCharging/firmware_ECCharging.py
index d2452cc..d2038e0 100644
--- a/server/site_tests/firmware_ECCharging/firmware_ECCharging.py
+++ b/server/site_tests/firmware_ECCharging/firmware_ECCharging.py
@@ -19,7 +19,7 @@
     def initialize(self, host, cmdline_args):
         super(firmware_ECCharging, self).initialize(host, cmdline_args)
         # Only run in normal mode
-        self.setup_dev_mode(False)
+        self.switcher.setup_mode('normal')
         self.ec.send_command("chan 0")
 
 
diff --git a/server/site_tests/firmware_ECHash/firmware_ECHash.py b/server/site_tests/firmware_ECHash/firmware_ECHash.py
index 1cc51b8..7a9ef92 100644
--- a/server/site_tests/firmware_ECHash/firmware_ECHash.py
+++ b/server/site_tests/firmware_ECHash/firmware_ECHash.py
@@ -24,7 +24,7 @@
     def initialize(self, host, cmdline_args):
         super(firmware_ECHash, self).initialize(host, cmdline_args)
         self.backup_firmware()
-        self.setup_dev_mode(dev_mode=False)
+        self.switcher.setup_mode('normal')
         self.setup_usbkey(usbkey=False)
         self.setup_rw_boot()
 
diff --git a/server/site_tests/firmware_ECKeyboard/firmware_ECKeyboard.py b/server/site_tests/firmware_ECKeyboard/firmware_ECKeyboard.py
index 3858bd6..86db2ba 100644
--- a/server/site_tests/firmware_ECKeyboard/firmware_ECKeyboard.py
+++ b/server/site_tests/firmware_ECKeyboard/firmware_ECKeyboard.py
@@ -21,7 +21,7 @@
     def initialize(self, host, cmdline_args):
         super(firmware_ECKeyboard, self).initialize(host, cmdline_args)
         # Only run in normal mode
-        self.setup_dev_mode(False)
+        self.switcher.setup_mode('normal')
 
     def switch_tty2(self):
         """Switch to tty2 console."""
diff --git a/server/site_tests/firmware_ECKeyboardReboot/firmware_ECKeyboardReboot.py b/server/site_tests/firmware_ECKeyboardReboot/firmware_ECKeyboardReboot.py
index 6be09fc..9e43ca3 100644
--- a/server/site_tests/firmware_ECKeyboardReboot/firmware_ECKeyboardReboot.py
+++ b/server/site_tests/firmware_ECKeyboardReboot/firmware_ECKeyboardReboot.py
@@ -27,7 +27,7 @@
     def initialize(self, host, cmdline_args):
         super(firmware_ECKeyboardReboot, self).initialize(host, cmdline_args)
         # Only run in normal mode
-        self.setup_dev_mode(False)
+        self.switcher.setup_mode('normal')
         self.host = host
 
     def confirm_dut_off(self):
diff --git a/server/site_tests/firmware_ECLidSwitch/firmware_ECLidSwitch.py b/server/site_tests/firmware_ECLidSwitch/firmware_ECLidSwitch.py
index eff165a..3daaaef 100644
--- a/server/site_tests/firmware_ECLidSwitch/firmware_ECLidSwitch.py
+++ b/server/site_tests/firmware_ECLidSwitch/firmware_ECLidSwitch.py
@@ -40,7 +40,7 @@
     def initialize(self, host, cmdline_args):
         super(firmware_ECLidSwitch, self).initialize(host, cmdline_args)
         # Only run in normal mode
-        self.setup_dev_mode(False)
+        self.switcher.setup_mode('normal')
 
     def _open_lid(self):
         """Open lid by servo."""
diff --git a/server/site_tests/firmware_ECPowerButton/firmware_ECPowerButton.py b/server/site_tests/firmware_ECPowerButton/firmware_ECPowerButton.py
index b27b04b..23b57bf 100644
--- a/server/site_tests/firmware_ECPowerButton/firmware_ECPowerButton.py
+++ b/server/site_tests/firmware_ECPowerButton/firmware_ECPowerButton.py
@@ -35,7 +35,7 @@
     def initialize(self, host, cmdline_args):
         super(firmware_ECPowerButton, self).initialize(host, cmdline_args)
         # Only run in normal mode
-        self.setup_dev_mode(False)
+        self.switcher.setup_mode('normal')
 
     def kill_powerd(self):
         """Stop powerd on client."""
diff --git a/server/site_tests/firmware_ECPowerG3/firmware_ECPowerG3.py b/server/site_tests/firmware_ECPowerG3/firmware_ECPowerG3.py
index 675d9c8..e8ebf56 100644
--- a/server/site_tests/firmware_ECPowerG3/firmware_ECPowerG3.py
+++ b/server/site_tests/firmware_ECPowerG3/firmware_ECPowerG3.py
@@ -23,7 +23,7 @@
     def initialize(self, host, cmdline_args):
         super(firmware_ECPowerG3, self).initialize(host, cmdline_args)
         # Only run in normal mode
-        self.setup_dev_mode(False)
+        self.switcher.setup_mode('normal')
         self.ec.send_command("chan 0")
 
     def cleanup(self):
diff --git a/server/site_tests/firmware_ECSharedMem/firmware_ECSharedMem.py b/server/site_tests/firmware_ECSharedMem/firmware_ECSharedMem.py
index 1474c29..4fae89f 100644
--- a/server/site_tests/firmware_ECSharedMem/firmware_ECSharedMem.py
+++ b/server/site_tests/firmware_ECSharedMem/firmware_ECSharedMem.py
@@ -18,7 +18,7 @@
     def initialize(self, host, cmdline_args):
         super(firmware_ECSharedMem, self).initialize(host, cmdline_args)
         # Only run in normal mode
-        self.setup_dev_mode(False)
+        self.switcher.setup_mode('normal')
         self.ec.send_command("chan 0")
 
     def cleanup(self):
diff --git a/server/site_tests/firmware_ECUsbPorts/firmware_ECUsbPorts.py b/server/site_tests/firmware_ECUsbPorts/firmware_ECUsbPorts.py
index aefc0e8..7d22cf5 100644
--- a/server/site_tests/firmware_ECUsbPorts/firmware_ECUsbPorts.py
+++ b/server/site_tests/firmware_ECUsbPorts/firmware_ECUsbPorts.py
@@ -34,7 +34,7 @@
     def initialize(self, host, cmdline_args):
         super(firmware_ECUsbPorts, self).initialize(host, cmdline_args)
         # Only run in normal mode
-        self.setup_dev_mode(False)
+        self.switcher.setup_mode('normal')
         self.ec.send_command("chan 0")
 
 
diff --git a/server/site_tests/firmware_ECWakeSource/firmware_ECWakeSource.py b/server/site_tests/firmware_ECWakeSource/firmware_ECWakeSource.py
index 0445d93..67d229f 100644
--- a/server/site_tests/firmware_ECWakeSource/firmware_ECWakeSource.py
+++ b/server/site_tests/firmware_ECWakeSource/firmware_ECWakeSource.py
@@ -40,7 +40,7 @@
     def initialize(self, host, cmdline_args):
         super(firmware_ECWakeSource, self).initialize(host, cmdline_args)
         # Only run in normal mode
-        self.setup_dev_mode(False)
+        self.switcher.setup_mode('normal')
 
     @delayed(WAKE_DELAY)
     def wake_by_power_button(self):
diff --git a/server/site_tests/firmware_ECWatchdog/firmware_ECWatchdog.py b/server/site_tests/firmware_ECWatchdog/firmware_ECWatchdog.py
index a0a4b02..9ba0ecb 100644
--- a/server/site_tests/firmware_ECWatchdog/firmware_ECWatchdog.py
+++ b/server/site_tests/firmware_ECWatchdog/firmware_ECWatchdog.py
@@ -25,7 +25,7 @@
     def initialize(self, host, cmdline_args):
         super(firmware_ECWatchdog, self).initialize(host, cmdline_args)
         # Only run in normal mode
-        self.setup_dev_mode(False)
+        self.switcher.setup_mode('normal')
 
 
     def reboot_by_watchdog(self):
diff --git a/server/site_tests/firmware_ECWriteProtect/firmware_ECWriteProtect.py b/server/site_tests/firmware_ECWriteProtect/firmware_ECWriteProtect.py
index bbfd6e1..6d82dbf 100644
--- a/server/site_tests/firmware_ECWriteProtect/firmware_ECWriteProtect.py
+++ b/server/site_tests/firmware_ECWriteProtect/firmware_ECWriteProtect.py
@@ -34,7 +34,7 @@
         super(firmware_ECWriteProtect, self).initialize(host, cmdline_args,
                                                         ec_wp=False)
         self.backup_firmware()
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         self.ec.send_command("chan 0")
 
     def cleanup(self):
diff --git a/server/site_tests/firmware_EventLog/firmware_EventLog.py b/server/site_tests/firmware_EventLog/firmware_EventLog.py
index 203b247..1335993 100644
--- a/server/site_tests/firmware_EventLog/firmware_EventLog.py
+++ b/server/site_tests/firmware_EventLog/firmware_EventLog.py
@@ -18,7 +18,7 @@
 
     def initialize(self, host, cmdline_args):
         super(firmware_EventLog, self).initialize(host, cmdline_args)
-        self.setup_dev_mode(dev_mode=False)
+        self.switcher.setup_mode('normal')
 
     def _has_event(self, pattern):
         return bool(filter(re.compile(pattern).search, self._events))
diff --git a/server/site_tests/firmware_FWtries/firmware_FWtries.py b/server/site_tests/firmware_FWtries/firmware_FWtries.py
index 9a7ffdf..3d5813f 100644
--- a/server/site_tests/firmware_FWtries/firmware_FWtries.py
+++ b/server/site_tests/firmware_FWtries/firmware_FWtries.py
@@ -48,7 +48,7 @@
         dict_args = utils.args_to_dict(cmdline_args)
         super(firmware_FWtries, self).initialize(host, cmdline_args)
         # Set device in normal mode
-        self.setup_dev_mode(False)
+        self.switcher.setup_mode('normal')
 
     def run_once(self, host):
         self.check_state((self.checkers.fw_tries_checker, ('A', True, 0)))
diff --git a/server/site_tests/firmware_FWupdate/firmware_FWupdate.py b/server/site_tests/firmware_FWupdate/firmware_FWupdate.py
index 780d0eb..1ad0ac2 100644
--- a/server/site_tests/firmware_FWupdate/firmware_FWupdate.py
+++ b/server/site_tests/firmware_FWupdate/firmware_FWupdate.py
@@ -57,9 +57,9 @@
         if 'mode' in dict_args:
           self.mode = dict_args['mode']
           if self.mode == 'recovery':
-            self.setup_dev_mode(False)  # Set device to normal mode
+            self.switcher.setup_mode('normal')  # Set device to normal mode
           elif self.mode == 'factory':
-            self.setup_dev_mode(True)   # Set device to dev mode
+            self.switcher.setup_mode('dev')   # Set device to dev mode
           else:
             raise error.TestError('Unknown mode:%s' % self.mode)
 
diff --git a/server/site_tests/firmware_FwScreenCloseLid/firmware_FwScreenCloseLid.py b/server/site_tests/firmware_FwScreenCloseLid/firmware_FwScreenCloseLid.py
index cb753f1..81bfce0 100644
--- a/server/site_tests/firmware_FwScreenCloseLid/firmware_FwScreenCloseLid.py
+++ b/server/site_tests/firmware_FwScreenCloseLid/firmware_FwScreenCloseLid.py
@@ -38,7 +38,7 @@
         super(firmware_FwScreenCloseLid, self).initialize(host, cmdline_args)
         if self.faft_config.has_lid:
             self.assert_test_image_in_usb_disk()
-            self.setup_dev_mode(dev_mode=True)
+            self.switcher.setup_mode('dev')
             self.servo.switch_usbkey('host')
             usb_dev = self.servo.probe_host_usb_dev()
             # Corrupt the kernel of USB stick. It is needed for triggering a
diff --git a/server/site_tests/firmware_FwScreenPressPower/firmware_FwScreenPressPower.py b/server/site_tests/firmware_FwScreenPressPower/firmware_FwScreenPressPower.py
index 247ed86..27cc095 100644
--- a/server/site_tests/firmware_FwScreenPressPower/firmware_FwScreenPressPower.py
+++ b/server/site_tests/firmware_FwScreenPressPower/firmware_FwScreenPressPower.py
@@ -36,7 +36,7 @@
     def initialize(self, host, cmdline_args):
         super(firmware_FwScreenPressPower, self).initialize(host, cmdline_args)
         self.assert_test_image_in_usb_disk()
-        self.setup_dev_mode(dev_mode=True)
+        self.switcher.setup_mode('dev')
         self.servo.switch_usbkey('host')
         usb_dev = self.servo.probe_host_usb_dev()
         # Corrupt the kernel of USB stick. It is needed for triggering a
diff --git a/server/site_tests/firmware_InvalidUSB/firmware_InvalidUSB.py b/server/site_tests/firmware_InvalidUSB/firmware_InvalidUSB.py
index a273a66..f16814a 100644
--- a/server/site_tests/firmware_InvalidUSB/firmware_InvalidUSB.py
+++ b/server/site_tests/firmware_InvalidUSB/firmware_InvalidUSB.py
@@ -33,7 +33,7 @@
         usb_dev = self.servo.probe_host_usb_dev()
         self.assert_test_image_in_usb_disk(usb_dev)
         self.corrupt_usb_kernel(usb_dev)
-        self.setup_dev_mode(dev_mode=False)
+        self.switcher.setup_mode('normal')
         self.servo.switch_usbkey('dut')
 
     def cleanup(self):
diff --git a/server/site_tests/firmware_LegacyRecovery/firmware_LegacyRecovery.py b/server/site_tests/firmware_LegacyRecovery/firmware_LegacyRecovery.py
index d325328..e7502f9 100644
--- a/server/site_tests/firmware_LegacyRecovery/firmware_LegacyRecovery.py
+++ b/server/site_tests/firmware_LegacyRecovery/firmware_LegacyRecovery.py
@@ -23,7 +23,7 @@
     def initialize(self, host, cmdline_args):
         super(firmware_LegacyRecovery, self).initialize(host, cmdline_args)
         self.setup_usbkey(usbkey=True, host=False)
-        self.setup_dev_mode(dev_mode=False)
+        self.switcher.setup_mode('normal')
 
     def cleanup(self):
         super(firmware_LegacyRecovery, self).cleanup()
diff --git a/server/site_tests/firmware_Mosys/firmware_Mosys.py b/server/site_tests/firmware_Mosys/firmware_Mosys.py
index 42029dd..8273048 100644
--- a/server/site_tests/firmware_Mosys/firmware_Mosys.py
+++ b/server/site_tests/firmware_Mosys/firmware_Mosys.py
@@ -30,7 +30,7 @@
         # Parse arguments from command line
         dict_args = utils.args_to_dict(cmdline_args)
         super(firmware_Mosys, self).initialize(host, cmdline_args)
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         # a list contain failed execution.
         self.failed_command = []
         # Get a list of available mosys commands.
diff --git a/server/site_tests/firmware_RONormalBoot/firmware_RONormalBoot.py b/server/site_tests/firmware_RONormalBoot/firmware_RONormalBoot.py
index 1490a1c..53a3437 100644
--- a/server/site_tests/firmware_RONormalBoot/firmware_RONormalBoot.py
+++ b/server/site_tests/firmware_RONormalBoot/firmware_RONormalBoot.py
@@ -26,7 +26,7 @@
         super(firmware_RONormalBoot, self).initialize(host, cmdline_args,
                                                       ec_wp=ec_wp)
         self.backup_firmware()
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         self.setup_usbkey(usbkey=False)
 
     def cleanup(self):
diff --git a/server/site_tests/firmware_RecoveryButton/firmware_RecoveryButton.py b/server/site_tests/firmware_RecoveryButton/firmware_RecoveryButton.py
index 0ef1e58..90dc0c9 100644
--- a/server/site_tests/firmware_RecoveryButton/firmware_RecoveryButton.py
+++ b/server/site_tests/firmware_RecoveryButton/firmware_RecoveryButton.py
@@ -33,7 +33,7 @@
     def initialize(self, host, cmdline_args, dev_mode=False, ec_wp=None):
         super(firmware_RecoveryButton, self).initialize(host, cmdline_args,
                                                         ec_wp=ec_wp)
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         self.setup_usbkey(usbkey=True, host=False)
 
     def cleanup(self):
diff --git a/server/site_tests/firmware_RollbackFirmware/firmware_RollbackFirmware.py b/server/site_tests/firmware_RollbackFirmware/firmware_RollbackFirmware.py
index deab235..7de5878 100644
--- a/server/site_tests/firmware_RollbackFirmware/firmware_RollbackFirmware.py
+++ b/server/site_tests/firmware_RollbackFirmware/firmware_RollbackFirmware.py
@@ -22,7 +22,7 @@
     def initialize(self, host, cmdline_args, dev_mode=False):
         super(firmware_RollbackFirmware, self).initialize(host, cmdline_args)
         self.backup_firmware()
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         self.setup_usbkey(usbkey=True, host=False)
 
     def cleanup(self):
diff --git a/server/site_tests/firmware_RollbackKernel/firmware_RollbackKernel.py b/server/site_tests/firmware_RollbackKernel/firmware_RollbackKernel.py
index 0e0abb5..9b3741e 100644
--- a/server/site_tests/firmware_RollbackKernel/firmware_RollbackKernel.py
+++ b/server/site_tests/firmware_RollbackKernel/firmware_RollbackKernel.py
@@ -38,7 +38,7 @@
         super(firmware_RollbackKernel, self).initialize(host, cmdline_args)
         self.backup_kernel()
         self.backup_cgpt_attributes()
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         self.setup_usbkey(usbkey=True, host=False)
         self.setup_kernel('a')
 
diff --git a/server/site_tests/firmware_SelfSignedBoot/firmware_SelfSignedBoot.py b/server/site_tests/firmware_SelfSignedBoot/firmware_SelfSignedBoot.py
index 39f8bd0..67e8c25 100644
--- a/server/site_tests/firmware_SelfSignedBoot/firmware_SelfSignedBoot.py
+++ b/server/site_tests/firmware_SelfSignedBoot/firmware_SelfSignedBoot.py
@@ -26,7 +26,7 @@
     def initialize(self, host, cmdline_args, ec_wp=None):
         super(firmware_SelfSignedBoot, self).initialize(host, cmdline_args,
                                                         ec_wp=ec_wp)
-        self.setup_dev_mode(dev_mode=True)
+        self.switcher.setup_mode('dev')
         self.setup_usbkey(usbkey=True, host=False)
 
         self.original_dev_boot_usb = self.faft_client.system.get_dev_boot_usb()
diff --git a/server/site_tests/firmware_ShellBall/firmware_ShellBall.py b/server/site_tests/firmware_ShellBall/firmware_ShellBall.py
index 59e4c0e..faa4a0f 100644
--- a/server/site_tests/firmware_ShellBall/firmware_ShellBall.py
+++ b/server/site_tests/firmware_ShellBall/firmware_ShellBall.py
@@ -42,7 +42,7 @@
                        self._shellball_name)
         self.faft_client.system.run_shell_command('chmod +x %s' %
                                                   self._shellball_name)
-        self.setup_dev_mode(dev_mode=False)
+        self.switcher.setup_mode('normal')
         # Get crossystem fwid.
         [self._current_fwid] = (
             self.faft_client.system.run_shell_command_get_output(
diff --git a/server/site_tests/firmware_SoftwareSync/firmware_SoftwareSync.py b/server/site_tests/firmware_SoftwareSync/firmware_SoftwareSync.py
index bc6b46e..3156d60 100644
--- a/server/site_tests/firmware_SoftwareSync/firmware_SoftwareSync.py
+++ b/server/site_tests/firmware_SoftwareSync/firmware_SoftwareSync.py
@@ -19,7 +19,7 @@
         super(firmware_SoftwareSync, self).initialize(host, cmdline_args,
                                                       ec_wp=False)
         self.backup_firmware()
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         self.setup_usbkey(usbkey=False)
         self.setup_rw_boot()
         self.dev_mode = dev_mode
diff --git a/server/site_tests/firmware_TPMExtend/firmware_TPMExtend.py b/server/site_tests/firmware_TPMExtend/firmware_TPMExtend.py
index c5d07a7..435aa98 100644
--- a/server/site_tests/firmware_TPMExtend/firmware_TPMExtend.py
+++ b/server/site_tests/firmware_TPMExtend/firmware_TPMExtend.py
@@ -14,7 +14,7 @@
 
     def initialize(self, host, cmdline_args):
         super(firmware_TPMExtend, self).initialize(host, cmdline_args)
-        self.setup_dev_mode(dev_mode=False)
+        self.switcher.setup_mode('normal')
         self.setup_usbkey(usbkey=True, host=False)
 
     def _check_pcr(self, num, hash_obj):
diff --git a/server/site_tests/firmware_TPMKernelVersion/firmware_TPMKernelVersion.py b/server/site_tests/firmware_TPMKernelVersion/firmware_TPMKernelVersion.py
index 27d2f85..c4d3a34 100644
--- a/server/site_tests/firmware_TPMKernelVersion/firmware_TPMKernelVersion.py
+++ b/server/site_tests/firmware_TPMKernelVersion/firmware_TPMKernelVersion.py
@@ -16,7 +16,7 @@
 
     def initialize(self, host, cmdline_args):
         super(firmware_TPMKernelVersion, self).initialize(host, cmdline_args)
-        self.setup_dev_mode(True)  # Dev mode
+        self.switcher.setup_mode('dev')
         self.setup_usbkey(usbkey=True, host=False)
         self.original_dev_boot_usb = self.faft_client.system.get_dev_boot_usb()
         logging.info('Original dev_boot_usb value: %s',
diff --git a/server/site_tests/firmware_TPMVersionCheck/firmware_TPMVersionCheck.py b/server/site_tests/firmware_TPMVersionCheck/firmware_TPMVersionCheck.py
index 4922ecb..5718376 100644
--- a/server/site_tests/firmware_TPMVersionCheck/firmware_TPMVersionCheck.py
+++ b/server/site_tests/firmware_TPMVersionCheck/firmware_TPMVersionCheck.py
@@ -17,7 +17,7 @@
     def initialize(self, host, cmdline_args, dev_mode=False, ec_wp=None):
         super(firmware_TPMVersionCheck, self).initialize(host, cmdline_args,
                                                          ec_wp=ec_wp)
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         self.setup_usbkey(usbkey=False)
 
     def run_once(self):
diff --git a/server/site_tests/firmware_TryFwB/firmware_TryFwB.py b/server/site_tests/firmware_TryFwB/firmware_TryFwB.py
index 609b6a0..ea843e7 100644
--- a/server/site_tests/firmware_TryFwB/firmware_TryFwB.py
+++ b/server/site_tests/firmware_TryFwB/firmware_TryFwB.py
@@ -14,7 +14,7 @@
 
     def initialize(self, host, cmdline_args, dev_mode=False, ec_wp=None):
         super(firmware_TryFwB, self).initialize(host, cmdline_args, ec_wp=ec_wp)
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         self.setup_usbkey(usbkey=False)
         if not self.fw_vboot2:
             self.setup_tried_fwb(tried_fwb=False)
diff --git a/server/site_tests/firmware_UpdateECBin/firmware_UpdateECBin.py b/server/site_tests/firmware_UpdateECBin/firmware_UpdateECBin.py
index b240cee..7151b20 100644
--- a/server/site_tests/firmware_UpdateECBin/firmware_UpdateECBin.py
+++ b/server/site_tests/firmware_UpdateECBin/firmware_UpdateECBin.py
@@ -47,7 +47,7 @@
         logging.info('The EC image to-be-updated is: %s', self.arg_new_ec)
         super(firmware_UpdateECBin, self).initialize(host, cmdline_args)
         self.backup_firmware()
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         self.setup_usbkey(usbkey=False)
 
         temp_path = self.faft_client.updater.get_temp_path()
diff --git a/server/site_tests/firmware_UpdateFirmwareDataKeyVersion/firmware_UpdateFirmwareDataKeyVersion.py b/server/site_tests/firmware_UpdateFirmwareDataKeyVersion/firmware_UpdateFirmwareDataKeyVersion.py
index 62a00fb..985d9e9 100644
--- a/server/site_tests/firmware_UpdateFirmwareDataKeyVersion/firmware_UpdateFirmwareDataKeyVersion.py
+++ b/server/site_tests/firmware_UpdateFirmwareDataKeyVersion/firmware_UpdateFirmwareDataKeyVersion.py
@@ -72,7 +72,7 @@
             self.wait_for_client()
 
         self.setup_usbkey(usbkey=True, host=True, install_shim=True)
-        self.setup_dev_mode(dev_mode=False)
+        self.switcher.setup_mode('normal')
         self._fwid = self.faft_client.updater.get_fwid()
 
         actual_ver = self.faft_client.bios.get_datakey_version('a')
diff --git a/server/site_tests/firmware_UpdateFirmwareVersion/firmware_UpdateFirmwareVersion.py b/server/site_tests/firmware_UpdateFirmwareVersion/firmware_UpdateFirmwareVersion.py
index 3005e55..6a14e0e 100644
--- a/server/site_tests/firmware_UpdateFirmwareVersion/firmware_UpdateFirmwareVersion.py
+++ b/server/site_tests/firmware_UpdateFirmwareVersion/firmware_UpdateFirmwareVersion.py
@@ -58,7 +58,7 @@
             self.wait_for_client()
 
         self.setup_usbkey(usbkey=True, host=True, install_shim=True)
-        self.setup_dev_mode(dev_mode=False)
+        self.switcher.setup_mode('normal')
         self._fwid = self.faft_client.updater.get_fwid()
 
         actual_ver = self.faft_client.bios.get_version('a')
diff --git a/server/site_tests/firmware_UpdateKernelDataKeyVersion/firmware_UpdateKernelDataKeyVersion.py b/server/site_tests/firmware_UpdateKernelDataKeyVersion/firmware_UpdateKernelDataKeyVersion.py
index a19d793..85ad849 100644
--- a/server/site_tests/firmware_UpdateKernelDataKeyVersion/firmware_UpdateKernelDataKeyVersion.py
+++ b/server/site_tests/firmware_UpdateKernelDataKeyVersion/firmware_UpdateKernelDataKeyVersion.py
@@ -64,7 +64,7 @@
         super(firmware_UpdateKernelDataKeyVersion, self).initialize(host,
                                                                 cmdline_args)
 
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
 
         actual_ver = self.faft_client.kernel.get_datakey_version('b')
         logging.info('Original Kernel Version of KERN-B is %s', actual_ver)
diff --git a/server/site_tests/firmware_UpdateKernelVersion/firmware_UpdateKernelVersion.py b/server/site_tests/firmware_UpdateKernelVersion/firmware_UpdateKernelVersion.py
index 6db6ca6..ab56516 100644
--- a/server/site_tests/firmware_UpdateKernelVersion/firmware_UpdateKernelVersion.py
+++ b/server/site_tests/firmware_UpdateKernelVersion/firmware_UpdateKernelVersion.py
@@ -43,7 +43,7 @@
     def initialize(self, host, cmdline_args, dev_mode=True):
         super(firmware_UpdateKernelVersion, self).initialize(host, cmdline_args)
 
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
 
         actual_ver = self.faft_client.kernel.get_version('b')
         logging.info('Original Kernel Version of KERN-B is %s', actual_ver)
diff --git a/server/site_tests/firmware_UserRequestRecovery/firmware_UserRequestRecovery.py b/server/site_tests/firmware_UserRequestRecovery/firmware_UserRequestRecovery.py
index 9b2d2b0..59c288c 100644
--- a/server/site_tests/firmware_UserRequestRecovery/firmware_UserRequestRecovery.py
+++ b/server/site_tests/firmware_UserRequestRecovery/firmware_UserRequestRecovery.py
@@ -33,7 +33,7 @@
     def initialize(self, host, cmdline_args, dev_mode=False, ec_wp=None):
         super(firmware_UserRequestRecovery, self).initialize(host, cmdline_args,
                                                              ec_wp=ec_wp)
-        self.setup_dev_mode(dev_mode)
+        self.switcher.setup_mode('dev' if dev_mode else 'normal')
         self.setup_usbkey(usbkey=True, host=True)
 
     def cleanup(self):
