Revert "cheets_CTS_(P/R): Use servo command to ensure USB storage ejection."

This reverts commit 0af7c33e6a36fe6d7dafe9a7e27c35a24bd12591.

Reason for revert: b/188369883#comment20 it does not look working as expected

Original change's description:
> cheets_CTS_(P/R): Use servo command to ensure USB storage ejection.
>
> BUG=b:188369883
> TEST=cheets_CTS_R.internal.arm.CtsProvider
>
> Change-Id: Ibb76239c0d04715bfb009273ab64a2d52aef9cdd
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/autotest/+/3559871
> Commit-Queue: Rohit Makasana <rohitbm@chromium.org>
> Reviewed-by: Rohit Makasana <rohitbm@chromium.org>
> Auto-Submit: Kazuhiro Inaba <kinaba@chromium.org>
> Commit-Queue: Kazuhiro Inaba <kinaba@chromium.org>
> Tested-by: Kazuhiro Inaba <kinaba@chromium.org>

Bug: b:188369883
Change-Id: I1abe8f6070592948bd6c4f652fe45f9c4d0c61e3
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/autotest/+/3651967
Commit-Queue: Kazuhiro Inaba <kinaba@chromium.org>
Commit-Queue: Rintaro Kuroiwa <rkuroiwa@google.com>
Auto-Submit: Kazuhiro Inaba <kinaba@chromium.org>
Tested-by: Kazuhiro Inaba <kinaba@chromium.org>
Reviewed-by: Rintaro Kuroiwa <rkuroiwa@google.com>
diff --git a/server/cros/tradefed/generate_controlfiles_CTS_P.py b/server/cros/tradefed/generate_controlfiles_CTS_P.py
index 1ebf5dd..c4ba595 100755
--- a/server/cros/tradefed/generate_controlfiles_CTS_P.py
+++ b/server/cros/tradefed/generate_controlfiles_CTS_P.py
@@ -155,14 +155,6 @@
     'CtsVoiceSettingsTestCases',
 ]
 
-CONFIG['NEEDS_DISK_EJECT'] = [
-        'CtsAppSecurityHostTestCases',
-        'CtsJobSchedulerTestCases',
-        'CtsMediaTestCases',
-        'CtsOsTestCases',
-        'CtsProviderTestCases',
-]
-
 CONFIG['NEEDS_POWER_CYCLE'] = [
     'CtsBluetoothTestCases',
 ]
@@ -207,9 +199,17 @@
     'CtsContentTestCases',
 ]
 
+# Run `eject` for (and only for) each device with RM=1 in lsblk output.
+_EJECT_REMOVABLE_DISK_COMMAND = (
+    "\'lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject\'")
 # Behave more like in the verififed mode.
 _SECURITY_PARANOID_COMMAND = (
     "\'echo 3 > /proc/sys/kernel/perf_event_paranoid\'")
+# TODO(kinaba): Come up with a less hacky way to handle the situation.
+# {0} is replaced with the retry count. Writes either 1 (required by
+# CtsSimpleperfTestCases) or 3 (CtsSecurityHostTestCases).
+_ALTERNATING_PARANOID_COMMAND = (
+    "\'echo $(({0} % 2 * 2 + 1)) > /proc/sys/kernel/perf_event_paranoid\'")
 # Expose /proc/config.gz
 _CONFIG_MODULE_COMMAND = "\'modprobe configs\'"
 
@@ -235,6 +235,11 @@
         'CtsNetTestCases': [_START_MDNS_COMMAND],
 }
 CONFIG['LOGIN_PRECONDITION'] = {
+    'CtsAppSecurityHostTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
+    'CtsJobSchedulerTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
+    'CtsMediaTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
+    'CtsOsTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
+    'CtsProviderTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
 }
 
 _WIFI_CONNECT_COMMANDS = [
diff --git a/server/cros/tradefed/generate_controlfiles_CTS_R.py b/server/cros/tradefed/generate_controlfiles_CTS_R.py
index a683f1d..dd80a6e 100755
--- a/server/cros/tradefed/generate_controlfiles_CTS_R.py
+++ b/server/cros/tradefed/generate_controlfiles_CTS_R.py
@@ -141,16 +141,6 @@
         'CtsSensorTestCases',
 ]
 
-# Test cases relying on USB stick to be removed should enable servo
-CONFIG['NEEDS_DISK_EJECT'] = [
-        'CtsAppSecurityHostTestCases',
-        'CtsJobSchedulerTestCases',
-        'CtsMediaTestCases',
-        'CtsOsTestCases',
-        'CtsProviderTestCases',
-        'CtsProviderUiTestCases',
-]
-
 CONFIG['HARDWARE_DEPENDENT_MODULES'] = [
         'CtsSensorTestCases',
         'CtsCameraTestCases',
@@ -198,6 +188,10 @@
         'CtsContentTestCases',
 ]
 
+# Run `eject` for (and only for) each device with RM=1 in lsblk output.
+_EJECT_REMOVABLE_DISK_COMMAND = (
+        "\'lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject\'")
+
 _WIFI_CONNECT_COMMANDS = [
         # These needs to be in order.
         "'/usr/local/autotest/cros/scripts/wifi connect %s %s\' % (ssid, wifipass)",
@@ -221,7 +215,13 @@
         'CtsCameraTestCases.NativeCameraDeviceTest': _DISPLAY_REFRESH_COMMANDS,
 }
 
-CONFIG['LOGIN_PRECONDITION'] = {}
+CONFIG['LOGIN_PRECONDITION'] = {
+        'CtsAppSecurityHostTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
+        'CtsJobSchedulerTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
+        'CtsMediaTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
+        'CtsOsTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
+        'CtsProviderTestCases': [_EJECT_REMOVABLE_DISK_COMMAND],
+}
 
 # Preconditions applicable to public tests.
 CONFIG['PUBLIC_PRECONDITION'] = {
diff --git a/server/cros/tradefed/generate_controlfiles_common.py b/server/cros/tradefed/generate_controlfiles_common.py
index ba46fe3..c3c9622 100755
--- a/server/cros/tradefed/generate_controlfiles_common.py
+++ b/server/cros/tradefed/generate_controlfiles_common.py
@@ -66,6 +66,8 @@
     DOC = '{{DOC}}'
     {%- if servo_support_needed %}
 
+    # For local debugging, if your test setup doesn't have servo, REMOVE these
+    # two lines.
     args_dict = server_utils.args_to_dict(args)
     servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
 
@@ -77,6 +79,8 @@
     {% else %}
     def {{test_func_name}}(machine):
         {%- if servo_support_needed %}
+        # REMOVE 'servo_args=servo_args' arg for local debugging if your test
+        # setup doesn't have servo.
         try:
             host_list = [hosts.create_host(machine, servo_args=servo_args)]
         except:
@@ -135,7 +139,7 @@
     {%- for arg in extra_args %}
             {{arg}},
     {%- endfor %}
-    {%- if needs_power_cycle %}
+    {%- if servo_support_needed %}
             hard_reboot_on_failure=True,
     {%- endif %}
     {%- if camera_facing %}
@@ -297,14 +301,6 @@
 
 def servo_support_needed(modules, is_public=True):
     """Determines if servo support is needed for a module."""
-    servo_modules = set(
-            CONFIG.get('NEEDS_DISK_EJECT', []) +
-            CONFIG.get('NEEDS_POWER_CYCLE', []))
-    return not is_public and modules.intersection(servo_modules)
-
-
-def needs_power_cycle(modules, is_public=True):
-    """Determines if powercycling is needed for a module."""
     return not is_public and any(module in CONFIG['NEEDS_POWER_CYCLE']
                                  for module in modules)
 
@@ -964,7 +960,6 @@
             uri=uri,
             DOC=get_doc(modules, abi, is_public),
             servo_support_needed=servo_support_needed(modules, is_public),
-            needs_power_cycle=needs_power_cycle(modules, is_public),
             wifi_info_needed=wifi_info_needed(modules, is_public),
             max_retries=get_max_retries(modules, abi, suites, is_public),
             timeout=calculate_timeout(modules, suites),
diff --git a/server/cros/tradefed/tradefed_test.py b/server/cros/tradefed/tradefed_test.py
index c2bb090..c12fc91 100644
--- a/server/cros/tradefed/tradefed_test.py
+++ b/server/cros/tradefed/tradefed_test.py
@@ -191,13 +191,6 @@
                 bundle)
         self._hard_reboot_on_failure = hard_reboot_on_failure
 
-        # Make sure USB key is invisible to the device.
-        if self._hosts[0].servo:
-            logging.error("usb off by servo")
-            self._hosts[0].servo.switch_usbkey('off')
-        else:
-            logging.error("no servo")
-
     def _output_perf(self):
         """Output performance values."""
         base = self._default_tradefed_base_dir()
diff --git a/server/site_tests/cheets_CTS_P/control.internal.arm.CtsApp b/server/site_tests/cheets_CTS_P/control.internal.arm.CtsApp
index e223d15..76ef5c3 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.arm.CtsApp
+++ b/server/site_tests/cheets_CTS_P/control.internal.arm.CtsApp
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.arm.CtsApp'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsAppComponentFactoryTestCases, CtsAppSecurityHostTestCases, CtsAppTestCases, CtsAppUsageHostTestCases, CtsAppWidgetTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -38,6 +30,7 @@
         target_plan=None,
         bundle='arm',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         timeout=23400)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.arm.CtsBluetoothTestCases b/server/site_tests/cheets_CTS_P/control.internal.arm.CtsBluetoothTestCases
index f7a6fbf..57bbf16 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.arm.CtsBluetoothTestCases
+++ b/server/site_tests/cheets_CTS_P/control.internal.arm.CtsBluetoothTestCases
@@ -16,10 +16,14 @@
 PY_VERSION = 3
 DOC = 'Run module CtsBluetoothTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
+# For local debugging, if your test setup doesn't have servo, REMOVE these
+# two lines.
 args_dict = server_utils.args_to_dict(args)
 servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
 
 def run_TS(machine):
+    # REMOVE 'servo_args=servo_args' arg for local debugging if your test
+    # setup doesn't have servo.
     try:
         host_list = [hosts.create_host(machine, servo_args=servo_args)]
     except:
diff --git a/server/site_tests/cheets_CTS_P/control.internal.arm.CtsJobScheduler b/server/site_tests/cheets_CTS_P/control.internal.arm.CtsJobScheduler
index 2cf3a43..cf6b344 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.arm.CtsJobScheduler
+++ b/server/site_tests/cheets_CTS_P/control.internal.arm.CtsJobScheduler
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.arm.CtsJobScheduler'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsJobSchedulerSharedUidTestCases, CtsJobSchedulerTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -37,6 +29,7 @@
         target_plan=None,
         bundle='arm',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         timeout=5400)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.arm.CtsMediaStressTestCases b/server/site_tests/cheets_CTS_P/control.internal.arm.CtsMediaStressTestCases
index f785509..21d9918 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.arm.CtsMediaStressTestCases
+++ b/server/site_tests/cheets_CTS_P/control.internal.arm.CtsMediaStressTestCases
@@ -30,6 +30,7 @@
         target_plan=None,
         bundle='arm',
         uri='DEV',
+        precondition_commands=['cras_test_client --mute 1'],
         timeout=18000)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.arm.CtsMediaTestCases.32 b/server/site_tests/cheets_CTS_P/control.internal.arm.CtsMediaTestCases.32
index 52e0e64..2239334 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.arm.CtsMediaTestCases.32
+++ b/server/site_tests/cheets_CTS_P/control.internal.arm.CtsMediaTestCases.32
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.arm.CtsMediaTestCases.32'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -38,6 +30,8 @@
         target_plan=None,
         bundle='arm',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
+        precondition_commands=['cras_test_client --mute 1'],
         timeout=36000)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.arm.CtsMediaTestCases.64 b/server/site_tests/cheets_CTS_P/control.internal.arm.CtsMediaTestCases.64
index 0f2f98a..3e130e9 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.arm.CtsMediaTestCases.64
+++ b/server/site_tests/cheets_CTS_P/control.internal.arm.CtsMediaTestCases.64
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.arm.CtsMediaTestCases.64'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -38,6 +30,8 @@
         target_plan=None,
         bundle='arm',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
+        precondition_commands=['cras_test_client --mute 1'],
         timeout=36000)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.arm.CtsMediaTestCases.ctshardware b/server/site_tests/cheets_CTS_P/control.internal.arm.CtsMediaTestCases.ctshardware
