diff --git a/server/cros/cts_expected_failure_parser.py b/server/cros/cts_expected_failure_parser.py
deleted file mode 100644
index 37baff1..0000000
--- a/server/cros/cts_expected_failure_parser.py
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 2017 The Chromium OS Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import logging
-import yaml
-
-class ParseKnownCTSFailures(object):
-    """A class to parse known failures in CTS test."""
-
-    def __init__(self, failure_files):
-        self.waivers_yaml = self._load_failures(failure_files)
-
-    def _validate_waiver_config(self, arch, board, config):
-        """Validate if the test environment matches the test config.
-
-        @param arch: DUT's arch type.
-        @param board: DUT's board name.
-        @param config: config for an expected failing test.
-        @return True if test arch or board is part of the config, else False.
-        """
-        dut_config = ['all', arch, board]
-        return len(set(dut_config).intersection(config)) > 0
-
-    def _load_failures(self, failure_files):
-        """Load failures from files.
-
-        @param failure_files: files with failure configs.
-        @return a dictionary of failures config in yaml format.
-        """
-        waivers_yaml = {}
-        for failure_file in failure_files:
-            try:
-                logging.info('Loading expected failure file: %s.', failure_file)
-                with open(failure_file) as wf:
-                    waivers_yaml.update(yaml.load(wf.read()))
-            except IOError as e:
-                logging.error('Error loading %s (%s).',
-                              failure_file,
-                              e.strerror)
-                continue
-            logging.info('Finished loading expected failure file: %s',
-                         failure_file)
-        return waivers_yaml
-
-    def find_waivers(self, arch, board):
-        """Finds waivers for the test board.
-
-        @param arch: DUT's arch type.
-        @param board: DUT's board name.
-        @return a set of waivers/no-test-modules applied to the test board.
-        """
-        applied_waiver_list = set()
-        for test, config in self.waivers_yaml.iteritems():
-            if self._validate_waiver_config(arch, board, config):
-                applied_waiver_list.add(test)
-        logging.info('Excluding tests/packages from rerun: %s.',
-                     applied_waiver_list)
-        return applied_waiver_list
diff --git a/server/cros/tradefed_test.py b/server/cros/tradefed_test.py
index 8e05e2b..094bc44 100644
--- a/server/cros/tradefed_test.py
+++ b/server/cros/tradefed_test.py
@@ -41,7 +41,6 @@
 from autotest_lib.server import autotest
 from autotest_lib.server import test
 from autotest_lib.server import utils
-from autotest_lib.server.cros import cts_expected_failure_parser
 
 # TODO(ihf): If akeshet doesn't fix crbug.com/691046 delete metrics again.
 try:
@@ -52,7 +51,6 @@
 # TODO(ihf): Find a home for all these paths. This is getting out of hand.
 _SDK_TOOLS_DIR = 'gs://chromeos-arc-images/builds/git_nyc-mr1-arc-linux-static_sdk_tools/3544738'
 _SDK_TOOLS_FILES = ['aapt']
-
 # To stabilize adb behavior, we use dynamically linked adb.
 _ADB_DIR = 'gs://chromeos-arc-images/builds/git_nyc-mr1-arc-linux-cheets_arm-user/3544738'
 _ADB_FILES = ['adb']
@@ -472,7 +470,6 @@
                    uri=None,
                    host=None,
                    max_retry=None,
-                   retry_manual_tests=False,
                    warn_on_test_retry=True):
         """Sets up the tools and binary bundles for the test."""
         logging.info('Hostname: %s', host.hostname)
@@ -521,12 +518,9 @@
             uri or self._get_default_bundle_url(bundle))
         self._repository = os.path.join(bundle_install_path,
                                         self._get_tradefed_base_dir())
-
-        # Load expected test failures to exclude them from re-runs.
+        # Load waivers and manual tests so TF doesn't re-run them.
         self._waivers = self._get_expected_failures('expectations')
-        if not retry_manual_tests:
-            self._waivers.update(self._get_expected_failures('manual_tests'))
-
+        self._manual_tests = self._get_expected_failures('manual_tests')
         # Load modules with no tests.
         self._notest_modules = self._get_expected_failures('notest_modules')
 
