diff --git a/api/bpf_native_test/Android.bp b/api/bpf_native_test/Android.bp
index 6d1ca41..5cb56a2 100644
--- a/api/bpf_native_test/Android.bp
+++ b/api/bpf_native_test/Android.bp
@@ -15,7 +15,6 @@
 //
 
 cc_test {
-    tags: ["tests"],
     name: "vts_test_binary_bpf_module",
     srcs: ["BpfTest.cpp"],
     shared_libs: [
diff --git a/api/bpf_native_test/Android.mk b/api/bpf_native_test/Android.mk
index f3d2966..28ccb9f 100644
--- a/api/bpf_native_test/Android.mk
+++ b/api/bpf_native_test/Android.mk
@@ -19,5 +19,4 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := VtsKernelNetBpfTest
-VTS_CONFIG_SRC_DIR := testcases/kernel/api/bpf_native_test
 include test/vts/tools/build/Android.host_config.mk
diff --git a/api/bpf_native_test/BpfTest.cpp b/api/bpf_native_test/BpfTest.cpp
index cacf092..24a921d 100644
--- a/api/bpf_native_test/BpfTest.cpp
+++ b/api/bpf_native_test/BpfTest.cpp
@@ -53,7 +53,7 @@
                                            sizeof(uint32_t), 10,
                                            BPF_F_NO_PREALLOC));
   ASSERT_LT(0, mapfd) << "create map failed with error: " << strerror(errno);
-  ASSERT_EQ(0, mapPin(mapfd, bpfMapPath))
+  ASSERT_EQ(0, bpfFdPin(mapfd, bpfMapPath))
       << "pin map failed with error: " << strerror(errno);
   ASSERT_EQ(0, access(bpfMapPath, F_OK));
   ASSERT_EQ(0, remove(bpfMapPath));
diff --git a/api/net/AndroidTest.xml b/api/net/AndroidTest.xml
index 25728c8..773dd16 100644
--- a/api/net/AndroidTest.xml
+++ b/api/net/AndroidTest.xml
@@ -24,6 +24,6 @@
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsKernelNetTest" />
         <option name="test-case-path" value="vts/testcases/kernel/api/net/VtsKernelNetTest" />
-        <option name="test-timeout" value="5m" />
+        <option name="test-timeout" value="10m" />
     </test>
 </configuration>
diff --git a/api/net/VtsKernelNetTest.py b/api/net/VtsKernelNetTest.py
index da0f33d..71c4f0f 100644
--- a/api/net/VtsKernelNetTest.py
+++ b/api/net/VtsKernelNetTest.py
@@ -73,7 +73,7 @@
         logging.info('exit code: %s', result[const.EXIT_CODE])
         asserts.assertFalse(
             result[const.EXIT_CODE],
-            'kernel_net_tests binary returned non-zero exit code.')
+            'kernel_net_tests binary returned non-zero exit code: \n' + result[const.STDERR])
 
 if __name__ == '__main__':
     test_runner.main()
diff --git a/api/proc/Android.mk b/api/proc/Android.mk
index 7b9068c..7e377c2 100644
--- a/api/proc/Android.mk
+++ b/api/proc/Android.mk
@@ -19,5 +19,4 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := VtsKernelProcFileApi
-VTS_CONFIG_SRC_DIR := testcases/kernel/api/proc
 -include test/vts/tools/build/Android.host_config.mk