index 59ac76b..e98d8f5 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.arm.CtsMediaTestCases.ctshardware
+++ b/server/site_tests/cheets_CTS_P/control.internal.arm.CtsMediaTestCases.ctshardware
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.arm.CtsMediaTestCases.ctshardware'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -38,6 +30,7 @@
         target_plan=None,
         bundle='arm',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         timeout=36000)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.arm.CtsOs b/server/site_tests/cheets_CTS_P/control.internal.arm.CtsOs
index 079f945..02af46b 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.arm.CtsOs
+++ b/server/site_tests/cheets_CTS_P/control.internal.arm.CtsOs
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.arm.CtsOs'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsOsHostTestCases, CtsOsTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -37,6 +29,7 @@
         target_plan=None,
         bundle='arm',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         timeout=5400)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.arm.CtsProviderTestCases b/server/site_tests/cheets_CTS_P/control.internal.arm.CtsProviderTestCases
index 331b8ae..0aa3697 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.arm.CtsProviderTestCases
+++ b/server/site_tests/cheets_CTS_P/control.internal.arm.CtsProviderTestCases
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.arm.CtsProviderTestCases'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsProviderTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -37,6 +29,7 @@
         target_plan=None,
         bundle='arm',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         timeout=3600)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.arm.all.CtsAdminPackageInstallerTestCases_-_CtsCameraApi25TestCases b/server/site_tests/cheets_CTS_P/control.internal.arm.all.CtsAdminPackageInstallerTestCases_-_CtsCameraApi25TestCases
index 626c9f7..01dd04c 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.arm.all.CtsAdminPackageInstallerTestCases_-_CtsCameraApi25TestCases
+++ b/server/site_tests/cheets_CTS_P/control.internal.arm.all.CtsAdminPackageInstallerTestCases_-_CtsCameraApi25TestCases
@@ -16,10 +16,14 @@
 PY_VERSION = 3
 DOC = 'Run module CtsAdminPackageInstallerTestCases, CtsAdminTestCases, CtsAlarmClockTestCases, CtsAlarmManagerTestCases, CtsAndroidAppTestCases, CtsAndroidTestBase27ApiSignatureTestCases, CtsAndroidTestMockCurrentApiSignatureTestCases, CtsAndroidTestRunnerCurrentApiSignatureTestCases, CtsAnimationTestCases, CtsApacheHttpLegacy27ApiSignatureTestCases, CtsApacheHttpLegacyCurrentApiSignatureTestCases, CtsApacheHttpLegacyUsesLibraryApiSignatureTestCases, CtsAppComponentFactoryTestCases, CtsAppSecurityHostTestCases, CtsAppTestCases, CtsAppUsageHostTestCases, CtsAppWidgetTestCases, CtsAslrMallocTestCases, CtsAssistTestCases, CtsAtraceHostTestCases, CtsAutoFillServiceTestCases, CtsBackgroundRestrictionsTestCases, CtsBackupHostTestCases, CtsBackupTestCases, CtsBatterySavingTestCases, CtsBionicTestCases, CtsBluetoothTestCases, CtsBootStatsTestCases, CtsCalendarcommon2TestCases, CtsCameraApi25TestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
+# For local debugging, if your test setup doesn't have servo, REMOVE these
+# two lines.
 args_dict = server_utils.args_to_dict(args)
 servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
 
 def run_TS(machine):
+    # REMOVE 'servo_args=servo_args' arg for local debugging if your test
+    # setup doesn't have servo.
     try:
         host_list = [hosts.create_host(machine, servo_args=servo_args)]
     except:
@@ -39,6 +43,7 @@
         target_plan=None,
         bundle='arm',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         prerequisites=['bluetooth'],
         hard_reboot_on_failure=True,
         timeout=88200)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.arm.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases b/server/site_tests/cheets_CTS_P/control.internal.arm.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases
index 5a82eda..98b1fad 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.arm.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases
+++ b/server/site_tests/cheets_CTS_P/control.internal.arm.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.arm.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsFragmentTestCases, CtsFragmentTestCasesSdk26, CtsGestureTestCases, CtsGpuToolsHostTestCases, CtsGraphicsTestCases, CtsHardwareTestCases, CtsHarmfulAppWarningHostTestCases, CtsHiddenApiBlacklistApi27TestCases, CtsHiddenApiBlacklistCurrentApiTestCases, CtsHiddenApiBlacklistDebugClassTestCases, CtsHiddenApiKillswitchDebugClassTestCases, CtsHiddenApiKillswitchWhitelistTestCases, CtsHiddenApiKillswitchWildcardTestCases, CtsHostTzDataTests, CtsHostsideNetworkTests, CtsHostsideNumberBlockingTestCases, CtsHostsideTvTests, CtsHostsideWebViewTests, CtsIcuTestCases, CtsIncidentHostTestCases, CtsInlineMockingTestCases, CtsInputMethodServiceHostTestCases, CtsInputMethodTestCases, CtsIntentSignatureTestCases, CtsJankDeviceTestCases, CtsJdwpSecurityHostTestCases, CtsJdwpTestCases, CtsJniTestCases, CtsJobSchedulerSharedUidTestCases, CtsJobSchedulerTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -38,6 +30,7 @@
         target_plan=None,
         bundle='arm',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         timeout=61200)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.arm.all.CtsMediaTestCases_-_CtsMediaTestCases.32 b/server/site_tests/cheets_CTS_P/control.internal.arm.all.CtsMediaTestCases_-_CtsMediaTestCases.32
index 8605239..3733ea3 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.arm.all.CtsMediaTestCases_-_CtsMediaTestCases.32
+++ b/server/site_tests/cheets_CTS_P/control.internal.arm.all.CtsMediaTestCases_-_CtsMediaTestCases.32
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.arm.all.CtsMediaTestCases_-_CtsMediaTestCases.32'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -39,6 +31,7 @@
         target_plan=None,
         bundle='arm',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         timeout=36000)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.arm.all.CtsMediaTestCases_-_CtsMediaTestCases.64 b/server/site_tests/cheets_CTS_P/control.internal.arm.all.CtsMediaTestCases_-_CtsMediaTestCases.64
index 69b15c0..93d4390 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.arm.all.CtsMediaTestCases_-_CtsMediaTestCases.64
+++ b/server/site_tests/cheets_CTS_P/control.internal.arm.all.CtsMediaTestCases_-_CtsMediaTestCases.64
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.arm.all.CtsMediaTestCases_-_CtsMediaTestCases.64'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -39,6 +31,7 @@
         target_plan=None,
         bundle='arm',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         timeout=36000)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.arm.all.CtsMidiTestCases_-_CtsSecurityBulletinHostTestCases b/server/site_tests/cheets_CTS_P/control.internal.arm.all.CtsMidiTestCases_-_CtsSecurityBulletinHostTestCases
index 72eb148..8bb5bb1 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.arm.all.CtsMidiTestCases_-_CtsSecurityBulletinHostTestCases
+++ b/server/site_tests/cheets_CTS_P/control.internal.arm.all.CtsMidiTestCases_-_CtsSecurityBulletinHostTestCases
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.arm.all.CtsMidiTestCases_-_CtsSecurityBulletinHostTestCases'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMidiTestCases, CtsMockingDebuggableTestCases, CtsMockingTestCases, CtsMonkeyTestCases, CtsMultiUserHostTestCases, CtsMultiUserTestCases, CtsNNAPITestCases, CtsNativeHardwareTestCases, CtsNativeMediaAAudioTestCases, CtsNativeMediaSlTestCases, CtsNativeMediaXaTestCases, CtsNativeNetTestCases, CtsNdefTestCases, CtsNetSecConfigAttributeTestCases, CtsNetSecConfigBasicDebugDisabledTestCases, CtsNetSecConfigBasicDebugEnabledTestCases, CtsNetSecConfigBasicDomainConfigTestCases, CtsNetSecConfigCleartextTrafficTestCases, CtsNetSecConfigDownloadManagerTestCases, CtsNetSecConfigInvalidPinTestCases, CtsNetSecConfigNestedDomainConfigTestCases, CtsNetSecConfigPrePCleartextTrafficTestCases, CtsNetSecConfigResourcesSrcTestCases, CtsNetSecPolicyUsesCleartextTrafficFalseTestCases, CtsNetSecPolicyUsesCleartextTrafficTrueTestCases, CtsNetSecPolicyUsesCleartextTrafficUnspecifiedTestCases, CtsNetTestCases, CtsNetTestCasesLegacyApi22, CtsNetTestCasesLegacyPermission22, CtsOmapiTestCases, CtsOpenGLTestCases, CtsOpenGlPerf2TestCases, CtsOpenGlPerfTestCases, CtsOsHostTestCases, CtsOsTestCases, CtsPdfTestCases, CtsPerfettoTestCases, CtsPermission2TestCases, CtsPermissionTestCases, CtsPreference2TestCases, CtsPreferenceTestCases, CtsPrintTestCases, CtsProtoTestCases, CtsProviderTestCases, CtsRenderscriptLegacyTestCases, CtsRenderscriptTestCases, CtsRsBlasTestCases, CtsRsCppTestCases, CtsSampleDeviceTestCases, CtsSampleHostTestCases, CtsSaxTestCases, CtsSeccompHostTestCases, CtsSecureElementAccessControlTestCases1, CtsSecureElementAccessControlTestCases2, CtsSecureElementAccessControlTestCases3, CtsSecurityBulletinHostTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -38,6 +30,7 @@
         target_plan=None,
         bundle='arm',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         precondition_commands=['android-sh -c \'setprop ctl.start mdnsd\''],
         timeout=106200)
 
diff --git a/server/site_tests/cheets_CTS_P/control.internal.x86.CtsApp b/server/site_tests/cheets_CTS_P/control.internal.x86.CtsApp
index 3781e02..fbb2957 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.x86.CtsApp
+++ b/server/site_tests/cheets_CTS_P/control.internal.x86.CtsApp
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.x86.CtsApp'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsAppComponentFactoryTestCases, CtsAppSecurityHostTestCases, CtsAppTestCases, CtsAppUsageHostTestCases, CtsAppWidgetTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -38,6 +30,7 @@
         target_plan=None,
         bundle='x86',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         timeout=23400)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.x86.CtsBluetoothTestCases b/server/site_tests/cheets_CTS_P/control.internal.x86.CtsBluetoothTestCases
index 3d5a6c7..e153f4a 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.x86.CtsBluetoothTestCases
+++ b/server/site_tests/cheets_CTS_P/control.internal.x86.CtsBluetoothTestCases
@@ -16,10 +16,14 @@
 PY_VERSION = 3
 DOC = 'Run module CtsBluetoothTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
+# For local debugging, if your test setup doesn't have servo, REMOVE these
+# two lines.
 args_dict = server_utils.args_to_dict(args)
 servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
 
 def run_TS(machine):
+    # REMOVE 'servo_args=servo_args' arg for local debugging if your test
+    # setup doesn't have servo.
     try:
         host_list = [hosts.create_host(machine, servo_args=servo_args)]
     except:
diff --git a/server/site_tests/cheets_CTS_P/control.internal.x86.CtsJobScheduler b/server/site_tests/cheets_CTS_P/control.internal.x86.CtsJobScheduler
index 8992bca..2406e70 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.x86.CtsJobScheduler
+++ b/server/site_tests/cheets_CTS_P/control.internal.x86.CtsJobScheduler
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.x86.CtsJobScheduler'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsJobSchedulerSharedUidTestCases, CtsJobSchedulerTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -37,6 +29,7 @@
         target_plan=None,
         bundle='x86',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         timeout=5400)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.x86.CtsMediaStressTestCases b/server/site_tests/cheets_CTS_P/control.internal.x86.CtsMediaStressTestCases
index 2e71fec..9b348e3 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.x86.CtsMediaStressTestCases
+++ b/server/site_tests/cheets_CTS_P/control.internal.x86.CtsMediaStressTestCases
@@ -30,6 +30,7 @@
         target_plan=None,
         bundle='x86',
         uri='DEV',
+        precondition_commands=['cras_test_client --mute 1'],
         timeout=18000)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.x86.CtsMediaTestCases.32 b/server/site_tests/cheets_CTS_P/control.internal.x86.CtsMediaTestCases.32
index ed674d1..13f2c67 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.x86.CtsMediaTestCases.32
+++ b/server/site_tests/cheets_CTS_P/control.internal.x86.CtsMediaTestCases.32
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.x86.CtsMediaTestCases.32'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -38,6 +30,8 @@
         target_plan=None,
         bundle='x86',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
+        precondition_commands=['cras_test_client --mute 1'],
         timeout=36000)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.x86.CtsMediaTestCases.64 b/server/site_tests/cheets_CTS_P/control.internal.x86.CtsMediaTestCases.64