@@ -1060,7 +1054,7 @@
         tradefed. It is up to the caller to handle inconsistencies.
 
         @param result: The result object from utils.run.
-        @param waivers: a set[] of tests which are permitted to fail.
+        @param waivers: a set() of tests which are permitted to fail.
         """
         return parse_tradefed_result(result.stdout, waivers)
 
@@ -1107,36 +1101,34 @@
         shutil.copytree(
             os.path.join(repository_logs, datetime), destination_logs_datetime)
 
-    def _get_expected_failures(self, *directories):
-        """Return a list of expected failures or no test module.
+    def _get_expected_failures(self, directory):
+        """Return a list of expected failures.
 
-        @param directories: A list of directories with expected no tests
-                            or failures files.
-        @return: A list of expected failures or no test modules for the current
-                 testing device.
+        @return: a list of expected failures.
         """
-        # Load waivers and manual tests so TF doesn't re-run them.
-        expected_fail_files = []
-        test_board = self._get_board_name(self._host)
-        test_arch = self._get_board_arch(self._host)
-        for directory in directories:
-            expected_fail_dir = os.path.join(self.bindir, directory)
-            if os.path.exists(expected_fail_dir):
-                expected_fail_files += glob.glob(expected_fail_dir + '/*.yaml')
-
-        waivers = cts_expected_failure_parser.ParseKnownCTSFailures(
-            expected_fail_files)
-        return waivers.find_waivers(test_board, test_arch)
+        logging.info('Loading expected failures from %s.', directory)
+        expected_fail_dir = os.path.join(self.bindir, directory)
+        expected_fail_files = glob.glob(expected_fail_dir + '/*.' + self._abi)
+        expected_failures = set()
+        for expected_fail_file in expected_fail_files:
+            try:
+                file_path = os.path.join(expected_fail_dir, expected_fail_file)
+                with open(file_path) as f:
+                    lines = set(f.read().splitlines())
+                    logging.info('Loaded %d expected failures from %s',
+                                 len(lines), expected_fail_file)
+                    expected_failures |= lines
+            except IOError as e:
+                logging.error('Error loading %s (%s).', file_path, e.strerror)
+        logging.info('Finished loading expected failures: %s',
+                     expected_failures)
+        return expected_failures
 
     def _get_release_channel(self, host):
         """Returns the DUT channel of the image ('dev', 'beta', 'stable')."""
         channel = host.get_channel()
         return channel or 'dev'
 
-    def _get_board_arch(self, host):
-        """ Return target DUT arch name."""
-        return 'arm' if host.get_cpu_arch() == 'arm' else 'x86'
-
     def _get_board_name(self, host):
         """Return target DUT board name."""
         return host.get_board().split(':')[1]
diff --git a/server/site_tests/cheets_CTS_N/cheets_CTS_N.py b/server/site_tests/cheets_CTS_N/cheets_CTS_N.py
index 064ede3..dc1ad26 100644
--- a/server/site_tests/cheets_CTS_N/cheets_CTS_N.py
+++ b/server/site_tests/cheets_CTS_N/cheets_CTS_N.py
@@ -151,7 +151,8 @@
         # newbie and novato are x86 VMs without binary translation. Skip the ARM
         # tests.
         no_ARM_ABI_test_boards = ('newbie', 'novato', 'novato-arc64')
-        if self._get_board_name(self._host) in no_ARM_ABI_test_boards:
+        board = self._host.get_board().split(':')[1] # Remove 'board:' prefix.
+        if board in no_ARM_ABI_test_boards:
             if self._abi == 'arm':
                 return True
         return False
@@ -200,6 +201,7 @@
                  target_class=None,
                  target_method=None,
                  needs_push_media=False,
+                 retry_manual_tests=False,
                  cts_tradefed_args=None,
                  precondition_commands=[],
                  login_precondition_commands=[],
@@ -219,6 +221,9 @@
         @param target_class: the name of the class to be tested.
         @param target_method: the name of the method to be tested.
         @param needs_push_media: need to push test media streams.
+        @param retry_manual_tests: a flag to track whether manual tests
+                need to be retried or not. Autotest lab skips manual tests,
+                while moblab runs them.
         @param timeout: time after which tradefed can be interrupted.
         @param precondition_commands: a list of scripts to be run on the
         dut before the test is run, the scripts must already be installed.