diff --git a/api/proc/KernelProcFileTestBase.py b/api/proc/KernelProcFileTestBase.py
index c4840f5..aeaac70 100644
--- a/api/proc/KernelProcFileTestBase.py
+++ b/api/proc/KernelProcFileTestBase.py
@@ -187,8 +187,16 @@
         """
         return True
 
-    def file_optional(self):
-        """Returns: True if file is allowed to be absent (boolean)."""
+    def file_optional(self, shell=None, dut=None):
+        """Performs any actions necessary to return if file is allowed to be absent
+
+        Args:
+            shell: shell object, to run commands on the device side
+            dut: AndroidDevice object to access functions and properties of that object
+
+        Returns:
+            boolean, True if file is allowed to be absent.
+        """
         return False
 
     def result_correct(self, parse_result):
diff --git a/api/proc/ProcFsFileTests.py b/api/proc/ProcFsFileTests.py
index 9e37067..266e781 100644
--- a/api/proc/ProcFsFileTests.py
+++ b/api/proc/ProcFsFileTests.py
@@ -110,6 +110,6 @@
     def get_path(self):
         return "/proc/swaps"
 
-    def file_optional(self):
+    def file_optional(self, shell=None, dut=None):
         # It is not mandatory to have this file present
         return True
diff --git a/api/proc/ProcQtaguidCtrlTest.py b/api/proc/ProcQtaguidCtrlTest.py
index 7948d45..ef2be8c 100644
--- a/api/proc/ProcQtaguidCtrlTest.py
+++ b/api/proc/ProcQtaguidCtrlTest.py
@@ -52,6 +52,26 @@
     def get_path(self):
         return "/proc/net/xt_qtaguid/ctrl"
 
+    def file_optional(self, shell=None, dut=None):
+        """Specifies if the /proc/net/xt_qtaguid/ctrl file is mandatory.
+
+        For device running kernel 4.9 or above, it should use the eBPF cgroup
+        filter to monitor networking stats instead. So it may not have
+        xt_qtaguid module and /proc/net/xt_qtaguid/ctrl file on device.
+        But for device that still has xt_qtaguid module, this file is mandatory.
+
+        Same logic as checkKernelSupport in file:
+        test/vts-testcase/kernel/api/qtaguid/SocketTagUserSpace.cpp
+
+        Returns:
+            True when the kernel is 4.9 or newer, otherwise False is returned
+        """
+        (version, patchlevel, sublevel) = dut.kernel_version
+        if version == 4 and patchlevel >= 9 or version > 4:
+            return True
+        else:
+            return False
+
     def get_permission_checker(self):
         """Get r/w file permission checker.
         """
diff --git a/api/proc/ProcSimpleFileTests.py b/api/proc/ProcSimpleFileTests.py
index f94fa9a..e19600d 100644
--- a/api/proc/ProcSimpleFileTests.py
+++ b/api/proc/ProcSimpleFileTests.py
@@ -111,7 +111,7 @@
     def get_permission_checker(self):
         return target_file_utils.IsReadWrite
 
-    def file_optional(self):
+    def file_optional(self, shell=None, dut=None):
         return True
 
 class ProcKptrRestrictTest(KernelProcFileTestBase.KernelProcFileTestBase):
@@ -412,6 +412,21 @@
         return target_file_utils.IsReadWrite
 
 
+class ProcDirtyExpireCentisecs(KernelProcFileTestBase.KernelProcFileTestBase):
+    '''/proc/sys/vm/dirty_expire_centisecs is used to define when dirty data is
+    old enough to be eligible for writeout by the kernel flusher threads.
+    '''
+
+    def parse_contents(self, contents):
+        return self.parse_line("{:d}\n", contents)[0]
+
+    def get_path(self):
+        return "/proc/sys/vm/dirty_expire_centisecs"
+
+    def get_permission_checker(self):
+        return target_file_utils.IsReadWrite
+
+
 class ProcDropCaches(KernelProcFileTestBase.KernelProcFileTestBase):
     '''Writing to /proc/sys/vm/drop_caches will cause the kernel to drop clean
     caches.
@@ -443,7 +458,7 @@
     def get_permission_checker(self):
         return target_file_utils.IsReadWrite
 
-    def file_optional(self):
+    def file_optional(self, shell=None, dut=None):
         # This file isn't in Android common kernel.
         return True
 
diff --git a/api/proc/ProcUidCpuPowerTests.py b/api/proc/ProcUidCpuPowerTests.py
index d4cb255..71af639 100644
--- a/api/proc/ProcUidCpuPowerTests.py
+++ b/api/proc/ProcUidCpuPowerTests.py
@@ -42,7 +42,7 @@
     def get_path(self):
         return "/proc/uid_cpupower/time_in_state"
 
-    def file_optional(self):
+    def file_optional(self, shell=None, dut=None):
         # This file is optional until implemented in Android common kernel
         return True
 
@@ -66,7 +66,7 @@
     def get_path(self):
         return "/proc/uid_cpupower/concurrent_active_time"
 
-    def file_optional(self):
+    def file_optional(self, shell=None, dut=None):
         # This file is optional until implemented in Android common kernel
         return True
 
@@ -98,6 +98,6 @@
     def get_path(self):
         return "/proc/uid_cpupower/concurrent_policy_time"
 
-    def file_optional(self):
+    def file_optional(self, shell=None, dut=None):
         # This file is optional until implemented in Android common kernel
         return True
diff --git a/api/proc/ProcUidTimeInStateTest.py b/api/proc/ProcUidTimeInStateTest.py
index be812d5..c3a1a71 100644
--- a/api/proc/ProcUidTimeInStateTest.py
+++ b/api/proc/ProcUidTimeInStateTest.py
@@ -49,7 +49,7 @@
     def get_path(self):
         return "/proc/uid_time_in_state"
 
-    def file_optional(self):
+    def file_optional(self, shell=None, dut=None):
         # This file is optional until implemented in Android common kernel
         return True
 
diff --git a/api/proc/VtsKernelProcFileApiTest.py b/api/proc/VtsKernelProcFileApiTest.py
index 3fe7a41..9c472d8 100644
--- a/api/proc/VtsKernelProcFileApiTest.py
+++ b/api/proc/VtsKernelProcFileApiTest.py
@@ -67,6 +67,7 @@
     ProcSimpleFileTests.ProcCorePipeLimit(),
     ProcSimpleFileTests.ProcDirtyBackgroundBytes(),
     ProcSimpleFileTests.ProcDirtyBackgroundRatio(),
+    ProcSimpleFileTests.ProcDirtyExpireCentisecs(),
     ProcSimpleFileTests.ProcDmesgRestrict(),
     ProcSimpleFileTests.ProcDomainname(),
     ProcSimpleFileTests.ProcDropCaches(),
@@ -139,7 +140,7 @@
                        "Skip test for 64-bit kernel.")
         filepath = test_object.get_path()
         asserts.skipIf(not target_file_utils.Exists(filepath, self.shell) and
-                       test_object.file_optional(),
+                       test_object.file_optional(shell=self.shell, dut=self.dut),
                        "%s does not exist and is optional." % filepath)
         target_file_utils.assertPermissionsAndExistence(
             self.shell, filepath, test_object.get_permission_checker())
@@ -187,6 +188,12 @@
         return results[const.STDOUT][0]
 
     def testProcPagetypeinfo(self):
+        # TODO(b/109884074): make mandatory once incident_helper is in AOSP.
+        try:
+            self.dut.adb.shell("which incident_helper")
+        except:
+            asserts.skip("incident_helper not present")
+
         filepath = "/proc/pagetypeinfo"
         # Check that incident_helper can parse /proc/pagetypeinfo.
         result = self.shell.Execute("cat %s | incident_helper -s 2001" % filepath)
diff --git a/api/qtaguid/Android.mk b/api/qtaguid/Android.mk
index 39ca48d..63eef09 100644
--- a/api/qtaguid/Android.mk
+++ b/api/qtaguid/Android.mk
@@ -35,5 +35,4 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := VtsKernelQtaguidTest
-VTS_CONFIG_SRC_DIR := testcases/kernel/api/qtaguid
 -include test/vts/tools/build/Android.host_config.mk
diff --git a/api/qtaguid/SocketTagUserSpace.cpp b/api/qtaguid/SocketTagUserSpace.cpp
index 1653351..2dd634d 100644
--- a/api/qtaguid/SocketTagUserSpace.cpp
+++ b/api/qtaguid/SocketTagUserSpace.cpp
@@ -121,7 +121,7 @@
   // b/30950746
   if (ret >= 2 && ((kernel_version_major == 4 && kernel_version_minor >= 9) ||
                    (kernel_version_major > 4))) {
-    *qtaguidSupport = (access("/dev/xt_qtaguid", F_OK) != -1);
+    *qtaguidSupport = false;
   } else {
     *qtaguidSupport = true;
   }
@@ -213,6 +213,8 @@
   uint64_t max_uint_tag;
 
   virtual void SetUp() {
+    SKIP_IF_QTAGUID_NOT_SUPPORTED();
+
     my_uid = getuid();
     my_pid = getpid();
     srand48(my_pid * my_uid);
@@ -253,6 +255,8 @@
 
 /* Tag to a invalid socket fd, should fail */
 TEST_F(SocketTagUsrSpaceTest, invalidSockfdFail) {
+  SKIP_IF_QTAGUID_NOT_SUPPORTED();
+
   EXPECT_LT(legacy_tagSocket(-1, valid_tag1, my_uid), 0)
       << "Invalid socketfd case 1, should fail.";
 }
@@ -268,6 +272,8 @@
 
 /* Untag invalid socket fd, should fail */
 TEST_F(SocketTagUsrSpaceTest, UntagInvalidSocketFail) {
+  SKIP_IF_QTAGUID_NOT_SUPPORTED();
+
   EXPECT_LT(legacy_untagSocket(-1), 0) << "invalid socket fd, should fail";
   EXPECT_LT(legacy_untagSocket(sock_0.fd), 0)
       << "no tags on sock0, should fail";
@@ -278,6 +284,8 @@
  * should fail
  */
 TEST_F(SocketTagUsrSpaceTest, CounterSetNumExceedFail) {
+  SKIP_IF_QTAGUID_NOT_SUPPORTED();
+
   int wrongCounterNum = kMaxCounterSet + 1;
   EXPECT_LT(legacy_setCounterSet(wrongCounterNum, my_uid), 0)
       << "Invalid counter set number, should fail.";
@@ -350,6 +358,8 @@
  * Should keep both
  */
 TEST_F(SocketTagUsrSpaceTest, ReTagWithUidChange) {
+  SKIP_IF_QTAGUID_NOT_SUPPORTED();
+
   EXPECT_GE(legacy_tagSocket(sock_0.fd, valid_tag2, fake_uid), 0);
   EXPECT_GE(legacy_tagSocket(sock_0.fd, valid_tag1, fake_uid2), 0);
 }
diff --git a/api/rootdir/Android.mk b/api/rootdir/Android.mk
index f148a27..e2a6f08 100644
--- a/api/rootdir/Android.mk
+++ b/api/rootdir/Android.mk
@@ -19,5 +19,4 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := VtsKernelRootDir
-VTS_CONFIG_SRC_DIR := testcases/kernel/api/rootdir
 -include test/vts/tools/build/Android.host_config.mk
diff --git a/api/selinux/Android.mk b/api/selinux/Android.mk
index 0c50947..906575d 100644
--- a/api/selinux/Android.mk
+++ b/api/selinux/Android.mk
@@ -19,5 +19,4 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := VtsKernelSelinuxFileApi
-VTS_CONFIG_SRC_DIR := testcases/kernel/api/selinux
 -include test/vts/tools/build/Android.host_config.mk
diff --git a/api/sysfs/Android.mk b/api/sysfs/Android.mk
index 6871e46..4b63d86 100644
--- a/api/sysfs/Android.mk
+++ b/api/sysfs/Android.mk
@@ -19,5 +19,4 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := VtsKernelApiSysfsTest
-VTS_CONFIG_SRC_DIR := testcases/kernel/api/sysfs
 -include test/vts/tools/build/Android.host_config.mk
diff --git a/api/system_as_root/VtsKernelSystemAsRootTest.py b/api/system_as_root/VtsKernelSystemAsRootTest.py
deleted file mode 100644
index 8fb5d05..0000000
--- a/api/system_as_root/VtsKernelSystemAsRootTest.py
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2018 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-"""A test module to check system-as-root is enabled for new devices in P.
-
-The test logic is:
-    if precondition-first-api-level >= 28 (in AndroidTest.xml):
-        assert (
-            ro.build.system_root_image is 'true' AND
-            /system mount point doesn't exist)
-    else:
-        assert True
-"""
-
-
-import logging
-
-from vts.runners.host import asserts
-from vts.runners.host import base_test
-from vts.runners.host import const
-from vts.runners.host import test_runner
-
-
-# The property to indicate the system image is also root image.
-_SYSTEM_ROOT_IMAGE_PROP = "ro.build.system_root_image"
-
-
-class VtsKernelSystemAsRootTest(base_test.BaseTestClass):
-    """A test class to verify system-as-root is enabled."""
-
-    def setUpClass(self):
-        """Initializes device and shell."""
-        self._dut = self.android_devices[0]
-        self._shell = self._dut.shell
-
-    def testSystemRootImageProperty(self):
-        """Checks ro.build.system_root_image is 'true'."""
-        asserts.assertEqual("true",
-                            self._dut.getProp(_SYSTEM_ROOT_IMAGE_PROP),
-                            "%s is not true" % _SYSTEM_ROOT_IMAGE_PROP)
-
-    def testNoSystemMountPoint(self):
-        """Checks there is no /system mount point."""
-        # The format of /proc/mounts is:
-        # <partition> <mount point> <file system> <mount options> ...
-        results = self._shell.Execute(
-            "cat /proc/mounts | cut -d\" \" -f2")
-        mount_points = results[const.STDOUT][0].split()
-        logging.info('Mount points on the device: %s', mount_points)
-        asserts.assertFalse("/system" in mount_points,
-                            "/system mount point shouldn't exist")
-
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/api/system_as_root/Android.mk b/checkpoint/Android.mk
similarity index 87%
rename from api/system_as_root/Android.mk
rename to checkpoint/Android.mk
index b7957a3..e07d2e4 100644
--- a/api/system_as_root/Android.mk
+++ b/checkpoint/Android.mk
@@ -18,6 +18,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsKernelSystemAsRoot
-VTS_CONFIG_SRC_DIR := testcases/kernel/api/system_as_root
+LOCAL_MODULE := CheckpointTest
 -include test/vts/tools/build/Android.host_config.mk
diff --git a/api/system_as_root/AndroidTest.xml b/checkpoint/AndroidTest.xml
similarity index 76%
rename from api/system_as_root/AndroidTest.xml
rename to checkpoint/AndroidTest.xml
index ad28d5e..a2498b7 100644
--- a/api/system_as_root/AndroidTest.xml
+++ b/checkpoint/AndroidTest.xml
@@ -13,14 +13,16 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS KernelSystemAsRoot test cases">
+<configuration description="Config for VTS CheckpointTest test cases">
     <option name="config-descriptor:metadata" key="plan" value="vts-kernel" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="HostDrivenTest.push" />
+        <option name="cleanup" value="true" />
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsKernelSystemAsRoot" />
-        <option name="test-case-path" value="vts/testcases/kernel/api/system_as_root/VtsKernelSystemAsRootTest" />
-        <option name="precondition-first-api-level" value="28" />
+        <option name="test-module-name" value="VtsKernelCheckpointTest" />
+        <option name="test-timeout" value="6m" />
+        <option name="runtime-hint" value="5m" />
+        <option name="test-case-path" value="vts/testcases/kernel/checkpoint/CheckpointTest" />
     </test>
 </configuration>
diff --git a/checkpoint/CheckpointTest.py b/checkpoint/CheckpointTest.py
new file mode 100644
index 0000000..e6d0344
--- /dev/null
+++ b/checkpoint/CheckpointTest.py
@@ -0,0 +1,122 @@
+#!/usr/bin/env python
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from vts.runners.host import asserts
+from vts.runners.host import base_test
+from vts.runners.host import const
+from vts.runners.host import test_runner
+
+
+class VtsKernelCheckpointTest(base_test.BaseTestClass):
+
+    _CHECKPOINTTESTFILE = "/data/local/tmp/checkpointtest"
+    _ORIGINALVALUE = "original value"
+    _MODIFIEDVALUE = "modified value"
+
+    def getFstab(self):
+        self.dut.adb.root()
+
+        for prop in ["hardware", "hardware.platform"]:
+            extension = self.dut.adb.shell("getprop ro.boot." + prop, no_except = True)
+            extension = extension[const.STDOUT]
+            if not extension:
+                continue
+
+            for filename in ["/odm/etc/fstab.", "/vendor/etc/fstab.", "/fstab."]:
+                contents = self.dut.adb.shell("cat " + filename + extension, no_except = True)
+                if contents[const.EXIT_CODE] != 0:
+                    continue
+
+                return contents[const.STDOUT]
+
+        return ""
+
+    def isCheckpoint(self):
+        fstab = self.getFstab().splitlines()
+        for line in fstab:
+            parts = line.split()
+            if len(parts) != 5: # fstab has five parts for each entry:
+                                # [device-name] [mount-point] [type] [mount_flags] [fsmgr_flags]
+                continue
+
+            flags = parts[4]    # the fsmgr_flags field is the fifth one, thus index 4
+            flags = flags.split(',')
+            if any(flag.startswith("checkpoint=") for flag in flags):
+                return True
+
+        return False
+
+    def setUpClass(self):
+        self.dut = self.android_devices[0]
+        self.shell = self.dut.shell
+        self.isCheckpoint_ = self.isCheckpoint()
+
+    def reboot(self):
+        self.dut.reboot()
+        self.dut.adb.root()
+
+    def testRollback(self):
+        if not self.isCheckpoint_:
+            return
+
+        # Create a file and initiate checkpoint
+        self.dut.adb.root()
+        self.dut.adb.shell("echo " + self._ORIGINALVALUE + " > " + self._CHECKPOINTTESTFILE)
+        result = self.dut.adb.shell("vdc checkpoint startCheckpoint 1", no_except = True)
+        asserts.assertEqual(result[const.EXIT_CODE], 1)
+        self.reboot()
+
+        # Modify the file but do not commit
+        self.dut.adb.shell("echo " + self._MODIFIEDVALUE + " > " + self._CHECKPOINTTESTFILE)
+        self.reboot()
+
+        # Check the file is unchanged
+        result = self.dut.adb.shell("cat " + self._CHECKPOINTTESTFILE)
+        asserts.assertEqual(result.strip(), self._ORIGINALVALUE)
+
+        # Clean up
+        result = self.dut.adb.shell("vdc checkpoint commitChanges", no_except = True)
+        asserts.assertEqual(result[const.EXIT_CODE], 1)
+        self.reboot()
+        self.dut.adb.shell("rm " + self._CHECKPOINTTESTFILE)
+
+    def testCommit(self):
+        if not self.isCheckpoint_:
+            return
+
+        # Create a file and initiate checkpoint
+        self.dut.adb.root()
+        self.dut.adb.shell("echo " + self._ORIGINALVALUE + " > " + self._CHECKPOINTTESTFILE)
+        result = self.dut.adb.shell("vdc checkpoint startCheckpoint 1", no_except = True)
+        asserts.assertEqual(result[const.EXIT_CODE], 1)
+        self.reboot()
+
+        # Modify the file and commit the checkpoint
+        self.dut.adb.shell("echo " + self._MODIFIEDVALUE + " > " + self._CHECKPOINTTESTFILE)
+        result = self.dut.adb.shell("vdc checkpoint commitChanges", no_except = True)
+        asserts.assertEqual(result[const.EXIT_CODE], 1)
+        self.reboot()
+
+        # Check file has changed
+        result = self.dut.adb.shell("cat " + self._CHECKPOINTTESTFILE)
+        asserts.assertEqual(result.strip(), self._MODIFIEDVALUE)
+
+        # Clean up
+        self.dut.adb.shell("rm " + self._CHECKPOINTTESTFILE)
+
+if __name__ == "__main__":
+    test_runner.main()
diff --git a/api/system_as_root/__init__.py b/checkpoint/__init__.py
similarity index 100%
rename from api/system_as_root/__init__.py
rename to checkpoint/__init__.py
diff --git a/config/VtsKernelConfigTest.py b/config/VtsKernelConfigTest.py
index 73cf7b0..19981ee 100644
--- a/config/VtsKernelConfigTest.py
+++ b/config/VtsKernelConfigTest.py
@@ -133,7 +133,7 @@
         """Parse kernel config file to a dictionary.
 
         Args:
-            file: file object, android-base.cfg or unzipped /proc/config.gz
+            file: file object, android-base.config or unzipped /proc/config.gz
             configs: dict to which config options in file will be added
 
         Returns:
@@ -163,7 +163,7 @@
         """Ensures all kernel configs conform to Android requirements.
 
         Detects kernel version of device and validates against appropriate
-        Common Android Kernel android-base.cfg and Android Treble
+        Common Android Kernel android-base.config and Android Treble
         requirements.
         """
         logging.info("Testing existence of %s" % self.PROC_FILE_PATH)
@@ -177,8 +177,8 @@
         configs = dict()
         config_file_path = os.path.join(
             self.data_file_path, self.KERNEL_CONFIG_FILE_PATH,
-            self.release_dir, "android-" + kernel_version, "android-base.cfg")
-        logging.info("Pulling base cfg from %s", config_file_path)
+            self.release_dir, "android-" + kernel_version, "android-base.config")
+        logging.info("Pulling base config from %s", config_file_path)
         with open(config_file_path, 'r') as config_file:
             configs = self.parseConfigFileToDict(config_file, configs)
 