index e26b5fd..e0901b3 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.x86.CtsMediaTestCases.64
+++ b/server/site_tests/cheets_CTS_P/control.internal.x86.CtsMediaTestCases.64
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.x86.CtsMediaTestCases.64'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -38,6 +30,8 @@
         target_plan=None,
         bundle='x86',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
+        precondition_commands=['cras_test_client --mute 1'],
         timeout=36000)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.x86.CtsMediaTestCases.ctshardware b/server/site_tests/cheets_CTS_P/control.internal.x86.CtsMediaTestCases.ctshardware
index fe0ab8b..6aa083a 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.x86.CtsMediaTestCases.ctshardware
+++ b/server/site_tests/cheets_CTS_P/control.internal.x86.CtsMediaTestCases.ctshardware
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.x86.CtsMediaTestCases.ctshardware'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -38,6 +30,7 @@
         target_plan=None,
         bundle='x86',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         timeout=36000)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.x86.CtsOs b/server/site_tests/cheets_CTS_P/control.internal.x86.CtsOs
index c426684..f9fc32d 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.x86.CtsOs
+++ b/server/site_tests/cheets_CTS_P/control.internal.x86.CtsOs
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.x86.CtsOs'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsOsHostTestCases, CtsOsTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -37,6 +29,7 @@
         target_plan=None,
         bundle='x86',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         timeout=5400)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.x86.CtsProviderTestCases b/server/site_tests/cheets_CTS_P/control.internal.x86.CtsProviderTestCases
index 55bb5c9..a1bdd18 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.x86.CtsProviderTestCases
+++ b/server/site_tests/cheets_CTS_P/control.internal.x86.CtsProviderTestCases
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.x86.CtsProviderTestCases'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsProviderTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -37,6 +29,7 @@
         target_plan=None,
         bundle='x86',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         timeout=3600)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.x86.all.CtsAdminPackageInstallerTestCases_-_CtsCameraApi25TestCases b/server/site_tests/cheets_CTS_P/control.internal.x86.all.CtsAdminPackageInstallerTestCases_-_CtsCameraApi25TestCases
index 23488de..40b0efa 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.x86.all.CtsAdminPackageInstallerTestCases_-_CtsCameraApi25TestCases
+++ b/server/site_tests/cheets_CTS_P/control.internal.x86.all.CtsAdminPackageInstallerTestCases_-_CtsCameraApi25TestCases
@@ -16,10 +16,14 @@
 PY_VERSION = 3
 DOC = 'Run module CtsAdminPackageInstallerTestCases, CtsAdminTestCases, CtsAlarmClockTestCases, CtsAlarmManagerTestCases, CtsAndroidAppTestCases, CtsAndroidTestBase27ApiSignatureTestCases, CtsAndroidTestMockCurrentApiSignatureTestCases, CtsAndroidTestRunnerCurrentApiSignatureTestCases, CtsAnimationTestCases, CtsApacheHttpLegacy27ApiSignatureTestCases, CtsApacheHttpLegacyCurrentApiSignatureTestCases, CtsApacheHttpLegacyUsesLibraryApiSignatureTestCases, CtsAppComponentFactoryTestCases, CtsAppSecurityHostTestCases, CtsAppTestCases, CtsAppUsageHostTestCases, CtsAppWidgetTestCases, CtsAslrMallocTestCases, CtsAssistTestCases, CtsAtraceHostTestCases, CtsAutoFillServiceTestCases, CtsBackgroundRestrictionsTestCases, CtsBackupHostTestCases, CtsBackupTestCases, CtsBatterySavingTestCases, CtsBionicTestCases, CtsBluetoothTestCases, CtsBootStatsTestCases, CtsCalendarcommon2TestCases, CtsCameraApi25TestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
+# For local debugging, if your test setup doesn't have servo, REMOVE these
+# two lines.
 args_dict = server_utils.args_to_dict(args)
 servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
 
 def run_TS(machine):
+    # REMOVE 'servo_args=servo_args' arg for local debugging if your test
+    # setup doesn't have servo.
     try:
         host_list = [hosts.create_host(machine, servo_args=servo_args)]
     except:
@@ -39,6 +43,7 @@
         target_plan=None,
         bundle='x86',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         prerequisites=['bluetooth'],
         hard_reboot_on_failure=True,
         timeout=88200)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.x86.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases b/server/site_tests/cheets_CTS_P/control.internal.x86.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases
index 9af7efd..9f02bc4 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.x86.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases
+++ b/server/site_tests/cheets_CTS_P/control.internal.x86.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.x86.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsFragmentTestCases, CtsFragmentTestCasesSdk26, CtsGestureTestCases, CtsGpuToolsHostTestCases, CtsGraphicsTestCases, CtsHardwareTestCases, CtsHarmfulAppWarningHostTestCases, CtsHiddenApiBlacklistApi27TestCases, CtsHiddenApiBlacklistCurrentApiTestCases, CtsHiddenApiBlacklistDebugClassTestCases, CtsHiddenApiKillswitchDebugClassTestCases, CtsHiddenApiKillswitchWhitelistTestCases, CtsHiddenApiKillswitchWildcardTestCases, CtsHostTzDataTests, CtsHostsideNetworkTests, CtsHostsideNumberBlockingTestCases, CtsHostsideTvTests, CtsHostsideWebViewTests, CtsIcuTestCases, CtsIncidentHostTestCases, CtsInlineMockingTestCases, CtsInputMethodServiceHostTestCases, CtsInputMethodTestCases, CtsIntentSignatureTestCases, CtsJankDeviceTestCases, CtsJdwpSecurityHostTestCases, CtsJdwpTestCases, CtsJniTestCases, CtsJobSchedulerSharedUidTestCases, CtsJobSchedulerTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -38,6 +30,7 @@
         target_plan=None,
         bundle='x86',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         timeout=61200)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.x86.all.CtsMediaTestCases_-_CtsMediaTestCases.32 b/server/site_tests/cheets_CTS_P/control.internal.x86.all.CtsMediaTestCases_-_CtsMediaTestCases.32
index 909c4e8..85d31b9 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.x86.all.CtsMediaTestCases_-_CtsMediaTestCases.32
+++ b/server/site_tests/cheets_CTS_P/control.internal.x86.all.CtsMediaTestCases_-_CtsMediaTestCases.32
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.x86.all.CtsMediaTestCases_-_CtsMediaTestCases.32'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -39,6 +31,7 @@
         target_plan=None,
         bundle='x86',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         timeout=36000)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.x86.all.CtsMediaTestCases_-_CtsMediaTestCases.64 b/server/site_tests/cheets_CTS_P/control.internal.x86.all.CtsMediaTestCases_-_CtsMediaTestCases.64
index efd5dfd..59ea1b6 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.x86.all.CtsMediaTestCases_-_CtsMediaTestCases.64
+++ b/server/site_tests/cheets_CTS_P/control.internal.x86.all.CtsMediaTestCases_-_CtsMediaTestCases.64
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.x86.all.CtsMediaTestCases_-_CtsMediaTestCases.64'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -39,6 +31,7 @@
         target_plan=None,
         bundle='x86',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         timeout=36000)
 
 parallel_simple(run_TS, machines)
diff --git a/server/site_tests/cheets_CTS_P/control.internal.x86.all.CtsMidiTestCases_-_CtsSecurityBulletinHostTestCases b/server/site_tests/cheets_CTS_P/control.internal.x86.all.CtsMidiTestCases_-_CtsSecurityBulletinHostTestCases
index cb078f4..3a05f5b 100644
--- a/server/site_tests/cheets_CTS_P/control.internal.x86.all.CtsMidiTestCases_-_CtsSecurityBulletinHostTestCases
+++ b/server/site_tests/cheets_CTS_P/control.internal.x86.all.CtsMidiTestCases_-_CtsSecurityBulletinHostTestCases
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_P.internal.x86.all.CtsMidiTestCases_-_CtsSecurityBulletinHostTestCases'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMidiTestCases, CtsMockingDebuggableTestCases, CtsMockingTestCases, CtsMonkeyTestCases, CtsMultiUserHostTestCases, CtsMultiUserTestCases, CtsNNAPITestCases, CtsNativeHardwareTestCases, CtsNativeMediaAAudioTestCases, CtsNativeMediaSlTestCases, CtsNativeMediaXaTestCases, CtsNativeNetTestCases, CtsNdefTestCases, CtsNetSecConfigAttributeTestCases, CtsNetSecConfigBasicDebugDisabledTestCases, CtsNetSecConfigBasicDebugEnabledTestCases, CtsNetSecConfigBasicDomainConfigTestCases, CtsNetSecConfigCleartextTrafficTestCases, CtsNetSecConfigDownloadManagerTestCases, CtsNetSecConfigInvalidPinTestCases, CtsNetSecConfigNestedDomainConfigTestCases, CtsNetSecConfigPrePCleartextTrafficTestCases, CtsNetSecConfigResourcesSrcTestCases, CtsNetSecPolicyUsesCleartextTrafficFalseTestCases, CtsNetSecPolicyUsesCleartextTrafficTrueTestCases, CtsNetSecPolicyUsesCleartextTrafficUnspecifiedTestCases, CtsNetTestCases, CtsNetTestCasesLegacyApi22, CtsNetTestCasesLegacyPermission22, CtsOmapiTestCases, CtsOpenGLTestCases, CtsOpenGlPerf2TestCases, CtsOpenGlPerfTestCases, CtsOsHostTestCases, CtsOsTestCases, CtsPdfTestCases, CtsPerfettoTestCases, CtsPermission2TestCases, CtsPermissionTestCases, CtsPreference2TestCases, CtsPreferenceTestCases, CtsPrintTestCases, CtsProtoTestCases, CtsProviderTestCases, CtsRenderscriptLegacyTestCases, CtsRenderscriptTestCases, CtsRsBlasTestCases, CtsRsCppTestCases, CtsSampleDeviceTestCases, CtsSampleHostTestCases, CtsSaxTestCases, CtsSeccompHostTestCases, CtsSecureElementAccessControlTestCases1, CtsSecureElementAccessControlTestCases2, CtsSecureElementAccessControlTestCases3, CtsSecurityBulletinHostTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_P',
         hosts=host_list,
@@ -38,6 +30,7 @@
         target_plan=None,
         bundle='x86',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         precondition_commands=['android-sh -c \'setprop ctl.start mdnsd\''],
         timeout=106200)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.arm.CtsApp b/server/site_tests/cheets_CTS_R/control.internal.arm.CtsApp
index ab64e53..4a182ff 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.arm.CtsApp
+++ b/server/site_tests/cheets_CTS_R/control.internal.arm.CtsApp
@@ -16,10 +16,14 @@
 PY_VERSION = 3
 DOC = 'Run module CtsAppBindingHostTestCases, CtsAppBindingHostTestCases[secondary_user], CtsAppCompatHostTestCases, CtsAppCompatHostTestCases[instant], CtsAppCompatHostTestCases[secondary_user], CtsAppComponentFactoryTestCases, CtsAppComponentFactoryTestCases[instant], CtsAppComponentFactoryTestCases[secondary_user], CtsAppEnumerationTestCases, CtsAppEnumerationTestCases[secondary_user], CtsAppExitTestCases, CtsAppExitTestCases[instant], CtsAppExitTestCases[secondary_user], CtsAppIntegrityDeviceTestCases, CtsAppOpsTestCases, CtsAppOpsTestCases[instant], CtsAppOpsTestCases[secondary_user], CtsAppPredictionServiceTestCases, CtsAppPredictionServiceTestCases[secondary_user], CtsAppSecurityHostTestCases, CtsAppSecurityHostTestCases[secondary_user], CtsAppTestCases, CtsAppTestCases[instant], CtsAppTestCases[secondary_user], CtsAppUsageHostTestCases, CtsAppUsageHostTestCases[instant], CtsAppUsageHostTestCases[secondary_user], CtsAppWidgetTestCases, CtsAppWidgetTestCases[instant], CtsAppWidgetTestCases[secondary_user] of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
+# For local debugging, if your test setup doesn't have servo, REMOVE these
+# two lines.
 args_dict = server_utils.args_to_dict(args)
 servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
 
 def run_TS(machine):
+    # REMOVE 'servo_args=servo_args' arg for local debugging if your test
+    # setup doesn't have servo.
     try:
         host_list = [hosts.create_host(machine, servo_args=servo_args)]
     except:
@@ -38,6 +42,7 @@
         target_plan=None,
         bundle='arm',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         hard_reboot_on_failure=True,
         timeout=61200)