@@ -234,6 +239,11 @@
         # Retries depend on channel.
         self._timeoutfactor = None
 
+        # TODO(kinaba): Move this logic to tradefed_test so that cheets_GTS can
+        # deal with manual tests.
+        if not retry_manual_tests:
+            self._waivers.update(self._manual_tests)
+
         test_command, test_name = self.generate_test_command(target_module,
                                                              target_plan,
                                                              target_class,
@@ -244,3 +254,4 @@
                                         target_plan, needs_push_media, _CTS_URI,
                                         login_precondition_commands,
                                         precondition_commands)
+
diff --git a/server/site_tests/cheets_CTS_N/notest_modules/notest_packages.arm b/server/site_tests/cheets_CTS_N/notest_modules/notest_packages.arm
new file mode 100644
index 0000000..3f47752
--- /dev/null
+++ b/server/site_tests/cheets_CTS_N/notest_modules/notest_packages.arm
@@ -0,0 +1,6 @@
+CtsAlarmClockTestCases
+CtsCallLogTestCases
+CtsCarTestCases
+CtsSampleDeviceTestCases
+CtsSampleHostTestCases
+CtsSystemUiTestCases
diff --git a/server/site_tests/cheets_CTS_N/notest_modules/notest_packages.x86 b/server/site_tests/cheets_CTS_N/notest_modules/notest_packages.x86
new file mode 100644
index 0000000..3f47752
--- /dev/null
+++ b/server/site_tests/cheets_CTS_N/notest_modules/notest_packages.x86
@@ -0,0 +1,6 @@
+CtsAlarmClockTestCases
+CtsCallLogTestCases
+CtsCarTestCases
+CtsSampleDeviceTestCases
+CtsSampleHostTestCases
+CtsSystemUiTestCases
diff --git a/server/site_tests/cheets_CTS_N/notest_modules/notest_packages.yaml b/server/site_tests/cheets_CTS_N/notest_modules/notest_packages.yaml
deleted file mode 100644
index 82c4026..0000000
--- a/server/site_tests/cheets_CTS_N/notest_modules/notest_packages.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-CtsAlarmClockTestCases: [all]
-CtsCallLogTestCases: [all]
-CtsCarTestCases: [all]
-CtsSampleDeviceTestCases: [all]
-CtsSampleHostTestCases: [all]
-CtsSystemUiTestCases: [all]
diff --git a/server/site_tests/cheets_GTS/notest_modules/notest_modules.arm b/server/site_tests/cheets_GTS/notest_modules/notest_modules.arm
new file mode 100644
index 0000000..192f25e
--- /dev/null
+++ b/server/site_tests/cheets_GTS/notest_modules/notest_modules.arm
@@ -0,0 +1,5 @@
+GtsAccountsHostTestCases
+GtsDexModuleRegistrationTestCases
+GtsSampleDeviceTestCases
+GtsSampleDynamicConfigTestCases
+GtsSampleHostTestCases
diff --git a/server/site_tests/cheets_GTS/notest_modules/notest_modules.x86 b/server/site_tests/cheets_GTS/notest_modules/notest_modules.x86
new file mode 100644
index 0000000..192f25e
--- /dev/null
+++ b/server/site_tests/cheets_GTS/notest_modules/notest_modules.x86
@@ -0,0 +1,5 @@
+GtsAccountsHostTestCases
+GtsDexModuleRegistrationTestCases
+GtsSampleDeviceTestCases
+GtsSampleDynamicConfigTestCases
+GtsSampleHostTestCases
diff --git a/server/site_tests/cheets_GTS/notest_modules/notest_modules.yaml b/server/site_tests/cheets_GTS/notest_modules/notest_modules.yaml
deleted file mode 100644
index e6ccc50..0000000
--- a/server/site_tests/cheets_GTS/notest_modules/notest_modules.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-GtsAccountsHostTestCases: [all]
-GtsDexModuleRegistrationTestCases: [all]
-GtsSampleDeviceTestCases: [all]
-GtsSampleDynamicConfigTestCases: [all]
-GtsSampleHostTestCases: [all]