@@ -199,9 +199,9 @@
                                             self.KERNEL_CONFIG_FILE_PATH,
                                             self.release_dir,
                                             "android-" + kernel_version,
-                                            "android-base-%s.cfg" % kernelArch)
+                                            "android-base-%s.config" % kernelArch)
             if os.path.isfile(config_file_path):
-                logging.info("Pulling arch cfg from %s", config_file_path)
+                logging.info("Pulling arch config from %s", config_file_path)
                 with open(config_file_path, 'r') as config_file:
                     configs = self.parseConfigFileToDict(config_file, configs)
 
diff --git a/cpu_profiling/Android.mk b/cpu_profiling/Android.mk
index b05e156..fe4a2bf 100644
--- a/cpu_profiling/Android.mk
+++ b/cpu_profiling/Android.mk
@@ -18,5 +18,4 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := CpuProfilingTest
-VTS_CONFIG_SRC_DIR := testcases/kernel/cpu_profiling
 -include test/vts/tools/build/Android.host_config.mk
diff --git a/linux_kselftest/presubmit/Android.mk b/linux_kselftest/presubmit/Android.mk
index 52e91d7..b02f247 100644
--- a/linux_kselftest/presubmit/Android.mk
+++ b/linux_kselftest/presubmit/Android.mk
@@ -19,5 +19,4 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := VtsKernelLinuxKselftestPresubmit
-VTS_CONFIG_SRC_DIR := testcases/kernel/linux_kselftest/presubmit
 -include test/vts/tools/build/Android.host_config.mk
diff --git a/linux_kselftest/stable/Android.mk b/linux_kselftest/stable/Android.mk
index ddc23e0..95d2b78 100644
--- a/linux_kselftest/stable/Android.mk
+++ b/linux_kselftest/stable/Android.mk
@@ -19,5 +19,4 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := VtsKernelLinuxKselftest
-VTS_CONFIG_SRC_DIR := testcases/kernel/linux_kselftest/stable
 -include test/vts/tools/build/Android.host_config.mk
diff --git a/linux_kselftest/staging/Android.mk b/linux_kselftest/staging/Android.mk
index c413cf3..6b789ce 100644
--- a/linux_kselftest/staging/Android.mk
+++ b/linux_kselftest/staging/Android.mk
@@ -19,5 +19,4 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := VtsKernelLinuxKselftestStaging
-VTS_CONFIG_SRC_DIR := testcases/kernel/linux_kselftest/staging
 -include test/vts/tools/build/Android.host_config.mk
diff --git a/ltp/KernelLtpTest.py b/ltp/KernelLtpTest.py
index ccf2143..c11322d 100644
--- a/ltp/KernelLtpTest.py
+++ b/ltp/KernelLtpTest.py
@@ -60,8 +60,8 @@
                            the number is greater than 0, that number of threads
                            will be created to run the tests.
     """
-    _32BIT = "32"
-    _64BIT = "64"
+    _32BIT = 32
+    _64BIT = 64
     _PASS = 0
     _SKIP = 1
     _FAIL = -1
@@ -196,12 +196,15 @@
 
         # For LTP test cases, we run one shell command for each test case
         # So the result should also contains only one execution output
-        stdout = results[const.STDOUT][0]
-        ret_code = results[const.EXIT_CODE][0]
+        try:
+            stdout = results[const.STDOUT][0]
+            ret_code = results[const.EXIT_CODE][0]
+        except IndexError as e:
+            logging.exception(e)
+            return (self._FAIL, "Command result is malformed.")
+
         # Test case is not for the current configuration, SKIP
-        if ((ret_code == ltp_enums.TestExitCode.TCONF and
-             'TPASS' not in stdout) or
-            (ret_code == ltp_enums.TestExitCode.TPASS and 'CONF' in stdout)):
+        if (ret_code == ltp_enums.TestExitCode.TCONF):
             return (self._SKIP, "Incompatible test skipped: TCONF")
         elif ret_code not in (ltp_enums.TestExitCode.TCONF,
                               ltp_enums.TestExitCode.TPASS):
@@ -242,7 +245,7 @@
             n_bit: int, bitness
         """
         test_bit = 'nativetest'