diff --git a/server/site_tests/cheets_CTS_R/control.internal.arm.CtsJobScheduler b/server/site_tests/cheets_CTS_R/control.internal.arm.CtsJobScheduler
index fa971fe..6415307 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.arm.CtsJobScheduler
+++ b/server/site_tests/cheets_CTS_R/control.internal.arm.CtsJobScheduler
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.arm.CtsJobScheduler'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsJobSchedulerSharedUidTestCases, CtsJobSchedulerSharedUidTestCases[secondary_user], CtsJobSchedulerTestCases, CtsJobSchedulerTestCases[secondary_user] of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -37,6 +29,7 @@
         target_plan=None,
         bundle='arm',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=9000)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.arm.CtsMediaTestCases.32 b/server/site_tests/cheets_CTS_R/control.internal.arm.CtsMediaTestCases.32
index 7271b05..68969cd 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.arm.CtsMediaTestCases.32
+++ b/server/site_tests/cheets_CTS_R/control.internal.arm.CtsMediaTestCases.32
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.arm.CtsMediaTestCases.32'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaTestCases, CtsMediaTestCases[instant] of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -38,6 +30,7 @@
         target_plan=None,
         bundle='arm',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=39600)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.arm.CtsMediaTestCases.64 b/server/site_tests/cheets_CTS_R/control.internal.arm.CtsMediaTestCases.64
index b784c4c..13f27e0 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.arm.CtsMediaTestCases.64
+++ b/server/site_tests/cheets_CTS_R/control.internal.arm.CtsMediaTestCases.64
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.arm.CtsMediaTestCases.64'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaTestCases, CtsMediaTestCases[instant] of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -38,6 +30,7 @@
         target_plan=None,
         bundle='arm',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=39600)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.arm.CtsMediaTestCases.ctshardware b/server/site_tests/cheets_CTS_R/control.internal.arm.CtsMediaTestCases.ctshardware
index a164f68..23cb978 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.arm.CtsMediaTestCases.ctshardware
+++ b/server/site_tests/cheets_CTS_R/control.internal.arm.CtsMediaTestCases.ctshardware
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.arm.CtsMediaTestCases.ctshardware'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -38,6 +30,7 @@
         target_plan=None,
         bundle='arm',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=36000)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.arm.CtsOs b/server/site_tests/cheets_CTS_R/control.internal.arm.CtsOs
index 3d5d834..d793db8 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.arm.CtsOs
+++ b/server/site_tests/cheets_CTS_R/control.internal.arm.CtsOs
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.arm.CtsOs'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsOsHostTestCases, CtsOsHostTestCases[instant], CtsOsHostTestCases[secondary_user], CtsOsTestCases, CtsOsTestCases[instant] of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -37,6 +29,7 @@
         target_plan=None,
         bundle='arm',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=10800)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.arm.CtsProvider b/server/site_tests/cheets_CTS_R/control.internal.arm.CtsProvider
index 36e3c59..e49cc91 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.arm.CtsProvider
+++ b/server/site_tests/cheets_CTS_R/control.internal.arm.CtsProvider
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.arm.CtsProvider'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsProviderTestCases, CtsProviderTestCases[secondary_user], CtsProviderUiTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -37,6 +29,7 @@
         target_plan=None,
         bundle='arm',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=7200)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.arm.CtsSensor b/server/site_tests/cheets_CTS_R/control.internal.arm.CtsSensor
index 2e7b565..15c6c66 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.arm.CtsSensor
+++ b/server/site_tests/cheets_CTS_R/control.internal.arm.CtsSensor
@@ -16,10 +16,14 @@
 PY_VERSION = 3
 DOC = 'Run module CtsSensorTestCases, CtsSensorTestCases[instant], CtsSensorTestCases[secondary_user] of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
+# For local debugging, if your test setup doesn't have servo, REMOVE these
+# two lines.
 args_dict = server_utils.args_to_dict(args)
 servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
 
 def run_TS(machine):
+    # REMOVE 'servo_args=servo_args' arg for local debugging if your test
+    # setup doesn't have servo.
     try:
         host_list = [hosts.create_host(machine, servo_args=servo_args)]
     except:
diff --git a/server/site_tests/cheets_CTS_R/control.internal.arm.CtsSensorTestCases.ctshardware b/server/site_tests/cheets_CTS_R/control.internal.arm.CtsSensorTestCases.ctshardware
index f8dd43a..7af2ce9 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.arm.CtsSensorTestCases.ctshardware
+++ b/server/site_tests/cheets_CTS_R/control.internal.arm.CtsSensorTestCases.ctshardware
@@ -16,10 +16,14 @@
 PY_VERSION = 3
 DOC = 'Run module CtsSensorTestCases of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
+# For local debugging, if your test setup doesn't have servo, REMOVE these
+# two lines.
 args_dict = server_utils.args_to_dict(args)
 servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
 
 def run_TS(machine):
+    # REMOVE 'servo_args=servo_args' arg for local debugging if your test
+    # setup doesn't have servo.
     try:
         host_list = [hosts.create_host(machine, servo_args=servo_args)]
     except:
diff --git a/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsAccessibilityTestCases_-_CtsCameraApi25TestCases b/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsAccessibilityTestCases_-_CtsCameraApi25TestCases
index a027af2..73e3497 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsAccessibilityTestCases_-_CtsCameraApi25TestCases
+++ b/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsAccessibilityTestCases_-_CtsCameraApi25TestCases
@@ -16,10 +16,14 @@
 PY_VERSION = 3
 DOC = 'Run module CtsAccessibilityTestCases, CtsAccessibilityTestCases[instant], CtsAccessibilityTestCases[secondary_user], CtsAccountManagerTestCases, CtsAccountManagerTestCases[instant], CtsAccountManagerTestCases[secondary_user], CtsAccountsHostTestCases, CtsAccountsHostTestCases[instant], CtsAccountsHostTestCases[secondary_user], CtsActivityManagerBackgroundActivityTestCases, CtsActivityManagerBackgroundActivityTestCases[secondary_user], CtsAdbHostTestCases, CtsAdbHostTestCases[secondary_user], CtsAdbManagerHostTestCases, CtsAdbManagerHostTestCases[secondary_user], CtsAdminPackageInstallerTestCases, CtsAdminTestCases, CtsAlarmManagerTestCases, CtsAlarmManagerTestCases[instant], CtsAlarmManagerTestCases[secondary_user], CtsAndroidAppTestCases, CtsAndroidAppTestCases[instant], CtsAndroidAppTestCases[secondary_user], CtsAndroidTestBase28ApiSignatureTestCases, CtsAndroidTestBase28ApiSignatureTestCases[instant], CtsAndroidTestBase28ApiSignatureTestCases[secondary_user], CtsAndroidTestBaseCurrentApiSignatureTestCases, CtsAndroidTestBaseCurrentApiSignatureTestCases[instant], CtsAndroidTestBaseCurrentApiSignatureTestCases[secondary_user], CtsAndroidTestMockCurrentApiSignatureTestCases, CtsAndroidTestMockCurrentApiSignatureTestCases[instant], CtsAndroidTestMockCurrentApiSignatureTestCases[secondary_user], CtsAndroidTestRunnerCurrentApiSignatureTestCases, CtsAndroidTestRunnerCurrentApiSignatureTestCases[instant], CtsAndroidTestRunnerCurrentApiSignatureTestCases[secondary_user], CtsAngleIntegrationHostTestCases, CtsAngleIntegrationHostTestCases[instant], CtsAngleIntegrationHostTestCases[secondary_user], CtsAnimationTestCases, CtsAnimationTestCases[instant], CtsAnimationTestCases[secondary_user], CtsApacheHttpLegacy27ApiSignatureTestCases, CtsApacheHttpLegacy27ApiSignatureTestCases[instant], CtsApacheHttpLegacy27ApiSignatureTestCases[secondary_user], CtsApacheHttpLegacyCurrentApiSignatureTestCases, CtsApacheHttpLegacyCurrentApiSignatureTestCases[instant], CtsApacheHttpLegacyCurrentApiSignatureTestCases[secondary_user], CtsApacheHttpLegacyUsesLibraryApiSignatureTestCases, CtsApacheHttpLegacyUsesLibraryApiSignatureTestCases[instant], CtsApacheHttpLegacyUsesLibraryApiSignatureTestCases[secondary_user], CtsApexTestCases, CtsApexTestCases[secondary_user], CtsAppBindingHostTestCases, CtsAppBindingHostTestCases[secondary_user], CtsAppCompatHostTestCases, CtsAppCompatHostTestCases[instant], CtsAppCompatHostTestCases[secondary_user], CtsAppComponentFactoryTestCases, CtsAppComponentFactoryTestCases[instant], CtsAppComponentFactoryTestCases[secondary_user], CtsAppEnumerationTestCases, CtsAppEnumerationTestCases[secondary_user], CtsAppExitTestCases, CtsAppExitTestCases[instant], CtsAppExitTestCases[secondary_user], CtsAppIntegrityDeviceTestCases, CtsAppOpsTestCases, CtsAppOpsTestCases[instant], CtsAppOpsTestCases[secondary_user], CtsAppPredictionServiceTestCases, CtsAppPredictionServiceTestCases[secondary_user], CtsAppSecurityHostTestCases, CtsAppSecurityHostTestCases[secondary_user], CtsAppTestCases, CtsAppTestCases[instant], CtsAppTestCases[secondary_user], CtsAppUsageHostTestCases, CtsAppUsageHostTestCases[instant], CtsAppUsageHostTestCases[secondary_user], CtsAppWidgetTestCases, CtsAppWidgetTestCases[instant], CtsAppWidgetTestCases[secondary_user], CtsAslrMallocTestCases, CtsAslrMallocTestCases[secondary_user], CtsAssistTestCases, CtsAssistTestCases[instant], CtsAssistTestCases[secondary_user], CtsAtomicInstallTestCases, CtsAtomicInstallTestCases[secondary_user], CtsAtraceHostTestCases, CtsAtraceHostTestCases[instant], CtsAtraceHostTestCases[secondary_user], CtsAttentionServiceDeviceTestCases, CtsAttentionServiceDeviceTestCases[secondary_user], CtsAutoFillServiceTestCases, CtsAutoFillServiceTestCases[instant], CtsAutoFillServiceTestCases[secondary_user], CtsBackgroundRestrictionsTestCases, CtsBackgroundRestrictionsTestCases[instant], CtsBackgroundRestrictionsTestCases[secondary_user], CtsBackupHostTestCases, CtsBackupTestCases, CtsBatterySavingTestCases, CtsBatterySavingTestCases[secondary_user], CtsBionicAppTestCases, CtsBionicAppTestCases[instant], CtsBionicAppTestCases[secondary_user], CtsBionicTestCases, CtsBionicTestCases[secondary_user], CtsBlobStoreHostTestCases, CtsBlobStoreHostTestCases[secondary_user], CtsBlobStoreHostTestHelper, CtsBlobStoreHostTestHelper[secondary_user], CtsBlobStoreTestCases, CtsBlobStoreTestCases[secondary_user], CtsBlobStoreTestHelper, CtsBlobStoreTestHelperDiffSig, CtsBlobStoreTestHelperDiffSig2, CtsBlobStoreTestHelperDiffSig2[secondary_user], CtsBlobStoreTestHelperDiffSig[secondary_user], CtsBlobStoreTestHelper[secondary_user], CtsBluetoothTestCases, CtsBluetoothTestCases[secondary_user], CtsBootStatsTestCases, CtsBootStatsTestCases[secondary_user], CtsCalendarProviderTestCases, CtsCalendarProviderTestCases[secondary_user], CtsCalendarcommon2TestCases, CtsCalendarcommon2TestCases[secondary_user], CtsCameraApi25TestCases, CtsCameraApi25TestCases[secondary_user] of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
+# For local debugging, if your test setup doesn't have servo, REMOVE these
+# two lines.
 args_dict = server_utils.args_to_dict(args)
 servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
 
 def run_TS(machine):
+    # REMOVE 'servo_args=servo_args' arg for local debugging if your test
+    # setup doesn't have servo.
     try:
         host_list = [hosts.create_host(machine, servo_args=servo_args)]
     except:
@@ -39,6 +43,7 @@
         target_plan=None,
         bundle='arm',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         hard_reboot_on_failure=True,
         timeout=172800)