-        if n_bit == 64:
+        if n_bit == self._64BIT:
             test_bit += '64'
         self.PreTestSetup(test_bit)
         self.PushFiles(test_bit)
diff --git a/ltp/configs/disabled_tests.py b/ltp/configs/disabled_tests.py
index f53fcff..3c8e3b3 100644
--- a/ltp/configs/disabled_tests.py
+++ b/ltp/configs/disabled_tests.py
@@ -1,92 +1,37 @@
 # Tests disabled
-# Based on external/ltp commit 5f01077afe994f4107b147222f3956716d4a8fde
 DISABLED_TESTS = [
-    # b/32386191 getrusage04 result is flaky
-    'syscalls.getrusage04',
-    # b/31154962
-    'cpuhotplug.cpuhotplug02',
-    # The following test cases are uncategorized
-    'syscalls.chown01_16',
-    'syscalls.chown02_16',
-    'syscalls.chown03_16',
-    'syscalls.chown05_16',
-    'syscalls.fchown04',
-    'syscalls.fchown01_16',
-    'syscalls.fchown02_16',
-    'syscalls.fchown03_16',
-    'syscalls.fchown04_16',
-    'syscalls.fchown05_16',
-    'syscalls.getegid01_16',
-    'syscalls.getegid02_16',
-    'syscalls.geteuid01_16',
-    'syscalls.geteuid02_16',
-    'syscalls.getgid01_16',
-    'syscalls.getgid03_16',
-    'syscalls.getgroups01_16',
-    'syscalls.gethostbyname_r01',
-    'syscalls.getuid01_16',
-    'syscalls.getuid03_16',
-    'syscalls.ioctl03',
-    'syscalls.inotify03',
-    'syscalls.lchown03',
-    'syscalls.lchown01_16',
-    'syscalls.lchown02_16',
-    'syscalls.lchown03_16',
-    'syscalls.mmap16',
-    'syscalls.mprotect01',
-    'syscalls.nftw01',
-    'syscalls.nftw6401',
-    'syscalls.nice04',
-    'syscalls.open08',
-    'syscalls.open11',
-    'syscalls.pathconf01',
-    'syscalls.preadv02',
-    'syscalls.pwritev02',
-    'syscalls.rt_sigprocmask01',
-    'syscalls.setfsgid01_16',
-    'syscalls.setfsgid02_16',
-    'syscalls.setfsgid03_16',
-    'syscalls.setfsuid01_16',
-    'syscalls.setfsuid02_16',
-    'syscalls.setfsuid03_16',
-    'syscalls.setfsuid04_16',
-    'syscalls.setgid01_16',
-    'syscalls.setgid02_16',
-    'syscalls.setgid03_16',
-    'syscalls.setgroups01_16',
-    'syscalls.setgroups02_16',
-    'syscalls.setgroups03_16',
-    'syscalls.setgroups04_16',
-    'syscalls.setregid02',
-    'syscalls.setregid03',
-    'syscalls.setregid04',
-    'syscalls.setregid01_16',
-    'syscalls.setregid02_16',
-    'syscalls.setregid03_16',
-    'syscalls.setregid04_16',
-    'syscalls.setresgid01_16',
-    'syscalls.setresgid02_16',
-    'syscalls.setresgid03_16',
-    'syscalls.setresgid04_16',
-    'syscalls.setresuid01_16',
-    'syscalls.setresuid02_16',
-    'syscalls.setresuid03_16',
-    'syscalls.setresuid04_16',
-    'syscalls.setresuid05_16',
-    'syscalls.setreuid01_16',
-    'syscalls.setreuid02_16',
-    'syscalls.setreuid03_16',
-    'syscalls.setreuid04_16',
-    'syscalls.setreuid05_16',
-    'syscalls.setreuid06_16',
-    'syscalls.setreuid07_16',
-    'syscalls.setuid01_16',
-    'syscalls.setuid02_16',
-    'syscalls.setuid03_16',
-    'syscalls.setuid04_16',
-    'syscalls.splice02',
-    'syscalls.sysconf01',
-    'syscalls.utimensat01',
+    'cap_bounds.Cap_bounds',
+    'commands.file01', # b/71414136
+    'cpuhotplug.cpuhotplug02', # b/31154962
+    'cpuhotplug.cpuhotplug03',
+    'cpuhotplug.cpuhotplug04', # b/30688056
+    'cpuhotplug.cpuhotplug06',
+    'cve.cve-2014-0196', # b/112350736
+    'cve.cve-2015-0235', # b/112350398
+    'cve.cve-2016-4470', # b/112354289
+    'cve.cve-2017-1000364', # b/112350736
+    'cve.cve-2017-5669', # b/112354289
+    'dio.dio04',
+    'dio.dio10',
+    'dio.dio29', # takes too long
+    'dio.dio30', # takes too long
+    'dma_thread_diotest.dma_thread_diotest1', # b/32100169
+    'dma_thread_diotest.dma_thread_diotest2',
+    'dma_thread_diotest.dma_thread_diotest3',
+    'dma_thread_diotest.dma_thread_diotest4',
+    'dma_thread_diotest.dma_thread_diotest5',
+    'dma_thread_diotest.dma_thread_diotest6',
+    'dma_thread_diotest.dma_thread_diotest7',
+    'fcntl-locktests_android.FCNTL_LOCKTESTS',
+    'filecaps.Filecaps',
+    'fs.fs_racer_32bit', # b/71780005
+    'fs.fs_racer_64bit', # b/71780005
+    'fs.ftest01',
+    'fs.ftest03',
+    'fs.ftest04',
+    'fs.ftest05',
+    'fs.ftest07',
+    'fs.ftest08',
     'fs.gf01',
     'fs.gf02',
     'fs.gf03',
@@ -115,19 +60,61 @@
     'fs.gf28',
     'fs.gf29',
     'fs.gf30',
+    'fs.iogen01',
+    'fs.isofs',
+    'fs.proc01', # b/71415362
+    'fs.quota_remount_test01', # b/33008689
     'fs.rwtest01',
     'fs.rwtest02',
     'fs.rwtest03',
     'fs.rwtest04',
     'fs.rwtest05',
-    'fs.iogen01',
-    'fs.isofs',
+    'fs_bind.BindMounts',
+    'fs_ext4.ext4-persist-prealloc',
+    'fs_ext4.ext4-uninit-groups',
     'fsx.fsx-linux',
-    'mm.mtest06',
-    'mm.shm_test01',
+    'fsx.fsx-linux',
+    'hugetlb.hugemmap05_1',
+    'hugetlb.hugemmap05_2',
+    'hugetlb.hugemmap05_3',
+    'input.input01_64bit', # unstable 64-bits tests
+    'input.input02_64bit',
+    'input.input04_64bit',
+    'input.input05_64bit',
+    'input.input06_32bit',
+    'input.input06_64bit',
+    'kernel_misc.kmsg01', # b/32343072
+    'kernel_misc.zram03',
+    'mm.ksm01',
+    'mm.ksm01_1', # b/71416672
+    'mm.ksm03',
+    'mm.ksm03_1',
     'mm.mallocstress01',
-    'mm.vma03',
+    'mm.max_map_count_32bit', # b/67981135
+    'mm.max_map_count_64bit', # b/67981135
     'mm.min_free_kbytes',
+    'mm.mmapstress10',
+    'mm.mtest01',
+    'mm.mtest01w', # b/30699880
+    'mm.oom01_64bit', # b/31181781
+    'mm.oom02_64bit',
+    'mm.oom03_64bit',
+    'mm.oom04_64bit',
+    'mm.oom05_64bit',
+    'mm.overcommit_memory01_64bit', # failing 64-bit only tests
+    'mm.overcommit_memory02_64bit',
+    'mm.overcommit_memory03_64bit',
+    'mm.overcommit_memory04_64bit',
+    'mm.overcommit_memory05_64bit',
+    'mm.overcommit_memory06_64bit',
+    'mm.shm_test01',
+    'mm.swapping01_64bit',  # b/31181781
+    'mm.thp01_32bit', # b/65636203
+    'mm.thp01_64bit',
+    'mm.thp02_64bit',
+    'mm.thp03_64bit',
+    'mm.vma01_64bit', # b/31181781
+    'mm.vma03',
     'pipes.pipeio_1',
     'pipes.pipeio_3',
     'pipes.pipeio_4',
@@ -135,165 +122,65 @@
     'pipes.pipeio_6',
     'pipes.pipeio_8',
     'sched.trace_sched01',
-    'math.float_bessel',
-    'math.float_exp_log',
-    'math.float_iperb',
-    'math.float_power',
-    'math.float_trigo',
-    'fs_bind.BindMounts',
-    'filecaps.Filecaps',
-    'cap_bounds.Cap_bounds',
-    'fcntl-locktests_android.FCNTL_LOCKTESTS',
-    'numa.move_pages03',
-    'numa.move_pages11',
-    'hugetlb.hugemmap05_1',
-    'hugetlb.hugemmap05_2',
-    'hugetlb.hugemmap05_3',
-    'hyperthreading.smt_smp_enabled',
-    'hyperthreading.smt_smp_affinity',
-    'kernel_misc.zram03',
-    'fs_ext4.ext4-uninit-groups',
-    'fs_ext4.ext4-persist-prealloc',
-    'cpuhotplug.cpuhotplug03',
-    'cpuhotplug.cpuhotplug06',
-    'dio.dio10',
-    # dio29 and dio30 take too long to finish
-    'dio.dio29',
-    'dio.dio30',
-    'fsx.fsx-linux',
-    'dio.dio04',
-    'numa.Numa-testcases',
-    'syscalls.connect01',
-    'syscalls.prot_hsymlinks',
-    'fs.ftest01',
-    'fs.ftest03',
-    'fs.ftest04',
-    'fs.ftest05',
-    'fs.ftest07',
-    'fs.ftest08',
-    'fs.inode02',
-    'ipc.signal_test_01',
-    'mm.mmapstress10',
+    'syscalls.access04',
+    'syscalls.alarm02', # b/112423802
+    'syscalls.cve-2017-5669', # b/71416706
+    'syscalls.fchown04',
+    'syscalls.fchown04_16',
     'syscalls.fcntl14',
     'syscalls.fcntl14',
     'syscalls.fcntl14_64',
     'syscalls.fcntl17',
     'syscalls.fcntl17_64',
-    'syscalls.kill12',
-    'syscalls.sigpending02',
-    'syscalls.sigrelse01',
-    'syscalls.vfork02',
-    # The following tests are not stable on 64bit version
-    'input.input01_64bit',
-    'input.input02_64bit',
-    'input.input04_64bit',
-    'input.input05_64bit',
-    'input.input06_64bit',
-    'input.input06_32bit',
-    # The following tests are failing on 64bit version
-    'mm.overcommit_memory01_64bit',
-    'mm.overcommit_memory02_64bit',
-    'mm.overcommit_memory03_64bit',
-    'mm.overcommit_memory04_64bit',
-    'mm.overcommit_memory05_64bit',
-    'mm.overcommit_memory06_64bit',
-    # tests that are currently killing some lab devices 64bit on (pixel and bullhead)
-    # b/31181781
-    'mm.oom01_64bit',
-    'mm.oom02_64bit',
-    'mm.oom03_64bit',
-    'mm.oom04_64bit',
-    'mm.oom05_64bit',
-    'mm.swapping01_64bit',
-    'mm.thp01_64bit',
-    'mm.thp02_64bit',
-    'mm.thp03_64bit',
-    'mm.vma01_64bit',
-    # b/65636203
-    'mm.thp01_32bit',
-    # kmsg01 would pass but it occasionally causes socket timeout and misalignment
-    # of request and response
-    # b/32343072
-    'kernel_misc.kmsg01',
-    # alarm02 tests for a boundary condition which is impractical to implement
-    # correctly on 32-bit Linux.  bionic deliberately breaks with POSIX by reporting
-    # that it failed to set up the alarm.  (Other libc implementations fail to
-    # set up the alarm too, but then return 0 anyway.)
-    'syscalls.alarm02',
-    # readdir02 calls opendir() -> closedir() -> readdir() and checks if readdir()
-    # returns EBADF.  POSIX doesn't require this, and bionic is likely to instead
-    # deadlock trying to acquire a destroyed mutex.
-    'syscalls.readdir02',
-    # Android sets RLIMIT_NICE to 40, so setpriority02 succeeds unexpectedly
-    'syscalls.setpriority02',
-    # fork13 takes ~45 minutes to run
-    'syscalls.fork13',
-    # open13 tests that fchmod() fails on fds opened with O_PATH.  bionic
-    # deliberately masks the EBADF returned by the kernel.
-    #
-    # https://android-review.googlesource.com/#/c/127908/
-    'syscalls.open13',
-    # Bug#30675453
-    'syscalls.perf_event_open02',
-    # Bug#30688551
-    'syscalls.lstat03_64',
-    'syscalls.lstat03',
-    # Bug#30688056
-    'cpuhotplug.cpuhotplug04',
-    # Bug#30699880
-    'mm.mtest01w',
-    'mm.mtest01',
-    # Bug#30688574
-    'syscalls.accept4_01',
-    # Bug #32100169
-    'dma_thread_diotest.dma_thread_diotest1',
-    'dma_thread_diotest.dma_thread_diotest2',
-    'dma_thread_diotest.dma_thread_diotest3',
-    'dma_thread_diotest.dma_thread_diotest4',
-    'dma_thread_diotest.dma_thread_diotest5',
-    'dma_thread_diotest.dma_thread_diotest6',
-    'dma_thread_diotest.dma_thread_diotest7',
-    # b/33008689 (closed) requires mkfs.ext4 and loop device support.
-    'fs.quota_remount_test01',
-    # https://b/65053723#comment19 (Flaky due to timeout dependency)
-    'syscalls.pselect01',
-    # https://b/65053723#comment20 (seems to test for "xfs" specific bug)
-    'syscalls.getxattr04',
-    # Following tests added in LTP20170516 release are disabled because
-    # they currently fail with VTS
-    'syscalls.access04',
+    'syscalls.fcntl35',
+    'syscalls.fcntl35_64', # b/71416738
+    'syscalls.fcntl36',
+    'syscalls.fcntl36_64', # b/71416760
+    'syscalls.fork13', # takes too long: ~45mins
+    'syscalls.gethostbyname_r01',
+    'syscalls.getrusage04', # b/32386191
+    'syscalls.getxattr04', # b/65053723#comment20
+    'syscalls.inotify03',
+    'syscalls.ioctl03',
     'syscalls.ioctl04',
     'syscalls.ioctl06',
     'syscalls.kcmp03',
-    # TODO(b/67981135): Following tests added in LTP20170929 release are
-    # disabled because they currently fail with VTS
-    'mm.max_map_count_64bit',
-    'mm.max_map_count_32bit',
-    # TODO(b/69117476): Following test needs to be checked to see it
-    # it correctly skips running
-    'tracing.ftrace_regression01',
-    # b/71780005: causes /data to get filled repeatedly
-    'fs.fs_racer_32bit',
-    'fs.fs_racer_64bit',
-    # b/71414136: fails in VTS
-    'commands.file01',
-    # b/71415362: fails in VTS
-    'fs.proc01',
-    # b/71416672: fails in VTS
-    'mm.ksm01_1',
-    'mm.ksm01',
-    'mm.ksm03_1',
-    'mm.ksm03',
-    # b/71416706: fails in VTS
-    'syscalls.cve-2017-5669',
-    # b/71416738: fails in VTS
-    'syscalls.fcntl35_64',
-    'syscalls.fcntl35',
-    # b/71416760: fails in VTS
-    'syscalls.fcntl36_64',
-    'syscalls.fcntl36',
-    # b/71416822: fails in VTS
-    'tracing.dynamic_debug01',
-    # (TODO): b/73784987
-    'syscalls.mount03',
+    'syscalls.kill12',
+    'syscalls.lchown03',
+    'syscalls.lchown03_16',
+    'syscalls.lstat03',
+    'syscalls.lstat03_64', # b/30688551
+    'syscalls.mmap16',
+    'syscalls.move_pages01', # move_pages syscalls requires userspace numa.
+    'syscalls.move_pages02',
+    'syscalls.move_pages03',
+    'syscalls.move_pages04',
+    'syscalls.move_pages05',
+    'syscalls.move_pages06',
+    'syscalls.move_pages07',
+    'syscalls.move_pages08',
+    'syscalls.move_pages09',
+    'syscalls.move_pages10',
+    'syscalls.move_pages11',
+    'syscalls.move_pages12',
+    'syscalls.nftw01',
+    'syscalls.nftw6401',
+    'syscalls.nice04',
+    'syscalls.open08',
+    'syscalls.open13', # https://android-review.googlesource.com/#/c/127908/
+    'syscalls.perf_event_open02', # b/30675443
+    'syscalls.prot_hsymlinks',
+    'syscalls.pselect01', # b/65053723#comment19
+    'syscalls.readdir02', # b/112422073
+    'syscalls.rt_sigprocmask01_32bit', # b/31152672
+    'syscalls.setpriority02', # b/73137289
+    'syscalls.setregid02',
+    'syscalls.setregid02_16',
+    'syscalls.sigpending02',
+    'syscalls.sigrelse01',
+    'syscalls.splice02',
+    'syscalls.utimensat01',
+    'syscalls.vfork02',
+    'tracing.dynamic_debug01', # b/71416822
+    'tracing.ftrace_regression01', # b/69117476
 ]
diff --git a/ltp/configs/stable_tests.py b/ltp/configs/stable_tests.py
index 9ed44e1..b2cc7cf 100644
--- a/ltp/configs/stable_tests.py
+++ b/ltp/configs/stable_tests.py
@@ -1,8 +1,14 @@
 STABLE_TESTS = [
+    'commands.cp01_32bit',
+    'commands.cp01_64bit',
+    'commands.cpio01_32bit',
+    'commands.cpio01_64bit',
     'commands.ldd_32bit',
     'commands.ldd_64bit',
     'commands.ln01_32bit',
     'commands.ln01_64bit',
+    'commands.mkdir01_32bit',
+    'commands.mkdir01_64bit',
     'containers.mountns01_32bit',
     'containers.mountns01_64bit',
     'containers.mountns02_32bit',
@@ -11,6 +17,66 @@
     'containers.mountns03_64bit',
     'containers.mountns04_32bit',
     'containers.mountns04_64bit',
+    'cve.cve-2011-0999_32bit',
+    'cve.cve-2011-0999_64bit',
+    'cve.cve-2011-2496_32bit',
+    'cve.cve-2011-2496_64bit',
+    'cve.cve-2012-0957_32bit',
+    'cve.cve-2012-0957_64bit',
+    'cve.cve-2015-3290_32bit',
+    'cve.cve-2015-3290_64bit',
+    'cve.cve-2015-7550_32bit',
+    'cve.cve-2015-7550_64bit',
+    'cve.cve-2016-10044_32bit',
+    'cve.cve-2016-10044_64bit',
+    'cve.cve-2016-4470_32bit',
+    'cve.cve-2016-4470_64bit',
+    'cve.cve-2016-4997_32bit',
+    'cve.cve-2016-4997_64bit',
+    'cve.cve-2016-5195_32bit',
+    'cve.cve-2016-5195_64bit',
+    'cve.cve-2016-7042_32bit',
+    'cve.cve-2016-7042_64bit',
+    'cve.cve-2016-7117_32bit',
+    'cve.cve-2016-7117_64bit',
+    'cve.cve-2016-9604_32bit',
+    'cve.cve-2016-9604_64bit',
+    'cve.cve-2017-12192_32bit',
+    'cve.cve-2017-12192_64bit',
+    'cve.cve-2017-12193_32bit',
+    'cve.cve-2017-12193_64bit',
+    'cve.cve-2017-15274_32bit',
+    'cve.cve-2017-15274_64bit',
+    'cve.cve-2017-15299_32bit',
+    'cve.cve-2017-15299_64bit',
+    'cve.cve-2017-15537_32bit',
+    'cve.cve-2017-15537_64bit',
+    'cve.cve-2017-15951_32bit',
+    'cve.cve-2017-15951_64bit',
+    'cve.cve-2017-16939_32bit',
+    'cve.cve-2017-16939_64bit',
+    'cve.cve-2017-17052_32bit',
+    'cve.cve-2017-17052_64bit',
+    'cve.cve-2017-17053_32bit',
+    'cve.cve-2017-17053_64bit',
+    'cve.cve-2017-17807_32bit',
+    'cve.cve-2017-17807_64bit',
+    'cve.cve-2017-2618_32bit',
+    'cve.cve-2017-2618_64bit',
+    'cve.cve-2017-2671_32bit',
+    'cve.cve-2017-2671_64bit',
+    'cve.cve-2017-5669_32bit',
+    'cve.cve-2017-5669_64bit',
+    'cve.cve-2017-5754_32bit',
+    'cve.cve-2017-5754_64bit',
+    'cve.cve-2017-6951_32bit',
+    'cve.cve-2017-6951_64bit',
+    'cve.cve-2017-7308_32bit',
+    'cve.cve-2017-7308_64bit',
+    'cve.cve-2017-7472_32bit',
+    'cve.cve-2017-7472_64bit',
+    'cve.cve-2018-5803_32bit',
+    'cve.cve-2018-5803_64bit',
     'dio.dio01_32bit',
     'dio.dio01_64bit',
     'dio.dio02_32bit',
@@ -167,10 +233,16 @@
     'ipc.signal_test_06_64bit',
     'ipc.signal_test_07_32bit',
     'ipc.signal_test_07_64bit',
+    'math.abs01_32bit',
+    'math.abs01_64bit',
+    'math.atof01_32bit',
+    'math.atof01_64bit',
     'math.fptest01_32bit',
     'math.fptest01_64bit',
     'math.fptest02_32bit',
     'math.fptest02_64bit',
+    'math.nextafter01_32bit',
+    'math.nextafter01_64bit',
     'mm.data_space_32bit',
     'mm.data_space_64bit',
     'mm.max_map_count_32bit',
@@ -207,12 +279,12 @@
     'mm.mmapstress09_64bit',
     'mm.mtest05_32bit',
     'mm.mtest05_64bit',
-    'mm.mtest06_32bit',
-    'mm.mtest06_64bit',
     'mm.mtest06_2_32bit',
     'mm.mtest06_2_64bit',
+    'mm.mtest06_32bit',
     'mm.mtest06_3_32bit',
     'mm.mtest06_3_64bit',
+    'mm.mtest06_64bit',
     'mm.page01_32bit',
     'mm.page01_64bit',
     'mm.page02_32bit',
@@ -276,12 +348,14 @@
     'syscalls.add_key01_64bit',
     'syscalls.add_key02_32bit',
     'syscalls.add_key02_64bit',
+    'syscalls.add_key03_32bit',
+    'syscalls.add_key03_64bit',
+    'syscalls.add_key04_32bit',
+    'syscalls.add_key04_64bit',
     'syscalls.adjtimex01_32bit',
     'syscalls.adjtimex01_64bit',
     'syscalls.adjtimex02_32bit',
     'syscalls.adjtimex02_64bit',
-    'syscalls.alarm01_32bit',
-    'syscalls.alarm01_64bit',
     'syscalls.alarm03_32bit',
     'syscalls.alarm03_64bit',
     'syscalls.alarm05_32bit',
@@ -332,12 +406,16 @@
     'syscalls.chmod05_64bit',
     'syscalls.chmod07_32bit',
     'syscalls.chmod07_64bit',
+    'syscalls.chown01_16_32bit',
     'syscalls.chown01_32bit',
     'syscalls.chown01_64bit',
+    'syscalls.chown02_16_32bit',
     'syscalls.chown02_32bit',
     'syscalls.chown02_64bit',
+    'syscalls.chown03_16_32bit',
     'syscalls.chown03_32bit',
     'syscalls.chown03_64bit',
+    'syscalls.chown05_16_32bit',
     'syscalls.chown05_32bit',
     'syscalls.chown05_64bit',
     'syscalls.chroot01_32bit',
@@ -352,6 +430,8 @@
     'syscalls.clock_getres01_64bit',
     'syscalls.clock_nanosleep01_32bit',
     'syscalls.clock_nanosleep01_64bit',
+    'syscalls.clock_nanosleep02_32bit',
+    'syscalls.clock_nanosleep02_64bit',
     'syscalls.clock_nanosleep2_01_32bit',
     'syscalls.clock_nanosleep2_01_64bit',
     'syscalls.clone01_32bit',
@@ -436,6 +516,8 @@
     'syscalls.epoll_ctl01_64bit',
     'syscalls.epoll_ctl02_32bit',
     'syscalls.epoll_ctl02_64bit',
+    'syscalls.epoll_pwait01_32bit',
+    'syscalls.epoll_pwait01_64bit',
     'syscalls.epoll_wait01_32bit',
     'syscalls.epoll_wait01_64bit',
     'syscalls.epoll_wait02_32bit',
@@ -508,12 +590,16 @@
     'syscalls.fchmod07_64bit',
     'syscalls.fchmodat01_32bit',
     'syscalls.fchmodat01_64bit',
+    'syscalls.fchown01_16_32bit',
     'syscalls.fchown01_32bit',
     'syscalls.fchown01_64bit',
+    'syscalls.fchown02_16_32bit',
     'syscalls.fchown02_32bit',
     'syscalls.fchown02_64bit',
+    'syscalls.fchown03_16_32bit',
     'syscalls.fchown03_32bit',
     'syscalls.fchown03_64bit',
+    'syscalls.fchown05_16_32bit',
     'syscalls.fchown05_32bit',
     'syscalls.fchown05_64bit',
     'syscalls.fchownat01_32bit',
@@ -641,9 +727,9 @@
     'syscalls.fcntl33_64_64bit',
     'syscalls.fcntl33_64bit',
     'syscalls.fcntl34_32bit',
-    'syscalls.fcntl34_64bit',
     'syscalls.fcntl34_64_32bit',
     'syscalls.fcntl34_64_64bit',
+    'syscalls.fcntl34_64bit',
     'syscalls.fdatasync01_32bit',
     'syscalls.fdatasync01_64bit',
     'syscalls.fdatasync02_32bit',
@@ -735,9 +821,9 @@
     'syscalls.ftruncate03_64_64bit',
     'syscalls.ftruncate03_64bit',
     'syscalls.ftruncate04_32bit',
-    'syscalls.ftruncate04_64bit',
     'syscalls.ftruncate04_64_32bit',
     'syscalls.ftruncate04_64_64bit',
+    'syscalls.ftruncate04_64bit',
     'syscalls.futex_wait01_32bit',
     'syscalls.futex_wait01_64bit',
     'syscalls.futex_wait03_32bit',
@@ -778,20 +864,30 @@
     'syscalls.getdomainname01_64bit',
     'syscalls.getdtablesize01_32bit',
     'syscalls.getdtablesize01_64bit',
+    'syscalls.getegid01_16_32bit',
     'syscalls.getegid01_32bit',
     'syscalls.getegid01_64bit',
+    'syscalls.getegid02_16_32bit',
     'syscalls.getegid02_32bit',
     'syscalls.getegid02_64bit',
+    'syscalls.geteuid01_16_32bit',
     'syscalls.geteuid01_32bit',
     'syscalls.geteuid01_64bit',
+    'syscalls.geteuid02_16_32bit',
     'syscalls.geteuid02_32bit',
     'syscalls.geteuid02_64bit',
+    'syscalls.getgid01_16_32bit',
     'syscalls.getgid01_32bit',
     'syscalls.getgid01_64bit',
+    'syscalls.getgid03_16_32bit',
     'syscalls.getgid03_32bit',
     'syscalls.getgid03_64bit',
+    'syscalls.getgroups01_16_32bit',
     'syscalls.getgroups01_32bit',
     'syscalls.getgroups01_64bit',
+    'syscalls.getgroups03_16_32bit',
+    'syscalls.getgroups03_32bit',
+    'syscalls.getgroups03_64bit',
     'syscalls.gethostname01_32bit',
     'syscalls.gethostname01_64bit',
     'syscalls.getitimer01_32bit',
@@ -866,8 +962,10 @@
     'syscalls.gettimeofday01_64bit',
     'syscalls.gettimeofday02_32bit',
     'syscalls.gettimeofday02_64bit',
+    'syscalls.getuid01_16_32bit',
     'syscalls.getuid01_32bit',
     'syscalls.getuid01_64bit',
+    'syscalls.getuid03_16_32bit',
     'syscalls.getuid03_32bit',
     'syscalls.getuid03_64bit',
     'syscalls.getxattr01_32bit',
@@ -914,6 +1012,22 @@
     'syscalls.iopl01_64bit',
     'syscalls.iopl02_32bit',
     'syscalls.iopl02_64bit',
+    'syscalls.keyctl01_32bit',
+    'syscalls.keyctl01_64bit',
+    'syscalls.keyctl02_32bit',
+    'syscalls.keyctl02_64bit',
+    'syscalls.keyctl03_32bit',
+    'syscalls.keyctl03_64bit',
+    'syscalls.keyctl04_32bit',
+    'syscalls.keyctl04_64bit',
+    'syscalls.keyctl05_32bit',
+    'syscalls.keyctl05_64bit',
+    'syscalls.keyctl06_32bit',
+    'syscalls.keyctl06_64bit',
+    'syscalls.keyctl07_32bit',
+    'syscalls.keyctl07_64bit',
+    'syscalls.keyctl08_32bit',
+    'syscalls.keyctl08_64bit',
     'syscalls.kill01_32bit',
     'syscalls.kill01_64bit',
     'syscalls.kill02_32bit',
@@ -932,8 +1046,10 @@
     'syscalls.kill10_64bit',
     'syscalls.kill11_32bit',
     'syscalls.kill11_64bit',
+    'syscalls.lchown01_16_32bit',
     'syscalls.lchown01_32bit',
     'syscalls.lchown01_64bit',
+    'syscalls.lchown02_16_32bit',
     'syscalls.lchown02_32bit',
     'syscalls.lchown02_64bit',
     'syscalls.lgetxattr01_32bit',
@@ -968,6 +1084,12 @@
     'syscalls.listxattr02_64bit',
     'syscalls.listxattr03_32bit',
     'syscalls.listxattr03_64bit',
+    'syscalls.llistxattr01_32bit',
+    'syscalls.llistxattr01_64bit',
+    'syscalls.llistxattr02_32bit',
+    'syscalls.llistxattr02_64bit',
+    'syscalls.llistxattr03_32bit',
+    'syscalls.llistxattr03_64bit',
     'syscalls.llseek01_32bit',
     'syscalls.llseek01_64bit',
     'syscalls.llseek02_32bit',
@@ -1016,8 +1138,6 @@
     'syscalls.mincore01_64bit',
     'syscalls.mincore02_32bit',
     'syscalls.mincore02_64bit',
-    'syscalls.mkdir01_32bit',
-    'syscalls.mkdir01_64bit',
     'syscalls.mkdir02_32bit',
     'syscalls.mkdir02_64bit',
     'syscalls.mkdir03_32bit',
@@ -1028,8 +1148,6 @@
     'syscalls.mkdir05A_64bit',
     'syscalls.mkdir05_32bit',
     'syscalls.mkdir05_64bit',
-    'syscalls.mkdir08_32bit',
-    'syscalls.mkdir08_64bit',
     'syscalls.mkdir09_32bit',
     'syscalls.mkdir09_64bit',
     'syscalls.mkdirat01_32bit',
@@ -1112,6 +1230,8 @@
     'syscalls.mount05_64bit',
     'syscalls.mount06_32bit',
     'syscalls.mount06_64bit',
+    'syscalls.mprotect01_32bit',
+    'syscalls.mprotect01_64bit',
     'syscalls.mprotect02_32bit',
     'syscalls.mprotect02_64bit',
     'syscalls.mprotect03_32bit',
@@ -1164,10 +1284,10 @@
     'syscalls.nice03_64bit',
     'syscalls.nice05_32bit',
     'syscalls.nice05_64bit',
-    'syscalls.open01_32bit',
-    'syscalls.open01_64bit',
     'syscalls.open01A_32bit',
     'syscalls.open01A_64bit',
+    'syscalls.open01_32bit',
+    'syscalls.open01_64bit',
     'syscalls.open02_32bit',
     'syscalls.open02_64bit',
     'syscalls.open03_32bit',
@@ -1190,6 +1310,8 @@
     'syscalls.openat01_64bit',
     'syscalls.openat03_32bit',
     'syscalls.openat03_64bit',
+    'syscalls.pathconf01_32bit',
+    'syscalls.pathconf01_64bit',
     'syscalls.pause01_32bit',
     'syscalls.pause01_64bit',
     'syscalls.pause02_32bit',
@@ -1271,9 +1393,9 @@
     'syscalls.preadv01_64_64bit',
     'syscalls.preadv01_64bit',
     'syscalls.preadv02_32bit',
-    'syscalls.preadv02_64bit',
     'syscalls.preadv02_64_32bit',
     'syscalls.preadv02_64_64bit',
+    'syscalls.preadv02_64bit',
     'syscalls.process_vm_readv01_32bit',
     'syscalls.process_vm_readv01_64bit',
     'syscalls.process_vm_readv02_32bit',
@@ -1284,6 +1406,8 @@
     'syscalls.process_vm_writev01_64bit',
     'syscalls.process_vm_writev02_32bit',
     'syscalls.process_vm_writev02_64bit',
+    'syscalls.pselect01_64_32bit',
+    'syscalls.pselect01_64_64bit',
     'syscalls.pselect02_32bit',
     'syscalls.pselect02_64_32bit',
     'syscalls.pselect02_64_64bit',
@@ -1317,9 +1441,9 @@
     'syscalls.pwritev01_64_64bit',
     'syscalls.pwritev01_64bit',
     'syscalls.pwritev02_32bit',
-    'syscalls.pwritev02_64bit',
     'syscalls.pwritev02_64_32bit',
     'syscalls.pwritev02_64_64bit',
+    'syscalls.pwritev02_64bit',
     'syscalls.qmm01_32bit',
     'syscalls.qmm01_64bit',
     'syscalls.read01_32bit',
@@ -1340,12 +1464,8 @@
     'syscalls.readlink01A_64bit',
     'syscalls.readlink01_32bit',
     'syscalls.readlink01_64bit',
-    'syscalls.readlink02_32bit',
-    'syscalls.readlink02_64bit',
     'syscalls.readlink03_32bit',
     'syscalls.readlink03_64bit',
-    'syscalls.readlink04_32bit',
-    'syscalls.readlink04_64bit',
     'syscalls.readlinkat01_32bit',
     'syscalls.readlinkat01_64bit',
     'syscalls.readlinkat02_32bit',
@@ -1406,6 +1526,10 @@
     'syscalls.renameat202_64bit',
     'syscalls.request_key01_32bit',
     'syscalls.request_key01_64bit',
+    'syscalls.request_key02_32bit',
+    'syscalls.request_key02_64bit',
+    'syscalls.request_key03_32bit',
+    'syscalls.request_key03_64bit',
     'syscalls.rmdir01_32bit',
     'syscalls.rmdir01_64bit',
     'syscalls.rmdir02_32bit',
@@ -1414,10 +1538,6 @@
     'syscalls.rmdir03A_64bit',
     'syscalls.rmdir03_32bit',
     'syscalls.rmdir03_64bit',
-    'syscalls.rmdir04_32bit',
-    'syscalls.rmdir04_64bit',
-    'syscalls.rmdir05_32bit',
-    'syscalls.rmdir05_64bit',
     'syscalls.rt_sigaction01_32bit',
     'syscalls.rt_sigaction01_64bit',
     'syscalls.rt_sigaction02_32bit',
@@ -1428,6 +1548,8 @@
     'syscalls.rt_sigprocmask02_64bit',
     'syscalls.rt_sigqueueinfo01_32bit',
     'syscalls.rt_sigqueueinfo01_64bit',
+    'syscalls.rt_sigsuspend01_32bit',
+    'syscalls.rt_sigsuspend01_64bit',
     'syscalls.sbrk01_32bit',
     'syscalls.sbrk01_64bit',
     'syscalls.sbrk02_32bit',
@@ -1540,32 +1662,46 @@
     'syscalls.setegid01_64bit',
     'syscalls.setegid02_32bit',
     'syscalls.setegid02_64bit',
+    'syscalls.setfsgid01_16_32bit',
     'syscalls.setfsgid01_32bit',
     'syscalls.setfsgid01_64bit',
+    'syscalls.setfsgid02_16_32bit',
     'syscalls.setfsgid02_32bit',
     'syscalls.setfsgid02_64bit',
+    'syscalls.setfsgid03_16_32bit',
     'syscalls.setfsgid03_32bit',
     'syscalls.setfsgid03_64bit',
+    'syscalls.setfsuid01_16_32bit',
     'syscalls.setfsuid01_32bit',
     'syscalls.setfsuid01_64bit',
+    'syscalls.setfsuid02_16_32bit',
     'syscalls.setfsuid02_32bit',
     'syscalls.setfsuid02_64bit',
+    'syscalls.setfsuid03_16_32bit',
     'syscalls.setfsuid03_32bit',
     'syscalls.setfsuid03_64bit',
+    'syscalls.setfsuid04_16_32bit',
     'syscalls.setfsuid04_32bit',
     'syscalls.setfsuid04_64bit',
+    'syscalls.setgid01_16_32bit',
     'syscalls.setgid01_32bit',
     'syscalls.setgid01_64bit',
+    'syscalls.setgid02_16_32bit',
     'syscalls.setgid02_32bit',
     'syscalls.setgid02_64bit',
+    'syscalls.setgid03_16_32bit',
     'syscalls.setgid03_32bit',
     'syscalls.setgid03_64bit',
+    'syscalls.setgroups01_16_32bit',
     'syscalls.setgroups01_32bit',
     'syscalls.setgroups01_64bit',
+    'syscalls.setgroups02_16_32bit',
     'syscalls.setgroups02_32bit',
     'syscalls.setgroups02_64bit',
+    'syscalls.setgroups03_16_32bit',
     'syscalls.setgroups03_32bit',
     'syscalls.setgroups03_64bit',
+    'syscalls.setgroups04_16_32bit',
     'syscalls.setgroups04_32bit',
     'syscalls.setgroups04_64bit',
     'syscalls.sethostname01_32bit',
@@ -1600,38 +1736,61 @@
     'syscalls.setpriority04_64bit',
     'syscalls.setpriority05_32bit',
     'syscalls.setpriority05_64bit',
+    'syscalls.setregid01_16_32bit',
     'syscalls.setregid01_32bit',
     'syscalls.setregid01_64bit',
+    'syscalls.setregid03_16_32bit',
+    'syscalls.setregid03_32bit',
+    'syscalls.setregid03_64bit',
+    'syscalls.setregid04_16_32bit',
+    'syscalls.setregid04_32bit',
+    'syscalls.setregid04_64bit',
+    'syscalls.setresgid01_16_32bit',
     'syscalls.setresgid01_32bit',
     'syscalls.setresgid01_64bit',
+    'syscalls.setresgid02_16_32bit',
     'syscalls.setresgid02_32bit',
     'syscalls.setresgid02_64bit',
+    'syscalls.setresgid03_16_32bit',
     'syscalls.setresgid03_32bit',
     'syscalls.setresgid03_64bit',
+    'syscalls.setresgid04_16_32bit',
     'syscalls.setresgid04_32bit',
     'syscalls.setresgid04_64bit',
+    'syscalls.setresuid01_16_32bit',
     'syscalls.setresuid01_32bit',
     'syscalls.setresuid01_64bit',
+    'syscalls.setresuid02_16_32bit',
     'syscalls.setresuid02_32bit',
     'syscalls.setresuid02_64bit',
+    'syscalls.setresuid03_16_32bit',
     'syscalls.setresuid03_32bit',
     'syscalls.setresuid03_64bit',
+    'syscalls.setresuid04_16_32bit',
     'syscalls.setresuid04_32bit',
     'syscalls.setresuid04_64bit',
+    'syscalls.setresuid05_16_32bit',
     'syscalls.setresuid05_32bit',
     'syscalls.setresuid05_64bit',
+    'syscalls.setreuid01_16_32bit',
     'syscalls.setreuid01_32bit',
     'syscalls.setreuid01_64bit',
+    'syscalls.setreuid02_16_32bit',
     'syscalls.setreuid02_32bit',
     'syscalls.setreuid02_64bit',
+    'syscalls.setreuid03_16_32bit',
     'syscalls.setreuid03_32bit',
     'syscalls.setreuid03_64bit',
+    'syscalls.setreuid04_16_32bit',
     'syscalls.setreuid04_32bit',
     'syscalls.setreuid04_64bit',
+    'syscalls.setreuid05_16_32bit',
     'syscalls.setreuid05_32bit',
     'syscalls.setreuid05_64bit',
+    'syscalls.setreuid06_16_32bit',
     'syscalls.setreuid06_32bit',
     'syscalls.setreuid06_64bit',
+    'syscalls.setreuid07_16_32bit',
     'syscalls.setreuid07_32bit',
     'syscalls.setreuid07_64bit',
     'syscalls.setrlimit01_32bit',
@@ -1654,12 +1813,13 @@
     'syscalls.settimeofday01_64bit',
     'syscalls.settimeofday02_32bit',
     'syscalls.settimeofday02_64bit',
+    'syscalls.setuid01_16_32bit',
     'syscalls.setuid01_32bit',
     'syscalls.setuid01_64bit',
-    'syscalls.setuid02_32bit',
-    'syscalls.setuid02_64bit',
+    'syscalls.setuid03_16_32bit',
     'syscalls.setuid03_32bit',
     'syscalls.setuid03_64bit',
+    'syscalls.setuid04_16_32bit',
     'syscalls.setuid04_32bit',
     'syscalls.setuid04_64bit',
     'syscalls.setxattr01_32bit',
@@ -1696,6 +1856,8 @@
     'syscalls.signalfd4_02_64bit',
     'syscalls.sigprocmask01_32bit',
     'syscalls.sigprocmask01_64bit',
+    'syscalls.sigsuspend01_32bit',
+    'syscalls.sigsuspend01_64bit',
     'syscalls.sigwaitinfo01_32bit',
     'syscalls.sigwaitinfo01_64bit',
     'syscalls.socket01_32bit',
@@ -1870,8 +2032,6 @@
     'syscalls.unlink01_64bit',
     'syscalls.unlink05_32bit',
     'syscalls.unlink05_64bit',
-    'syscalls.unlink06_32bit',
-    'syscalls.unlink06_64bit',
     'syscalls.unlink07_32bit',
     'syscalls.unlink07_64bit',
     'syscalls.unlink08_32bit',
diff --git a/ltp/ltp_configs.py b/ltp/ltp_configs.py
index f44d5b8..1fcf211 100644
--- a/ltp/ltp_configs.py
+++ b/ltp/ltp_configs.py
@@ -119,8 +119,8 @@
     'commands',
     'connectors',
     'containers',
-#     'controllers',
     'cpuhotplug',
+    'cve',
     'dio',
     'fcntl-locktests_android',
     'filecaps',
@@ -139,15 +139,13 @@
     'mm',
     'modules',
     'nptl',
-    'numa',
     'pipes',
     'power_management_tests',
     'pty',
     'sched',
+    'securebits',
     'syscalls',
     'timers',
-    # The following are not included in default LTP scenario group
-    'securebits',
     'tracing',
 ]
 