diff --git a/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases b/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases
index 45256f2..5d02e1e 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases
+++ b/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.arm.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsFragmentTestCases, CtsFragmentTestCasesSdk26, CtsFragmentTestCasesSdk26[instant], CtsFragmentTestCasesSdk26[secondary_user], CtsFragmentTestCases[instant], CtsFragmentTestCases[secondary_user], CtsFsMgrTestCases, CtsFsMgrTestCases[secondary_user], CtsGestureTestCases, CtsGestureTestCases[instant], CtsGestureTestCases[secondary_user], CtsGpuProfilingDataTestCases, CtsGpuProfilingDataTestCases[secondary_user], CtsGpuToolsHostTestCases, CtsGpuToolsHostTestCases[secondary_user], CtsGraphicsTestCases, CtsGraphicsTestCases[instant], CtsGraphicsTestCases[secondary_user], CtsGwpAsanTestCases, CtsGwpAsanTestCases[instant], CtsGwpAsanTestCases[secondary_user], CtsHardwareTestCases, CtsHardwareTestCases[secondary_user], CtsHarmfulAppWarningHostTestCases, CtsHarmfulAppWarningHostTestCases[secondary_user], CtsHdmiCecHostTestCases, CtsHdmiCecHostTestCases[secondary_user], CtsHiddenApiBlacklistApi27TestCases, CtsHiddenApiBlacklistApi27TestCases[secondary_user], CtsHiddenApiBlacklistApi28TestCases, CtsHiddenApiBlacklistApi28TestCases[secondary_user], CtsHiddenApiBlacklistCurrentApiTestCases, CtsHiddenApiBlacklistCurrentApiTestCases[secondary_user], CtsHiddenApiBlacklistDebugClassTestCases, CtsHiddenApiBlacklistDebugClassTestCases[secondary_user], CtsHiddenApiBlacklistTestApiTestCases, CtsHiddenApiBlacklistTestApiTestCases[secondary_user], CtsHiddenApiKillswitchDebugClassTestCases, CtsHiddenApiKillswitchDebugClassTestCases[instant], CtsHiddenApiKillswitchDebugClassTestCases[secondary_user], CtsHiddenApiKillswitchWhitelistTestCases, CtsHiddenApiKillswitchWhitelistTestCases[instant], CtsHiddenApiKillswitchWhitelistTestCases[secondary_user], CtsHiddenApiKillswitchWildcardTestCases, CtsHiddenApiKillswitchWildcardTestCases[instant], CtsHiddenApiKillswitchWildcardTestCases[secondary_user], CtsHostTzDataTests, CtsHostTzDataTests[secondary_user], CtsHostsideNetworkTests, CtsHostsideNetworkTests[instant], CtsHostsideNetworkTests[secondary_user], CtsHostsideNumberBlockingTestCases, CtsHostsideNumberBlockingTestCases[secondary_user], CtsHostsideTvTests, CtsHostsideTvTests[secondary_user], CtsHostsideWebViewTests, CtsHostsideWebViewTests[instant], CtsHostsideWebViewTests[secondary_user], CtsIcuTestCases, CtsIcuTestCases[secondary_user], CtsIdentityTestCases, CtsIdentityTestCases[secondary_user], CtsIkeTestCases, CtsIkeTestCases[secondary_user], CtsIncidentHostTestCases, CtsIncidentHostTestCases[instant], CtsIncrementalInstallHostTestCases, CtsIncrementalInstallHostTestCases[secondary_user], CtsInitTestCases, CtsInitTestCases[secondary_user], CtsInlineMockingTestCases, CtsInlineMockingTestCases[instant], CtsInlineMockingTestCases[secondary_user], CtsInputMethodServiceHostTestCases, CtsInputMethodServiceHostTestCases[instant], CtsInputMethodServiceHostTestCases[secondary_user], CtsInputMethodTestCases, CtsInputMethodTestCases[instant], CtsInputMethodTestCases[secondary_user], CtsInstantAppTests, CtsInstantAppTests[secondary_user], CtsIntentSignatureTestCases, CtsIntentSignatureTestCases[secondary_user], CtsJdwpSecurityHostTestCases, CtsJdwpSecurityHostTestCases[secondary_user], CtsJdwpTestCases, CtsJdwpTestCases[instant], CtsJdwpTestCases[secondary_user], CtsJdwpTunnelHostTestCases, CtsJdwpTunnelHostTestCases[secondary_user], CtsJniTestCases, CtsJniTestCases[instant], CtsJniTestCases[secondary_user], CtsJobSchedulerSharedUidTestCases, CtsJobSchedulerSharedUidTestCases[secondary_user], CtsJobSchedulerTestCases, CtsJobSchedulerTestCases[secondary_user] of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -38,6 +30,7 @@
         target_plan=None,
         bundle='arm',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=172800)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsMediaTestCases_-_CtsMediaTestCases.32 b/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsMediaTestCases_-_CtsMediaTestCases.32
index 429a2fa..7e47f91 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsMediaTestCases_-_CtsMediaTestCases.32
+++ b/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsMediaTestCases_-_CtsMediaTestCases.32
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.arm.all.CtsMediaTestCases_-_CtsMediaTestCases.32'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaTestCases, CtsMediaTestCases[instant] of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -39,6 +31,7 @@
         target_plan=None,
         bundle='arm',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=172800)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsMediaTestCases_-_CtsMediaTestCases.64 b/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsMediaTestCases_-_CtsMediaTestCases.64
index 5f32eea..f217bd7 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsMediaTestCases_-_CtsMediaTestCases.64
+++ b/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsMediaTestCases_-_CtsMediaTestCases.64
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.arm.all.CtsMediaTestCases_-_CtsMediaTestCases.64'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaTestCases, CtsMediaTestCases[instant] of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -39,6 +31,7 @@
         target_plan=None,
         bundle='arm',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=172800)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsMediaV2TestCases_-_CtsProtoTestCases b/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsMediaV2TestCases_-_CtsProtoTestCases
index 4b20c32..e0144a2 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsMediaV2TestCases_-_CtsProtoTestCases
+++ b/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsMediaV2TestCases_-_CtsProtoTestCases
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.arm.all.CtsMediaV2TestCases_-_CtsProtoTestCases'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaV2TestCases, CtsMidiTestCases, CtsMimeMapTestCases, CtsMimeMapTestCases[secondary_user], CtsMockingDebuggableTestCases, CtsMockingDebuggableTestCases[instant], CtsMockingDebuggableTestCases[secondary_user], CtsMockingTestCases, CtsMockingTestCases[instant], CtsMockingTestCases[secondary_user], CtsMonkeyTestCases, CtsMonkeyTestCases[secondary_user], CtsMultiUserHostTestCases, CtsMultiUserHostTestCases[instant], CtsMultiUserHostTestCases[secondary_user], CtsMultiUserTestCases, CtsMultiUserTestCases[instant], CtsMultiUserTestCases[secondary_user], CtsNNAPIBenchmarkTestCases, CtsNNAPIBenchmarkTestCases[instant], CtsNNAPIBenchmarkTestCases[secondary_user], CtsNNAPITestCases, CtsNNAPITestCases[secondary_user], CtsNativeEncryptionTestCases, CtsNativeEncryptionTestCases[instant], CtsNativeEncryptionTestCases[secondary_user], CtsNativeHardwareTestCases, CtsNativeHardwareTestCases[secondary_user], CtsNativeMediaAAudioTestCases, CtsNativeMediaAAudioTestCases[instant], CtsNativeMediaAAudioTestCases[secondary_user], CtsNativeMediaMetricsTestCases, CtsNativeMediaMetricsTestCases[instant], CtsNativeMediaMetricsTestCases[secondary_user], CtsNativeMediaSlTestCases, CtsNativeMediaSlTestCases[instant], CtsNativeMediaSlTestCases[secondary_user], CtsNativeMediaXaTestCases, CtsNativeMediaXaTestCases[instant], CtsNativeMediaXaTestCases[secondary_user], CtsNativeMidiTestCases, CtsNativeMidiTestCases[secondary_user], CtsNativeNetDnsTestCases, CtsNativeNetDnsTestCases[instant], CtsNativeNetDnsTestCases[secondary_user], CtsNativeNetTestCases, CtsNativeNetTestCases[instant], CtsNativeNetTestCases[secondary_user], CtsNdefTestCases, CtsNdefTestCases[secondary_user], CtsNdkBinderTestCases, CtsNdkBinderTestCases[instant], CtsNdkBinderTestCases[secondary_user], CtsNetApi23TestCases, CtsNetApi23TestCases[secondary_user], CtsNetSecConfigAttributeTestCases, CtsNetSecConfigAttributeTestCases[instant], CtsNetSecConfigAttributeTestCases[secondary_user], CtsNetSecConfigBasicDebugDisabledTestCases, CtsNetSecConfigBasicDebugDisabledTestCases[instant], CtsNetSecConfigBasicDebugDisabledTestCases[secondary_user], CtsNetSecConfigBasicDebugEnabledTestCases, CtsNetSecConfigBasicDebugEnabledTestCases[instant], CtsNetSecConfigBasicDebugEnabledTestCases[secondary_user], CtsNetSecConfigBasicDomainConfigTestCases, CtsNetSecConfigBasicDomainConfigTestCases[instant], CtsNetSecConfigBasicDomainConfigTestCases[secondary_user], CtsNetSecConfigCleartextTrafficTestCases, CtsNetSecConfigCleartextTrafficTestCases[instant], CtsNetSecConfigCleartextTrafficTestCases[secondary_user], CtsNetSecConfigDownloadManagerTestCases, CtsNetSecConfigDownloadManagerTestCases[secondary_user], CtsNetSecConfigInvalidPinTestCases, CtsNetSecConfigInvalidPinTestCases[instant], CtsNetSecConfigInvalidPinTestCases[secondary_user], CtsNetSecConfigNestedDomainConfigTestCases, CtsNetSecConfigNestedDomainConfigTestCases[instant], CtsNetSecConfigNestedDomainConfigTestCases[secondary_user], CtsNetSecConfigPrePCleartextTrafficTestCases, CtsNetSecConfigPrePCleartextTrafficTestCases[secondary_user], CtsNetSecConfigResourcesSrcTestCases, CtsNetSecConfigResourcesSrcTestCases[instant], CtsNetSecConfigResourcesSrcTestCases[secondary_user], CtsNetSecPolicyUsesCleartextTrafficFalseTestCases, CtsNetSecPolicyUsesCleartextTrafficFalseTestCases[secondary_user], CtsNetSecPolicyUsesCleartextTrafficTrueTestCases, CtsNetSecPolicyUsesCleartextTrafficTrueTestCases[secondary_user], CtsNetSecPolicyUsesCleartextTrafficUnspecifiedTestCases, CtsNetSecPolicyUsesCleartextTrafficUnspecifiedTestCases[secondary_user], CtsNetTestCases, CtsNetTestCasesInternetPermission, CtsNetTestCasesInternetPermission[instant], CtsNetTestCasesInternetPermission[secondary_user], CtsNetTestCasesLegacyApi22, CtsNetTestCasesLegacyApi22[secondary_user], CtsNetTestCasesLegacyPermission22, CtsNetTestCasesLegacyPermission22[secondary_user], CtsNetTestCasesUpdateStatsPermission, CtsNetTestCasesUpdateStatsPermission[instant], CtsNetTestCasesUpdateStatsPermission[secondary_user], CtsNetTestCases[instant], CtsNetTestCases[secondary_user], CtsNfcTestCases, CtsNfcTestCases[secondary_user], CtsNoPermissionTestCases, CtsNoPermissionTestCases25, CtsNoPermissionTestCases25[secondary_user], CtsNoPermissionTestCases[secondary_user], CtsOmapiTestCases, CtsOmapiTestCases[secondary_user], CtsOpenGLTestCases, CtsOpenGLTestCases[secondary_user], CtsOpenGlPerf2TestCases, CtsOpenGlPerf2TestCases[secondary_user], CtsOpenGlPerfTestCases, CtsOsHostTestCases, CtsOsHostTestCases[instant], CtsOsHostTestCases[secondary_user], CtsOsTestCases, CtsOsTestCases[instant], CtsPackageInstallAppOpDefaultTestCases, CtsPackageInstallAppOpDefaultTestCases[instant], CtsPackageInstallAppOpDefaultTestCases[secondary_user], CtsPackageInstallAppOpDeniedTestCases, CtsPackageInstallAppOpDeniedTestCases[instant], CtsPackageInstallAppOpDeniedTestCases[secondary_user], CtsPackageInstallTestCases, CtsPackageInstallTestCases[instant], CtsPackageInstallTestCases[secondary_user], CtsPackageInstallerTapjackingTestCases, CtsPackageInstallerTapjackingTestCases[secondary_user], CtsPackageUninstallTestCases, CtsPackageUninstallTestCases[secondary_user], CtsPackageWatchdogTestCases, CtsPackageWatchdogTestCases[secondary_user], CtsPdfTestCases, CtsPdfTestCases[instant], CtsPdfTestCases[secondary_user], CtsPerfettoTestCases, CtsPerfettoTestCases[secondary_user], CtsPermission2TestCases, CtsPermission2TestCases[instant], CtsPermission3TestCases, CtsPermission3TestCases[secondary_user], CtsPermissionTestCases, CtsPermissionTestCasesSdk28, CtsPermissionTestCasesSdk28[instant], CtsPermissionTestCasesSdk28[secondary_user], CtsPermissionTestCasesTelephony, CtsPermissionTestCasesTelephony[instant], CtsPermissionTestCasesTelephony[secondary_user], CtsPermissionTestCases[instant], CtsPreferenceTestCases, CtsPreferenceTestCases[instant], CtsPreferenceTestCases[secondary_user], CtsPrintTestCases, CtsPrintTestCases[instant], CtsPrintTestCases[secondary_user], CtsProtoTestCases, CtsProtoTestCases[instant], CtsProtoTestCases[secondary_user] of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -39,6 +31,7 @@
         target_plan=None,
         bundle='arm',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=172800)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsProviderTestCases_-_CtsSecurityBulletinHostTestCases b/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsProviderTestCases_-_CtsSecurityBulletinHostTestCases