@@ -159,8 +157,8 @@
     'commands',
     'connectors',
     'containers',
-#     'controllers',
     'cpuhotplug',
+    'cve',
     'dio',
     'fcntl-locktests_android',
     'filecaps',
@@ -179,15 +177,13 @@
     'mm',
     'modules',
     'nptl',
-    'numa',
     'pipes',
     'power_management_tests',
     'pty',
     'sched_low_mem',
+    'securebits',
     'syscalls',
     'timers',
-    # The following are not included in default LTP scenario group
-    'securebits',
     'tracing',
 ]
 
diff --git a/ltp/stable/Android.mk b/ltp/stable/Android.mk
index 1807499..816e0fc 100644
--- a/ltp/stable/Android.mk
+++ b/ltp/stable/Android.mk
@@ -19,5 +19,4 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := VtsKernelLtp
-VTS_CONFIG_SRC_DIR := testcases/kernel/ltp/stable
 -include test/vts/tools/build/Android.host_config.mk
diff --git a/ltp/stable/AndroidTest.xml b/ltp/stable/AndroidTest.xml
index e5e3ac5..7afa51b 100644
--- a/ltp/stable/AndroidTest.xml
+++ b/ltp/stable/AndroidTest.xml
@@ -22,6 +22,7 @@
         <option name="test-module-name" value="VtsKernelLtp" />
         <option name="test-timeout" value="3h" />
         <option name="runtime-hint" value="30m" />
+        <option name="disable-framework" value="true" />
         <option name="test-case-path" value="vts/testcases/kernel/ltp/KernelLtpTest" />
     </test>
 </configuration>
diff --git a/ltp/staging/Android.mk b/ltp/staging/Android.mk
index 5161053..37e8d49 100644
--- a/ltp/staging/Android.mk
+++ b/ltp/staging/Android.mk
@@ -19,5 +19,4 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := VtsKernelLtpStaging
-VTS_CONFIG_SRC_DIR := testcases/kernel/ltp/staging
 -include test/vts/tools/build/Android.host_config.mk
diff --git a/ltp/staging/AndroidTest.xml b/ltp/staging/AndroidTest.xml
index 7e1685f..71b888d 100644
--- a/ltp/staging/AndroidTest.xml
+++ b/ltp/staging/AndroidTest.xml
@@ -22,6 +22,7 @@
         <option name="test-module-name" value="VtsKernelLtpStaging" />
         <option name="test-timeout" value="3h30m" />
         <option name="runtime-hint" value="1h30m" />
+        <option name="disable-framework" value="true" />
         <option name="test-case-path" value="vts/testcases/kernel/ltp/KernelLtpTest" />
         <option name="test-config-path" value="vts/testcases/kernel/ltp/staging/KernelLtpStagingTest.runner_conf" />
     </test>
diff --git a/memory/Android.mk b/memory/Android.mk
index 0fa172a..e6e04db 100644
--- a/memory/Android.mk
+++ b/memory/Android.mk
@@ -19,5 +19,4 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := MemorySystemStressTest
-VTS_CONFIG_SRC_DIR := testcases/kernel/memory
 -include test/vts/tools/build/Android.host_config.mk
diff --git a/syscall/Android.mk b/syscall/Android.mk
index 48f8106..6ec8d44 100644
--- a/syscall/Android.mk
+++ b/syscall/Android.mk
@@ -40,6 +40,4 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := VtsKernelSyscallExistence
-
-VTS_CONFIG_SRC_DIR := testcases/kernel/syscall
 -include test/vts/tools/build/Android.host_config.mk