index 60a6c93..b0bf1cf 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsProviderTestCases_-_CtsSecurityBulletinHostTestCases
+++ b/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsProviderTestCases_-_CtsSecurityBulletinHostTestCases
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.arm.all.CtsProviderTestCases_-_CtsSecurityBulletinHostTestCases'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsProviderTestCases, CtsProviderTestCases[secondary_user], CtsProviderUiTestCases, CtsQuickAccessWalletTestCases, CtsQuickAccessWalletTestCases[instant], CtsQuickAccessWalletTestCases[secondary_user], CtsRenderscriptLegacyTestCases, CtsRenderscriptLegacyTestCases[secondary_user], CtsRenderscriptTestCases, CtsRenderscriptTestCases[instant], CtsRenderscriptTestCases[secondary_user], CtsResolverServiceTestCases, CtsResolverServiceTestCases[secondary_user], CtsResourcesLoaderTests, CtsResourcesLoaderTests[secondary_user], CtsRoleTestCases, CtsRoleTestCases[secondary_user], CtsRollbackManagerHostTestCases, CtsRsBlasTestCases, CtsRsBlasTestCases[secondary_user], CtsRsCppTestCases, CtsRsCppTestCases[secondary_user], CtsSampleDeviceTestCases, CtsSampleDeviceTestCases[instant], CtsSampleDeviceTestCases[secondary_user], CtsSampleHostTestCases, CtsSampleHostTestCases[secondary_user], CtsSaxTestCases, CtsSaxTestCases[secondary_user], CtsScopedStorageHostTest, CtsScopedStorageHostTest[instant], CtsSdkExtensionsTestCases, CtsSdkExtensionsTestCases[instant], CtsSdkExtensionsTestCases[secondary_user], CtsSeccompHostTestCases, CtsSeccompHostTestCases[instant], CtsSeccompHostTestCases[secondary_user], CtsSecureElementAccessControlTestCases1, CtsSecureElementAccessControlTestCases1[secondary_user], CtsSecureElementAccessControlTestCases2, CtsSecureElementAccessControlTestCases2[secondary_user], CtsSecureElementAccessControlTestCases3, CtsSecureElementAccessControlTestCases3[secondary_user], CtsSecureFrpInstallTestCases, CtsSecureFrpInstallTestCases[secondary_user], CtsSecurityBulletinHostTestCases, CtsSecurityBulletinHostTestCases[secondary_user] of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -38,6 +30,7 @@
         target_plan=None,
         bundle='arm',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=172800)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsSensorTestCases_-_CtsSensorTestCases b/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsSensorTestCases_-_CtsSensorTestCases
index 9dba4c7..c62e510 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsSensorTestCases_-_CtsSensorTestCases
+++ b/server/site_tests/cheets_CTS_R/control.internal.arm.all.CtsSensorTestCases_-_CtsSensorTestCases
@@ -16,10 +16,14 @@
 PY_VERSION = 3
 DOC = 'Run module CtsSensorTestCases, CtsSensorTestCases[instant], CtsSensorTestCases[secondary_user] of the Android Compatibility Test Suite (CTS) using arm ABI in the ARC++ container.'
 
+# For local debugging, if your test setup doesn't have servo, REMOVE these
+# two lines.
 args_dict = server_utils.args_to_dict(args)
 servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
 
 def run_TS(machine):
+    # REMOVE 'servo_args=servo_args' arg for local debugging if your test
+    # setup doesn't have servo.
     try:
         host_list = [hosts.create_host(machine, servo_args=servo_args)]
     except:
diff --git a/server/site_tests/cheets_CTS_R/control.internal.x86.CtsApp b/server/site_tests/cheets_CTS_R/control.internal.x86.CtsApp
index bee8a80..52ba969 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.x86.CtsApp
+++ b/server/site_tests/cheets_CTS_R/control.internal.x86.CtsApp
@@ -16,10 +16,14 @@
 PY_VERSION = 3
 DOC = 'Run module CtsAppBindingHostTestCases, CtsAppBindingHostTestCases[secondary_user], CtsAppCompatHostTestCases, CtsAppCompatHostTestCases[instant], CtsAppCompatHostTestCases[secondary_user], CtsAppComponentFactoryTestCases, CtsAppComponentFactoryTestCases[instant], CtsAppComponentFactoryTestCases[secondary_user], CtsAppEnumerationTestCases, CtsAppEnumerationTestCases[secondary_user], CtsAppExitTestCases, CtsAppExitTestCases[instant], CtsAppExitTestCases[secondary_user], CtsAppIntegrityDeviceTestCases, CtsAppOpsTestCases, CtsAppOpsTestCases[instant], CtsAppOpsTestCases[secondary_user], CtsAppPredictionServiceTestCases, CtsAppPredictionServiceTestCases[secondary_user], CtsAppSecurityHostTestCases, CtsAppSecurityHostTestCases[secondary_user], CtsAppTestCases, CtsAppTestCases[instant], CtsAppTestCases[secondary_user], CtsAppUsageHostTestCases, CtsAppUsageHostTestCases[instant], CtsAppUsageHostTestCases[secondary_user], CtsAppWidgetTestCases, CtsAppWidgetTestCases[instant], CtsAppWidgetTestCases[secondary_user] of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
+# For local debugging, if your test setup doesn't have servo, REMOVE these
+# two lines.
 args_dict = server_utils.args_to_dict(args)
 servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
 
 def run_TS(machine):
+    # REMOVE 'servo_args=servo_args' arg for local debugging if your test
+    # setup doesn't have servo.
     try:
         host_list = [hosts.create_host(machine, servo_args=servo_args)]
     except:
@@ -38,6 +42,7 @@
         target_plan=None,
         bundle='x86',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         hard_reboot_on_failure=True,
         timeout=61200)
diff --git a/server/site_tests/cheets_CTS_R/control.internal.x86.CtsJobScheduler b/server/site_tests/cheets_CTS_R/control.internal.x86.CtsJobScheduler
index 0c614a4..d0461c6 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.x86.CtsJobScheduler
+++ b/server/site_tests/cheets_CTS_R/control.internal.x86.CtsJobScheduler
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.x86.CtsJobScheduler'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsJobSchedulerSharedUidTestCases, CtsJobSchedulerSharedUidTestCases[secondary_user], CtsJobSchedulerTestCases, CtsJobSchedulerTestCases[secondary_user] of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -37,6 +29,7 @@
         target_plan=None,
         bundle='x86',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=9000)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.x86.CtsMediaTestCases.32 b/server/site_tests/cheets_CTS_R/control.internal.x86.CtsMediaTestCases.32
index 038f24f..b87c5c9 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.x86.CtsMediaTestCases.32
+++ b/server/site_tests/cheets_CTS_R/control.internal.x86.CtsMediaTestCases.32
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.x86.CtsMediaTestCases.32'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaTestCases, CtsMediaTestCases[instant] of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -38,6 +30,7 @@
         target_plan=None,
         bundle='x86',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=39600)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.x86.CtsMediaTestCases.64 b/server/site_tests/cheets_CTS_R/control.internal.x86.CtsMediaTestCases.64
index 907bb49..45ab5b7 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.x86.CtsMediaTestCases.64
+++ b/server/site_tests/cheets_CTS_R/control.internal.x86.CtsMediaTestCases.64
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.x86.CtsMediaTestCases.64'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaTestCases, CtsMediaTestCases[instant] of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -38,6 +30,7 @@
         target_plan=None,
         bundle='x86',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=39600)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.x86.CtsMediaTestCases.ctshardware b/server/site_tests/cheets_CTS_R/control.internal.x86.CtsMediaTestCases.ctshardware
index cbfdbf3..ccb9685 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.x86.CtsMediaTestCases.ctshardware
+++ b/server/site_tests/cheets_CTS_R/control.internal.x86.CtsMediaTestCases.ctshardware
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.x86.CtsMediaTestCases.ctshardware'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -38,6 +30,7 @@
         target_plan=None,
         bundle='x86',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=36000)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.x86.CtsOs b/server/site_tests/cheets_CTS_R/control.internal.x86.CtsOs
index 88d7d47..b616a25 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.x86.CtsOs
+++ b/server/site_tests/cheets_CTS_R/control.internal.x86.CtsOs
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.x86.CtsOs'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsOsHostTestCases, CtsOsHostTestCases[instant], CtsOsHostTestCases[secondary_user], CtsOsTestCases, CtsOsTestCases[instant] of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -37,6 +29,7 @@
         target_plan=None,
         bundle='x86',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=10800)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.x86.CtsProvider b/server/site_tests/cheets_CTS_R/control.internal.x86.CtsProvider
index 31407c4..7adb01b 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.x86.CtsProvider
+++ b/server/site_tests/cheets_CTS_R/control.internal.x86.CtsProvider
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.x86.CtsProvider'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsProviderTestCases, CtsProviderTestCases[secondary_user], CtsProviderUiTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -37,6 +29,7 @@
         target_plan=None,
         bundle='x86',
         uri='DEV',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=7200)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.x86.CtsSensor b/server/site_tests/cheets_CTS_R/control.internal.x86.CtsSensor
index efb9119..f845c4c 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.x86.CtsSensor
+++ b/server/site_tests/cheets_CTS_R/control.internal.x86.CtsSensor
@@ -16,10 +16,14 @@
 PY_VERSION = 3
 DOC = 'Run module CtsSensorTestCases, CtsSensorTestCases[instant], CtsSensorTestCases[secondary_user] of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
+# For local debugging, if your test setup doesn't have servo, REMOVE these
+# two lines.
 args_dict = server_utils.args_to_dict(args)
 servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
 
 def run_TS(machine):
+    # REMOVE 'servo_args=servo_args' arg for local debugging if your test
+    # setup doesn't have servo.
     try:
         host_list = [hosts.create_host(machine, servo_args=servo_args)]
     except:
diff --git a/server/site_tests/cheets_CTS_R/control.internal.x86.CtsSensorTestCases.ctshardware b/server/site_tests/cheets_CTS_R/control.internal.x86.CtsSensorTestCases.ctshardware
index 0b42377..1cc977a 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.x86.CtsSensorTestCases.ctshardware
+++ b/server/site_tests/cheets_CTS_R/control.internal.x86.CtsSensorTestCases.ctshardware
@@ -16,10 +16,14 @@
 PY_VERSION = 3
 DOC = 'Run module CtsSensorTestCases of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
+# For local debugging, if your test setup doesn't have servo, REMOVE these
+# two lines.
 args_dict = server_utils.args_to_dict(args)
 servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
 
 def run_TS(machine):
+    # REMOVE 'servo_args=servo_args' arg for local debugging if your test
+    # setup doesn't have servo.
     try:
         host_list = [hosts.create_host(machine, servo_args=servo_args)]
     except:
diff --git a/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsAccessibilityTestCases_-_CtsCameraApi25TestCases b/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsAccessibilityTestCases_-_CtsCameraApi25TestCases
index 4fb3b46..9c69bd5 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsAccessibilityTestCases_-_CtsCameraApi25TestCases
+++ b/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsAccessibilityTestCases_-_CtsCameraApi25TestCases
@@ -16,10 +16,14 @@
 PY_VERSION = 3
 DOC = 'Run module CtsAccessibilityTestCases, CtsAccessibilityTestCases[instant], CtsAccessibilityTestCases[secondary_user], CtsAccountManagerTestCases, CtsAccountManagerTestCases[instant], CtsAccountManagerTestCases[secondary_user], CtsAccountsHostTestCases, CtsAccountsHostTestCases[instant], CtsAccountsHostTestCases[secondary_user], CtsActivityManagerBackgroundActivityTestCases, CtsActivityManagerBackgroundActivityTestCases[secondary_user], CtsAdbHostTestCases, CtsAdbHostTestCases[secondary_user], CtsAdbManagerHostTestCases, CtsAdbManagerHostTestCases[secondary_user], CtsAdminPackageInstallerTestCases, CtsAdminTestCases, CtsAlarmManagerTestCases, CtsAlarmManagerTestCases[instant], CtsAlarmManagerTestCases[secondary_user], CtsAndroidAppTestCases, CtsAndroidAppTestCases[instant], CtsAndroidAppTestCases[secondary_user], CtsAndroidTestBase28ApiSignatureTestCases, CtsAndroidTestBase28ApiSignatureTestCases[instant], CtsAndroidTestBase28ApiSignatureTestCases[secondary_user], CtsAndroidTestBaseCurrentApiSignatureTestCases, CtsAndroidTestBaseCurrentApiSignatureTestCases[instant], CtsAndroidTestBaseCurrentApiSignatureTestCases[secondary_user], CtsAndroidTestMockCurrentApiSignatureTestCases, CtsAndroidTestMockCurrentApiSignatureTestCases[instant], CtsAndroidTestMockCurrentApiSignatureTestCases[secondary_user], CtsAndroidTestRunnerCurrentApiSignatureTestCases, CtsAndroidTestRunnerCurrentApiSignatureTestCases[instant], CtsAndroidTestRunnerCurrentApiSignatureTestCases[secondary_user], CtsAngleIntegrationHostTestCases, CtsAngleIntegrationHostTestCases[instant], CtsAngleIntegrationHostTestCases[secondary_user], CtsAnimationTestCases, CtsAnimationTestCases[instant], CtsAnimationTestCases[secondary_user], CtsApacheHttpLegacy27ApiSignatureTestCases, CtsApacheHttpLegacy27ApiSignatureTestCases[instant], CtsApacheHttpLegacy27ApiSignatureTestCases[secondary_user], CtsApacheHttpLegacyCurrentApiSignatureTestCases, CtsApacheHttpLegacyCurrentApiSignatureTestCases[instant], CtsApacheHttpLegacyCurrentApiSignatureTestCases[secondary_user], CtsApacheHttpLegacyUsesLibraryApiSignatureTestCases, CtsApacheHttpLegacyUsesLibraryApiSignatureTestCases[instant], CtsApacheHttpLegacyUsesLibraryApiSignatureTestCases[secondary_user], CtsApexTestCases, CtsApexTestCases[secondary_user], CtsAppBindingHostTestCases, CtsAppBindingHostTestCases[secondary_user], CtsAppCompatHostTestCases, CtsAppCompatHostTestCases[instant], CtsAppCompatHostTestCases[secondary_user], CtsAppComponentFactoryTestCases, CtsAppComponentFactoryTestCases[instant], CtsAppComponentFactoryTestCases[secondary_user], CtsAppEnumerationTestCases, CtsAppEnumerationTestCases[secondary_user], CtsAppExitTestCases, CtsAppExitTestCases[instant], CtsAppExitTestCases[secondary_user], CtsAppIntegrityDeviceTestCases, CtsAppOpsTestCases, CtsAppOpsTestCases[instant], CtsAppOpsTestCases[secondary_user], CtsAppPredictionServiceTestCases, CtsAppPredictionServiceTestCases[secondary_user], CtsAppSecurityHostTestCases, CtsAppSecurityHostTestCases[secondary_user], CtsAppTestCases, CtsAppTestCases[instant], CtsAppTestCases[secondary_user], CtsAppUsageHostTestCases, CtsAppUsageHostTestCases[instant], CtsAppUsageHostTestCases[secondary_user], CtsAppWidgetTestCases, CtsAppWidgetTestCases[instant], CtsAppWidgetTestCases[secondary_user], CtsAslrMallocTestCases, CtsAslrMallocTestCases[secondary_user], CtsAssistTestCases, CtsAssistTestCases[instant], CtsAssistTestCases[secondary_user], CtsAtomicInstallTestCases, CtsAtomicInstallTestCases[secondary_user], CtsAtraceHostTestCases, CtsAtraceHostTestCases[instant], CtsAtraceHostTestCases[secondary_user], CtsAttentionServiceDeviceTestCases, CtsAttentionServiceDeviceTestCases[secondary_user], CtsAutoFillServiceTestCases, CtsAutoFillServiceTestCases[instant], CtsAutoFillServiceTestCases[secondary_user], CtsBackgroundRestrictionsTestCases, CtsBackgroundRestrictionsTestCases[instant], CtsBackgroundRestrictionsTestCases[secondary_user], CtsBackupHostTestCases, CtsBackupTestCases, CtsBatterySavingTestCases, CtsBatterySavingTestCases[secondary_user], CtsBionicAppTestCases, CtsBionicAppTestCases[instant], CtsBionicAppTestCases[secondary_user], CtsBionicTestCases, CtsBionicTestCases[secondary_user], CtsBlobStoreHostTestCases, CtsBlobStoreHostTestCases[secondary_user], CtsBlobStoreHostTestHelper, CtsBlobStoreHostTestHelper[secondary_user], CtsBlobStoreTestCases, CtsBlobStoreTestCases[secondary_user], CtsBlobStoreTestHelper, CtsBlobStoreTestHelperDiffSig, CtsBlobStoreTestHelperDiffSig2, CtsBlobStoreTestHelperDiffSig2[secondary_user], CtsBlobStoreTestHelperDiffSig[secondary_user], CtsBlobStoreTestHelper[secondary_user], CtsBluetoothTestCases, CtsBluetoothTestCases[secondary_user], CtsBootStatsTestCases, CtsBootStatsTestCases[secondary_user], CtsCalendarProviderTestCases, CtsCalendarProviderTestCases[secondary_user], CtsCalendarcommon2TestCases, CtsCalendarcommon2TestCases[secondary_user], CtsCameraApi25TestCases, CtsCameraApi25TestCases[secondary_user] of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
+# For local debugging, if your test setup doesn't have servo, REMOVE these
+# two lines.
 args_dict = server_utils.args_to_dict(args)
 servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
 
 def run_TS(machine):
+    # REMOVE 'servo_args=servo_args' arg for local debugging if your test
+    # setup doesn't have servo.
     try:
         host_list = [hosts.create_host(machine, servo_args=servo_args)]
     except:
@@ -39,6 +43,7 @@
         target_plan=None,
         bundle='x86',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         hard_reboot_on_failure=True,
         timeout=172800)
diff --git a/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases b/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases
index 1eaba5d..710fcc4 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases
+++ b/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.x86.all.CtsFragmentTestCases_-_CtsJobSchedulerTestCases'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsFragmentTestCases, CtsFragmentTestCasesSdk26, CtsFragmentTestCasesSdk26[instant], CtsFragmentTestCasesSdk26[secondary_user], CtsFragmentTestCases[instant], CtsFragmentTestCases[secondary_user], CtsFsMgrTestCases, CtsFsMgrTestCases[secondary_user], CtsGestureTestCases, CtsGestureTestCases[instant], CtsGestureTestCases[secondary_user], CtsGpuProfilingDataTestCases, CtsGpuProfilingDataTestCases[secondary_user], CtsGpuToolsHostTestCases, CtsGpuToolsHostTestCases[secondary_user], CtsGraphicsTestCases, CtsGraphicsTestCases[instant], CtsGraphicsTestCases[secondary_user], CtsGwpAsanTestCases, CtsGwpAsanTestCases[instant], CtsGwpAsanTestCases[secondary_user], CtsHardwareTestCases, CtsHardwareTestCases[secondary_user], CtsHarmfulAppWarningHostTestCases, CtsHarmfulAppWarningHostTestCases[secondary_user], CtsHdmiCecHostTestCases, CtsHdmiCecHostTestCases[secondary_user], CtsHiddenApiBlacklistApi27TestCases, CtsHiddenApiBlacklistApi27TestCases[secondary_user], CtsHiddenApiBlacklistApi28TestCases, CtsHiddenApiBlacklistApi28TestCases[secondary_user], CtsHiddenApiBlacklistCurrentApiTestCases, CtsHiddenApiBlacklistCurrentApiTestCases[secondary_user], CtsHiddenApiBlacklistDebugClassTestCases, CtsHiddenApiBlacklistDebugClassTestCases[secondary_user], CtsHiddenApiBlacklistTestApiTestCases, CtsHiddenApiBlacklistTestApiTestCases[secondary_user], CtsHiddenApiKillswitchDebugClassTestCases, CtsHiddenApiKillswitchDebugClassTestCases[instant], CtsHiddenApiKillswitchDebugClassTestCases[secondary_user], CtsHiddenApiKillswitchWhitelistTestCases, CtsHiddenApiKillswitchWhitelistTestCases[instant], CtsHiddenApiKillswitchWhitelistTestCases[secondary_user], CtsHiddenApiKillswitchWildcardTestCases, CtsHiddenApiKillswitchWildcardTestCases[instant], CtsHiddenApiKillswitchWildcardTestCases[secondary_user], CtsHostTzDataTests, CtsHostTzDataTests[secondary_user], CtsHostsideNetworkTests, CtsHostsideNetworkTests[instant], CtsHostsideNetworkTests[secondary_user], CtsHostsideNumberBlockingTestCases, CtsHostsideNumberBlockingTestCases[secondary_user], CtsHostsideTvTests, CtsHostsideTvTests[secondary_user], CtsHostsideWebViewTests, CtsHostsideWebViewTests[instant], CtsHostsideWebViewTests[secondary_user], CtsIcuTestCases, CtsIcuTestCases[secondary_user], CtsIdentityTestCases, CtsIdentityTestCases[secondary_user], CtsIkeTestCases, CtsIkeTestCases[secondary_user], CtsIncidentHostTestCases, CtsIncidentHostTestCases[instant], CtsIncrementalInstallHostTestCases, CtsIncrementalInstallHostTestCases[secondary_user], CtsInitTestCases, CtsInitTestCases[secondary_user], CtsInlineMockingTestCases, CtsInlineMockingTestCases[instant], CtsInlineMockingTestCases[secondary_user], CtsInputMethodServiceHostTestCases, CtsInputMethodServiceHostTestCases[instant], CtsInputMethodServiceHostTestCases[secondary_user], CtsInputMethodTestCases, CtsInputMethodTestCases[instant], CtsInputMethodTestCases[secondary_user], CtsInstantAppTests, CtsInstantAppTests[secondary_user], CtsIntentSignatureTestCases, CtsIntentSignatureTestCases[secondary_user], CtsJdwpSecurityHostTestCases, CtsJdwpSecurityHostTestCases[secondary_user], CtsJdwpTestCases, CtsJdwpTestCases[instant], CtsJdwpTestCases[secondary_user], CtsJdwpTunnelHostTestCases, CtsJdwpTunnelHostTestCases[secondary_user], CtsJniTestCases, CtsJniTestCases[instant], CtsJniTestCases[secondary_user], CtsJobSchedulerSharedUidTestCases, CtsJobSchedulerSharedUidTestCases[secondary_user], CtsJobSchedulerTestCases, CtsJobSchedulerTestCases[secondary_user] of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -38,6 +30,7 @@
         target_plan=None,
         bundle='x86',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=172800)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsMediaTestCases_-_CtsMediaTestCases.32 b/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsMediaTestCases_-_CtsMediaTestCases.32
index 8057efe..928934a 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsMediaTestCases_-_CtsMediaTestCases.32
+++ b/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsMediaTestCases_-_CtsMediaTestCases.32
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.x86.all.CtsMediaTestCases_-_CtsMediaTestCases.32'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaTestCases, CtsMediaTestCases[instant] of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -39,6 +31,7 @@
         target_plan=None,
         bundle='x86',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=172800)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsMediaTestCases_-_CtsMediaTestCases.64 b/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsMediaTestCases_-_CtsMediaTestCases.64
index d6f25b7..1ea9449 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsMediaTestCases_-_CtsMediaTestCases.64
+++ b/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsMediaTestCases_-_CtsMediaTestCases.64
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.x86.all.CtsMediaTestCases_-_CtsMediaTestCases.64'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaTestCases, CtsMediaTestCases[instant] of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -39,6 +31,7 @@
         target_plan=None,
         bundle='x86',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=172800)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsMediaV2TestCases_-_CtsProtoTestCases b/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsMediaV2TestCases_-_CtsProtoTestCases
index 8501885..1eb6e06 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsMediaV2TestCases_-_CtsProtoTestCases
+++ b/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsMediaV2TestCases_-_CtsProtoTestCases
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.x86.all.CtsMediaV2TestCases_-_CtsProtoTestCases'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsMediaV2TestCases, CtsMidiTestCases, CtsMimeMapTestCases, CtsMimeMapTestCases[secondary_user], CtsMockingDebuggableTestCases, CtsMockingDebuggableTestCases[instant], CtsMockingDebuggableTestCases[secondary_user], CtsMockingTestCases, CtsMockingTestCases[instant], CtsMockingTestCases[secondary_user], CtsMonkeyTestCases, CtsMonkeyTestCases[secondary_user], CtsMultiUserHostTestCases, CtsMultiUserHostTestCases[instant], CtsMultiUserHostTestCases[secondary_user], CtsMultiUserTestCases, CtsMultiUserTestCases[instant], CtsMultiUserTestCases[secondary_user], CtsNNAPIBenchmarkTestCases, CtsNNAPIBenchmarkTestCases[instant], CtsNNAPIBenchmarkTestCases[secondary_user], CtsNNAPITestCases, CtsNNAPITestCases[secondary_user], CtsNativeEncryptionTestCases, CtsNativeEncryptionTestCases[instant], CtsNativeEncryptionTestCases[secondary_user], CtsNativeHardwareTestCases, CtsNativeHardwareTestCases[secondary_user], CtsNativeMediaAAudioTestCases, CtsNativeMediaAAudioTestCases[instant], CtsNativeMediaAAudioTestCases[secondary_user], CtsNativeMediaMetricsTestCases, CtsNativeMediaMetricsTestCases[instant], CtsNativeMediaMetricsTestCases[secondary_user], CtsNativeMediaSlTestCases, CtsNativeMediaSlTestCases[instant], CtsNativeMediaSlTestCases[secondary_user], CtsNativeMediaXaTestCases, CtsNativeMediaXaTestCases[instant], CtsNativeMediaXaTestCases[secondary_user], CtsNativeMidiTestCases, CtsNativeMidiTestCases[secondary_user], CtsNativeNetDnsTestCases, CtsNativeNetDnsTestCases[instant], CtsNativeNetDnsTestCases[secondary_user], CtsNativeNetTestCases, CtsNativeNetTestCases[instant], CtsNativeNetTestCases[secondary_user], CtsNdefTestCases, CtsNdefTestCases[secondary_user], CtsNdkBinderTestCases, CtsNdkBinderTestCases[instant], CtsNdkBinderTestCases[secondary_user], CtsNetApi23TestCases, CtsNetApi23TestCases[secondary_user], CtsNetSecConfigAttributeTestCases, CtsNetSecConfigAttributeTestCases[instant], CtsNetSecConfigAttributeTestCases[secondary_user], CtsNetSecConfigBasicDebugDisabledTestCases, CtsNetSecConfigBasicDebugDisabledTestCases[instant], CtsNetSecConfigBasicDebugDisabledTestCases[secondary_user], CtsNetSecConfigBasicDebugEnabledTestCases, CtsNetSecConfigBasicDebugEnabledTestCases[instant], CtsNetSecConfigBasicDebugEnabledTestCases[secondary_user], CtsNetSecConfigBasicDomainConfigTestCases, CtsNetSecConfigBasicDomainConfigTestCases[instant], CtsNetSecConfigBasicDomainConfigTestCases[secondary_user], CtsNetSecConfigCleartextTrafficTestCases, CtsNetSecConfigCleartextTrafficTestCases[instant], CtsNetSecConfigCleartextTrafficTestCases[secondary_user], CtsNetSecConfigDownloadManagerTestCases, CtsNetSecConfigDownloadManagerTestCases[secondary_user], CtsNetSecConfigInvalidPinTestCases, CtsNetSecConfigInvalidPinTestCases[instant], CtsNetSecConfigInvalidPinTestCases[secondary_user], CtsNetSecConfigNestedDomainConfigTestCases, CtsNetSecConfigNestedDomainConfigTestCases[instant], CtsNetSecConfigNestedDomainConfigTestCases[secondary_user], CtsNetSecConfigPrePCleartextTrafficTestCases, CtsNetSecConfigPrePCleartextTrafficTestCases[secondary_user], CtsNetSecConfigResourcesSrcTestCases, CtsNetSecConfigResourcesSrcTestCases[instant], CtsNetSecConfigResourcesSrcTestCases[secondary_user], CtsNetSecPolicyUsesCleartextTrafficFalseTestCases, CtsNetSecPolicyUsesCleartextTrafficFalseTestCases[secondary_user], CtsNetSecPolicyUsesCleartextTrafficTrueTestCases, CtsNetSecPolicyUsesCleartextTrafficTrueTestCases[secondary_user], CtsNetSecPolicyUsesCleartextTrafficUnspecifiedTestCases, CtsNetSecPolicyUsesCleartextTrafficUnspecifiedTestCases[secondary_user], CtsNetTestCases, CtsNetTestCasesInternetPermission, CtsNetTestCasesInternetPermission[instant], CtsNetTestCasesInternetPermission[secondary_user], CtsNetTestCasesLegacyApi22, CtsNetTestCasesLegacyApi22[secondary_user], CtsNetTestCasesLegacyPermission22, CtsNetTestCasesLegacyPermission22[secondary_user], CtsNetTestCasesUpdateStatsPermission, CtsNetTestCasesUpdateStatsPermission[instant], CtsNetTestCasesUpdateStatsPermission[secondary_user], CtsNetTestCases[instant], CtsNetTestCases[secondary_user], CtsNfcTestCases, CtsNfcTestCases[secondary_user], CtsNoPermissionTestCases, CtsNoPermissionTestCases25, CtsNoPermissionTestCases25[secondary_user], CtsNoPermissionTestCases[secondary_user], CtsOmapiTestCases, CtsOmapiTestCases[secondary_user], CtsOpenGLTestCases, CtsOpenGLTestCases[secondary_user], CtsOpenGlPerf2TestCases, CtsOpenGlPerf2TestCases[secondary_user], CtsOpenGlPerfTestCases, CtsOsHostTestCases, CtsOsHostTestCases[instant], CtsOsHostTestCases[secondary_user], CtsOsTestCases, CtsOsTestCases[instant], CtsPackageInstallAppOpDefaultTestCases, CtsPackageInstallAppOpDefaultTestCases[instant], CtsPackageInstallAppOpDefaultTestCases[secondary_user], CtsPackageInstallAppOpDeniedTestCases, CtsPackageInstallAppOpDeniedTestCases[instant], CtsPackageInstallAppOpDeniedTestCases[secondary_user], CtsPackageInstallTestCases, CtsPackageInstallTestCases[instant], CtsPackageInstallTestCases[secondary_user], CtsPackageInstallerTapjackingTestCases, CtsPackageInstallerTapjackingTestCases[secondary_user], CtsPackageUninstallTestCases, CtsPackageUninstallTestCases[secondary_user], CtsPackageWatchdogTestCases, CtsPackageWatchdogTestCases[secondary_user], CtsPdfTestCases, CtsPdfTestCases[instant], CtsPdfTestCases[secondary_user], CtsPerfettoTestCases, CtsPerfettoTestCases[secondary_user], CtsPermission2TestCases, CtsPermission2TestCases[instant], CtsPermission3TestCases, CtsPermission3TestCases[secondary_user], CtsPermissionTestCases, CtsPermissionTestCasesSdk28, CtsPermissionTestCasesSdk28[instant], CtsPermissionTestCasesSdk28[secondary_user], CtsPermissionTestCasesTelephony, CtsPermissionTestCasesTelephony[instant], CtsPermissionTestCasesTelephony[secondary_user], CtsPermissionTestCases[instant], CtsPreferenceTestCases, CtsPreferenceTestCases[instant], CtsPreferenceTestCases[secondary_user], CtsPrintTestCases, CtsPrintTestCases[instant], CtsPrintTestCases[secondary_user], CtsProtoTestCases, CtsProtoTestCases[instant], CtsProtoTestCases[secondary_user] of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -39,6 +31,7 @@
         target_plan=None,
         bundle='x86',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=172800)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsProviderTestCases_-_CtsSecurityBulletinHostTestCases b/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsProviderTestCases_-_CtsSecurityBulletinHostTestCases
index 1a22cca..7d50bac 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsProviderTestCases_-_CtsSecurityBulletinHostTestCases
+++ b/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsProviderTestCases_-_CtsSecurityBulletinHostTestCases
@@ -3,7 +3,6 @@
 # found in the LICENSE file.
 
 # This file has been automatically generated. Do not edit!
-from autotest_lib.server import utils as server_utils
 
 AUTHOR = 'ARC++ Team'
 NAME = 'cheets_CTS_R.internal.x86.all.CtsProviderTestCases_-_CtsSecurityBulletinHostTestCases'
@@ -16,15 +15,8 @@
 PY_VERSION = 3
 DOC = 'Run module CtsProviderTestCases, CtsProviderTestCases[secondary_user], CtsProviderUiTestCases, CtsQuickAccessWalletTestCases, CtsQuickAccessWalletTestCases[instant], CtsQuickAccessWalletTestCases[secondary_user], CtsRenderscriptLegacyTestCases, CtsRenderscriptLegacyTestCases[secondary_user], CtsRenderscriptTestCases, CtsRenderscriptTestCases[instant], CtsRenderscriptTestCases[secondary_user], CtsResolverServiceTestCases, CtsResolverServiceTestCases[secondary_user], CtsResourcesLoaderTests, CtsResourcesLoaderTests[secondary_user], CtsRoleTestCases, CtsRoleTestCases[secondary_user], CtsRollbackManagerHostTestCases, CtsRsBlasTestCases, CtsRsBlasTestCases[secondary_user], CtsRsCppTestCases, CtsRsCppTestCases[secondary_user], CtsSampleDeviceTestCases, CtsSampleDeviceTestCases[instant], CtsSampleDeviceTestCases[secondary_user], CtsSampleHostTestCases, CtsSampleHostTestCases[secondary_user], CtsSaxTestCases, CtsSaxTestCases[secondary_user], CtsScopedStorageHostTest, CtsScopedStorageHostTest[instant], CtsSdkExtensionsTestCases, CtsSdkExtensionsTestCases[instant], CtsSdkExtensionsTestCases[secondary_user], CtsSeccompHostTestCases, CtsSeccompHostTestCases[instant], CtsSeccompHostTestCases[secondary_user], CtsSecureElementAccessControlTestCases1, CtsSecureElementAccessControlTestCases1[secondary_user], CtsSecureElementAccessControlTestCases2, CtsSecureElementAccessControlTestCases2[secondary_user], CtsSecureElementAccessControlTestCases3, CtsSecureElementAccessControlTestCases3[secondary_user], CtsSecureFrpInstallTestCases, CtsSecureFrpInstallTestCases[secondary_user], CtsSecurityBulletinHostTestCases, CtsSecurityBulletinHostTestCases[secondary_user] of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
-args_dict = server_utils.args_to_dict(args)
-servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
-
 def run_TS(machine):
-    try:
-        host_list = [hosts.create_host(machine, servo_args=servo_args)]
-    except:
-        # Just ignore any servo setup flakiness.
-        host_list = [hosts.create_host(machine)]
+    host_list = [hosts.create_host(machine)]
     job.run_test(
         'cheets_CTS_R',
         hosts=host_list,
@@ -38,6 +30,7 @@
         target_plan=None,
         bundle='x86',
         uri='LATEST',
+        login_precondition_commands=['lsblk -do NAME,RM | sed -n s/1$//p | xargs -n1 eject'],
         use_jdk9=True,
         timeout=172800)
 
diff --git a/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsSensorTestCases_-_CtsSensorTestCases b/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsSensorTestCases_-_CtsSensorTestCases
index 02c6d4c..a1cd80a 100644
--- a/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsSensorTestCases_-_CtsSensorTestCases
+++ b/server/site_tests/cheets_CTS_R/control.internal.x86.all.CtsSensorTestCases_-_CtsSensorTestCases
@@ -16,10 +16,14 @@
 PY_VERSION = 3
 DOC = 'Run module CtsSensorTestCases, CtsSensorTestCases[instant], CtsSensorTestCases[secondary_user] of the Android Compatibility Test Suite (CTS) using x86 ABI in the ARC++ container.'
 
+# For local debugging, if your test setup doesn't have servo, REMOVE these
+# two lines.
 args_dict = server_utils.args_to_dict(args)
 servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
 
 def run_TS(machine):
+    # REMOVE 'servo_args=servo_args' arg for local debugging if your test
+    # setup doesn't have servo.
     try:
         host_list = [hosts.create_host(machine, servo_args=servo_args)]
     except: