VtsKernelProcFileApiTest: Fix testProcUidProcstatSet IndexError am: 1f697687bd

Original change: https://android-review.googlesource.com/c/platform/test/vts/+/3014758

Change-Id: I9854e5484c4bff3943fc8e5911cf2870a8382024
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/PREUPLOAD.cfg b/PREUPLOAD.cfg
index c1fd701..6be6e5f 100644
--- a/PREUPLOAD.cfg
+++ b/PREUPLOAD.cfg
@@ -4,6 +4,3 @@
 [Builtin Hooks Options]
 clang_format = --commit ${PREUPLOAD_COMMIT} --style file --extensions c,h,cc,cpp,java
 
-[Hook Scripts]
-vts_framework_unittests = ${REPO_ROOT}/test/vts/script/run-unittest.sh
-
diff --git a/README.md b/README.md
deleted file mode 100644
index ebb2009..0000000
--- a/README.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# Android Vendor Test Suite (VTS)
-
-VTS consists of a set of testing frameworks and test cases, designed to help
-enhance the robustness, reliability, and compliance of:
-
-  * the Android system (e.g., Core HALs and libraries) and
-  * low-level system software (e.g., kernel, module, and firmware).
-
-VTS has mainly two types of test suites:
-
-  * automated (e.g., record-and-replay and fuzzing) and
-  * structural (e.g., gTest and host-driven python) testing.
-
-While the VTS framework and test cases are designed for userdebug or eng build
-devices, some test cases can be run on user build devices using its app namely,
-VTS Agent App.
-
-__Table of Contents__
-
-1. [VTS User Manual](doc/user_manual.md)
-2. [Where to find VTS test cases](testcases/README.md)
-3. [VTS Test Developer
-   Manual (Codelab)](https://codelabs.developers.google.com/codelabs/android-vts)
-
diff --git a/agents/apps/vts_agent_app/Android.bp b/agents/apps/vts_agent_app/Android.bp
deleted file mode 100644
index 52f9075..0000000
--- a/agents/apps/vts_agent_app/Android.bp
+++ /dev/null
@@ -1,32 +0,0 @@
-//
-// Copyright (C) 2016 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.
-//
-
-android_test_helper_app {
-    name: "VtsAgentApp",
-
-    srcs: ["src/**/*.java"],
-    jni_libs: ["libvts_agent_app_jni"],
-    sdk_version: "current",
-
-    compile_multilib: "both",
-
-    optimize: {
-        enabled: false,
-    },
-    dex_preopt: {
-        enabled: false,
-    },
-}
diff --git a/agents/apps/vts_agent_app/AndroidManifest.xml b/agents/apps/vts_agent_app/AndroidManifest.xml
deleted file mode 100644
index 55674ff..0000000
--- a/agents/apps/vts_agent_app/AndroidManifest.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.google.android.vts">
-    <application android:label="VTS Agent App">
-        <activity android:name="VtsAgentApp">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN"/>
-                <category android:name="android.intent.category.LAUNCHER"/>
-            </intent-filter>
-        </activity>
-    </application>
-</manifest>
diff --git a/agents/apps/vts_agent_app/jni/Android.bp b/agents/apps/vts_agent_app/jni/Android.bp
deleted file mode 100644
index 3f30179..0000000
--- a/agents/apps/vts_agent_app/jni/Android.bp
+++ /dev/null
@@ -1,29 +0,0 @@
-//
-// Copyright (C) 2016 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.
-//
-
-cc_library_shared {
-    name: "libvts_agent_app_jni",
-    sdk_version: "current",
-
-    srcs: ["VtsAgentAppNativeMain.cpp"],
-
-    cflags: [
-        "-Wall",
-        "-Werror",
-    ],
-
-    compile_multilib: "both",
-}
diff --git a/agents/apps/vts_agent_app/jni/VtsAgentAppNativeMain.cpp b/agents/apps/vts_agent_app/jni/VtsAgentAppNativeMain.cpp
deleted file mode 100644
index 25fecc6..0000000
--- a/agents/apps/vts_agent_app/jni/VtsAgentAppNativeMain.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (C) 2016 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.
- */
-
-#include <jni.h>
-
-extern "C" JNIEXPORT jboolean JNICALL
-Java_com_google_android_vts_VtsAgentAppNative_isPDK(JNIEnv *, jobject) {
-  return JNI_TRUE;
-}
diff --git a/agents/apps/vts_agent_app/res/layout/vts_agent_app.xml b/agents/apps/vts_agent_app/res/layout/vts_agent_app.xml
deleted file mode 100644
index 5157959..0000000
--- a/agents/apps/vts_agent_app/res/layout/vts_agent_app.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-
-<EditText xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/text"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:textSize="18sp"
-    android:autoText="true"
-    android:capitalize="sentences"
-    android:text="@string/vts_agent_app_text_text" />
diff --git a/agents/apps/vts_agent_app/res/values/strings.xml b/agents/apps/vts_agent_app/res/values/strings.xml
deleted file mode 100644
index facf519..0000000
--- a/agents/apps/vts_agent_app/res/values/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<resources>
-    <string name="vts_agent_app_text_text">VTS Agent App</string>
-</resources>
\ No newline at end of file
diff --git a/agents/apps/vts_agent_app/src/com/google/android/vts/VtsAgentApp.java b/agents/apps/vts_agent_app/src/com/google/android/vts/VtsAgentApp.java
deleted file mode 100644
index 91b2a04..0000000
--- a/agents/apps/vts_agent_app/src/com/google/android/vts/VtsAgentApp.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2016 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.
- */
-
-package com.google.android.vts;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.View;
-import android.view.WindowManager;
-
-/**
- * The VTS Agent App - main class.
- */
-public class VtsAgentApp extends Activity {
-    static final String TAG="VtsAgentApp";
-
-    /**
-     * Called with the activity is first created.
-     */
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        // Set the layout for this activity.  You can find it
-        // in res/layout/vts_agent_app.xml
-        View view = getLayoutInflater().inflate(R.layout.vts_agent_app, null);
-        setContentView(view);
-
-        WindowManager.LayoutParams params = getWindow().getAttributes();
-        params.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
-        getWindow().setAttributes(params);
-
-        view.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
-            @Override public void onSystemUiVisibilityChange(int visibility) {
-                WindowManager.LayoutParams params = getWindow().getAttributes();
-                params.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
-                getWindow().setAttributes(params);
-            }
-        });
-
-        VtsAgentAppNative vtsNative = new VtsAgentAppNative();
-        Log.i(TAG, "is PDK? " + vtsNative.isPDK());
-    }
-}
\ No newline at end of file
diff --git a/agents/apps/vts_agent_app/src/com/google/android/vts/VtsAgentAppNative.java b/agents/apps/vts_agent_app/src/com/google/android/vts/VtsAgentAppNative.java
deleted file mode 100644
index 2bb89d9..0000000
--- a/agents/apps/vts_agent_app/src/com/google/android/vts/VtsAgentAppNative.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2016 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.
- */
-
-package com.google.android.vts;
-
-public class VtsAgentAppNative {
-    static {
-        System.loadLibrary("vts_agent_app_jni");
-    }
-
-    native boolean isPDK();
-}
diff --git a/agents/hal/AgentRequestHandler.cpp b/agents/hal/AgentRequestHandler.cpp
deleted file mode 100644
index e24637f..0000000
--- a/agents/hal/AgentRequestHandler.cpp
+++ /dev/null
@@ -1,586 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-#define LOG_TAG "VtsAgentRequestHandler"
-
-#include "AgentRequestHandler.h"
-
-#include <dirent.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <string>
-
-#include <android-base/logging.h>
-
-#include "BinderClientToDriver.h"
-#include "SocketClientToDriver.h"
-#include "SocketServerForDriver.h"
-#include "test/vts/proto/AndroidSystemControlMessage.pb.h"
-#include "test/vts/proto/VtsDriverControlMessage.pb.h"
-#include "test/vts/proto/VtsResourceControllerMessage.pb.h"
-
-using namespace std;
-using namespace google::protobuf;
-
-namespace android {
-namespace vts {
-
-bool AgentRequestHandler::ListHals(const RepeatedPtrField<string>& base_paths) {
-  AndroidSystemControlResponseMessage response_msg;
-  ResponseCode result = FAIL;
-
-  for (const string& path : base_paths) {
-    LOG(DEBUG) << "open a dir " << path;
-    DIR* dp;
-    if (!(dp = opendir(path.c_str()))) {
-      LOG(ERROR) << "Error(" << errno << ") opening " << path;
-      continue;
-    }
-
-    struct dirent* dirp;
-    int len;
-    while ((dirp = readdir(dp)) != NULL) {
-      len = strlen(dirp->d_name);
-      if (len > 3 && !strcmp(&dirp->d_name[len - 3], ".so")) {
-        string found_path = path + "/" + string(dirp->d_name);
-        LOG(INFO) << "found " << found_path;
-        response_msg.add_file_names(found_path);
-        result = SUCCESS;
-      }
-    }
-    closedir(dp);
-  }
-  response_msg.set_response_code(result);
-  return VtsSocketSendMessage(response_msg);
-}
-
-bool AgentRequestHandler::SetHostInfo(const int callback_port) {
-  callback_port_ = callback_port;
-  AndroidSystemControlResponseMessage response_msg;
-  response_msg.set_response_code(SUCCESS);
-  return VtsSocketSendMessage(response_msg);
-}
-
-bool AgentRequestHandler::CheckDriverService(const string& service_name,
-                                             bool* live) {
-  AndroidSystemControlResponseMessage response_msg;
-
-#ifndef VTS_AGENT_DRIVER_COMM_BINDER  // socket
-  if (IsDriverRunning(service_name, 10)) {
-#else  // binder
-  sp<IVtsFuzzer> binder = GetBinderClient(service_name);
-  if (binder.get()) {
-#endif
-    if (live) *live = true;
-    response_msg.set_response_code(SUCCESS);
-    response_msg.set_reason("found the service");
-    LOG(DEBUG) << "set service_name " << service_name;
-    service_name_ = service_name;
-  } else {
-    if (live) *live = false;
-    response_msg.set_response_code(FAIL);
-    response_msg.set_reason("service not found");
-  }
-  return VtsSocketSendMessage(response_msg);
-}
-
-static const char kUnixSocketNamePrefixForCallbackServer[] =
-    "/data/local/tmp/vts_agent_callback";
-
-bool AgentRequestHandler::LaunchDriverService(
-    const AndroidSystemControlCommandMessage& command_msg) {
-  int driver_type = command_msg.driver_type();
-  const string& service_name = command_msg.service_name();
-  const string& file_path = command_msg.file_path();
-  int target_class = command_msg.target_class();
-  int target_type = command_msg.target_type();
-  int target_version_major = command_msg.target_version_major();
-  int target_version_minor = command_msg.target_version_minor();
-  const string& target_package = command_msg.target_package();
-  const string& target_component_name = command_msg.target_component_name();
-  const string& module_name = command_msg.module_name();
-  const string& hw_binder_service_name = command_msg.hw_binder_service_name();
-  int bits = command_msg.bits();
-  const string& test_hal_flag =
-      command_msg.is_test_hal() ? "TREBLE_TESTING_OVERRIDE=true " : "";
-
-  LOG(DEBUG) << "file_path=" << file_path;
-  ResponseCode result = FAIL;
-
-  // TODO: shall check whether there's a service with the same name and return
-  // success immediately if exists.
-  AndroidSystemControlResponseMessage response_msg;
-
-  // deletes the service file if exists before starting to launch a driver.
-  string socket_port_flie_path = GetSocketPortFilePath(service_name);
-  struct stat file_stat;
-  if (stat(socket_port_flie_path.c_str(), &file_stat) == 0  // file exists
-      && remove(socket_port_flie_path.c_str()) == -1) {
-    LOG(ERROR) << socket_port_flie_path << " delete error";
-    response_msg.set_reason("service file already exists.");
-  } else {
-    pid_t pid = fork();
-    if (pid == 0) {  // child
-      Close();
-
-      string driver_binary_path;
-      char* cmd = NULL;
-      if (driver_type == VTS_DRIVER_TYPE_HAL_CONVENTIONAL ||
-          driver_type == VTS_DRIVER_TYPE_HAL_LEGACY ||
-          driver_type == VTS_DRIVER_TYPE_HAL_HIDL) {
-        // TODO: check whether the port is available and handle if fails.
-        static int port = 0;
-        string callback_socket_name(kUnixSocketNamePrefixForCallbackServer);
-        callback_socket_name += to_string(port++);
-        LOG(INFO) << "callback_socket_name: " << callback_socket_name;
-        StartSocketServerForDriver(callback_socket_name, -1);
-
-        if (bits == 32) {
-          driver_binary_path = driver_hal_binary32_;
-        } else {
-          driver_binary_path = driver_hal_binary64_;
-        }
-        size_t offset = driver_binary_path.find_last_of("/");
-        string ld_dir_path = driver_binary_path.substr(0, offset);
-
-        if (driver_hal_spec_dir_path_.length() < 1) {
-#ifndef VTS_AGENT_DRIVER_COMM_BINDER  // socket
-          asprintf(&cmd,
-                   "%sLD_LIBRARY_PATH=%s:$LD_LIBRARY_PATH %s "
-                   "--server_socket_path=%s "
-                   "--callback_socket_name=%s",
-                   test_hal_flag.c_str(), ld_dir_path.c_str(),
-                   driver_binary_path.c_str(), socket_port_flie_path.c_str(),
-                   callback_socket_name.c_str());
-#else  // binder
-          asprintf(&cmd,
-                   "LD_LIBRARY_PATH=%s:$LD_LIBRARY_PATH %s "
-                   "--service_name=%s "
-                   "--callback_socket_name=%s",
-                   ld_dir_path.c_str(), driver_binary_path.c_str(),
-                   service_name.c_str(), callback_socket_name.c_str());
-#endif
-        } else {
-#ifndef VTS_AGENT_DRIVER_COMM_BINDER  // socket
-          asprintf(&cmd,
-                   "%sLD_LIBRARY_PATH=%s:$LD_LIBRARY_PATH %s "
-                   "--server_socket_path=%s "
-                   "--spec_dir_path=%s --callback_socket_name=%s",
-                   test_hal_flag.c_str(), ld_dir_path.c_str(),
-                   driver_binary_path.c_str(), socket_port_flie_path.c_str(),
-                   driver_hal_spec_dir_path_.c_str(),
-                   callback_socket_name.c_str());
-#else  // binder
-          asprintf(&cmd,
-                   "LD_LIBRARY_PATH=%s:$LD_LIBRARY_PATH %s "
-                   "--service_name=%s "
-                   "--spec_dir_path=%s --callback_socket_name=%s",
-                   ld_dir_path.c_str(), driver_binary_path.c_str(),
-                   service_name.c_str(), driver_hal_spec_dir_path_.c_str(),
-                   callback_socket_name.c_str());
-#endif
-        }
-      } else if (driver_type == VTS_DRIVER_TYPE_SHELL) {
-        if (bits == 32) {
-          driver_binary_path = driver_shell_binary32_;
-        } else {
-          driver_binary_path = driver_shell_binary64_;
-        }
-        size_t offset = driver_binary_path.find_last_of("/");
-        string ld_dir_path = driver_binary_path.substr(0, offset);
-
-#ifndef VTS_AGENT_DRIVER_COMM_BINDER  // socket
-        asprintf(
-            &cmd,
-            "LD_LIBRARY_PATH=%s:$LD_LIBRARY_PATH %s --server_socket_path=%s",
-            ld_dir_path.c_str(), driver_binary_path.c_str(),
-            socket_port_flie_path.c_str());
-#else  // binder
-        LOG(ERROR) << "No binder implementation available.";
-        exit(-1);
-#endif
-      } else {
-        LOG(ERROR) << "Unsupported driver type.";
-      }
-
-      if (cmd) {
-        LOG(INFO) << "Launch a driver - " << cmd;
-        system(cmd);
-        LOG(INFO) << "driver exits";
-        free(cmd);
-      }
-      exit(0);
-    } else if (pid > 0) {
-      for (int attempt = 0; attempt < 10; attempt++) {
-        sleep(1);
-        if (IsDriverRunning(service_name, 10)) {
-          result = SUCCESS;
-          break;
-        }
-      }
-      if (result) {
-// TODO: use an attribute (client) of a newly defined class.
-#ifndef VTS_AGENT_DRIVER_COMM_BINDER  // socket
-        VtsDriverSocketClient* client =
-            android::vts::GetDriverSocketClient(service_name);
-        if (!client) {
-#else  // binder
-        android::sp<android::vts::IVtsFuzzer> client =
-            android::vts::GetBinderClient(service_name);
-        if (!client.get()) {
-#endif
-          response_msg.set_response_code(FAIL);
-          response_msg.set_reason("Failed to start a driver.");
-          // TODO: kill the driver?
-          return VtsSocketSendMessage(response_msg);
-        }
-
-        if (driver_type == VTS_DRIVER_TYPE_HAL_CONVENTIONAL ||
-            driver_type == VTS_DRIVER_TYPE_HAL_LEGACY ||
-            driver_type == VTS_DRIVER_TYPE_HAL_HIDL) {
-          LOG(DEBUG) << "LoadHal " << module_name;
-          int32_t driver_id = client->LoadHal(
-              file_path, target_class, target_type, target_version_major,
-              target_version_minor, target_package, target_component_name,
-              hw_binder_service_name, module_name);
-          if (driver_id == -1) {
-            response_msg.set_response_code(FAIL);
-            response_msg.set_reason("Failed to load the selected HAL.");
-          } else {
-            response_msg.set_response_code(SUCCESS);
-            response_msg.set_result(to_string(driver_id));
-            response_msg.set_reason("Loaded the selected HAL.");
-            LOG(DEBUG) << "set service_name " << service_name;
-            service_name_ = service_name;
-          }
-        } else if (driver_type == VTS_DRIVER_TYPE_SHELL) {
-          response_msg.set_response_code(SUCCESS);
-          response_msg.set_reason("Loaded the shell driver.");
-          LOG(DEBUG) << "set service_name " << service_name;
-          service_name_ = service_name;
-        }
-
-#ifndef VTS_AGENT_DRIVER_COMM_BINDER  // socket
-        driver_client_ = client;
-#endif
-        return VtsSocketSendMessage(response_msg);
-      }
-    }
-    response_msg.set_reason(
-        "Failed to fork a child process to start a driver.");
-  }
-  response_msg.set_response_code(FAIL);
-  LOG(ERROR) << "Can't fork a child process to run the vts_hal_driver.";
-  return VtsSocketSendMessage(response_msg);
-}
-
-bool AgentRequestHandler::ReadSpecification(
-    const AndroidSystemControlCommandMessage& command_message) {
-#ifndef VTS_AGENT_DRIVER_COMM_BINDER  // socket
-  VtsDriverSocketClient* client = driver_client_;
-  if (!client) {
-#else  // binder
-  android::sp<android::vts::IVtsFuzzer> client =
-      android::vts::GetBinderClient(service_name_);
-  if (!client.get()) {
-#endif
-    return false;
-  }
-
-  const string& result = client->ReadSpecification(
-      command_message.service_name(), command_message.target_class(),
-      command_message.target_type(), command_message.target_version_major(),
-      command_message.target_version_minor(), command_message.target_package());
-
-  return SendApiResult("ReadSpecification", result);
-}
-
-bool AgentRequestHandler::ListApis() {
-// TODO: use an attribute (client) of a newly defined class.
-#ifndef VTS_AGENT_DRIVER_COMM_BINDER  // socket
-  VtsDriverSocketClient* client = driver_client_;
-  if (!client) {
-#else  // binder
-  android::sp<android::vts::IVtsFuzzer> client =
-      android::vts::GetBinderClient(service_name_);
-  if (!client.get()) {
-#endif
-    return false;
-  }
-  return SendApiResult("GetAttribute", "", client->GetFunctions());
-}
-
-bool AgentRequestHandler::CallApi(const string& call_payload,
-                                  const string& uid) {
-#ifndef VTS_AGENT_DRIVER_COMM_BINDER  // socket
-  VtsDriverSocketClient* client = driver_client_;
-  if (!client) {
-#else  // binder
-  // TODO: use an attribute (client) of a newly defined class.
-  android::sp<android::vts::IVtsFuzzer> client =
-      android::vts::GetBinderClient(service_name_);
-  if (!client.get()) {
-#endif
-    return false;
-  }
-
-  return SendApiResult("Call", client->Call(call_payload, uid));
-}
-
-bool AgentRequestHandler::GetAttribute(const string& payload) {
-#ifndef VTS_AGENT_DRIVER_COMM_BINDER  // socket
-  VtsDriverSocketClient* client = driver_client_;
-  if (!client) {
-#else  // binder
-  // TODO: use an attribute (client) of a newly defined class.
-  android::sp<android::vts::IVtsFuzzer> client =
-      android::vts::GetBinderClient(service_name_);
-  if (!client.get()) {
-#endif
-    return false;
-  }
-
-  return SendApiResult("GetAttribute", client->GetAttribute(payload));
-}
-
-bool AgentRequestHandler::SendApiResult(const string& func_name,
-                                        const string& result,
-                                        const string& spec) {
-  AndroidSystemControlResponseMessage response_msg;
-  if (result.size() > 0 || spec.size() > 0) {
-    LOG(DEBUG) << "Call: success";
-    response_msg.set_response_code(SUCCESS);
-    if (result.size() > 0) {
-      response_msg.set_result(result);
-    }
-    if (spec.size() > 0) {
-      response_msg.set_spec(spec);
-    }
-  } else {
-    LOG(ERROR) << "Call: fail";
-    response_msg.set_response_code(FAIL);
-    response_msg.set_reason("Failed to call api function: " + func_name);
-  }
-  return VtsSocketSendMessage(response_msg);
-}
-
-bool AgentRequestHandler::DefaultResponse() {
-  AndroidSystemControlResponseMessage response_msg;
-  response_msg.set_response_code(SUCCESS);
-  response_msg.set_reason("an example reason here");
-  return VtsSocketSendMessage(response_msg);
-}
-
-bool AgentRequestHandler::ExecuteShellCommand(
-    const AndroidSystemControlCommandMessage& command_message) {
-#ifndef VTS_AGENT_DRIVER_COMM_BINDER  // socket
-  VtsDriverSocketClient* client = driver_client_;
-  if (!client) {
-#else  // binder
-  LOG(ERROR) << " binder not supported.";
-  {
-#endif
-    return false;
-  }
-
-  auto result_message =
-      client->ExecuteShellCommand(command_message.shell_command());
-
-  AndroidSystemControlResponseMessage response_msg;
-
-  if (result_message) {
-    CreateSystemControlResponseFromDriverControlResponse(*result_message,
-                                                         &response_msg);
-  } else {
-    LOG(ERROR) << "ExecuteShellCommand: failed to call the api";
-    response_msg.set_response_code(FAIL);
-    response_msg.set_reason("Failed to call the api.");
-  }
-
-  return VtsSocketSendMessage(response_msg);
-}
-
-void AgentRequestHandler::CreateSystemControlResponseFromDriverControlResponse(
-    const VtsDriverControlResponseMessage& driver_control_response_message,
-    AndroidSystemControlResponseMessage* system_control_response_message) {
-
-  if (driver_control_response_message.response_code() ==
-      VTS_DRIVER_RESPONSE_SUCCESS) {
-    LOG(DEBUG) << "ExecuteShellCommand: shell driver reported success";
-    system_control_response_message->set_response_code(SUCCESS);
-  } else if (driver_control_response_message.response_code() ==
-      VTS_DRIVER_RESPONSE_FAIL) {
-    LOG(ERROR) << "ExecuteShellCommand: shell driver reported fail";
-    system_control_response_message->set_response_code(FAIL);
-  } else if (driver_control_response_message.response_code() ==
-      UNKNOWN_VTS_DRIVER_RESPONSE_CODE) {
-    LOG(ERROR) << "ExecuteShellCommand: shell driver reported unknown";
-    system_control_response_message->set_response_code(UNKNOWN_RESPONSE_CODE);
-  }
-
-  for (const auto& log_stdout : driver_control_response_message.stdout()) {
-    system_control_response_message->add_stdout(log_stdout);
-  }
-
-  for (const auto& log_stderr : driver_control_response_message.stderr()) {
-    system_control_response_message->add_stderr(log_stderr);
-  }
-
-  for (const auto& exit_code : driver_control_response_message.exit_code()) {
-    system_control_response_message->add_exit_code(exit_code);
-  }
-}
-
-bool AgentRequestHandler::ProcessFmqCommand(
-    const AndroidSystemControlCommandMessage& command_msg) {
-#ifndef VTS_AGENT_DRIVER_COMM_BINDER  // socket
-  VtsDriverSocketClient* client = driver_client_;
-  if (!client) {
-#else  // binder
-  android::sp<android::vts::IVtsFuzzer> client =
-      android::vts::GetBinderClient(service_name_);
-  if (!client.get()) {
-#endif
-    LOG(ERROR) << "Driver socket client is uninitialized.";
-    return false;
-  }
-
-  AndroidSystemControlResponseMessage response_msg;
-  FmqResponseMessage* fmq_response = response_msg.mutable_fmq_response();
-  FmqRequestMessage fmq_request = command_msg.fmq_request();
-  // send the request message
-  bool success = client->ProcessFmqCommand(fmq_request, fmq_response);
-
-  // prepare for response back to host
-  if (success) {
-    response_msg.set_response_code(SUCCESS);
-  } else {
-    response_msg.set_response_code(FAIL);
-    response_msg.set_reason("Failed to call api to process FMQ command.");
-  }
-
-  return VtsSocketSendMessage(response_msg);
-}
-
-bool AgentRequestHandler::ProcessHidlMemoryCommand(
-    const AndroidSystemControlCommandMessage& command_msg) {
-#ifndef VTS_AGENT_DRIVER_COMM_BINDER  // socket
-  VtsDriverSocketClient* client = driver_client_;
-  if (!client) {
-#else  // binder
-  android::sp<android::vts::IVtsFuzzer> client =
-      android::vts::GetBinderClient(service_name_);
-  if (!client.get()) {
-#endif
-    LOG(ERROR) << "Driver socket client is uninitialized.";
-    return false;
-  }
-
-  AndroidSystemControlResponseMessage response_msg;
-  HidlMemoryResponseMessage* hidl_memory_response =
-      response_msg.mutable_hidl_memory_response();
-  HidlMemoryRequestMessage hidl_memory_request =
-      command_msg.hidl_memory_request();
-  // send the request message
-  bool success = client->ProcessHidlMemoryCommand(hidl_memory_request,
-                                                  hidl_memory_response);
-
-  // prepare for response back to host
-  if (success) {
-    response_msg.set_response_code(SUCCESS);
-  } else {
-    response_msg.set_response_code(FAIL);
-    response_msg.set_reason(
-        "Failed to call api to process hidl_memory command.");
-  }
-
-  return VtsSocketSendMessage(response_msg);
-}
-
-bool AgentRequestHandler::ProcessHidlHandleCommand(
-    const AndroidSystemControlCommandMessage& command_msg) {
-#ifndef VTS_AGENT_DRIVER_COMM_BINDER  // socket
-  VtsDriverSocketClient* client = driver_client_;
-  if (!client) {
-#else  // binder
-  android::sp<android::vts::IVtsFuzzer> client =
-      android::vts::GetBinderClient(service_name_);
-  if (!client.get()) {
-#endif
-    LOG(ERROR) << "Driver socket client is uninitialized.";
-    return false;
-  }
-
-  AndroidSystemControlResponseMessage response_msg;
-  HidlHandleResponseMessage* hidl_handle_response =
-      response_msg.mutable_hidl_handle_response();
-  HidlHandleRequestMessage hidl_handle_request =
-      command_msg.hidl_handle_request();
-  // send the request message
-  bool success = client->ProcessHidlHandleCommand(hidl_handle_request,
-                                                  hidl_handle_response);
-
-  // prepare for response back to host
-  if (success) {
-    response_msg.set_response_code(SUCCESS);
-  } else {
-    response_msg.set_response_code(FAIL);
-    response_msg.set_reason(
-        "Failed to call api to process hidl_handle command.");
-  }
-
-  return VtsSocketSendMessage(response_msg);
-}
-
-bool AgentRequestHandler::ProcessOneCommand() {
-  AndroidSystemControlCommandMessage command_msg;
-  if (!VtsSocketRecvMessage(&command_msg)) return false;
-
-  LOG(DEBUG) << "command_type = " << command_msg.command_type();
-  switch (command_msg.command_type()) {
-    case LIST_HALS:
-      return ListHals(command_msg.paths());
-    case SET_HOST_INFO:
-      return SetHostInfo(command_msg.callback_port());
-    case CHECK_DRIVER_SERVICE:
-      return CheckDriverService(command_msg.service_name(), NULL);
-    case LAUNCH_DRIVER_SERVICE:
-      return LaunchDriverService(command_msg);
-    case VTS_AGENT_COMMAND_READ_SPECIFICATION:
-      return ReadSpecification(command_msg);
-    case LIST_APIS:
-      return ListApis();
-    case CALL_API:
-      return CallApi(command_msg.arg(), command_msg.driver_caller_uid());
-    case VTS_AGENT_COMMAND_GET_ATTRIBUTE:
-      return GetAttribute(command_msg.arg());
-    // for shell driver
-    case VTS_AGENT_COMMAND_EXECUTE_SHELL_COMMAND:
-      ExecuteShellCommand(command_msg);
-      return true;
-    case VTS_FMQ_COMMAND:
-      return ProcessFmqCommand(command_msg);
-    case VTS_HIDL_MEMORY_COMMAND:
-      return ProcessHidlMemoryCommand(command_msg);
-    case VTS_HIDL_HANDLE_COMMAND:
-      return ProcessHidlHandleCommand(command_msg);
-    default:
-      LOG(ERROR) << " ERROR unknown command " << command_msg.command_type();
-      return DefaultResponse();
-  }
-}
-
-}  // namespace vts
-}  // namespace android
diff --git a/agents/hal/AgentRequestHandler.h b/agents/hal/AgentRequestHandler.h
deleted file mode 100644
index 07ee794..0000000
--- a/agents/hal/AgentRequestHandler.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-
-#ifndef __VTS_AGENT_REQUEST_HANDLER_H__
-#define __VTS_AGENT_REQUEST_HANDLER_H__
-
-#include <string>
-
-#include "SocketClientToDriver.h"
-#include "test/vts/proto/AndroidSystemControlMessage.pb.h"
-#include "test/vts/proto/VtsDriverControlMessage.pb.h"
-
-namespace android {
-namespace vts {
-
-// Class which contains actual methods to handle the runner requests.
-class AgentRequestHandler : public VtsDriverCommUtil {
- public:
-  AgentRequestHandler(const char* spec_dir_path, const char* hal_path32,
-                      const char* hal_path64, const char* shell_path32,
-                      const char* shell_path64)
-      : VtsDriverCommUtil(),
-        service_name_(),
-        driver_client_(NULL),
-        driver_hal_spec_dir_path_(spec_dir_path),
-        driver_hal_binary32_(hal_path32),
-        driver_hal_binary64_(hal_path64),
-        driver_shell_binary32_(shell_path32),
-        driver_shell_binary64_(shell_path64) {}
-
-
-  // handles a new session.
-  bool ProcessOneCommand();
-
- protected:
-  // for the LIST_HAL command
-  bool ListHals(const ::google::protobuf::RepeatedPtrField<string>& base_paths);
-
-  // for the SET_HOST_INFO command.
-  bool SetHostInfo(const int callback_port);
-
-  // for the CHECK_DRIVER_SERVICE command
-  bool CheckDriverService(const string& service_name, bool* live);
-
-  // for the LAUNCH_DRIVER_SERVICE command
-  bool LaunchDriverService(
-      const AndroidSystemControlCommandMessage& command_msg);
-
-  // for the VTS_AGENT_COMMAND_READ_SPECIFICATION`
-  bool ReadSpecification(
-      const AndroidSystemControlCommandMessage& command_message);
-
-  // for the LIST_APIS command
-  bool ListApis();
-
-  // for the CALL_API command
-  bool CallApi(const string& call_payload, const string& uid);
-
-  // for the VTS_AGENT_COMMAND_GET_ATTRIBUTE
-  bool GetAttribute(const string& payload);
-
-  // for the EXECUTE_SHELL command
-  bool ExecuteShellCommand(
-      const AndroidSystemControlCommandMessage& command_message);
-
-  // Returns a default response message.
-  bool DefaultResponse();
-
-  // Send SUCCESS response with given result and/or spec if it is not empty,
-  // otherwise send FAIL.
-  bool SendApiResult(const string& func_name, const string& result,
-                     const string& spec = "");
-
-  // for processing commands for FMQ.
-  bool ProcessFmqCommand(
-      const AndroidSystemControlCommandMessage& command_message);
-
-  // for processing commands for hidl_memory.
-  bool ProcessHidlMemoryCommand(
-      const AndroidSystemControlCommandMessage& command_message);
-
-  // for processing commands for hidl_handle.
-  bool ProcessHidlHandleCommand(
-      const AndroidSystemControlCommandMessage& command_message);
-
- protected:
-  // the currently opened, connected service name.
-  string service_name_;
-  // the port number of a host-side callback server.
-  int callback_port_;
-  // the socket client of a launched or connected driver.
-  VtsDriverSocketClient* driver_client_;
-
-  void CreateSystemControlResponseFromDriverControlResponse(
-      const VtsDriverControlResponseMessage& driver_control_response_message,
-      AndroidSystemControlResponseMessage* system_control_response_message);
-
-  const string driver_hal_spec_dir_path_;
-  const string driver_hal_binary32_;
-  const string driver_hal_binary64_;
-  const string driver_shell_binary32_;
-  const string driver_shell_binary64_;
-};
-
-}  // namespace vts
-}  // namespace android
-
-#endif
diff --git a/agents/hal/Android.bp b/agents/hal/Android.bp
deleted file mode 100644
index f667180..0000000
--- a/agents/hal/Android.bp
+++ /dev/null
@@ -1,66 +0,0 @@
-//
-// Copyright (C) 2016 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.
-//
-
-cc_binary {
-    name: "vts_hal_agent",
-    multilib: {
-        lib64: {
-            stem: "vts_hal_agent64",
-        },
-        lib32: {
-            stem: "vts_hal_agent32",
-        },
-    },
-
-    cflags: [
-        "-Wall",
-        "-Werror",
-    ],
-
-    srcs: [
-        "VtsAgentMain.cpp",
-        "TcpServerForRunner.cpp",
-        "AgentRequestHandler.cpp",
-        "SocketClientToDriver.cpp",
-        "BinderClientToDriver.cpp",
-        "SocketServerForDriver.cpp",
-    ],
-
-    shared_libs: [
-        "libbase",
-        "libutils",
-        "libcutils",
-        "libbinder",
-        "libvts_common",
-        "libc++",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "libvts_drivercomm",
-    ],
-
-    include_dirs: [
-        "bionic",
-        "external/libcxx/include",
-        "frameworks/native/include",
-        "system/core/include",
-        "test/vts/agents/hal",
-        "test/vts/drivers/hal/common",
-        "test/vts/drivers/libdrivercomm",
-        "external/protobuf/src",
-    ],
-
-    compile_multilib: "both",
-}
diff --git a/agents/hal/BinderClientToDriver.cpp b/agents/hal/BinderClientToDriver.cpp
deleted file mode 100644
index 55b71b8..0000000
--- a/agents/hal/BinderClientToDriver.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-
-#include <iostream>
-
-#define LOG_TAG "VtsFuzzerBinderClient"
-#include <log/log.h>
-#include <utils/RefBase.h>
-
-#include <binder/IBinder.h>
-#include <binder/IInterface.h>
-#include <binder/IServiceManager.h>
-#include <binder/ProcessState.h>
-
-#include "BinderClientToDriver.h"
-#include "binder/VtsFuzzerBinderService.h"
-
-using namespace std;
-
-namespace android {
-namespace vts {
-
-// Returns a VtsFuzzer binder service's client.
-sp<IVtsFuzzer> GetBinderClient(const string& service_name) {
-  android::sp<IServiceManager> manager = defaultServiceManager();
-  if (!manager.get()) {
-    cerr << "can't get the default service manager." << std::endl;
-    return NULL;
-  }
-
-  sp<IBinder> binder = manager->getService(String16(service_name.c_str()));
-  if (!binder.get()) {
-    cerr << "can't find the " << service_name << " binder service."
-         << std::endl;
-    return NULL;
-  }
-
-  sp<IVtsFuzzer> fuzzer = interface_cast<IVtsFuzzer>(binder);
-  if (!fuzzer.get()) {
-    cerr << "can't cast the obtained " << service_name << " binder instance"
-         << std::endl;
-    return NULL;
-  }
-
-  return fuzzer;
-}
-
-}  // namespace vts
-}  // namespace android
diff --git a/agents/hal/BinderClientToDriver.h b/agents/hal/BinderClientToDriver.h
deleted file mode 100644
index f5d768b..0000000
--- a/agents/hal/BinderClientToDriver.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-
-#ifndef __VTS_FUZZER_BINDER_CLIENT_H__
-#define __VTS_FUZZER_BINDER_CLIENT_H__
-
-#include <utils/RefBase.h>
-
-#include "binder/VtsFuzzerBinderService.h"
-
-namespace android {
-namespace vts {
-
-extern sp<IVtsFuzzer> GetBinderClient(const string& service_name);
-
-}  // namespace vts
-}  // namespace android
-
-#endif
diff --git a/agents/hal/SocketClientToDriver.cpp b/agents/hal/SocketClientToDriver.cpp
deleted file mode 100644
index cd06d4f..0000000
--- a/agents/hal/SocketClientToDriver.cpp
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-#define LOG_TAG "VtsAgentSocketClient"
-
-#include "SocketClientToDriver.h"
-
-#include <android-base/logging.h>
-
-#include "AgentRequestHandler.h"
-#include "test/vts/proto/VtsDriverControlMessage.pb.h"
-
-#define LOCALHOST_IP "127.0.0.1"
-
-namespace android {
-namespace vts {
-
-bool VtsDriverSocketClient::Exit() {
-  VtsDriverControlCommandMessage command_message;
-  command_message.set_command_type(EXIT);
-  if (!VtsSocketSendMessage(command_message)) return false;
-
-  VtsDriverControlResponseMessage response_message;
-  if (!VtsSocketRecvMessage(&response_message)) return false;
-  return true;
-}
-
-int32_t VtsDriverSocketClient::LoadHal(
-    const string& file_path, int target_class, int target_type,
-    int target_version_major, int target_version_minor,
-    const string& target_package, const string& target_component_name,
-    const string& hw_binder_service_name, const string& module_name) {
-  VtsDriverControlCommandMessage command_message;
-
-  command_message.set_command_type(LOAD_HAL);
-  command_message.set_file_path(file_path);
-  command_message.set_target_class(target_class);
-  command_message.set_target_type(target_type);
-  command_message.set_target_version_major(target_version_major);
-  command_message.set_target_version_minor(target_version_minor);
-  command_message.set_target_package(target_package);
-  command_message.set_target_component_name(target_component_name);
-  command_message.set_module_name(module_name);
-  command_message.set_hw_binder_service_name(hw_binder_service_name);
-  if (!VtsSocketSendMessage(command_message)) return -1;
-
-  VtsDriverControlResponseMessage response_message;
-  if (!VtsSocketRecvMessage(&response_message)) return -1;
-  if (response_message.response_code() != VTS_DRIVER_RESPONSE_SUCCESS) {
-    LOG(ERROR) << "Failed to load the selected HAL.";
-    return -1;
-  }
-  LOG(INFO) << "Loaded the selected HAL.";
-  return response_message.return_value();
-}
-
-string VtsDriverSocketClient::GetFunctions() {
-  VtsDriverControlCommandMessage command_message;
-  command_message.set_command_type(LIST_FUNCTIONS);
-  if (!VtsSocketSendMessage(command_message)) {
-    return {};
-  }
-
-  VtsDriverControlResponseMessage response_message;
-  if (!VtsSocketRecvMessage(&response_message)) {
-    return {};
-  }
-
-  return response_message.return_message();
-}
-
-string VtsDriverSocketClient::ReadSpecification(const string& component_name,
-                                                int target_class,
-                                                int target_type,
-                                                int target_version_major,
-                                                int target_version_minor,
-                                                const string& target_package) {
-  VtsDriverControlCommandMessage command_message;
-
-  command_message.set_command_type(
-      VTS_DRIVER_COMMAND_READ_SPECIFICATION);
-  command_message.set_module_name(component_name);
-  command_message.set_target_class(target_class);
-  command_message.set_target_type(target_type);
-  command_message.set_target_version_major(target_version_major);
-  command_message.set_target_version_minor(target_version_minor);
-  command_message.set_target_package(target_package);
-
-  if (!VtsSocketSendMessage(command_message)) {
-    return {};
-  }
-
-  VtsDriverControlResponseMessage response_message;
-  if (!VtsSocketRecvMessage(&response_message)) {
-    return {};
-  }
-
-  return response_message.return_message();
-}
-
-string VtsDriverSocketClient::Call(const string& arg, const string& uid) {
-  VtsDriverControlCommandMessage command_message;
-  command_message.set_command_type(CALL_FUNCTION);
-  command_message.set_arg(arg);
-  command_message.set_driver_caller_uid(uid);
-  if (!VtsSocketSendMessage(command_message)) {
-    return {};
-  }
-
-  VtsDriverControlResponseMessage response_message;
-  if (!VtsSocketRecvMessage(&response_message)) {
-    return {};
-  }
-
-  LOG(DEBUG) << "Result: " << response_message.return_message();
-  return response_message.return_message();
-}
-
-string VtsDriverSocketClient::GetAttribute(const string& arg) {
-  VtsDriverControlCommandMessage command_message;
-  command_message.set_command_type(GET_ATTRIBUTE);
-  command_message.set_arg(arg);
-  if (!VtsSocketSendMessage(command_message)) {
-    return {};
-  }
-
-  VtsDriverControlResponseMessage response_message;
-  if (!VtsSocketRecvMessage(&response_message)) {
-    return {};
-  }
-
-  return response_message.return_message();
-}
-
-unique_ptr<VtsDriverControlResponseMessage>
-VtsDriverSocketClient::ExecuteShellCommand(
-    const ::google::protobuf::RepeatedPtrField<string> shell_command) {
-  VtsDriverControlCommandMessage command_message;
-  command_message.set_command_type(EXECUTE_COMMAND);
-  for (const auto& cmd : shell_command) {
-    command_message.add_shell_command(cmd);
-  }
-  if (!VtsSocketSendMessage(command_message)) return nullptr;
-
-  auto response_message = make_unique<VtsDriverControlResponseMessage>();
-  if (!VtsSocketRecvMessage(response_message.get())) return nullptr;
-
-  return response_message;
-}
-
-bool VtsDriverSocketClient::ProcessFmqCommand(
-    const FmqRequestMessage& fmq_request, FmqResponseMessage* fmq_response) {
-  VtsDriverControlCommandMessage command_message;
-  VtsDriverControlResponseMessage response_message;
-  command_message.set_command_type(FMQ_OPERATION);
-  (command_message.mutable_fmq_request())->CopyFrom(fmq_request);
-
-  if (!VtsSocketSendMessage(command_message)) return false;
-  if (!VtsSocketRecvMessage(&response_message)) return false;
-
-  fmq_response->CopyFrom(response_message.fmq_response());
-  return true;
-}
-
-bool VtsDriverSocketClient::ProcessHidlMemoryCommand(
-    const HidlMemoryRequestMessage& hidl_memory_request,
-    HidlMemoryResponseMessage* hidl_memory_response) {
-  VtsDriverControlCommandMessage command_message;
-  VtsDriverControlResponseMessage response_message;
-  command_message.set_command_type(HIDL_MEMORY_OPERATION);
-  (command_message.mutable_hidl_memory_request())
-      ->CopyFrom(hidl_memory_request);
-
-  if (!VtsSocketSendMessage(command_message)) return false;
-  if (!VtsSocketRecvMessage(&response_message)) return false;
-
-  hidl_memory_response->CopyFrom(response_message.hidl_memory_response());
-  return true;
-}
-
-bool VtsDriverSocketClient::ProcessHidlHandleCommand(
-    const HidlHandleRequestMessage& hidl_handle_request,
-    HidlHandleResponseMessage* hidl_handle_response) {
-  VtsDriverControlCommandMessage command_message;
-  VtsDriverControlResponseMessage response_message;
-  command_message.set_command_type(HIDL_HANDLE_OPERATION);
-  (command_message.mutable_hidl_handle_request())
-      ->CopyFrom(hidl_handle_request);
-
-  if (!VtsSocketSendMessage(command_message)) {
-    LOG(ERROR) << "Unable to send hidl_handle command from agent to driver.";
-    return false;
-  }
-  if (!VtsSocketRecvMessage(&response_message)) {
-    LOG(ERROR) << "Unable to receive hidl_handle message from driver to agent";
-    return false;
-  }
-
-  hidl_handle_response->CopyFrom(response_message.hidl_handle_response());
-  return true;
-}
-
-int32_t VtsDriverSocketClient::Status(int32_t type) {
-  VtsDriverControlCommandMessage command_message;
-  command_message.set_command_type(CALL_FUNCTION);
-  command_message.set_status_type(type);
-  if (!VtsSocketSendMessage(command_message)) return 0;
-
-  VtsDriverControlResponseMessage response_message;
-  if (!VtsSocketRecvMessage(&response_message)) return 0;
-  return response_message.return_value();
-}
-
-string GetSocketPortFilePath(const string& service_name) {
-  string result("/data/local/tmp/");
-  result += service_name;
-  return result;
-}
-
-bool IsDriverRunning(const string& service_name, int retry_count) {
-  for (int retry = 0; retry < retry_count; retry++) {
-    VtsDriverSocketClient* client = GetDriverSocketClient(service_name);
-    if (client) {
-      client->Exit();
-      delete client;
-      return true;
-    }
-    sleep(1);
-  }
-  LOG(ERROR) << "Couldn't connect to " << service_name;
-  return false;
-}
-
-VtsDriverSocketClient* GetDriverSocketClient(const string& service_name) {
-  string socket_port_file_path = GetSocketPortFilePath(service_name);
-  VtsDriverSocketClient* client = new VtsDriverSocketClient();
-  if (!client->Connect(socket_port_file_path)) {
-    LOG(ERROR) << "Can't connect to " << socket_port_file_path;
-    delete client;
-    return NULL;
-  }
-  return client;
-}
-
-}  // namespace vts
-}  // namespace android
diff --git a/agents/hal/SocketClientToDriver.h b/agents/hal/SocketClientToDriver.h
deleted file mode 100644
index 38620ef..0000000
--- a/agents/hal/SocketClientToDriver.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-
-#ifndef __VTS_FUZZER_TCP_CLIENT_H_
-#define __VTS_FUZZER_TCP_CLIENT_H_
-
-#include <string>
-#include <vector>
-
-#include <VtsDriverCommUtil.h>
-#include "test/vts/proto/VtsDriverControlMessage.pb.h"
-#include "test/vts/proto/VtsResourceControllerMessage.pb.h"
-
-using namespace std;
-
-namespace android {
-namespace vts {
-
-// Socket client instance for an agent to control a driver.
-class VtsDriverSocketClient : public VtsDriverCommUtil {
- public:
-  explicit VtsDriverSocketClient() : VtsDriverCommUtil() {}
-
-  // closes the socket.
-  void Close();
-
-  // Sends a EXIT request;
-  bool Exit();
-
-  // Sends a LOAD_HAL request.
-  // Args:
-  //   target_version_major: int, hal major version
-  //   target_version_minor: int, hal minor version
-  int32_t LoadHal(const string& file_path, int target_class, int target_type,
-                  int target_version_major, int target_version_minor,
-                  const string& target_package,
-                  const string& target_component_name,
-                  const string& hw_binder_service_name,
-                  const string& module_name);
-
-  // Sends a LIST_FUNCTIONS request.
-  string GetFunctions();
-
-  // Sends a VTS_DRIVER_COMMAND_READ_SPECIFICATION request.
-  // Args:
-  //   target_version_major: int, hal major version
-  //   target_version_minor: int, hal minor version
-  string ReadSpecification(const string& component_name, int target_class,
-                           int target_type, int target_version_major,
-                           int target_version_minor,
-                           const string& target_package);
-
-  // Sends a CALL_FUNCTION request.
-  string Call(const string& arg, const string& uid);
-
-  // Sends a GET_ATTRIBUTE request.
-  string GetAttribute(const string& arg);
-
-  // Sends a GET_STATUS request.
-  int32_t Status(int32_t type);
-
-  // Sends a EXECUTE request.
-  unique_ptr<VtsDriverControlResponseMessage> ExecuteShellCommand(
-      const ::google::protobuf::RepeatedPtrField<::std::string> shell_command);
-
-  // Processes the command for a FMQ request, stores the result in fmq_response.
-  //
-  // @param fmq_request  contains arguments in a request message for FMQ driver.
-  // @param fmq_response pointer to the message that will be sent back to host.
-  //
-  // @return true if api is called successfully and data have been transferred
-  //              without error,
-  //         false otherwise.
-  bool ProcessFmqCommand(const FmqRequestMessage& fmq_request,
-                         FmqResponseMessage* fmq_response);
-
-  // Processes the command for a hidl_memory request, stores the result in
-  // hidl_memory_response.
-  //
-  // @param hidl_memory_request  contains arguments in a request message for
-  //                             hidl_memory driver.
-  // @param hidl_memory_response pointer to message sent back to host.
-  //
-  // @return true if api is called successfully and data have been transferred
-  //              without error,
-  //         false otherwise.
-  bool ProcessHidlMemoryCommand(
-      const HidlMemoryRequestMessage& hidl_memory_request,
-      HidlMemoryResponseMessage* hidl_memory_response);
-
-  // Processes the command for a hidl_handle request, stores the result in
-  // hidl_handle_response.
-  //
-  // @param hidl_handle_request  contains arguments in a request message for
-  //                             hidl_handle driver.
-  // @param hidl_handle_response pointer to message sent back to host.
-  //
-  // @return true if api is called successfully and data have been transferred
-  //              without error,
-  //         false otherwise.
-  bool ProcessHidlHandleCommand(
-      const HidlHandleRequestMessage& hidl_handle_request,
-      HidlHandleResponseMessage* hidl_handle_response);
-};
-
-// returns the socket port file's path for the given service_name.
-extern string GetSocketPortFilePath(const string& service_name);
-
-// returns true if the specified driver is running.
-bool IsDriverRunning(const string& service_name, int retry_count);
-
-// creates and returns VtsDriverSocketClient of the given service_name.
-extern VtsDriverSocketClient* GetDriverSocketClient(const string& service_name);
-
-}  // namespace vts
-}  // namespace android
-
-#endif  // __VTS_FUZZER_TCP_CLIENT_H_
diff --git a/agents/hal/SocketServerForDriver.cpp b/agents/hal/SocketServerForDriver.cpp
deleted file mode 100644
index 5ae0673..0000000
--- a/agents/hal/SocketServerForDriver.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-#define LOG_TAG "VtsAgentSocketServer"
-
-#include "SocketServerForDriver.h"
-
-#include <chrono>
-#include <netdb.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <string>
-#include <thread>
-
-#include <android-base/logging.h>
-
-#include "test/vts/proto/AndroidSystemControlMessage.pb.h"
-
-namespace android {
-namespace vts {
-
-static const int kCallbackServerPort = 5010;
-
-void SocketServerForDriver::RpcCallToRunner(
-    const AndroidSystemCallbackRequestMessage& message) {
-  struct sockaddr_in serv_addr;
-  struct hostent* server;
-
-  int sockfd;
-  sockfd = socket(AF_INET, SOCK_STREAM, 0);
-  if (sockfd < 0) {
-    PLOG(ERROR) << "ERROR opening socket";
-    exit(-1);
-    return;
-  }
-  server = gethostbyname("127.0.0.1");
-  if (server == NULL) {
-    PLOG(ERROR) << "Can't resolve the host name, localhost";
-    exit(-1);
-    return;
-  }
-  bzero((char*)&serv_addr, sizeof(serv_addr));
-  serv_addr.sin_family = AF_INET;
-  bcopy((char*)server->h_addr, (char*)&serv_addr.sin_addr.s_addr,
-        server->h_length);
-  serv_addr.sin_port = htons(runner_port_);
-
-  if (connect(sockfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) {
-    PLOG(ERROR) << "ERROR connecting";
-    exit(-1);
-    return;
-  }
-
-  // FIXME Workaround patch for the issue of losing payload in the host tool.
-  //       If root cause is resolved, it should be removed.
-  std::this_thread::sleep_for(std::chrono::milliseconds(100));
-
-  VtsDriverCommUtil util(sockfd);
-  if (!util.VtsSocketSendMessage(message)) return;
-}
-
-void SocketServerForDriver::Start() {
-  AndroidSystemCallbackRequestMessage message;
-  if (!VtsSocketRecvMessage(&message)) return;
-  LOG(INFO) << "Start server for driver with callback ID: " << message.id();
-  RpcCallToRunner(message);
-  Close();
-}
-
-int StartSocketServerForDriver(const string& callback_socket_name,
-                               int runner_port) {
-  struct sockaddr_un serv_addr;
-  int pid = fork();
-  if (pid < 0) {
-    PLOG(ERROR) << "ERROR on fork";
-    return -1;
-  } else if (pid > 0) {
-    return 0;
-  }
-
-  if (runner_port == -1) {
-    runner_port = kCallbackServerPort;
-  }
-  // only child process continues;
-  int sockfd;
-  sockfd = socket(PF_UNIX, SOCK_STREAM, 0);
-  if (sockfd < 0) {
-    PLOG(ERROR) << "ERROR opening socket";
-    return -1;
-  }
-
-  bzero((char*) &serv_addr, sizeof(serv_addr));
-  serv_addr.sun_family = AF_UNIX;
-  strcpy(serv_addr.sun_path, callback_socket_name.c_str());
-  LOG(INFO) << "Callback server at " << callback_socket_name;
-
-  if (::bind(sockfd, (struct sockaddr*) &serv_addr, sizeof(serv_addr)) < 0) {
-    PLOG(ERROR) << "ERROR on binding " << callback_socket_name;
-    return -1;
-  }
-
-  if (listen(sockfd, 5) < 0) {
-    PLOG(ERROR) << "ERROR on listening";
-    return -1;
-  }
-
-  while (1) {
-    int newsockfd;
-    struct sockaddr_in cli_addr;
-    socklen_t clilen;
-
-    clilen = sizeof(cli_addr);
-    newsockfd = accept(sockfd, (struct sockaddr*) &cli_addr, &clilen);
-    if (newsockfd < 0) {
-      PLOG(ERROR) << "ERROR on accept";
-      break;
-    }
-    LOG(DEBUG) << "New callback connection.";
-    pid = fork();
-    if (pid == 0) {
-      close(sockfd);
-      SocketServerForDriver server(newsockfd, runner_port);
-      server.Start();
-      exit(0);
-    } else if (pid > 0) {
-      close(newsockfd);
-    } else {
-      PLOG(ERROR) << "ERROR on fork";
-      break;
-    }
-  }
-  close(sockfd);
-  exit(0);
-}
-
-}  // namespace vts
-}  // namespace android
diff --git a/agents/hal/SocketServerForDriver.h b/agents/hal/SocketServerForDriver.h
deleted file mode 100644
index 8a9c72e..0000000
--- a/agents/hal/SocketServerForDriver.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-
-#ifndef __VTS_AGENT_SOCKET_SERVER_FOR_DRIVER_H_
-#define __VTS_AGENT_SOCKET_SERVER_FOR_DRIVER_H_
-
-#include <VtsDriverCommUtil.h>
-#include "test/vts/proto/AndroidSystemControlMessage.pb.h"
-
-namespace android {
-namespace vts {
-
-// Launches a server which accepts connection requests from drivers.
-extern int StartSocketServerForDriver(const string& callback_socket_name,
-                                      int runner_port);
-
-// Class which contains actual methods to handle the callback requests.
-class SocketServerForDriver : public VtsDriverCommUtil {
- public:
-  SocketServerForDriver(int sock, int runner_port)
-      : VtsDriverCommUtil(sock),
-        runner_port_(runner_port) {}
-
-  // Starts to process requests.
-  void Start();
-
-  // Sends a RPC call to the runner.
-  void RpcCallToRunner(const AndroidSystemCallbackRequestMessage& message);
-
- private:
-  // TCP port number of a runner's callback server.
-  int runner_port_;
-};
-
-}  // namespace vts
-}  // namespace android
-
-#endif  // __VTS_AGENT_SOCKET_SERVER_FOR_DRIVER_H_
diff --git a/agents/hal/TcpServerForRunner.cpp b/agents/hal/TcpServerForRunner.cpp
deleted file mode 100644
index 00154d6..0000000
--- a/agents/hal/TcpServerForRunner.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-#define LOG_TAG "VtsAgentTcpServer"
-
-#include "TcpServerForRunner.h"
-
-#include <netdb.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/types.h>
-
-#include <android-base/logging.h>
-
-#include "AgentRequestHandler.h"
-#include "BinderClientToDriver.h"
-#include "test/vts/proto/AndroidSystemControlMessage.pb.h"
-
-namespace android {
-namespace vts {
-
-// Starts to run a TCP server (foreground).
-int StartTcpServerForRunner(const char* spec_dir_path,
-                            const char* hal_driver_path32,
-                            const char* hal_driver_path64,
-                            const char* shell_driver_path32,
-                            const char* shell_driver_path64) {
-  int sockfd;
-  socklen_t clilen;
-  struct sockaddr_in serv_addr;
-  struct sockaddr_in cli_addr;
-
-  sockfd = socket(AF_INET, SOCK_STREAM, 0);
-  if (sockfd < 0) {
-    LOG(ERROR) << "Can't open the socket.";
-    return -1;
-  }
-
-  bzero((char*)&serv_addr, sizeof(serv_addr));
-  serv_addr.sin_family = AF_INET;
-  serv_addr.sin_addr.s_addr = INADDR_ANY;
-  serv_addr.sin_port = htons(0);
-
-  if (::bind(sockfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) == -1) {
-    PLOG(ERROR) << "bind failed";
-    return -1;
-  }
-
-  socklen_t sa_len = sizeof(serv_addr);
-  if (getsockname(sockfd, (struct sockaddr*) &serv_addr, &sa_len) == -1) {
-    PLOG(ERROR) << "getsockname failed";
-    return -1;
-  }
-
-  LOG(DEBUG) << "TCP server port is " << (int)ntohs(serv_addr.sin_port);
-  FILE* fp = fopen("/data/local/tmp/vts_tcp_server_port", "wt");
-  if (!fp) {
-    LOG(ERROR) << "Can't write to "
-               << "/data/local/tmp/vts_tcp_server_port";
-    return -1;
-  }
-  fprintf(fp, "%d", (int) ntohs(serv_addr.sin_port));
-  fclose(fp);
-
-  LOG(DEBUG) << "Listening";
-  if (listen(sockfd, 5) == -1) {
-    LOG(ERROR) << " listen failed.";
-    return -1;
-  }
-  clilen = sizeof(cli_addr);
-  while (true) {
-    LOG(DEBUG) << "Accepting";
-    int newsockfd = ::accept(sockfd, (struct sockaddr*)&cli_addr, &clilen);
-    if (newsockfd < 0) {
-      LOG(ERROR) << "accept failed";
-      return -1;
-    }
-
-    LOG(DEBUG) << "[runner->agent] NEW SESSION";
-    LOG(DEBUG) << "[runner->agent] ===========";
-    pid_t pid = fork();
-    if (pid == 0) {  // child
-      close(sockfd);
-      LOG(DEBUG) << "Process for a runner - pid = " << getpid();
-      AgentRequestHandler handler(spec_dir_path, hal_driver_path32,
-                                  hal_driver_path64, shell_driver_path32,
-                                  shell_driver_path64);
-      handler.SetSockfd(newsockfd);
-      while (handler.ProcessOneCommand())
-        ;
-      exit(-1);
-    } else if (pid < 0) {
-      LOG(ERROR) << "Can't fork a child process to handle a session.";
-      return -1;
-    } else {
-      close(newsockfd);
-    }
-  }
-  return 0;
-}
-
-}  // namespace vts
-}  // namespace android
diff --git a/agents/hal/TcpServerForRunner.h b/agents/hal/TcpServerForRunner.h
deleted file mode 100644
index addd247..0000000
--- a/agents/hal/TcpServerForRunner.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-
-#ifndef __VTS_FUZZER_TCP_SERVER_H__
-#define __VTS_FUZZER_TCP_SERVER_H__
-
-namespace android {
-namespace vts {
-
-extern int StartTcpServerForRunner(const char* spec_dir_path,
-                                   const char* hal_dirver_path32,
-                                   const char* hal_driver_path64,
-                                   const char* shell_driver_path32,
-                                   const char* shell_driver_path64);
-
-}  // namespace vts
-}  // namespace android
-
-#endif
diff --git a/agents/hal/VtsAgentMain.cpp b/agents/hal/VtsAgentMain.cpp
deleted file mode 100644
index ffe36c5..0000000
--- a/agents/hal/VtsAgentMain.cpp
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-#include <map>
-
-#include <android-base/logging.h>
-#include <getopt.h>
-
-#include <android-base/logging.h>
-#include "TcpServerForRunner.h"
-
-static constexpr const char* kDefaultSpecDirPath = "/data/local/tmp/spec/";
-static constexpr const char* kDefaultHalDriverPath32 = "./vts_hal_driver32";
-static constexpr const char* kDefaultHalDriverPath64 = "./vts_hal_driver64";
-static constexpr const char* kDefaultShellDriverPath32 = "./vts_shell_driver32";
-static constexpr const char* kDefaultShellDriverPath64 = "./vts_shell_driver64";
-
-using namespace std;
-
-void ShowUsage() {
-  printf(
-      "Usage: vts_hal_agent [options]\n"
-      "--hal_driver_path_32:   Set 32 bit hal driver binary path.\n"
-      "--hal_driver_path_32:   Set 64 bit hal driver binary path.\n"
-      "--spec_dir:             Set vts spec directory. \n"
-      "--shell_driver_path_32: Set 32 bit shell driver binary path\n"
-      "--shell_driver_path_64: Set 64 bit shell driver binary path\n"
-      "--log_severity:         Set log severity\n"
-      "--help:                 Show help\n");
-  exit(1);
-}
-
-int main(int argc, char** argv) {
-  string hal_driver_path32 = kDefaultHalDriverPath32;
-  string hal_driver_path64 = kDefaultHalDriverPath64;
-  string shell_driver_path32 = kDefaultShellDriverPath32;
-  string shell_driver_path64 = kDefaultShellDriverPath64;
-  string spec_dir_path = kDefaultSpecDirPath;
-  string log_severity = "INFO";
-
-  enum {
-    HAL_DRIVER_PATH32 = 1000,
-    HAL_DRIVER_PATH64,
-    SHELL_DRIVER_PATH32,
-    SHELL_DRIVER_PATH64,
-    SPEC_DIR
-  };
-
-  const char* const short_opts = "hl:";
-  const option long_opts[] = {
-      {"help", no_argument, nullptr, 'h'},
-      {"hal_driver_path_32", required_argument, nullptr, HAL_DRIVER_PATH32},
-      {"hal_driver_path_64", required_argument, nullptr, HAL_DRIVER_PATH64},
-      {"shell_driver_path_32", required_argument, nullptr, SHELL_DRIVER_PATH32},
-      {"shell_driver_path_64", required_argument, nullptr, SHELL_DRIVER_PATH64},
-      {"spec_dir", required_argument, nullptr, SPEC_DIR},
-      {"log_severity", required_argument, nullptr, 'l'},
-      {nullptr, 0, nullptr, 0},
-  };
-
-  while (true) {
-    int opt = getopt_long(argc, argv, short_opts, long_opts, nullptr);
-    if (opt == -1) {
-      break;
-    }
-
-    switch (opt) {
-      case 'h':
-      case '?':
-        ShowUsage();
-        return 0;
-      case 'l': {
-        log_severity = string(optarg);
-        break;
-      }
-      case HAL_DRIVER_PATH32: {
-        hal_driver_path32 = string(optarg);
-        break;
-      }
-      case HAL_DRIVER_PATH64: {
-        hal_driver_path64 = string(optarg);
-        break;
-      }
-      case SHELL_DRIVER_PATH32: {
-        shell_driver_path32 = string(optarg);
-        break;
-      }
-      case SHELL_DRIVER_PATH64: {
-        shell_driver_path64 = string(optarg);
-        break;
-      }
-      case SPEC_DIR: {
-        spec_dir_path = string(optarg);
-        break;
-      }
-      default:
-        printf("getopt_long returned unexpected value: %d\n", opt);
-        return 2;
-    }
-  }
-
-  map<string, string> log_map = {
-      {"ERROR", "*:e"}, {"WARNING", "*:w"}, {"INFO", "*:i"}, {"DEBUG", "*:d"},
-  };
-
-  if (log_map.find(log_severity) != log_map.end()) {
-    setenv("ANDROID_LOG_TAGS", log_map[log_severity].c_str(), 1);
-  }
-
-  android::base::InitLogging(argv, android::base::StderrLogger);
-
-  LOG(INFO) << "|| VTS AGENT ||";
-
-  char* dir_path;
-  dir_path = (char*)malloc(strlen(argv[0]) + 1);
-  strcpy(dir_path, argv[0]);
-  for (int index = strlen(argv[0]) - 2; index >= 0; index--) {
-    if (dir_path[index] == '/') {
-      dir_path[index] = '\0';
-      break;
-    }
-  }
-  chdir(dir_path);
-
-  android::vts::StartTcpServerForRunner(
-      spec_dir_path.c_str(), hal_driver_path32.c_str(),
-      hal_driver_path64.c_str(), shell_driver_path32.c_str(),
-      shell_driver_path64.c_str());
-  return 0;
-}
diff --git a/compilation_tools/vtsc/Android.bp b/compilation_tools/vtsc/Android.bp
index 3c5b4d5..1ef3d56 100644
--- a/compilation_tools/vtsc/Android.bp
+++ b/compilation_tools/vtsc/Android.bp
@@ -14,6 +14,10 @@
 // limitations under the License.
 //
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 cc_library_host_shared {
 
     name: "libvtsc",
diff --git a/compilation_tools/vtsc/code_gen/driver/HalHidlCodeGen.cpp b/compilation_tools/vtsc/code_gen/driver/HalHidlCodeGen.cpp
index 999aaac..14c1244 100644
--- a/compilation_tools/vtsc/code_gen/driver/HalHidlCodeGen.cpp
+++ b/compilation_tools/vtsc/code_gen/driver/HalHidlCodeGen.cpp
@@ -559,6 +559,7 @@
   DriverCodeGenBase::GenerateSourceIncludeFiles(out, message,
                                                 fuzzer_extended_class_name);
   out << "#include <android/hidl/allocator/1.0/IAllocator.h>\n";
+  out << "#include <fcntl.h>\n";
   out << "#include <fmq/MessageQueue.h>\n";
   out << "#include <sys/stat.h>\n";
   out << "#include <unistd.h>\n";
diff --git a/compilation_tools/vtsc/code_gen/profiler/HalHidlProfilerCodeGen.cpp b/compilation_tools/vtsc/code_gen/profiler/HalHidlProfilerCodeGen.cpp
index 231d65f..566d6d4 100644
--- a/compilation_tools/vtsc/code_gen/profiler/HalHidlProfilerCodeGen.cpp
+++ b/compilation_tools/vtsc/code_gen/profiler/HalHidlProfilerCodeGen.cpp
@@ -553,7 +553,7 @@
   out << "\n";
 }
 
-void HalHidlProfilerCodeGen::GenerateProfilerSanityCheck(
+void HalHidlProfilerCodeGen::GenerateProfilerCheck(
     Formatter& out, const ComponentSpecificationMessage& message) {
   out << "if (strcmp(package, \"" << GetPackageName(message) << "\") != 0) {\n";
   out.indent();
diff --git a/compilation_tools/vtsc/code_gen/profiler/HalHidlProfilerCodeGen.h b/compilation_tools/vtsc/code_gen/profiler/HalHidlProfilerCodeGen.h
index 9ea5e07..fb68247 100644
--- a/compilation_tools/vtsc/code_gen/profiler/HalHidlProfilerCodeGen.h
+++ b/compilation_tools/vtsc/code_gen/profiler/HalHidlProfilerCodeGen.h
@@ -104,7 +104,7 @@
     const ComponentSpecificationMessage& message) override;
   void GenerateMacros(Formatter& out,
     const ComponentSpecificationMessage& message) override;
-  virtual void GenerateProfilerSanityCheck(
+  virtual void GenerateProfilerCheck(
       Formatter& out, const ComponentSpecificationMessage& message) override;
   virtual void GenerateLocalVariableDefinition(Formatter& out,
     const ComponentSpecificationMessage& message) override;
diff --git a/compilation_tools/vtsc/code_gen/profiler/ProfilerCodeGenBase.cpp b/compilation_tools/vtsc/code_gen/profiler/ProfilerCodeGenBase.cpp
index 83f29a7..323d84b 100644
--- a/compilation_tools/vtsc/code_gen/profiler/ProfilerCodeGenBase.cpp
+++ b/compilation_tools/vtsc/code_gen/profiler/ProfilerCodeGenBase.cpp
@@ -110,8 +110,8 @@
     out << "std::vector<void *> *args __attribute__((__unused__))) {\n";
     out.unindent();
 
-    // Generate code for sanity check.
-    GenerateProfilerSanityCheck(out, message);
+    // Generate code for profiler check.
+    GenerateProfilerCheck(out, message);
 
     if (interface.api_size() > 0) {
       // Generate code to define local variables.
diff --git a/compilation_tools/vtsc/code_gen/profiler/ProfilerCodeGenBase.h b/compilation_tools/vtsc/code_gen/profiler/ProfilerCodeGenBase.h
index 662a01d..5586a4e 100644
--- a/compilation_tools/vtsc/code_gen/profiler/ProfilerCodeGenBase.h
+++ b/compilation_tools/vtsc/code_gen/profiler/ProfilerCodeGenBase.h
@@ -150,12 +150,12 @@
   // Generates the necessary "#define" code for profiler.
   virtual void GenerateMacros(Formatter&,
       const ComponentSpecificationMessage&) {};
-  // Generates sanity check for profiler. These codes will be generated at the
+  // Generates validity check for profiler. These codes will be generated at the
   // beginning of the main profiler function.
-  virtual void GenerateProfilerSanityCheck(
-      Formatter&, const ComponentSpecificationMessage&){};
+  virtual void GenerateProfilerCheck(Formatter&,
+                                     const ComponentSpecificationMessage&){};
   // Generate local variable definition. These codes will be generated after
-  // the sanity check code.
+  // the validity check code.
   virtual void GenerateLocalVariableDefinition(Formatter&,
     const ComponentSpecificationMessage&) {};
 
diff --git a/compilation_tools/vtsc/test/Android.mk b/compilation_tools/vtsc/test/Android.mk
index 9d5b82b..fd85ae6 100644
--- a/compilation_tools/vtsc/test/Android.mk
+++ b/compilation_tools/vtsc/test/Android.mk
@@ -18,6 +18,8 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := vtsc_test
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
 LOCAL_MODULE_CLASS := FAKE
 LOCAL_IS_HOST_MODULE := true
 
@@ -36,4 +38,3 @@
 	python $(PRIVATE_PY_SCRIPT) -h $(PRIVATE_HIDL_EXEC) -p $(PRIVATE_VTSC_EXEC) \
 	    -c $(PRIVATE_CANONICAL_DIR) -o $(PRIVATE_OUT_DIR) -t $(PRIVATE_TEMP_DIR)
 	$(hide) touch $@
-
diff --git a/compilation_tools/vtsc/test/golden/DRIVER/Bar.driver.cpp b/compilation_tools/vtsc/test/golden/DRIVER/Bar.driver.cpp
index 0400bcc..1cdece8 100644
--- a/compilation_tools/vtsc/test/golden/DRIVER/Bar.driver.cpp
+++ b/compilation_tools/vtsc/test/golden/DRIVER/Bar.driver.cpp
@@ -2,6 +2,7 @@
 #include "vts_measurement.h"
 #include <android-base/logging.h>
 #include <android/hidl/allocator/1.0/IAllocator.h>
+#include <fcntl.h>
 #include <fmq/MessageQueue.h>
 #include <sys/stat.h>
 #include <unistd.h>
diff --git a/compilation_tools/vtsc/test/golden/DRIVER/MemoryTest.driver.cpp b/compilation_tools/vtsc/test/golden/DRIVER/MemoryTest.driver.cpp
index f688fb9..0221930 100644
--- a/compilation_tools/vtsc/test/golden/DRIVER/MemoryTest.driver.cpp
+++ b/compilation_tools/vtsc/test/golden/DRIVER/MemoryTest.driver.cpp
@@ -2,6 +2,7 @@
 #include "vts_measurement.h"
 #include <android-base/logging.h>
 #include <android/hidl/allocator/1.0/IAllocator.h>
+#include <fcntl.h>
 #include <fmq/MessageQueue.h>
 #include <sys/stat.h>
 #include <unistd.h>
diff --git a/compilation_tools/vtsc/test/golden/DRIVER/Nfc.driver.cpp b/compilation_tools/vtsc/test/golden/DRIVER/Nfc.driver.cpp
index 25a46eb..62b1948 100644
--- a/compilation_tools/vtsc/test/golden/DRIVER/Nfc.driver.cpp
+++ b/compilation_tools/vtsc/test/golden/DRIVER/Nfc.driver.cpp
@@ -2,6 +2,7 @@
 #include "vts_measurement.h"
 #include <android-base/logging.h>
 #include <android/hidl/allocator/1.0/IAllocator.h>
+#include <fcntl.h>
 #include <fmq/MessageQueue.h>
 #include <sys/stat.h>
 #include <unistd.h>
diff --git a/compilation_tools/vtsc/test/golden/DRIVER/NfcClientCallback.driver.cpp b/compilation_tools/vtsc/test/golden/DRIVER/NfcClientCallback.driver.cpp
index 02404ab..f345fad 100644
--- a/compilation_tools/vtsc/test/golden/DRIVER/NfcClientCallback.driver.cpp
+++ b/compilation_tools/vtsc/test/golden/DRIVER/NfcClientCallback.driver.cpp
@@ -2,6 +2,7 @@
 #include "vts_measurement.h"
 #include <android-base/logging.h>
 #include <android/hidl/allocator/1.0/IAllocator.h>
+#include <fcntl.h>
 #include <fmq/MessageQueue.h>
 #include <sys/stat.h>
 #include <unistd.h>
diff --git a/compilation_tools/vtsc/test/golden/DRIVER/TestMsgQ.driver.cpp b/compilation_tools/vtsc/test/golden/DRIVER/TestMsgQ.driver.cpp
index 31c94a9..b5031da 100644
--- a/compilation_tools/vtsc/test/golden/DRIVER/TestMsgQ.driver.cpp
+++ b/compilation_tools/vtsc/test/golden/DRIVER/TestMsgQ.driver.cpp
@@ -2,6 +2,7 @@
 #include "vts_measurement.h"
 #include <android-base/logging.h>
 #include <android/hidl/allocator/1.0/IAllocator.h>
+#include <fcntl.h>
 #include <fmq/MessageQueue.h>
 #include <sys/stat.h>
 #include <unistd.h>
@@ -50,7 +51,7 @@
 
 
 ::android::hardware::Return<bool> Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ::configureFmqSyncReadWrite(
-    const ::android::hardware::MQDescriptorSync<uint16_t>& arg0 __attribute__((__unused__))) {
+    const ::android::hardware::MQDescriptorSync<int32_t>& arg0 __attribute__((__unused__))) {
     LOG(INFO) << "configureFmqSyncReadWrite called";
     AndroidSystemCallbackRequestMessage callback_message;
     callback_message.set_id(GetCallbackID("configureFmqSyncReadWrite"));
@@ -59,14 +60,15 @@
     var_msg0->set_type(TYPE_FMQ_SYNC);
     VariableSpecificationMessage* var_msg0_item = var_msg0->add_fmq_value();
     var_msg0_item->set_type(TYPE_SCALAR);
-    var_msg0_item->set_scalar_type("uint16_t");
-    var_msg0_item->set_fmq_desc_address(reinterpret_cast<size_t>(new (std::nothrow) ::android::hardware::MQDescriptorSync<uint16_t>(arg0)));
+    var_msg0_item->set_scalar_type("int32_t");
+    var_msg0_item->set_fmq_desc_address(reinterpret_cast<size_t>(new (std::nothrow) ::android::hardware::MQDescriptorSync<int32_t>(arg0)));
     RpcCallToAgent(callback_message, callback_socket_name_);
     return static_cast<bool>(0);
 }
 
 ::android::hardware::Return<void> Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ::getFmqUnsyncWrite(
-    bool arg0 __attribute__((__unused__)), std::function<void(bool arg0,const ::android::hardware::MQDescriptorUnsync<uint16_t>& arg1)> cb) {
+    bool arg0 __attribute__((__unused__)),
+    bool arg1 __attribute__((__unused__)), std::function<void(bool arg0,const ::android::hardware::MQDescriptorUnsync<int32_t>& arg1)> cb) {
     LOG(INFO) << "getFmqUnsyncWrite called";
     AndroidSystemCallbackRequestMessage callback_message;
     callback_message.set_id(GetCallbackID("getFmqUnsyncWrite"));
@@ -75,8 +77,12 @@
     var_msg0->set_type(TYPE_SCALAR);
     var_msg0->set_scalar_type("bool_t");
     var_msg0->mutable_scalar_value()->set_bool_t(arg0);
+    VariableSpecificationMessage* var_msg1 = callback_message.add_arg();
+    var_msg1->set_type(TYPE_SCALAR);
+    var_msg1->set_scalar_type("bool_t");
+    var_msg1->mutable_scalar_value()->set_bool_t(arg1);
     RpcCallToAgent(callback_message, callback_socket_name_);
-    cb(static_cast<bool>(0), ::android::hardware::MQDescriptorUnsync<uint16_t>());
+    cb(static_cast<bool>(0), ::android::hardware::MQDescriptorUnsync<int32_t>());
     return ::android::hardware::Void();
 }
 
@@ -210,14 +216,14 @@
         return false;
     }
     if (!strcmp(func_name, "configureFmqSyncReadWrite")) {
-        const ::android::hardware::MQDescriptorSync<uint16_t>* arg0;
+        const ::android::hardware::MQDescriptorSync<int32_t>* arg0;
         if (func_msg.arg(0).fmq_value_size() > 0 && func_msg.arg(0).fmq_value(0).has_fmq_desc_address()) {
-            arg0 = reinterpret_cast<::android::hardware::MQDescriptorSync<uint16_t>*>(func_msg.arg(0).fmq_value(0).fmq_desc_address());
+            arg0 = reinterpret_cast<::android::hardware::MQDescriptorSync<int32_t>*>(func_msg.arg(0).fmq_value(0).fmq_desc_address());
         } else {
-            ::android::hardware::MessageQueue<uint16_t, ::android::hardware::kSynchronizedReadWrite> arg0_sync_q(1024);
+            ::android::hardware::MessageQueue<int32_t, ::android::hardware::kSynchronizedReadWrite> arg0_sync_q(1024);
             for (int i = 0; i < (int)func_msg.arg(0).fmq_value_size(); i++) {
-                uint16_t arg0_sync_q_item;
-                arg0_sync_q_item = func_msg.arg(0).fmq_value(i).scalar_value().uint16_t();
+                int32_t arg0_sync_q_item;
+                arg0_sync_q_item = func_msg.arg(0).fmq_value(i).scalar_value().int32_t();
                 arg0_sync_q.write(&arg0_sync_q_item);
             }
             arg0 = arg0_sync_q.getDesc();
@@ -234,8 +240,10 @@
     if (!strcmp(func_name, "getFmqUnsyncWrite")) {
         bool arg0 = 0;
         arg0 = func_msg.arg(0).scalar_value().bool_t();
+        bool arg1 = 0;
+        arg1 = func_msg.arg(1).scalar_value().bool_t();
         LOG(DEBUG) << "local_device = " << hw_binder_proxy_.get();
-        hw_binder_proxy_->getFmqUnsyncWrite(arg0, [&](bool arg0 __attribute__((__unused__)),const ::android::hardware::MQDescriptorUnsync<uint16_t>& arg1 __attribute__((__unused__))){
+        hw_binder_proxy_->getFmqUnsyncWrite(arg0, arg1, [&](bool arg0 __attribute__((__unused__)),const ::android::hardware::MQDescriptorUnsync<int32_t>& arg1 __attribute__((__unused__))){
             LOG(INFO) << "callback getFmqUnsyncWrite called";
             result_msg->set_name("getFmqUnsyncWrite");
             VariableSpecificationMessage* result_val_0 = result_msg->add_return_type_hidl();
@@ -246,8 +254,8 @@
             result_val_1->set_type(TYPE_FMQ_UNSYNC);
             VariableSpecificationMessage* result_val_1_item = result_val_1->add_fmq_value();
             result_val_1_item->set_type(TYPE_SCALAR);
-            result_val_1_item->set_scalar_type("uint16_t");
-            result_val_1_item->set_fmq_desc_address(reinterpret_cast<size_t>(new (std::nothrow) ::android::hardware::MQDescriptorUnsync<uint16_t>(arg1)));
+            result_val_1_item->set_scalar_type("int32_t");
+            result_val_1_item->set_fmq_desc_address(reinterpret_cast<size_t>(new (std::nothrow) ::android::hardware::MQDescriptorUnsync<int32_t>(arg1)));
         });
         return true;
     }
diff --git a/compilation_tools/vtsc/test/golden/DRIVER/TestMsgQ.vts.h b/compilation_tools/vtsc/test/golden/DRIVER/TestMsgQ.vts.h
index 70e1b39..d66e5b2 100644
--- a/compilation_tools/vtsc/test/golden/DRIVER/TestMsgQ.vts.h
+++ b/compilation_tools/vtsc/test/golden/DRIVER/TestMsgQ.vts.h
@@ -36,10 +36,11 @@
     virtual ~Vts_android_hardware_tests_msgq_V1_0_ITestMsgQ() = default;
 
     ::android::hardware::Return<bool> configureFmqSyncReadWrite(
-        const ::android::hardware::MQDescriptorSync<uint16_t>& arg0) override;
+        const ::android::hardware::MQDescriptorSync<int32_t>& arg0) override;
 
     ::android::hardware::Return<void> getFmqUnsyncWrite(
-        bool arg0, std::function<void(bool arg0,const ::android::hardware::MQDescriptorUnsync<uint16_t>& arg1)> cb) override;
+        bool arg0,
+        bool arg1, std::function<void(bool arg0,const ::android::hardware::MQDescriptorUnsync<int32_t>& arg1)> cb) override;
 
     ::android::hardware::Return<bool> requestWriteFmqSync(
         int32_t arg0) override;
diff --git a/compilation_tools/vtsc/test/golden/DRIVER/types.driver.cpp b/compilation_tools/vtsc/test/golden/DRIVER/types.driver.cpp
index 3f5d175..63d0b9a 100644
--- a/compilation_tools/vtsc/test/golden/DRIVER/types.driver.cpp
+++ b/compilation_tools/vtsc/test/golden/DRIVER/types.driver.cpp
@@ -2,6 +2,7 @@
 #include "vts_measurement.h"
 #include <android-base/logging.h>
 #include <android/hidl/allocator/1.0/IAllocator.h>
+#include <fcntl.h>
 #include <fmq/MessageQueue.h>
 #include <sys/stat.h>
 #include <unistd.h>
diff --git a/compilation_tools/vtsc/test/golden/PROFILER/TestMsgQ.profiler.cpp b/compilation_tools/vtsc/test/golden/PROFILER/TestMsgQ.profiler.cpp
index c03ceba..e2628f9 100644
--- a/compilation_tools/vtsc/test/golden/PROFILER/TestMsgQ.profiler.cpp
+++ b/compilation_tools/vtsc/test/golden/PROFILER/TestMsgQ.profiler.cpp
@@ -57,18 +57,18 @@
                             break;
                         }
                         auto *arg_0 __attribute__((__unused__)) = msg.add_arg();
-                        ::android::hardware::MQDescriptorSync<uint16_t> *arg_val_0 __attribute__((__unused__)) = reinterpret_cast<::android::hardware::MQDescriptorSync<uint16_t>*> ((*args)[0]);
+                        ::android::hardware::MQDescriptorSync<int32_t> *arg_val_0 __attribute__((__unused__)) = reinterpret_cast<::android::hardware::MQDescriptorSync<int32_t>*> ((*args)[0]);
                         if (arg_val_0 != nullptr) {
                             arg_0->set_type(TYPE_FMQ_SYNC);
-                            MessageQueue<uint16_t, kSynchronizedReadWrite> arg_0_q((*arg_val_0), false);
+                            MessageQueue<int32_t, kSynchronizedReadWrite> arg_0_q((*arg_val_0), false);
                             if (arg_0_q.isValid()) {
                                 for (int i = 0; i < (int)arg_0_q.availableToRead(); i++) {
                                     auto *arg_0_item_i = arg_0->add_fmq_value();
-                                    uint16_t arg_0_result;
+                                    int32_t arg_0_result;
                                     arg_0_q.read(&arg_0_result);
                                     arg_0_q.write(&arg_0_result);
                                     arg_0_item_i->set_type(TYPE_SCALAR);
-                                    arg_0_item_i->mutable_scalar_value()->set_uint16_t(arg_0_result);
+                                    arg_0_item_i->mutable_scalar_value()->set_int32_t(arg_0_result);
                                 }
                             }
                         } else {
@@ -116,8 +116,8 @@
                     case details::HidlInstrumentor::SERVER_API_ENTRY:
                     case details::HidlInstrumentor::PASSTHROUGH_ENTRY:
                     {
-                        if ((*args).size() != 1) {
-                            LOG(ERROR) << "Number of arguments does not match. expect: 1, actual: " << (*args).size() << ", method name: getFmqUnsyncWrite, event type: " << event;
+                        if ((*args).size() != 2) {
+                            LOG(ERROR) << "Number of arguments does not match. expect: 2, actual: " << (*args).size() << ", method name: getFmqUnsyncWrite, event type: " << event;
                             break;
                         }
                         auto *arg_0 __attribute__((__unused__)) = msg.add_arg();
@@ -128,6 +128,14 @@
                         } else {
                             LOG(WARNING) << "argument 0 is null.";
                         }
+                        auto *arg_1 __attribute__((__unused__)) = msg.add_arg();
+                        bool *arg_val_1 __attribute__((__unused__)) = reinterpret_cast<bool*> ((*args)[1]);
+                        if (arg_val_1 != nullptr) {
+                            arg_1->set_type(TYPE_SCALAR);
+                            arg_1->mutable_scalar_value()->set_bool_t((*arg_val_1));
+                        } else {
+                            LOG(WARNING) << "argument 1 is null.";
+                        }
                         break;
                     }
                     case details::HidlInstrumentor::CLIENT_API_EXIT:
@@ -147,17 +155,17 @@
                             LOG(WARNING) << "return value 0 is null.";
                         }
                         auto *result_1 __attribute__((__unused__)) = msg.add_return_type_hidl();
-                        ::android::hardware::MQDescriptorUnsync<uint16_t> *result_val_1 __attribute__((__unused__)) = reinterpret_cast<::android::hardware::MQDescriptorUnsync<uint16_t>*> ((*args)[1]);
+                        ::android::hardware::MQDescriptorUnsync<int32_t> *result_val_1 __attribute__((__unused__)) = reinterpret_cast<::android::hardware::MQDescriptorUnsync<int32_t>*> ((*args)[1]);
                         if (result_val_1 != nullptr) {
                             result_1->set_type(TYPE_FMQ_UNSYNC);
-                            MessageQueue<uint16_t, kUnsynchronizedWrite> result_1_q((*result_val_1));
+                            MessageQueue<int32_t, kUnsynchronizedWrite> result_1_q((*result_val_1));
                             if (result_1_q.isValid()) {
                                 for (int i = 0; i < (int)result_1_q.availableToRead(); i++) {
                                     auto *result_1_item_i = result_1->add_fmq_value();
-                                    uint16_t result_1_result;
+                                    int32_t result_1_result;
                                     result_1_q.read(&result_1_result);
                                     result_1_item_i->set_type(TYPE_SCALAR);
-                                    result_1_item_i->mutable_scalar_value()->set_uint16_t(result_1_result);
+                                    result_1_item_i->mutable_scalar_value()->set_int32_t(result_1_result);
                                 }
                             }
                         } else {
diff --git a/doc/developer_testing/kernel/ltp.md b/doc/developer_testing/kernel/ltp.md
deleted file mode 100644
index 8f5fe8f..0000000
--- a/doc/developer_testing/kernel/ltp.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# How to run LTP tests on Android
-
-0. [VTS Setup](../../setup/index.md)
-1. [Run all the VTS LTP test case locally](run_all_ltp_testcases.md)
-2. [Run individual VTS LTP test case locally](run_individual_ltp_testcase.md)
diff --git a/doc/developer_testing/kernel/run_all_ltp_testcases.md b/doc/developer_testing/kernel/run_all_ltp_testcases.md
deleted file mode 100644
index e57943b..0000000
--- a/doc/developer_testing/kernel/run_all_ltp_testcases.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# How to run all the enabled LTP tests
-## 1. Compile VTS and LTP source code
-`$ make vts -j12`
-
-## 2. Start VTS10-TradeFed
-`$ vts10-tradefed`
-
-## 3. Run kernel LTP test from VTS-TradeFed console
-`> run vts-kernel`
-
-This will take from 30 minutes to 2 hours to run.
-The test results can be found under `out/host/linux-x86/vts/android-vts/results/`,
-while the device logcat and host logs can be found under `out/host/linux-x86/vts/android-vts/logs/`.
diff --git a/doc/developer_testing/kernel/run_individual_ltp_testcase.md b/doc/developer_testing/kernel/run_individual_ltp_testcase.md
deleted file mode 100644
index 596d66c..0000000
--- a/doc/developer_testing/kernel/run_individual_ltp_testcase.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# How to run individual LTP test case
-## 1. Compile VTS and LTP source code
-`$ make vts -j12`
-
-## 2. Start VTS10-TradeFed
-`$ vts10-tradefed`
-
-## 3. Run individual LTP test from VTS-TradeFed console
-`> run vts-kernel -m VtsKernelLtp -t <testname1,testname2,...>`
-
-Test names in filter can be any of the following formats:
-`<testsuite.testname>`, `<testsuite.testname_bitness>`
-
-It is recommended to include test suite, i.e., the first two formats above.
-
-Example:
-
-`> run vts-kernel -m VtsKernelLtp -t syscalls.accept01,mm.mmapstress05_64bit`
-
-Test cases specified in this filter will be run regardless of
-whether they are disabled in configuration, unless a specified test case name
-is not listed in the definitions or a required executable was not built.
\ No newline at end of file
diff --git a/doc/setup/index.md b/doc/setup/index.md
deleted file mode 100644
index 4bf945a..0000000
--- a/doc/setup/index.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# VTS Setup Manual
-
-1. [For Python Environment](python_setup_manual.md)
diff --git a/doc/setup/python_setup_manual.md b/doc/setup/python_setup_manual.md
deleted file mode 100644
index b2a5ba9..0000000
--- a/doc/setup/python_setup_manual.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Install Python and Protocol Buffer Packages
-
-`$ . test/vts/script/setup.sh`
-
-`$ . test/vts/script/build-python.sh`
diff --git a/doc/testcase_develop_manual/run_vts_directly.md b/doc/testcase_develop_manual/run_vts_directly.md
deleted file mode 100644
index a4a2082..0000000
--- a/doc/testcase_develop_manual/run_vts_directly.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# Run a VTS test directly
-
-First of all, if you have not done [VTS setup](../setup/index.md), that is required here.
-
-## Download required Python packages to local host
-
-`$ . test/vts/script/pypi-packages-local.sh`
-
-## Build Binaries
-
-`$ cd test/vts/script`
-
-`$ ./create-image.sh <build target>-userdebug`
-
-or
-
-`$ ./create-image.sh aosp_salifish-userdebug`
-
-## Copy Binaries
-
-`$ ./setup-local.sh <device name>`
-
-or
-
-`$ ./setup-local.sh sailfish`
-
-## Run a test direclty
-
-`$ PYTHONPATH=$PYTHONPATH:.. python -m vts.testcases.<test py package path> $ANDROID_BUILD_TOP/test/vts/testcases/<path to its config file>`
-
-For example, for SampleShellTest, please run:
-
-`PYTHONPATH=$PYTHONPATH:.. python -m vts.testcases.host.shell.SampleShellTest $ANDROID_BUILD_TOP/test/vts/testcases/host/shell/SampleShellTest.config`
-
-More examples are in `test/vts/script/run-local.sh`.
-
-## Additional Step for LTP and Linux-Kselftest
-
-Add `'data_file_path' : '<your android build top>/out/host/linux-x86/vts/android-vts/testcases'`
-to your config file (e.g., `VtsKernelLtpStaging.config`).
-
-## Add a new test
-
-In order to add a new test, the following two files needed to be extended.
-
-`test/vts/create-image.sh`
-
-`test/vts/setup-local.sh`
-
-Optionally, the command used to add a new test can be also added to:
-
-`test/vts/run-local.sh`
diff --git a/doc/user_manual.md b/doc/user_manual.md
deleted file mode 100644
index fab654c..0000000
--- a/doc/user_manual.md
+++ /dev/null
@@ -1,142 +0,0 @@
-# VTS User Manual
-
-Linux is officially supported for building and running VTS. Building on Windows is not supported, but it is possible to [run VTS on Windows](#run_vts) with Python, Java, and ADB installed.
-
-The following instructions assume Linux environment.
-
-## 1. Setup
-
-### 1.1. Host setup
-
-Please follow:
-
-* [Setup Manual](setup/index.md)
-
-(Optional)
-During VTS test runs, required Python packages are downloaded from the [Python Package Index](https://pypi.python.org/simple/). There is an option to instead install these packages from a local directory during test runtime by predownloading the packages. First run the lunch command, then set an environment variable VTS_PYPI_PATH as a new local directory to host the Python packages. Then run the download-pypi-packages.sh script:
-
-* `$ cd ${branch}`
-
-* `$ . test/vts/script/download-pypi-packages.sh`
-
-### 1.2. Checkout master git repository
-
-[Download Android Source Code](https://source.android.com/source/downloading.html)
-
-`$ export branch=master`
-
-`$ mkdir ${branch}`
-
-`$ cd ${branch}`
-
-`$ repo init -b ${branch} -u persistent https://android.googlesource.com/platform/manifest`
-
-`$ repo sync -j 8`
-
-### 1.3. Build an Android image
-
-`$ cd ${branch}`
-
-`$ . build/make/envsetup.sh`
-
-`$ lunch aosp_arm64-userdebug  # or <your device>-userdebug`
-
-The below is an optional step:
-
-`$ make -j 8`
-
-If this fails, please do:
-
-`$ repo sync -j 8`
-
-`$ make -j 8`
-
-Such can happen because tip of tree (ToT) may not always be buildable.
-
-### 1.4. Build a VTS package
-
-`$ cd ${branch}`
-
-`$ make vts -j8`
-
-Or use the exact command:
-
-`$ make -j8 vts showcommands dist TARGET_PRODUCT=aosp_arm64 WITH_DEXPREOPT=false TARGET_BUILD_VARIANT=userdebug`
-
-### 1.5. Connect to an Android device
-
-Let's connect an Android device and a host computer using a USB cable.
-
-* On an Android device, Setting -> About Phone -> Click repeatedly 'Build number' until developer mode is enabled.
-* On an Android device, Setting -> Developer options -> Turn on 'USB debugging'
-* On a host, run `adb devices` from a command line shell.
-* On a Android device, confirm that the host is trusted.
-* On a host, type `adb shell` and if that works, we're ready.
-
-## 2. Run VTS Tests
-
-### <a name="run_vts" /> 2.1. Run a VTS test plan
-
-For Linux users,
-
-`$ vts10-tradefed`
-
-`> run vts10`
-
-For Windows users, please build on Linux. Then copy the following zip file to Windows and extract it.
-
-`out/host/linux-x86/vts10/android-vts10.zip`
-
-Launch the batch file in the extracted folder.
-
-`$ android-vts10\tools\vts10-tradefed_win.bat`
-
-`> run vts10`
-
-Example stdout:
-
-```
-…
-…
-08-16 09:36:03 I/ResultReporter: Saved logs for device_logcat in .../out/host/linux-x86/vts10/android-vts10/logs/2016.08.16_09.17.13/device_logcat_7912321856562095748.zip
-08-16 09:36:03 I/ResultReporter: Saved logs for host_log in .../out/host/linux-x86/vts10/android-vts10/logs/2016.08.16_09.17.13/host_log_2775945280523850018.zip
-08-16 09:36:04 I/ResultReporter: Invocation finished in 18m 50s. PASSED: 18, FAILED: 0, NOT EXECUTED: 2, MODULES: 8 of 10
-08-16 09:36:04 I/ResultReporter: Test Result: .../out/host/linux-x86/vts10/android-vts10/results/2016.08.16_09.17.13/test_result.xml
-08-16 09:36:04 I/ResultReporter: Full Result: .../out/host/linux-x86/vts10/android-vts10/results/2016.08.16_09.17.13.zip
-```
-
-### 2.2. Test report for APFE (Android Partner Front-End)
-
-The uploadable report xml file can be found at
-
-`out/host/linux-x86/vts10/android-vts10/results/`
-
-After Android O release, you will be able to upload that xml file to [AFPE](https://partner.android.com)
-and obtain a certificate.
-
-### 2.3. Check the test logs
-
-`$ vi out/host/linux-x86/vts10/android-vts10/logs/`
-
-Then select a directory which captures the time stamp of your test run (e.g., 2016.08.16_09.17.13).
-
-Then select `host_log_<timestamp>.zip` and host_log.txt in that zip file for host log.
-
-Then select `device_logcat_<timestamp>.zip` and device_logcat.txt in that zip file for device log.
-
-## 3. Run Options for Advanced Users
-
-### 3.1. List of VTS10 Plans
-
-Documented at [here](../tools/vts-tradefed/res/config/plans.md).
-
-### 3.2. Run kernel test cases
-
-LTP (Linux Test Project) is part of vts-kernel.
-[This doc](developer_testing/kernel/ltp.md) shows how to run each LTP test case.
-
-## 4. Debugging
-
-### 4.1. Run VTS tests directly for debugging
-
-[Run directly from command line](testcase_develop_manual/run_vts_directly.md)
diff --git a/drivers/hal/common/Android.bp b/drivers/hal/common/Android.bp
index a82078b..f14a8f5 100644
--- a/drivers/hal/common/Android.bp
+++ b/drivers/hal/common/Android.bp
@@ -14,6 +14,10 @@
 // limitations under the License.
 //
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 cc_library_shared {
 
     name: "libvts_common",
@@ -45,6 +49,14 @@
         "libvts_multidevice_proto",
     ],
 
+    header_libs: [
+        "libhardware_headers",
+    ],
+
+    export_header_lib_headers: [
+        "libhardware_headers",
+    ],
+
     export_include_dirs: ["include"],
 
     target: {
diff --git a/drivers/hal/libcodecoverage/Android.bp b/drivers/hal/libcodecoverage/Android.bp
index 1633d49..04cfa38 100644
--- a/drivers/hal/libcodecoverage/Android.bp
+++ b/drivers/hal/libcodecoverage/Android.bp
@@ -14,6 +14,10 @@
 // limitations under the License.
 //
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 cc_library_shared {
 
     name: "libvts_codecoverage",
diff --git a/drivers/hal/libdatatype/Android.bp b/drivers/hal/libdatatype/Android.bp
index 5442ab2..5bf2a37 100644
--- a/drivers/hal/libdatatype/Android.bp
+++ b/drivers/hal/libdatatype/Android.bp
@@ -14,6 +14,10 @@
 // limitations under the License.
 //
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 cc_library_shared {
     name: "libvts_datatype",
     // TODO(b/153609531): remove when no longer needed.
@@ -34,6 +38,9 @@
         "libprotobuf-cpp-full",
         "libvts_multidevice_proto",
     ],
+    header_libs: [
+        "libhardware_headers",
+    ],
     export_shared_lib_headers: [
         "libcamera_metadata",
     ],
diff --git a/drivers/hal/libmeasurement/Android.bp b/drivers/hal/libmeasurement/Android.bp
index 130ece5..a18a12d 100644
--- a/drivers/hal/libmeasurement/Android.bp
+++ b/drivers/hal/libmeasurement/Android.bp
@@ -14,6 +14,10 @@
 // limitations under the License.
 //
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 cc_library_shared {
     name: "libvts_measurement",
     // TODO(b/153609531): remove when no longer needed.
diff --git a/drivers/hal/replayer/Android.bp b/drivers/hal/replayer/Android.bp
deleted file mode 100644
index e869532..0000000
--- a/drivers/hal/replayer/Android.bp
+++ /dev/null
@@ -1,48 +0,0 @@
-//
-// Copyright (C) 2017 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.
-//
-
-cc_binary {
-    name: "vts_hal_replayer",
-
-    cflags: [
-        "-Wall",
-        "-Werror",
-    ],
-
-    compile_multilib: "both",
-    multilib: {
-        lib32: {
-            suffix: "32",
-        },
-        lib64: {
-            suffix: "64",
-        },
-    },
-
-    srcs: [
-        "VtsHidlHalReplayer.cpp",
-        "VtsHidlHalReplayerMain.cpp",
-    ],
-
-    shared_libs: [
-        "libbase",
-        "libprotobuf-cpp-full",
-        "libvts_common",
-        "libvts_multidevice_proto",
-        "libvts_profiling_utils",
-        "libvts_resource_manager",
-    ],
-}
diff --git a/drivers/hal/replayer/VtsHidlHalReplayer.cpp b/drivers/hal/replayer/VtsHidlHalReplayer.cpp
deleted file mode 100644
index c02eca4..0000000
--- a/drivers/hal/replayer/VtsHidlHalReplayer.cpp
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright (C) 2016 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.
- */
-#include "VtsHidlHalReplayer.h"
-
-#include <fcntl.h>
-#include <unistd.h>
-#include <fstream>
-#include <iostream>
-#include <string>
-
-#include <android-base/logging.h>
-#include <google/protobuf/io/zero_copy_stream_impl.h>
-#include <google/protobuf/text_format.h>
-
-#include "VtsProfilingUtil.h"
-#include "driver_base/DriverBase.h"
-#include "utils/InterfaceSpecUtil.h"
-#include "utils/StringUtil.h"
-
-using namespace std;
-
-static constexpr const char* kErrorString = "error";
-static constexpr const char* kVoidString = "void";
-static constexpr const int kInvalidDriverId = -1;
-
-namespace android {
-namespace vts {
-
-void VtsHidlHalReplayer::ListTestServices(const string& trace_file) {
-  // Parse the trace file to get the sequence of function calls.
-  int fd = open(trace_file.c_str(), O_RDONLY);
-  if (fd < 0) {
-    LOG(ERROR) << "Can not open trace file: " << trace_file
-               << " error: " << std::strerror(errno);
-    return;
-  }
-
-  google::protobuf::io::FileInputStream input(fd);
-
-  VtsProfilingRecord msg;
-  set<string> registeredHalServices;
-  while (readOneDelimited(&msg, &input)) {
-    string package_name = msg.package();
-    int version_major = msg.version_major();
-    int version_minor = msg.version_minor();
-    // for backward compatibility, some previous testcases don't
-    // specify major and minor versions separately, manually parse it
-    if (version_major == -1 && version_minor == -1) {
-      string version_str = GetVersionString(msg.version());
-      version_major = GetVersionMajor(version_str);
-      version_minor = GetVersionMinor(version_str);
-    }
-    string interface_name = msg.interface();
-    string service_fq_name = GetInterfaceFQName(package_name, version_major,
-                                                version_minor, interface_name);
-    registeredHalServices.insert(service_fq_name);
-    msg.Clear();
-  }
-  for (const string& service : registeredHalServices) {
-    cout << "hal_service: " << service << endl;
-  }
-}
-
-bool VtsHidlHalReplayer::ReplayTrace(
-    const string& trace_file, map<string, string>& hal_service_instances) {
-  // Parse the trace file to get the sequence of function calls.
-  int fd = open(trace_file.c_str(), O_RDONLY);
-  if (fd < 0) {
-    LOG(ERROR) << "Can not open trace file: " << trace_file
-               << "error: " << std::strerror(errno);
-    return false;
-  }
-
-  google::protobuf::io::FileInputStream input(fd);
-
-  VtsProfilingRecord call_msg;
-  VtsProfilingRecord expected_result_msg;
-  while (readOneDelimited(&call_msg, &input) &&
-         readOneDelimited(&expected_result_msg, &input)) {
-    if (call_msg.event() != InstrumentationEventType::SERVER_API_ENTRY &&
-        call_msg.event() != InstrumentationEventType::CLIENT_API_ENTRY &&
-        call_msg.event() != InstrumentationEventType::SYNC_CALLBACK_ENTRY &&
-        call_msg.event() != InstrumentationEventType::ASYNC_CALLBACK_ENTRY &&
-        call_msg.event() != InstrumentationEventType::PASSTHROUGH_ENTRY) {
-      LOG(WARNING) << "Expected a call message but got message with event: "
-                   << call_msg.event();
-      continue;
-    }
-    if (expected_result_msg.event() !=
-            InstrumentationEventType::SERVER_API_EXIT &&
-        expected_result_msg.event() !=
-            InstrumentationEventType::CLIENT_API_EXIT &&
-        expected_result_msg.event() !=
-            InstrumentationEventType::SYNC_CALLBACK_EXIT &&
-        expected_result_msg.event() !=
-            InstrumentationEventType::ASYNC_CALLBACK_EXIT &&
-        expected_result_msg.event() !=
-            InstrumentationEventType::PASSTHROUGH_EXIT) {
-      LOG(WARNING) << "Expected a result message but got message with event: "
-                   << call_msg.event();
-      continue;
-    }
-
-    string package_name = call_msg.package();
-    int version_major = call_msg.version_major();
-    int version_minor = call_msg.version_minor();
-    // for backward compatibility, some previous testcases don't
-    // specify major and minor versions separately, manually parse it
-    if (version_major == -1 && version_minor == -1) {
-      string version_str = std::to_string(call_msg.version());
-      version_major = GetVersionMajor(version_str);
-      version_minor = GetVersionMinor(version_str);
-    }
-    string interface_name = call_msg.interface();
-    string instance_name = GetInterfaceFQName(package_name, version_major,
-                                              version_minor, interface_name);
-    string hal_service_name = "default";
-
-    if (hal_service_instances.find(instance_name) ==
-        hal_service_instances.end()) {
-      LOG(WARNING) << "Does not find service name for " << instance_name
-                   << "; this could be a nested interface.";
-    } else {
-      hal_service_name = hal_service_instances[instance_name];
-    }
-
-    cout << "Replay function: " << call_msg.func_msg().name() << endl;
-    LOG(DEBUG) << "Replay function: " << call_msg.func_msg().DebugString();
-
-    int32_t driver_id = driver_manager_->GetDriverIdForHidlHalInterface(
-        package_name, version_major, version_minor, interface_name,
-        hal_service_name);
-    if (driver_id == kInvalidDriverId) {
-      LOG(ERROR) << "Couldn't get a driver base class";
-      return false;
-    }
-
-    vts::FunctionCallMessage func_call_msg;
-    func_call_msg.set_component_class(HAL_HIDL);
-    func_call_msg.set_hal_driver_id(driver_id);
-    *func_call_msg.mutable_api() = call_msg.func_msg();
-    const string& result = driver_manager_->CallFunction(&func_call_msg);
-    if (result == kVoidString || result == kErrorString) {
-      LOG(ERROR) << "Replay function fail. Failed function call: "
-                 << func_call_msg.DebugString();
-      return false;
-    }
-    vts::FunctionSpecificationMessage result_msg;
-    if (!google::protobuf::TextFormat::ParseFromString(result, &result_msg)) {
-      LOG(ERROR) << "Failed to parse result msg.";
-      return false;
-    }
-    if (!driver_manager_->VerifyResults(
-            driver_id, expected_result_msg.func_msg(), result_msg)) {
-      // Verification is not strict, i.e. if fail, output error message and
-      // continue the process.
-      LOG(WARNING) << "Verification fail. Expected: "
-                   << expected_result_msg.func_msg().DebugString()
-                   << " Actual: " << result_msg.DebugString();
-    }
-    call_msg.Clear();
-    expected_result_msg.Clear();
-  }
-  return true;
-}
-
-}  // namespace vts
-}  // namespace android
diff --git a/drivers/hal/replayer/VtsHidlHalReplayer.h b/drivers/hal/replayer/VtsHidlHalReplayer.h
deleted file mode 100644
index 2a2548b..0000000
--- a/drivers/hal/replayer/VtsHidlHalReplayer.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2016 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.
- */
-#ifndef __VTS_SYSFUZZER_COMMON_REPLAYER_VTSHIDLHALREPLAYER_H__
-#define __VTS_SYSFUZZER_COMMON_REPLAYER_VTSHIDLHALREPLAYER_H__
-
-#include "driver_manager/VtsHalDriverManager.h"
-#include "test/vts/proto/VtsProfilingMessage.pb.h"
-
-namespace android {
-namespace vts {
-
-// Class to perform VTS record and replay test.
-// The class is responsible for:
-// 1) Load and parse a given trace file.
-// 2) Replay the API call sequence parsed from the trace file by calling
-//    the HAL drive.
-// 3) Verify the return results of each API calls.
-class VtsHidlHalReplayer {
- public:
-  explicit VtsHidlHalReplayer(VtsHalDriverManager* driver_manager)
-      : driver_manager_(driver_manager) {}
-
-  // Replays the API call sequence parsed from the trace file.
-  bool ReplayTrace(const std::string& trace_file,
-                   map<string, string>& hal_service_instances);
-
-  // Print the HAL service recorded in the trace file.
-  void ListTestServices(const string& trace_file);
-
- private:
-  // Used to load the vts spec and driver library. Does not own.
-  VtsHalDriverManager* driver_manager_;
-};
-
-}  // namespace vts
-}  // namespace android
-
-#endif  // __VTS_SYSFUZZER_COMMON_REPLAYER_VTSHIDLHALREPLAYER_H__
diff --git a/drivers/hal/replayer/VtsHidlHalReplayerMain.cpp b/drivers/hal/replayer/VtsHidlHalReplayerMain.cpp
deleted file mode 100644
index f987b02..0000000
--- a/drivers/hal/replayer/VtsHidlHalReplayerMain.cpp
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright 2017 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.
- */
-
-/*
- * Example usage
- *  $ vts_hal_replayer /data/local/tmp/hal-trace/nfc/V1_0/nfc.vts.trace
- *  $ vts_hal_replayer --spec_dir_path /data/local/tmp/spec
- *    --hal_service_name default
- *    /data/local/tmp/hal-trace/nfc/V1_0/nfc.vts.trace
- */
-
-#include <getopt.h>
-#include <iostream>
-#include <string>
-
-#include <android-base/logging.h>
-
-#include <resource_manager/VtsResourceManager.h>
-#include "VtsHidlHalReplayer.h"
-#include "driver_manager/VtsHalDriverManager.h"
-
-using namespace std;
-
-static constexpr const char* kDefaultSpecDirPath = "/data/local/tmp/spec/";
-static constexpr const char* kPassedMarker = "[  PASSED  ]";
-static const int kDefaultEpochCount = 100;
-
-static void AddHalServiceInstance(const string& instance,
-                                  map<string, string>* halServiceInstances) {
-  if (halServiceInstances == nullptr) {
-    cerr << __func__ << ": halServiceInstances should not be null " << endl;
-    return;
-  }
-  // hal_service_instance follows the format:
-  // package@version::interface/service_name e.g.:
-  // android.hardware.vibrator@1.0::IVibrator/default
-  string instanceName = instance.substr(0, instance.find('/'));
-  string serviceName = instance.substr(instance.find('/') + 1);
-  // Fail the process if trying to pass multiple service names for the same
-  // service instance.
-  if (halServiceInstances->find(instanceName) != halServiceInstances->end()) {
-    cerr << "Exisitng instance " << instanceName << " with name "
-         << (*halServiceInstances)[instanceName] << endl;
-  } else {
-    (*halServiceInstances)[instanceName] = serviceName;
-  }
-}
-
-void ShowUsage() {
-  cout << "Usage: vts_hal_replayer [options] <trace file>\n"
-          "--spec_dir_path <path>:     Set path that store the vts spec files\n"
-          "--hal_service_instances <name>:  Set the hal service name\n"
-          "--help:                     Show help\n";
-  exit(1);
-}
-
-int main(int argc, char** argv) {
-  android::base::InitLogging(argv, android::base::StderrLogger);
-
-  const char* const short_opts = "hld:n:";
-  const option long_opts[] = {
-      {"help", no_argument, nullptr, 'h'},
-      {"list_service", no_argument, nullptr, 'l'},
-      {"spec_dir_path", optional_argument, nullptr, 'd'},
-      {"hal_service_instances", optional_argument, nullptr, 'n'},
-      {nullptr, 0, nullptr, 0}};
-
-  string spec_dir_path = kDefaultSpecDirPath;
-  map<string, string> hal_service_instances;
-  bool list_service = false;
-
-  while (true) {
-    int opt = getopt_long(argc, argv, short_opts, long_opts, nullptr);
-    if (opt == -1) {
-      break;
-    }
-
-    switch (opt) {
-      case 'h':
-      case '?':
-        ShowUsage();
-        return 0;
-      case 'd': {
-        spec_dir_path = string(optarg);
-        break;
-      }
-      case 'n': {
-        AddHalServiceInstance(string(optarg), &hal_service_instances);
-        break;
-      }
-      case 'l': {
-        list_service = true;
-        break;
-      }
-      default:
-        cerr << "getopt_long returned unexpected value " << opt << endl;
-        return 2;
-    }
-  }
-
-  if (optind != argc - 1) {
-    cerr << "Must specify the trace file (see --help).\n" << endl;
-    return 2;
-  }
-
-  string trace_path = argv[optind];
-
-  android::vts::VtsResourceManager resource_manager;
-  android::vts::VtsHalDriverManager driver_manager(
-      spec_dir_path, kDefaultEpochCount, "", &resource_manager);
-  android::vts::VtsHidlHalReplayer replayer(&driver_manager);
-
-  if (list_service) {
-    replayer.ListTestServices(trace_path);
-  } else {
-    bool success = replayer.ReplayTrace(trace_path, hal_service_instances);
-    if (success) {
-      cout << endl << kPassedMarker << endl;
-    }
-  }
-  return 0;
-}
diff --git a/drivers/hal/server/Android.bp b/drivers/hal/server/Android.bp
deleted file mode 100644
index d599dae..0000000
--- a/drivers/hal/server/Android.bp
+++ /dev/null
@@ -1,50 +0,0 @@
-//
-// Copyright (C) 2017 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.
-//
-
-cc_binary {
-    name: "vts_hal_driver",
-
-    cflags: [
-        "-Wall",
-        "-Werror",
-    ],
-
-    compile_multilib: "both",
-    multilib: {
-        lib32: {
-            suffix: "32",
-        },
-        lib64: {
-            suffix: "64",
-        },
-    },
-
-    srcs: [
-        "BinderServer.cpp",
-        "SocketServer.cpp",
-        "VtsHalDriverServerMain.cpp",
-    ],
-
-    shared_libs: [
-        "libbase",
-        "libprotobuf-cpp-full",
-        "libvts_common",
-        "libvts_drivercomm",
-        "libvts_multidevice_proto",
-        "libvts_resource_driver",
-        "libvts_resource_manager",
-    ],
-}
diff --git a/drivers/hal/server/BinderServer.cpp b/drivers/hal/server/BinderServer.cpp
deleted file mode 100644
index 39d35bc..0000000
--- a/drivers/hal/server/BinderServer.cpp
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-
-#ifdef VTS_AGENT_DRIVER_COMM_BINDER  // binder
-
-#include "BinderServer.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <iostream>
-#include <string>
-
-#define LOG_TAG "VtsFuzzerBinderServer"
-#include <log/log.h>
-#include <utils/RefBase.h>
-#include <utils/String8.h>
-
-#include <binder/IBinder.h>
-#include <binder/IInterface.h>
-#include <binder/IPCThreadState.h>
-#include <binder/IServiceManager.h>
-#include <binder/ProcessState.h>
-#include <binder/TextOutput.h>
-
-#include "binder/VtsFuzzerBinderService.h"
-
-#include <google/protobuf/text_format.h>
-#include "test/vts/proto/ComponentSpecificationMessage.pb.h"
-
-using namespace std;
-
-namespace android {
-namespace vts {
-
-class BnVtsFuzzer : public BnInterface<IVtsFuzzer> {
-  virtual status_t onTransact(uint32_t code, const Parcel& data, Parcel* reply,
-                              uint32_t flags = 0);
-};
-
-status_t BnVtsFuzzer::onTransact(uint32_t code, const Parcel& data,
-                                 Parcel* reply, uint32_t flags) {
-  ALOGD("BnVtsFuzzer::%s(%i) %i", __func__, code, flags);
-
-  data.checkInterface(this);
-#ifdef VTS_FUZZER_BINDER_DEBUG
-  alog << data << endl;
-#endif
-
-  switch (code) {
-    case EXIT:
-      Exit();
-      break;
-    case LOAD_HAL: {
-      const char* path = data.readCString();
-      const int target_class = data.readInt32();
-      const int target_type = data.readInt32();
-      const int target_version_major = data.readInt32();
-      const int target_version_minor = data.readInt32();
-      const char* module_name = data.readCString();
-      int32_t result =
-          LoadHal(string(path), target_class, target_type, target_version_major,
-                  target_version_minor, string(module_name));
-      ALOGD("BnVtsFuzzer::%s LoadHal(%s) -> %i", __FUNCTION__, path, result);
-      if (reply == NULL) {
-        ALOGE("reply == NULL");
-        abort();
-      }
-#ifdef VTS_FUZZER_BINDER_DEBUG
-      alog << reply << endl;
-#endif
-      reply->writeInt32(result);
-      break;
-    }
-    case STATUS: {
-      int32_t type = data.readInt32();
-      int32_t result = Status(type);
-
-      ALOGD("BnVtsFuzzer::%s status(%i) -> %i", __FUNCTION__, type, result);
-      if (reply == NULL) {
-        ALOGE("reply == NULL");
-        abort();
-      }
-#ifdef VTS_FUZZER_BINDER_DEBUG
-      alog << reply << endl;
-#endif
-      reply->writeInt32(result);
-      break;
-    }
-    case CALL: {
-      const char* arg = data.readCString();
-      const string& result = Call(arg);
-
-      ALOGD("BnVtsFuzzer::%s call(%s) = %i", __FUNCTION__, arg, result.c_str());
-      if (reply == NULL) {
-        ALOGE("reply == NULL");
-        abort();
-      }
-#ifdef VTS_FUZZER_BINDER_DEBUG
-      alog << reply << endl;
-#endif
-      reply->writeCString(result.c_str());
-      break;
-    }
-    case GET_FUNCTIONS: {
-      const char* result = GetFunctions();
-
-      if (reply == NULL) {
-        ALOGE("reply == NULL");
-        abort();
-      }
-#ifdef VTS_FUZZER_BINDER_DEBUG
-      alog << reply << endl;
-#endif
-      reply->writeCString(result);
-      break;
-    }
-    default:
-      return BBinder::onTransact(code, data, reply, flags);
-  }
-  return NO_ERROR;
-}
-
-class VtsFuzzerServer : public BnVtsFuzzer {
- public:
-  VtsFuzzerServer(android::vts::VtsHalDriverManager* driver_manager,
-                  const char* lib_path)
-      : driver_manager_(driver_manager), lib_path_(lib_path) {}
-
-  void Exit() { printf("VtsFuzzerServer::Exit\n"); }
-
-  int32_t LoadHal(const string& path, int target_class, int target_type,
-                  int target_version_major, int target_version_minor,
-                  const string& module_name) {
-    printf("VtsFuzzerServer::LoadHal(%s)\n", path.c_str());
-    bool success = driver_manager_->LoadTargetComponent(
-        path.c_str(), lib_path_, target_class, target_type,
-        target_version_major, target_version_minor, "", "", "",
-        module_name.c_str());
-    cout << "Result: " << success << std::endl;
-    if (success) {
-      return 0;
-    } else {
-      return -1;
-    }
-  }
-
-  int32_t Status(int32_t type) {
-    printf("VtsFuzzerServer::Status(%i)\n", type);
-    return 0;
-  }
-
-  string Call(const string& arg) {
-    printf("VtsFuzzerServer::Call(%s)\n", arg.c_str());
-    FunctionCallMessage* call_msg = new FunctionCallMessage();
-    google::protobuf::TextFormat::MergeFromString(arg, call_msg);
-    return driver_manager_->CallFunction(call_msg);
-  }
-
-  const char* GetFunctions() {
-    printf("Get functions*");
-    vts::ComponentSpecificationMessage* spec =
-        driver_manager_->GetComponentSpecification();
-    if (!spec) {
-      return NULL;
-    }
-    string* output = new string();
-    printf("getfunctions serial1\n");
-    if (google::protobuf::TextFormat::PrintToString(*spec, output)) {
-      printf("getfunctions length %d\n", output->length());
-      return output->c_str();
-    } else {
-      printf("can't serialize the interface spec message to a string.\n");
-      return NULL;
-    }
-  }
-
- private:
-  android::vts::VtsHalDriverManager* driver_manager_;
-  const char* lib_path_;
-};
-
-void StartBinderServer(const string& service_name,
-                       android::vts::VtsHalDriverManager* driver_manager,
-                       const char* lib_path) {
-  defaultServiceManager()->addService(
-      String16(service_name.c_str()),
-      new VtsFuzzerServer(driver_manager, lib_path));
-  android::ProcessState::self()->startThreadPool();
-  IPCThreadState::self()->joinThreadPool();
-}
-
-}  // namespace vts
-}  // namespace android
-
-#endif
diff --git a/drivers/hal/server/BinderServer.h b/drivers/hal/server/BinderServer.h
deleted file mode 100644
index 9f7e180..0000000
--- a/drivers/hal/server/BinderServer.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-
-#ifdef VTS_AGENT_DRIVER_COMM_BINDER  // binder
-
-#ifndef __VTS_DRIVER_HAL_BINDER_SERVER_
-#define __VTS_DRIVER_HAL_BINDER_SERVER_
-
-#include "driver_manager/VtsHalDriverManager.h"
-
-namespace android {
-namespace vts {
-
-extern void StartBinderServer(const string& service_name,
-                              android::vts::VtsHalDriverManager* driver_manager,
-                              const char* lib_path);
-
-}  // namespace vts
-}  // namespace android
-
-#endif  // __VTS_DRIVER_HAL_BINDER_SERVER_
-
-#endif  // VTS_AGENT_DRIVER_COMM_BINDER
diff --git a/drivers/hal/server/SocketServer.cpp b/drivers/hal/server/SocketServer.cpp
deleted file mode 100644
index d528c57..0000000
--- a/drivers/hal/server/SocketServer.cpp
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-
-#ifndef VTS_AGENT_DRIVER_COMM_BINDER  // socket
-
-#define LOG_TAG "VtsDriverHalSocketServer"
-
-#include "SocketServer.h"
-
-#include <netinet/in.h>
-#include <sys/un.h>
-#include <string>
-
-#include <VtsDriverCommUtil.h>
-#include <android-base/logging.h>
-#include <google/protobuf/text_format.h>
-
-#include "test/vts/proto/ComponentSpecificationMessage.pb.h"
-#include "test/vts/proto/VtsDriverControlMessage.pb.h"
-#include "test/vts/proto/VtsResourceControllerMessage.pb.h"
-
-using namespace std;
-
-namespace android {
-namespace vts {
-
-void VtsDriverHalSocketServer::Exit() {
-  LOG(INFO) << "VtsHalDriverServer::Exit";
-}
-
-int32_t VtsDriverHalSocketServer::LoadHal(
-    const string& path, int target_class, int target_type,
-    int target_version_major, int target_version_minor,
-    const string& target_package, const string& target_component_name,
-    const string& hw_binder_service_name, const string& /*module_name*/) {
-  LOG(DEBUG) << "LoadHal(" << path << ")";
-  int32_t driver_id = driver_manager_->LoadTargetComponent(
-      path.c_str(), lib_path_, target_class, target_type, target_version_major,
-      target_version_minor, target_package.c_str(),
-      target_component_name.c_str(), hw_binder_service_name.c_str());
-  LOG(DEBUG) << "Result: " << driver_id;
-  return driver_id;
-}
-
-string VtsDriverHalSocketServer::ReadSpecification(
-    const string& name, int target_class, int target_type,
-    int target_version_major, int target_version_minor,
-    const string& target_package) {
-  ComponentSpecificationMessage msg;
-  driver_manager_->FindComponentSpecification(
-      target_class, target_type, target_version_major, target_version_minor,
-      target_package, name, &msg);
-  string result;
-  google::protobuf::TextFormat::PrintToString(msg, &result);
-  LOG(DEBUG) << "Result: " << result;
-  return result;
-}
-
-string VtsDriverHalSocketServer::Call(const string& arg) {
-  FunctionCallMessage* call_msg = new FunctionCallMessage();
-  google::protobuf::TextFormat::MergeFromString(arg, call_msg);
-  const string& result = driver_manager_->CallFunction(call_msg);
-  LOG(DEBUG) << "Result: " << result;
-  return result;
-}
-
-string VtsDriverHalSocketServer::GetAttribute(const string& arg) {
-  FunctionCallMessage* call_msg = new FunctionCallMessage();
-  google::protobuf::TextFormat::MergeFromString(arg, call_msg);
-  const string& result = driver_manager_->GetAttribute(call_msg);
-  LOG(DEBUG) << "Result: " << result;
-  return result;
-}
-
-string VtsDriverHalSocketServer::ListFunctions() const {
-  vts::ComponentSpecificationMessage* spec =
-      driver_manager_->GetComponentSpecification();
-  string output;
-  if (!spec) {
-    return output;
-  }
-  if (google::protobuf::TextFormat::PrintToString(*spec, &output)) {
-    LOG(DEBUG) << "Result: " << output;
-    return output;
-  } else {
-    LOG(ERROR) << "Can't serialize the interface spec message to a string.";
-    return output;
-  }
-}
-
-bool VtsDriverHalSocketServer::ProcessOneCommand() {
-  VtsDriverControlCommandMessage command_message;
-  if (!VtsSocketRecvMessage(&command_message)) return false;
-  // TODO: get the command type description.
-  LOG(DEBUG) << " command_type " << command_message.command_type();
-  switch (command_message.command_type()) {
-    case EXIT: {
-      Exit();
-      VtsDriverControlResponseMessage response_message;
-      response_message.set_response_code(VTS_DRIVER_RESPONSE_SUCCESS);
-      if (VtsSocketSendMessage(response_message)) {
-        LOG(INFO) << "process: " << getpid() << " exiting";
-        return false;
-      }
-      break;
-    }
-    case LOAD_HAL: {
-      LOG(INFO) << "Process command LOAD_HAL";
-      int32_t driver_id = LoadHal(
-          command_message.file_path(), command_message.target_class(),
-          command_message.target_type(), command_message.target_version_major(),
-          command_message.target_version_minor(),
-          command_message.target_package(),
-          command_message.target_component_name(),
-          command_message.hw_binder_service_name(),
-          command_message.module_name());
-      VtsDriverControlResponseMessage response_message;
-      if (driver_id == -1) {
-        response_message.set_response_code(VTS_DRIVER_RESPONSE_FAIL);
-      } else {
-        response_message.set_response_code(VTS_DRIVER_RESPONSE_SUCCESS);
-      }
-      response_message.set_return_value(driver_id);
-      if (VtsSocketSendMessage(response_message)) return true;
-      break;
-    }
-    case GET_STATUS: {
-      int32_t result = command_message.status_type();
-      VtsDriverControlResponseMessage response_message;
-      response_message.set_response_code(VTS_DRIVER_RESPONSE_SUCCESS);
-      response_message.set_return_value(result);
-      if (VtsSocketSendMessage(response_message)) return true;
-      break;
-    }
-    case CALL_FUNCTION: {
-      LOG(INFO) << "Process command CALL_FUNCTION";
-      if (command_message.has_driver_caller_uid()) {
-        setuid(atoi(command_message.driver_caller_uid().c_str()));
-      }
-      const string& result = Call(command_message.arg());
-      VtsDriverControlResponseMessage response_message;
-      response_message.set_response_code(VTS_DRIVER_RESPONSE_SUCCESS);
-      response_message.set_return_message(result);
-      if (VtsSocketSendMessage(response_message)) return true;
-      break;
-    }
-    case VTS_DRIVER_COMMAND_READ_SPECIFICATION: {
-      LOG(INFO) << "Process command READ_SPECIFICATION";
-      const string& result = ReadSpecification(
-          command_message.module_name(), command_message.target_class(),
-          command_message.target_type(), command_message.target_version_major(),
-          command_message.target_version_minor(),
-          command_message.target_package());
-      VtsDriverControlResponseMessage response_message;
-      response_message.set_response_code(VTS_DRIVER_RESPONSE_SUCCESS);
-      response_message.set_return_message(result);
-      if (VtsSocketSendMessage(response_message)) return true;
-      break;
-    }
-    case GET_ATTRIBUTE: {
-      LOG(INFO) << "Process command GET_ATTRIBUTE";
-      const string& result = GetAttribute(command_message.arg());
-      VtsDriverControlResponseMessage response_message;
-      response_message.set_response_code(VTS_DRIVER_RESPONSE_SUCCESS);
-      response_message.set_return_message(result);
-      if (VtsSocketSendMessage(response_message)) return true;
-      break;
-    }
-    case LIST_FUNCTIONS: {
-      LOG(INFO) << "Process command LIST_FUNCTIONS";
-      string result = ListFunctions();
-      VtsDriverControlResponseMessage response_message;
-      if (result.size() > 0) {
-        response_message.set_response_code(VTS_DRIVER_RESPONSE_SUCCESS);
-        response_message.set_return_message(result.c_str());
-      } else {
-        response_message.set_response_code(VTS_DRIVER_RESPONSE_FAIL);
-      }
-      if (VtsSocketSendMessage(response_message)) return true;
-      break;
-    }
-    case FMQ_OPERATION: {
-      LOG(INFO) << "Process command FMQ_OPERATION";
-      VtsDriverControlResponseMessage response_message;
-      FmqResponseMessage* fmq_response =
-          response_message.mutable_fmq_response();
-      // call method on resource_manager to process the command
-      resource_manager_->ProcessFmqCommand(command_message.fmq_request(),
-                                           fmq_response);
-      response_message.set_response_code(VTS_DRIVER_RESPONSE_SUCCESS);
-      if (VtsSocketSendMessage(response_message)) return true;
-      break;
-    }
-    case HIDL_MEMORY_OPERATION: {
-      LOG(INFO) << "Process command HIDL_MEMORY_OPERATION";
-      VtsDriverControlResponseMessage response_message;
-      HidlMemoryResponseMessage* hidl_memory_response =
-          response_message.mutable_hidl_memory_response();
-      // call method on resource_manager to process the command
-      resource_manager_->ProcessHidlMemoryCommand(
-          command_message.hidl_memory_request(), hidl_memory_response);
-      response_message.set_response_code(VTS_DRIVER_RESPONSE_SUCCESS);
-      if (VtsSocketSendMessage(response_message)) return true;
-      break;
-    }
-    case HIDL_HANDLE_OPERATION: {
-      LOG(INFO) << "Process command HIDL_HANDLE_OPERATION";
-      VtsDriverControlResponseMessage response_message;
-      HidlHandleResponseMessage* hidl_handle_response =
-          response_message.mutable_hidl_handle_response();
-      // call method on resource manager to process the command
-      resource_manager_->ProcessHidlHandleCommand(
-          command_message.hidl_handle_request(), hidl_handle_response);
-      response_message.set_response_code(VTS_DRIVER_RESPONSE_SUCCESS);
-      if (VtsSocketSendMessage(response_message)) return true;
-      break;
-    }
-    default:
-      break;
-  }
-  LOG(ERROR) << "Failed.";
-  return false;
-}
-
-// Starts to run a UNIX socket server (foreground).
-int StartSocketServer(const string& socket_port_file,
-                      VtsHalDriverManager* driver_manager,
-                      VtsResourceManager* resource_manager,
-                      const char* lib_path) {
-  int sockfd;
-  socklen_t clilen;
-  struct sockaddr_in cli_addr;
-  struct sockaddr_un serv_addr;
-
-  sockfd = socket(PF_UNIX, SOCK_STREAM, 0);
-  if (sockfd < 0) {
-    LOG(ERROR) << "Can't open the socket.";
-    return -1;
-  }
-
-  unlink(socket_port_file.c_str());
-  bzero((char*)&serv_addr, sizeof(serv_addr));
-  serv_addr.sun_family = AF_UNIX;
-  strcpy(serv_addr.sun_path, socket_port_file.c_str());
-
-  LOG(DEBUG) << "Trying to bind (port file: " << socket_port_file << ")";
-
-  if (::bind(sockfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) == -1) {
-    int error_save = errno;
-    LOG(ERROR) << "ERROR binding failed. errno = " << error_save << " "
-               << strerror(error_save);
-    return -1;
-  }
-
-  listen(sockfd, 5);
-  clilen = sizeof(cli_addr);
-
-  while (true) {
-    LOG(DEBUG) << "Waiting for a new connection from the agent";
-    int newsockfd = ::accept(sockfd, (struct sockaddr*)&cli_addr, &clilen);
-    if (newsockfd < 0) {
-      LOG(ERROR) << "ERROR accept failed.";
-      return -1;
-    }
-
-    LOG(DEBUG) << "New session";
-    pid_t pid = fork();
-    if (pid == 0) {  // child
-      close(sockfd);
-      LOG(DEBUG) << "Process for an agent - pid = " << getpid();
-      VtsDriverHalSocketServer* server = new VtsDriverHalSocketServer(
-          driver_manager, resource_manager, lib_path);
-      server->SetSockfd(newsockfd);
-      while (server->ProcessOneCommand())
-        ;
-      delete server;
-      exit(0);
-    } else if (pid < 0) {
-      LOG(ERROR) << "Can't fork a child process to handle a session.";
-      return -1;
-    }
-    close(newsockfd);
-  }
-  LOG(ERROR) << "Exiting";
-  return 0;
-}
-
-}  // namespace vts
-}  // namespace android
-
-#endif
diff --git a/drivers/hal/server/SocketServer.h b/drivers/hal/server/SocketServer.h
deleted file mode 100644
index d4316f3..0000000
--- a/drivers/hal/server/SocketServer.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-
-#ifndef VTS_AGENT_DRIVER_COMM_BINDER  // socket
-
-#ifndef __VTS_DRIVER_HAL_SOCKET_SERVER_
-#define __VTS_DRIVER_HAL_SOCKET_SERVER_
-
-#include <VtsDriverCommUtil.h>
-#include <resource_manager/VtsResourceManager.h>
-
-#include "driver_manager/VtsHalDriverManager.h"
-
-namespace android {
-namespace vts {
-
-class VtsDriverHalSocketServer : public VtsDriverCommUtil {
- public:
-  VtsDriverHalSocketServer(VtsHalDriverManager* driver_manager,
-                           VtsResourceManager* resource_manager,
-                           const char* lib_path)
-      : VtsDriverCommUtil(),
-        driver_manager_(driver_manager),
-        resource_manager_(resource_manager),
-        lib_path_(lib_path) {}
-
-  // Start a session to handle a new request.
-  bool ProcessOneCommand();
-
- protected:
-  void Exit();
-
-  // Load a Hal driver with the given info (package, version etc.),
-  // returns the loaded hal driver id if scuccess, -1 otherwise.
-  // Args:
-  //   target_version_major: int, hal major version, e.g. 1.0 -> 1.
-  //   target_version_minor: int, hal minor version, e.g. 1.0 -> 0.
-  int32_t LoadHal(const string& path, int target_class, int target_type,
-                  int target_version_major, int target_version_minor,
-                  const string& target_package,
-                  const string& target_component_name,
-                  const string& hw_binder_service_name,
-                  const string& module_name);
-  // Args:
-  //   target_version_major: int, hal major version, e.g. 1.0 -> 1.
-  //   target_version_minor: int, hal minor version, e.g. 1.0 -> 0.
-  string ReadSpecification(const string& name, int target_class,
-                           int target_type, int target_version_major,
-                           int target_version_minor,
-                           const string& target_package);
-  string Call(const string& arg);
-  string GetAttribute(const string& arg);
-  string ListFunctions() const;
-
- private:
-  android::vts::VtsHalDriverManager* driver_manager_;
-  android::vts::VtsResourceManager* resource_manager_;
-  const char* lib_path_;
-};
-
-extern int StartSocketServer(const string& socket_port_file,
-                             VtsHalDriverManager* driver_manager,
-                             VtsResourceManager* resource_manager,
-                             const char* lib_path);
-
-}  // namespace vts
-}  // namespace android
-
-#endif  // __VTS_DRIVER_HAL_SOCKET_SERVER_
-
-#endif  // VTS_AGENT_DRIVER_COMM_BINDER
diff --git a/drivers/hal/server/VtsHalDriverServerMain.cpp b/drivers/hal/server/VtsHalDriverServerMain.cpp
deleted file mode 100644
index 746af2e..0000000
--- a/drivers/hal/server/VtsHalDriverServerMain.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright 2017 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.
- */
-
-/*
- * Example usage:
- *  $ vts_hal_driver
- *  $ vts_hal_driver --spec_dir_path /data/local/tmp/spec/
- *    --callback_socket_name /data/local/tmp/vts_agent_callback
- *    --server_socket_path /data/local/tmp/vts_tcp_server_port
- */
-#include <getopt.h>
-#include <iostream>
-#include <string>
-
-#include <android-base/logging.h>
-
-#include <resource_manager/VtsResourceManager.h>
-#include "BinderServer.h"
-#include "SocketServer.h"
-#include "binder/VtsFuzzerBinderService.h"
-#include "driver_manager/VtsHalDriverManager.h"
-
-using namespace std;
-
-static constexpr const char* kDefaultSpecDirPath = "/data/local/tmp/spec/";
-static constexpr const char* kInterfaceSpecLibName =
-    "libvts_interfacespecification.so";
-static const int kDefaultEpochCount = 100;
-
-void ShowUsage() {
-  cout << "Usage: vts_hal_driver [options] <interface spec lib>\n"
-          "--spec_dir_path <path>:         Set path that store the vts spec "
-          "files\n"
-          "--callback_socket_name <name>:  Set the callback (agent) socket "
-          "name\n"
-          "--server_socket_path <path>:    Set the driver server socket path\n"
-          "--service_name <name>:          Set the binder service name\n"
-          "--help:                         Show help\n";
-  exit(1);
-}
-
-int main(int argc, char** argv) {
-  android::base::InitLogging(argv, android::base::StderrLogger);
-
-  const char* const short_opts = "h:d:c:s:n";
-  const option long_opts[] = {
-      {"help", no_argument, nullptr, 'h'},
-      {"spec_dir_path", optional_argument, nullptr, 'd'},
-      {"callback_socket_name", optional_argument, nullptr, 'c'},
-#ifndef VTS_AGENT_DRIVER_COMM_BINDER  // socket
-      {"server_socket_path", optional_argument, NULL, 's'},
-#else  // binder
-      {"service_name", required_argument, NULL, 'n'},
-#endif
-      {nullptr, 0, nullptr, 0},
-  };
-
-  string spec_dir_path = kDefaultSpecDirPath;
-  string callback_socket_name = "";
-  string server_socket_path;
-  string service_name;
-
-  while (true) {
-    int opt = getopt_long(argc, argv, short_opts, long_opts, nullptr);
-    if (opt == -1) {
-      break;
-    }
-
-    switch (opt) {
-      case 'h':
-      case '?':
-        ShowUsage();
-        return 0;
-      case 'd': {
-        spec_dir_path = string(optarg);
-        break;
-      }
-      case 'c': {
-        callback_socket_name = string(optarg);
-        break;
-      }
-#ifndef VTS_AGENT_DRIVER_COMM_BINDER  // socket
-      case 's':
-        server_socket_path = string(optarg);
-        break;
-#else  // binder
-      case 'n':
-        service_name = string(optarg);
-        break;
-#endif
-      default:
-        cerr << "getopt_long returned unexpected value " << opt << endl;
-        return 2;
-    }
-  }
-
-  android::vts::VtsResourceManager resource_manager;
-  android::vts::VtsHalDriverManager driver_manager(
-      spec_dir_path, kDefaultEpochCount, callback_socket_name,
-      &resource_manager);
-
-#ifndef VTS_AGENT_DRIVER_COMM_BINDER  // socket
-  android::vts::StartSocketServer(server_socket_path, &driver_manager,
-                                  &resource_manager, kInterfaceSpecLibName);
-#else  // binder
-  android::vts::StartBinderServer(service_name, &driver_manager,
-                                  kInterfaceSpecLibName);
-#endif
-
-  return 0;
-}
diff --git a/drivers/libdrivercomm/Android.bp b/drivers/libdrivercomm/Android.bp
index 6ea2194..9b487ac 100644
--- a/drivers/libdrivercomm/Android.bp
+++ b/drivers/libdrivercomm/Android.bp
@@ -14,6 +14,10 @@
 // limitations under the License.
 //
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 cc_library_shared {
 
     name: "libvts_drivercomm",
diff --git a/drivers/resource/Android.bp b/drivers/resource/Android.bp
index 3881a93..da1dce6 100644
--- a/drivers/resource/Android.bp
+++ b/drivers/resource/Android.bp
@@ -14,6 +14,10 @@
 // limitations under the License.
 //
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 cc_defaults {
 
     name: "libvts_resource-defaults",
diff --git a/drivers/resource/resource_manager/VtsResourceManager.cpp b/drivers/resource/resource_manager/VtsResourceManager.cpp
index 426d160..a78f307 100644
--- a/drivers/resource/resource_manager/VtsResourceManager.cpp
+++ b/drivers/resource/resource_manager/VtsResourceManager.cpp
@@ -386,7 +386,7 @@
     }
     case FMQ_READ_BLOCKING_LONG: {
       // TODO: implement a meaningful long-form blocking mechanism
-      // Currently passing a dummy event flag word.
+      // Currently passing a test event flag word.
       success = fmq_driver_.ReadFmqBlocking<T, flavor>(
           data_type, queue_id, read_data, read_data_size, read_notification,
           write_notification, time_out_nanos, &event_flag_word);
@@ -420,7 +420,7 @@
     }
     case FMQ_WRITE_BLOCKING_LONG: {
       // TODO: implement a meaningful long-form blocking mechanism
-      // Currently passing a dummy event flag word.
+      // Currently passing a test event flag word.
       if (!FmqProto2Cpp<T>(fmq_request, write_data, write_data_size)) {
         LOG(ERROR) << "Resource manager: failed to convert protobuf message "
                    << "into C++ types for type " << data_type;
diff --git a/drivers/shell/Android.bp b/drivers/shell/Android.bp
deleted file mode 100644
index 5f741f3..0000000
--- a/drivers/shell/Android.bp
+++ /dev/null
@@ -1,83 +0,0 @@
-//
-// Copyright (C) 2016 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.
-//
-
-cc_binary {
-    name: "vts_shell_driver",
-    multilib: {
-        lib64: {
-            stem: "vts_shell_driver64",
-        },
-        lib32: {
-            stem: "vts_shell_driver32",
-        },
-    },
-
-    srcs: [
-        "ShellDriver.cpp",
-        "ShellDriverMain.cpp",
-    ],
-
-    shared_libs: [
-        "libbase",
-        "libutils",
-        "libcutils",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "libvts_drivercomm",
-    ],
-
-    include_dirs: [
-        "test/vts/proto",
-        "test/vts/drivers/libdrivercomm",
-        "external/protobuf/src",
-    ],
-
-    cflags: [
-        "-Werror",
-        "-Wall",
-    ],
-
-    compile_multilib: "both",
-}
-
-cc_test {
-    name: "vts_shell_driver_test",
-
-    srcs: [
-        "ShellDriver.cpp",
-        "ShellDriverTest.cpp",
-    ],
-
-    shared_libs: [
-        "libbase",
-        "libutils",
-        "libcutils",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "libvts_drivercomm",
-    ],
-
-    include_dirs: [
-        "test/vts/proto",
-        "test/vts/drivers/libdrivercomm",
-        "external/protobuf/src",
-    ],
-
-    cflags: [
-        "-Werror",
-        "-Wall",
-    ],
-}
diff --git a/drivers/shell/ShellDriver.cpp b/drivers/shell/ShellDriver.cpp
deleted file mode 100644
index 3bac44e..0000000
--- a/drivers/shell/ShellDriver.cpp
+++ /dev/null
@@ -1,277 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-#define LOG_TAG "VtsShellDriver"
-
-#include "ShellDriver.h"
-
-#include <sys/socket.h>
-#include <sys/stat.h>
-#include <sys/un.h>
-#include <sstream>
-
-#include <VtsDriverCommUtil.h>
-#include <VtsDriverFileUtil.h>
-#include <android-base/logging.h>
-
-#include "test/vts/proto/VtsDriverControlMessage.pb.h"
-
-using namespace std;
-
-// Threshold of serialized proto msg size sent over socket.
-static constexpr long kProtoSizeThreshold = 1024 * 1024;  // 1MB
-
-namespace android {
-namespace vts {
-
-int VtsShellDriver::Close() {
-  int result = 0;
-
-  if (!this->socket_address_.empty()) {
-    result = unlink(this->socket_address_.c_str());
-    if (result != 0) {
-      LOG(ERROR) << " ERROR closing socket (errno = " << errno << ")";
-    }
-    this->socket_address_.clear();
-  }
-
-  return result;
-}
-
-CommandResult* VtsShellDriver::ExecShellCommandPopen(const string& command) {
-  CommandResult* result = new CommandResult();
-
-  // TODO: handle no output case.
-  FILE* output_fp;
-
-  // execute the command.
-  output_fp = popen(command.c_str(), "r");
-  if (output_fp == NULL) {
-    LOG(ERROR) << "Failed to run command: " << command;
-    result->exit_code = errno;
-    return result;
-  }
-
-  char buff[4096];
-  stringstream ss;
-
-  int bytes_read;
-  while (!feof(output_fp)) {
-    bytes_read = fread(buff, 1, sizeof(buff) - 1, output_fp);
-    // TODO: catch stderr
-    if (ferror(output_fp)) {
-      LOG(ERROR) << "ERROR reading shell output";
-      result->exit_code = -1;
-      return result;
-    }
-
-    buff[bytes_read] = '\0';
-    ss << buff;
-  }
-
-  LOG(DEBUG) << " Returning output: " << ss.str();
-  result->stdout = ss.str();
-
-  result->exit_code = pclose(output_fp) / 256;
-  return result;
-}
-
-CommandResult* VtsShellDriver::ExecShellCommandNohup(const string& command) {
-  CommandResult* result = new CommandResult();
-
-  string temp_dir = GetDirFromFilePath(this->socket_address_);
-  string temp_file_name_pattern = temp_dir + "/nohupXXXXXX";
-  int temp_file_name_len = temp_file_name_pattern.length() + 1;
-  char stdout_file_name[temp_file_name_len];
-  char stderr_file_name[temp_file_name_len];
-  strcpy(stdout_file_name, temp_file_name_pattern.c_str());
-  strcpy(stderr_file_name, temp_file_name_pattern.c_str());
-  int stdout_file = mkstemp(stdout_file_name);
-  int stderr_file = mkstemp(stderr_file_name);
-  close(stdout_file);
-  close(stderr_file);
-
-  stringstream ss;
-  ss << "nohup sh -c '" << command << "' >" << stdout_file_name << " 2>"
-     << stderr_file_name;
-
-  // execute the command.
-  int exit_code = system(ss.str().c_str()) / 256;
-  result->exit_code = exit_code;
-
-  // If stdout size larger than threshold, send back the temp file path.
-  // Otherwise, send back the context directly.
-  long stdout_size = GetFileSize(stdout_file_name);
-  if (stdout_size > kProtoSizeThreshold) {
-    result->stdout = string(stdout_file_name);
-  } else {
-    result->stdout = ReadFile(stdout_file_name);
-    remove(stdout_file_name);
-  }
-
-  // If stderr size larger than threshold, send back the temp file path.
-  // Otherwise, send back the context directly.
-  long stderr_size = GetFileSize(stderr_file_name);
-  if (stderr_size > kProtoSizeThreshold) {
-    result->stderr = string(stderr_file_name);
-  } else {
-    result->stderr = ReadFile(stderr_file_name);
-    remove(stderr_file_name);
-  }
-
-  return result;
-}
-
-int VtsShellDriver::ExecShellCommand(
-    const string& command, VtsDriverControlResponseMessage* responseMessage) {
-  CommandResult* result = this->ExecShellCommandNohup(command);
-
-  responseMessage->add_stdout(result->stdout);
-  responseMessage->add_stderr(result->stderr);
-
-  int exit_code = result->exit_code;
-  responseMessage->add_exit_code(result->exit_code);
-
-  delete result;
-  return exit_code;
-}
-
-int VtsShellDriver::HandleShellCommandConnection(int connection_fd) {
-  VtsDriverCommUtil driverUtil(connection_fd);
-  VtsDriverControlCommandMessage cmd_msg;
-  int numberOfFailure = 0;
-
-  while (1) {
-    if (!driverUtil.VtsSocketRecvMessage(
-            static_cast<google::protobuf::Message*>(&cmd_msg))) {
-      LOG(ERROR) << "Receiving message failure.";
-      return -1;
-    }
-
-    if (cmd_msg.command_type() == EXIT) {
-      LOG(ERROR) << "Received exit command.";
-      break;
-    } else if (cmd_msg.command_type() != EXECUTE_COMMAND) {
-      LOG(ERROR) << "Unknown command type " << cmd_msg.command_type();
-      continue;
-    }
-    LOG(INFO) << "Received " << cmd_msg.shell_command_size()
-              << " command(s). Processing...";
-
-    // execute command and write back output
-    VtsDriverControlResponseMessage responseMessage;
-
-    for (const auto& command : cmd_msg.shell_command()) {
-      if (ExecShellCommand(command, &responseMessage) != 0) {
-        LOG(ERROR) << "Error during executing command [" << command << "]";
-        --numberOfFailure;
-      }
-    }
-
-    // TODO: other response code conditions
-    responseMessage.set_response_code(VTS_DRIVER_RESPONSE_SUCCESS);
-    if (!driverUtil.VtsSocketSendMessage(responseMessage)) {
-      LOG(ERROR) << "Write output to socket error.";
-      --numberOfFailure;
-    }
-    LOG(DEBUG) << "Finished processing commands.";
-  }
-
-  if (driverUtil.Close() != 0) {
-    LOG(ERROR) << "Failed to close connection. errno: " << errno;
-    --numberOfFailure;
-  }
-
-  return numberOfFailure;
-}
-
-int VtsShellDriver::StartListen() {
-  if (this->socket_address_.empty()) {
-    LOG(ERROR) << "NULL socket address.";
-    return -1;
-  }
-
-  LOG(INFO) << "Start listening on " << this->socket_address_;
-
-  struct sockaddr_un address;
-  int socket_fd, connection_fd;
-  socklen_t address_length;
-  pid_t child;
-
-  socket_fd = socket(PF_UNIX, SOCK_STREAM, 0);
-  if (socket_fd < 0) {
-    PLOG(ERROR) << "socket() failed";
-    return socket_fd;
-  }
-
-  unlink(this->socket_address_.c_str());
-  memset(&address, 0, sizeof(struct sockaddr_un));
-  address.sun_family = AF_UNIX;
-  strncpy(address.sun_path, this->socket_address_.c_str(),
-          sizeof(address.sun_path) - 1);
-
-  if (::bind(socket_fd, (struct sockaddr*)&address,
-             sizeof(struct sockaddr_un)) != 0) {
-    PLOG(ERROR) << "bind() failed";
-    return 1;
-  }
-
-  if (listen(socket_fd, 5) != 0) {
-    PLOG(ERROR) << "listen() failed";
-    return errno;
-  }
-
-  while (1) {
-    address_length = sizeof(address);
-
-    // TODO(yuexima) exit message to break loop
-    connection_fd =
-        accept(socket_fd, (struct sockaddr*)&address, &address_length);
-    if (connection_fd == -1) {
-      PLOG(ERROR) << "accept failed";
-      break;
-    }
-
-    child = fork();
-    if (child == 0) {
-      close(socket_fd);
-      // now inside newly created connection handling process
-      if (HandleShellCommandConnection(connection_fd) != 0) {
-        LOG(ERROR) << "Failed to handle connection.";
-        close(connection_fd);
-        exit(1);
-      }
-      close(connection_fd);
-      exit(0);
-    } else if (child > 0) {
-      close(connection_fd);
-    } else {
-      LOG(ERROR) << "Create child process failed. Exiting...";
-      return (errno);
-    }
-  }
-  close(socket_fd);
-
-  return 0;
-}
-
-long VtsShellDriver::GetFileSize(const char* filename) {
-  struct stat stat_buf;
-  int rc = stat(filename, &stat_buf);
-  return rc == 0 ? stat_buf.st_size : -1;
-}
-
-}  // namespace vts
-}  // namespace android
diff --git a/drivers/shell/ShellDriver.h b/drivers/shell/ShellDriver.h
deleted file mode 100644
index 717d22c..0000000
--- a/drivers/shell/ShellDriver.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-
-#ifndef __VTS_SHELL_DRIVER_H_
-#define __VTS_SHELL_DRIVER_H_
-
-#include <string>
-
-#include "test/vts/proto/VtsDriverControlMessage.pb.h"
-
-using namespace std;
-
-namespace android {
-namespace vts {
-
-struct CommandResult {
-  string stdout;
-  string stderr;
-  int exit_code;
-};
-
-class VtsShellDriver {
- public:
-  VtsShellDriver() { socket_address_.clear(); }
-
-  explicit VtsShellDriver(const char* socket_address)
-      : socket_address_(socket_address) {}
-
-  ~VtsShellDriver() {
-    if (!this->socket_address_.empty()) {
-      Close();
-    }
-  }
-
-  // closes the sockets.
-  int Close();
-
-  // start shell driver server on unix socket
-  int StartListen();
-
- private:
-  // socket address
-  string socket_address_;
-
-  /*
-   * execute a given shell command and return the output file descriptor
-   * Please remember to call close_output after usage.
-   */
-  int ExecShellCommand(const string& command,
-                       VtsDriverControlResponseMessage* respond_message);
-
-  /*
-   * Handles a socket connection. Will execute a received shell command
-   * and send back the output text.
-   */
-  int HandleShellCommandConnection(int connection_fd);
-
-  /*
-   * Execute a shell command using popen and return a CommandResult object.
-   */
-  CommandResult* ExecShellCommandPopen(const string& command);
-
-  /*
-   * Execute a shell command using nohup and return a CommandResult object.
-   */
-  CommandResult* ExecShellCommandNohup(const string& command);
-
-  /*
-   * Helper method to get the size of the given file.
-   */
-  long GetFileSize(const char* filename);
-};
-
-}  // namespace vts
-}  // namespace android
-
-#endif  // __VTS_SHELL_DRIVER_H_
diff --git a/drivers/shell/ShellDriverMain.cpp b/drivers/shell/ShellDriverMain.cpp
deleted file mode 100644
index 6ddc9d4..0000000
--- a/drivers/shell/ShellDriverMain.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-
-#include <getopt.h>
-#include <string>
-
-#include <android-base/logging.h>
-
-#include "ShellDriver.h"
-
-using namespace std;
-
-static constexpr const char* DEFAULT_SOCKET_PATH =
-    "/data/local/tmp/tmp_socket_shell_driver.tmp";
-
-// Dumps usage on stderr.
-static void usage() {
-  fprintf(
-      stderr,
-      "Usage: vts_shell_driver --server_socket_path=<UNIX_domain_socket_path>\n"
-      "\n"
-      "Android Vts Shell Driver v0.1.  To run shell commands on Android system."
-      "\n"
-      "Options:\n"
-      "--help\n"
-      "    Show this message.\n"
-      "--socket_path=<Unix_socket_path>\n"
-      "    Show this message.\n"
-      "\n"
-      "Recording continues until Ctrl-C is hit or the time limit is reached.\n"
-      "\n");
-}
-
-// Parses command args and kicks things off.
-int main(int argc, char** argv) {
-  android::base::InitLogging(argv, android::base::StderrLogger);
-
-  static const struct option longOptions[] = {
-      {"help", no_argument, NULL, 'h'},
-      {"server_socket_path", required_argument, NULL, 's'},
-      {NULL, 0, NULL, 0}};
-
-  string socket_path = DEFAULT_SOCKET_PATH;
-
-  while (true) {
-    int optionIndex = 0;
-    int ic = getopt_long(argc, argv, "", longOptions, &optionIndex);
-    if (ic == -1) {
-      break;
-    }
-
-    switch (ic) {
-      case 'h':
-        usage();
-        return 0;
-      case 's':
-        socket_path = string(optarg);
-        break;
-      default:
-        if (ic != '?') {
-          fprintf(stderr, "getopt_long returned unexpected value 0x%x\n", ic);
-        }
-        return 2;
-    }
-  }
-
-  android::vts::VtsShellDriver shellDriver(socket_path.c_str());
-  return shellDriver.StartListen();
-}
diff --git a/drivers/shell/ShellDriverTest.cpp b/drivers/shell/ShellDriverTest.cpp
deleted file mode 100644
index 8ceb614..0000000
--- a/drivers/shell/ShellDriverTest.cpp
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-
-#include "ShellDriverTest.h"
-
-#include <errno.h>
-#include <gtest/gtest.h>
-#include <limits.h>
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <unistd.h>
-
-#include <iostream>
-#include <sstream>
-
-#include <VtsDriverCommUtil.h>
-#include "test/vts/proto/VtsDriverControlMessage.pb.h"
-
-#include "ShellDriver.h"
-
-using namespace std;
-
-namespace android {
-namespace vts {
-
-static int kMaxRetry = 3;
-
-/*
- * send a command to the driver on specified UNIX domain socket and print out
- * the outputs from driver.
- */
-static string vts_shell_driver_test_client_start(const string& command,
-                                                 const string& socket_address) {
-  struct sockaddr_un address;
-  int socket_fd;
-
-  socket_fd = socket(PF_UNIX, SOCK_STREAM, 0);
-  if (socket_fd < 0) {
-    fprintf(stderr, "socket() failed\n");
-    return "";
-  }
-
-  VtsDriverCommUtil driverUtil(socket_fd);
-
-  memset(&address, 0, sizeof(struct sockaddr_un));
-
-  address.sun_family = AF_UNIX;
-  strncpy(address.sun_path, socket_address.c_str(),
-          sizeof(address.sun_path) - 1);
-
-  int conn_success;
-  int retry_count = 0;
-
-  conn_success = connect(socket_fd, (struct sockaddr*)&address,
-                         sizeof(struct sockaddr_un));
-  for (retry_count = 0; retry_count < kMaxRetry && conn_success != 0;
-       retry_count++) {  // retry if server not ready
-    printf("Client: connection failed, retrying...\n");
-    retry_count++;
-    if (usleep(50 * pow(retry_count, 3)) != 0) {
-      fprintf(stderr, "shell driver unit test: sleep intrupted.");
-    }
-
-    conn_success = connect(socket_fd, (struct sockaddr*)&address,
-                           sizeof(struct sockaddr_un));
-  }
-
-  if (conn_success != 0) {
-    fprintf(stderr, "connect() failed\n");
-    return "";
-  }
-
-  VtsDriverControlCommandMessage cmd_msg;
-
-  cmd_msg.add_shell_command(command);
-  cmd_msg.set_command_type(EXECUTE_COMMAND);
-
-  if (!driverUtil.VtsSocketSendMessage(cmd_msg)) {
-    return NULL;
-  }
-
-  // read driver output
-  VtsDriverControlResponseMessage out_msg;
-
-  if (!driverUtil.VtsSocketRecvMessage(
-          static_cast<google::protobuf::Message*>(&out_msg))) {
-    return "";
-  }
-
-  // TODO(yuexima) use vector for output messages
-  stringstream ss;
-  for (int i = 0; i < out_msg.stdout_size(); i++) {
-    string out_str = out_msg.stdout(i);
-    cout << "[Shell driver] output for command " << i << ": " << out_str
-         << endl;
-    ss << out_str;
-  }
-  close(socket_fd);
-
-  cout << "[Client] receiving output: " << ss.str() << endl;
-  return ss.str();
-}
-
-/*
- * Prototype unit test helper. It first forks a vts_shell_driver process
- * and then call a client function to execute a command.
- */
-static string test_shell_command_output(const string& command,
-                                        const string& socket_address) {
-  pid_t p_driver;
-  string res_client;
-
-  VtsShellDriver shellDriver(socket_address.c_str());
-
-  p_driver = fork();
-  if (p_driver == 0) {  // child
-    int res_driver = shellDriver.StartListen();
-
-    if (res_driver != 0) {
-      fprintf(stderr, "Driver reported error. The error code is: %d.\n",
-              res_driver);
-      exit(res_driver);
-    }
-
-    exit(0);
-  } else if (p_driver > 0) {  // parent
-    res_client = vts_shell_driver_test_client_start(command, socket_address);
-    if (res_client.empty()) {
-      fprintf(stderr, "Client reported error.\n");
-      exit(1);
-    }
-    cout << "Client receiving: " << res_client << endl;
-  } else {
-    fprintf(stderr,
-            "shell_driver_test.cpp: create child process failed for driver.");
-    exit(-1);
-  }
-
-  // send kill signal to insure the process would not block
-  kill(p_driver, SIGKILL);
-
-  return res_client;
-}
-
-/*
- * This test tests whether the output of "uname" is "Linux\n"
- */
-TEST(vts_shell_driver_start, vts_shell_driver_unit_test_uname) {
-  string expected = "Linux\n";
-  string output =
-      test_shell_command_output("uname", "/data/local/tmp/test1_1.tmp");
-  ASSERT_EQ(output.compare(expected), 0);
-}
-
-/*
- * This test tests whether the output of "which ls" is "/system/bin/ls\n"
- */
-TEST(vts_shell_driver_start, vts_shell_driver_unit_test_which_ls) {
-  string expected = "/system/bin/ls\n";
-  string output =
-      test_shell_command_output("which ls", "/data/local/tmp/test1_2.tmp");
-  ASSERT_EQ(output.compare(expected), 0);
-}
-
-}  // namespace vts
-}  // namespace android
diff --git a/drivers/shell/ShellDriverTest.h b/drivers/shell/ShellDriverTest.h
deleted file mode 100644
index c3b3aba..0000000
--- a/drivers/shell/ShellDriverTest.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-
-#ifndef __VTS_SHELL_DRIVER_TEST_H_
-#define __VTS_SHELL_DRIVER_TEST_H_
-
-#endif  // __VTS_SHELL_DRIVER_TEST_H_
diff --git a/hals/light/bullhead/Android.bp b/hals/light/bullhead/Android.bp
index ad2dc78..29c4787 100644
--- a/hals/light/bullhead/Android.bp
+++ b/hals/light/bullhead/Android.bp
@@ -23,6 +23,23 @@
 // *not* include it on all devices, so it is safe even with hardware-specific
 // components.
 
+package {
+    default_applicable_licenses: ["test_vts_hals_light_bullhead_license"],
+}
+
+// Added automatically by a large-scale-change
+// See: http://go/android-license-faq
+license {
+    name: "test_vts_hals_light_bullhead_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-Apache-2.0",
+    ],
+    license_text: [
+        "NOTICE",
+    ],
+}
+
 cc_library_shared {
     name: "lights.vts",
 
diff --git a/harnesses/__init__.py b/harnesses/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/harnesses/__init__.py
+++ /dev/null
diff --git a/harnesses/tradefed/.classpath b/harnesses/tradefed/.classpath
deleted file mode 100644
index da843c7..0000000
--- a/harnesses/tradefed/.classpath
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="tests/res"/>
-	<classpathentry kind="src" path="vtsproto"/>
-	<classpathentry kind="src" path="objenesis"/>
-	<classpathentry kind="src" path="mockito"/>
-	<classpathentry kind="src" path="easymock"/>
-	<classpathentry kind="src" path="tests/src"/>
-	<classpathentry combineaccessrules="false" kind="src" path="/ddmlib"/>
-	<classpathentry combineaccessrules="false" kind="src" path="/tradefederation"/>
-	<classpathentry kind="var" path="TRADEFED_ROOT/out/host/common/obj/JAVA_LIBRARIES/host-libprotobuf-java-full_intermediates/classes.jar"/>
-	<classpathentry combineaccessrules="false" kind="src" path="/cts-tradefed"/>
-	<classpathentry combineaccessrules="false" kind="src" path="/cts-common-util"/>
-	<classpathentry kind="var" path="TRADEFED_ROOT/out/host/common/obj/JAVA_LIBRARIES/google-api-java-client-min-repackaged_intermediates/classes.jar"/>
-	<classpathentry kind="var" path="TRADEFED_ROOT/out/soong/.intermediates/external/mockito/mockito-byte-buddy-agent/linux_glibc_common/combined/mockito-byte-buddy-agent.jar"/>
-	<classpathentry kind="var" path="TRADEFED_ROOT/out/soong/.intermediates/external/mockito/mockito-byte-buddy/linux_glibc_common/combined/mockito-byte-buddy.jar"/>
-	<classpathentry kind="var" path="TRADEFED_ROOT/out/soong/.intermediates/tools/tradefederation/core/tradefed-protos/linux_glibc_common/combined/tradefed-protos.jar"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/harnesses/tradefed/.project b/harnesses/tradefed/.project
deleted file mode 100644
index c81a9b3..0000000
--- a/harnesses/tradefed/.project
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>vts-tradefed</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-	<linkedResources>
-		<link>
-			<name>easymock</name>
-			<type>2</type>
-			<locationURI>TRADEFED_ROOT/external/easymock/src</locationURI>
-		</link>
-		<link>
-			<name>mockito</name>
-			<type>2</type>
-			<locationURI>TRADEFED_ROOT/external/mockito/src/main/java</locationURI>
-		</link>
-		<link>
-			<name>objenesis</name>
-			<type>2</type>
-			<locationURI>TRADEFED_ROOT/external/objenesis/main/src/main/java</locationURI>
-		</link>
-		<link>
-			<name>vtsproto</name>
-			<type>2</type>
-			<locationURI>TRADEFED_ROOT/out/host/common/obj/JAVA_LIBRARIES/libvts_protos_host_intermediates/proto/src</locationURI>
-		</link>
-	</linkedResources>
-</projectDescription>
diff --git a/harnesses/tradefed/Android.bp b/harnesses/tradefed/Android.bp
deleted file mode 100644
index 83c42dd..0000000
--- a/harnesses/tradefed/Android.bp
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2016 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.
-
-java_library_host {
-    name: "vts10-tradefed-harness",
-    srcs: ["src/**/*.java"],
-    libs: [
-        "tradefed",
-        "compatibility-tradefed",
-        "compatibility-host-util",
-        "libvts_protos_host",
-    ],
-}
diff --git a/harnesses/tradefed/src/com/android/compatibility/common/tradefed/build/VtsCompatibilityInvocationHelper.java b/harnesses/tradefed/src/com/android/compatibility/common/tradefed/build/VtsCompatibilityInvocationHelper.java
deleted file mode 100644
index cb3cf19..0000000
--- a/harnesses/tradefed/src/com/android/compatibility/common/tradefed/build/VtsCompatibilityInvocationHelper.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-package com.android.compatibility.common.tradefed.build;
-
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.log.LogUtil.CLog;
-import com.android.tradefed.testtype.suite.TestSuiteInfo;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-
-/**
- * A simple helper that stores and retrieves information from a {@link IBuildInfo}.
- */
-public class VtsCompatibilityInvocationHelper {
-    private File mTestCasesDir = null;
-
-    /**
-     * Get test case binaries directory
-     */
-    public File getTestsDir() throws FileNotFoundException {
-        if (mTestCasesDir == null) {
-            String suiteName = TestSuiteInfo.getInstance().getName();
-            String testCasesRootDirPath;
-            testCasesRootDirPath =
-                    System.getenv(String.format("%s_TESTCASES", suiteName.replace('-', '_')));
-            File testCaseDir;
-            if (testCasesRootDirPath != null && !testCasesRootDirPath.trim().equals("")) {
-                testCaseDir = new File(testCasesRootDirPath);
-            } else {
-                String rootDirPath;
-                rootDirPath =
-                        System.getProperty(String.format("%s_ROOT", suiteName.replace('-', '_')));
-                if (rootDirPath == null || rootDirPath.trim().equals("")) {
-                    throw new IllegalArgumentException(String.format(
-                            "Missing install path property %s_ROOT", suiteName.replace('-', '_')));
-                }
-                testCaseDir = new File(rootDirPath,
-                        String.format("android-%s/testcases", suiteName.toLowerCase()));
-            }
-            if (!testCaseDir.exists()) {
-                throw new FileNotFoundException(String.format(
-                        "Root directory doesn't exist %s", testCaseDir.getAbsolutePath()));
-            }
-            mTestCasesDir = testCaseDir.getAbsoluteFile();
-            CLog.d(String.format("%s TEST CASES DIR: %s", suiteName, mTestCasesDir));
-        }
-
-        return mTestCasesDir;
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/compatibility/common/tradefed/result/VtsResultReporter.java b/harnesses/tradefed/src/com/android/compatibility/common/tradefed/result/VtsResultReporter.java
deleted file mode 100644
index d9c7ddd..0000000
--- a/harnesses/tradefed/src/com/android/compatibility/common/tradefed/result/VtsResultReporter.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-package com.android.compatibility.common.tradefed.result;
-
-import com.android.tradefed.log.LogUtil.CLog;
-import java.util.Map;
-
-/** Override the result reporter to specify vendor device information in the VTS report. */
-public class VtsResultReporter extends ResultReporter {
-    private static final String BUILD_VENDOR_FINGERPRINT = "build_vendor_fingerprint";
-    private static final String BUILD_VENDOR_MANUFACTURER = "build_vendor_manufacturer";
-    private static final String BUILD_VENDOR_MODEL = "build_vendor_model";
-
-    /** Determine if the property is empty or not. */
-    private static boolean isEmptyProperty(String property) {
-        return (property == null || property.trim().isEmpty() || property.equals("null"));
-    }
-
-    /** Override the vendor fingerprint and manufacturer in the report. */
-    @Override
-    protected void addDeviceBuildInfoToResult() {
-        super.addDeviceBuildInfoToResult();
-        Map<String, String> props = mapBuildInfo();
-        String vendorFingerprint = props.get(BUILD_VENDOR_FINGERPRINT);
-        String vendorManufacturer = props.get(BUILD_VENDOR_MANUFACTURER);
-        String vendorModel = props.get(BUILD_VENDOR_MODEL);
-        if (!isEmptyProperty(vendorFingerprint) && !isEmptyProperty(vendorManufacturer)
-                && !isEmptyProperty(vendorModel)) {
-            addDeviceBuildInfoToResult(vendorFingerprint, vendorManufacturer, vendorModel);
-        } else {
-            CLog.w(String.format(
-                    "Vendor build information missing. Fingerprint: '%s', manufacturer: '%s', model: '%s'",
-                    vendorFingerprint, vendorManufacturer, vendorModel));
-        }
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/compatibility/common/tradefed/targetprep/VtsFilePusher.java b/harnesses/tradefed/src/com/android/compatibility/common/tradefed/targetprep/VtsFilePusher.java
deleted file mode 100644
index 009fe9f..0000000
--- a/harnesses/tradefed/src/com/android/compatibility/common/tradefed/targetprep/VtsFilePusher.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * Copyright (C) 2016 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.
- */
-
-package com.android.compatibility.common.tradefed.targetprep;
-
-import com.android.compatibility.common.tradefed.build.VtsCompatibilityInvocationHelper;
-import com.android.ddmlib.Log;
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.config.Option;
-import com.android.tradefed.config.OptionClass;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.invoker.TestInformation;
-import com.android.tradefed.log.LogUtil.CLog;
-import com.android.tradefed.targetprep.BuildError;
-import com.android.tradefed.targetprep.PushFilePreparer;
-import com.android.tradefed.targetprep.TargetSetupError;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.util.Collection;
-import java.util.TreeSet;
-
-/**
- * Pushes specified testing artifacts from Compatibility repository.
- */
-@OptionClass(alias = "vts-file-pusher")
-public class VtsFilePusher extends PushFilePreparer {
-    @Option(name="push-group", description=
-            "A push group name. Must be a .push file under tools/vts-tradefed/res/push_groups/. "
-                    + "May be under a relative path. May be repeated. Duplication of file specs "
-                    + "is ok. Will throw a TargetSetupError if a file push fails.")
-    private Collection<String> mPushSpecGroups = new TreeSet<>();
-
-    @Option(name="push-group-cleanup", description = "Whether files in push group "
-            + "should be cleaned up from device after test. Note that preparer does not verify "
-            + "that files/directories have been deleted. Default value: true.")
-    private boolean mPushGroupCleanup = true;
-
-    @Option(name="push-group-remount-system", description="Whether to remounts system "
-            + "partition to be writable before push or clean up default files. "
-            + "Default value: false")
-    private boolean mPushGroupRemount = false;
-
-    @Option(name = "append-bitness", description = "Append the ABI's bitness to the filename.")
-    private boolean mAppendBitness = false;
-
-    private static final String DIR_PUSH_GROUPS = "vts/tools/vts-tradefed/res/push_groups";
-    static final String PUSH_GROUP_FILE_EXTENSION = ".push";
-
-    private Collection<String> mFilesPushed = new TreeSet<>();
-    private VtsCompatibilityInvocationHelper mInvocationHelper;
-
-    /**
-     * Load file push specs from .push files as a collection of Strings
-     * @param buildInfo
-     * @return a collection of push spec strings
-     * @throws TargetSetupError if load fails
-     */
-    private Collection<String> loadFilePushGroups(IBuildInfo buildInfo) throws TargetSetupError {
-        Collection<String> result = new TreeSet<>();
-        File testDir;
-        try {
-            testDir = mInvocationHelper.getTestsDir();
-        } catch(FileNotFoundException e) {
-            throw new TargetSetupError(e.getMessage());
-        }
-
-        for (String group: mPushSpecGroups) {
-            TreeSet<String> stack = new TreeSet<>();
-            result.addAll(loadFilePushGroup(group, testDir.getAbsolutePath(), stack));
-        }
-        return result;
-    }
-
-    /**
-     * Recursively load file push specs from a push group file into a collection of strings.
-     *
-     * @param specFile, push group file name with .push extension. Can contain relative directory.
-     * @param testsDir, the directory where test data files are stored.
-     */
-    private Collection<String> loadFilePushGroup(String specFileName, String testsDir,
-            Collection<String> stack) throws TargetSetupError {
-        Collection<String> result = new TreeSet<>();
-
-        String relativePath = new File(
-                DIR_PUSH_GROUPS, specFileName).getPath();
-        File specFile = null;
-
-        try {
-            specFile = new File(testsDir, relativePath);
-        } catch(Exception e) {
-            throw new TargetSetupError(e.getMessage());
-        }
-
-        try (BufferedReader br = new BufferedReader(new FileReader(specFile))) {
-            String line;
-            while ((line = br.readLine()) != null) {
-                String spec = line.trim();
-                if (spec.contains("->")) {
-                    result.add(spec);
-                } else if (spec.contains(PUSH_GROUP_FILE_EXTENSION)) {
-                    if (!stack.contains(spec)) {
-                        stack.add(spec);
-                        result.addAll(loadFilePushGroup(spec, testsDir, stack));
-                        stack.remove(spec);
-                    }
-                } else if (spec.length() > 0) {
-                    throw new TargetSetupError("Unknown file push spec: " + spec);
-                }
-            }
-        } catch(Exception e) {
-            throw new TargetSetupError(e.getMessage());
-        }
-
-        return result;
-    }
-
-    /**
-     * Push file groups if configured in .xml file.
-     * @param device
-     * @param buildInfo
-     * @throws TargetSetupError, DeviceNotAvailableException
-     */
-    private void pushFileGroups(ITestDevice device, IBuildInfo buildInfo)
-            throws TargetSetupError, DeviceNotAvailableException {
-        if (mPushGroupRemount) {
-            device.remountSystemWritable();
-        }
-
-        for (String pushspec : loadFilePushGroups(buildInfo)) {
-            String[] pair = pushspec.split("->");
-
-            if (pair.length != 2) {
-                throw new TargetSetupError(
-                        String.format("Failed to parse push spec '%s'", pushspec));
-            }
-
-            File src = new File(pair[0]);
-
-            if (!src.isAbsolute()) {
-                src = resolveRelativeFilePath(buildInfo, pair[0]);
-            }
-
-            Class cls = this.getClass();
-
-            if (!src.exists()) {
-                Log.w(cls.getSimpleName(), String.format(
-                        "Skipping push spec in push group whose source does not exist: %s",
-                        pushspec));
-                continue;
-            }
-
-            Log.d(cls.getSimpleName(),
-                    String.format("Trying to push file from local to remote: %s", pushspec));
-
-            if ((src.isDirectory() && !device.pushDir(src, pair[1])) ||
-                    (!device.pushFile(src, pair[1]))) {
-                mFilesPushed = null;
-                throw new TargetSetupError(String.format("Failed to push local '%s' to remote '%s'",
-                        pair[0], pair[1]));
-            } else {
-                mFilesPushed.add(pair[1]);
-            }
-        }
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void setUp(TestInformation testInfo)
-            throws TargetSetupError, BuildError, DeviceNotAvailableException {
-        ITestDevice device = testInfo.getDevice();
-        IBuildInfo buildInfo = testInfo.getBuildInfo();
-        device.enableAdbRoot();
-        mInvocationHelper = new VtsCompatibilityInvocationHelper();
-        pushFileGroups(device, buildInfo);
-
-        super.setUp(testInfo);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void tearDown(TestInformation testInfo, Throwable e) throws DeviceNotAvailableException {
-        ITestDevice device = testInfo.getDevice();
-        if (!(e instanceof DeviceNotAvailableException) && mPushGroupCleanup && mFilesPushed != null) {
-            device.enableAdbRoot();
-            if (mPushGroupRemount) {
-                device.remountSystemWritable();
-            }
-            for (String devicePath : mFilesPushed) {
-                device.executeShellCommand("rm -r " + devicePath);
-            }
-        }
-
-        super.tearDown(testInfo, e);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public File resolveRelativeFilePath(IBuildInfo buildInfo, String fileName) {
-        File f = null;
-        try {
-            f = new File(mInvocationHelper.getTestsDir(),
-                    String.format("%s%s", fileName, mAppendBitness ? getAbi().getBitness() : ""));
-            CLog.d("Copying from %s", f.getAbsolutePath());
-            return f;
-        } catch (FileNotFoundException e) {
-            CLog.e(e);
-            CLog.e("File not found: %s", f);
-        }
-        return null;
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/compatibility/common/tradefed/testtype/retry/VtsRetryFactoryTest.java b/harnesses/tradefed/src/com/android/compatibility/common/tradefed/testtype/retry/VtsRetryFactoryTest.java
deleted file mode 100644
index bffd66f..0000000
--- a/harnesses/tradefed/src/com/android/compatibility/common/tradefed/testtype/retry/VtsRetryFactoryTest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-package com.android.compatibility.common.tradefed.testtype.retry;
-
-import com.android.compatibility.common.tradefed.build.CompatibilityBuildHelper;
-import com.android.compatibility.common.tradefed.testtype.suite.CompatibilityTestSuite;
-import com.android.compatibility.common.tradefed.util.VtsRetryFilterHelper;
-import com.android.tradefed.config.OptionClass;
-
-/**
- * Runner that creates a {@link CompatibilityTestSuite} to re-run VTS results.
- */
-@OptionClass(alias = "compatibility")
-public class VtsRetryFactoryTest extends RetryFactoryTest {
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected VtsRetryFilterHelper createFilterHelper(CompatibilityBuildHelper buildHelper) {
-        return new VtsRetryFilterHelper(buildHelper, getRetrySessionId(), mSubPlan, mIncludeFilters,
-                mExcludeFilters, mAbiName, mModuleName, mTestName, mRetryType);
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/compatibility/common/tradefed/util/VtsRetryFilterHelper.java b/harnesses/tradefed/src/com/android/compatibility/common/tradefed/util/VtsRetryFilterHelper.java
deleted file mode 100644
index ff18af7..0000000
--- a/harnesses/tradefed/src/com/android/compatibility/common/tradefed/util/VtsRetryFilterHelper.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-
-package com.android.compatibility.common.tradefed.util;
-
-import com.android.compatibility.common.tradefed.build.CompatibilityBuildHelper;
-import com.android.compatibility.common.tradefed.util.RetryFilterHelper;
-import com.android.compatibility.common.tradefed.util.RetryType;
-import com.android.compatibility.common.util.IInvocationResult;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import java.util.Set;
-
-/**
- * Helper for generating --include-filter and --exclude-filter values on compatibility retry.
- */
-public class VtsRetryFilterHelper extends RetryFilterHelper {
-    /* Instance variables for retrieving results to be retried. */
-    private int mSessionId;
-
-    /**
-     * Constructor for a {@link VtsRetryFilterHelper}.
-     *
-     * @param build a {@link CompatibilityBuildHelper} describing the build.
-     * @param sessionId The ID of the session to retry.
-     * @param subPlan The name of a subPlan to be used. Can be null.
-     * @param includeFilters The include module filters to apply
-     * @param excludeFilters The exclude module filters to apply
-     * @param abiName The name of abi to use. Can be null.
-     * @param moduleName The name of the module to run. Can be null.
-     * @param testName The name of the test to run. Can be null.
-     * @param retryType The type of results to retry. Can be null.
-     */
-    public VtsRetryFilterHelper(CompatibilityBuildHelper build, int sessionId, String subPlan,
-            Set<String> includeFilters, Set<String> excludeFilters, String abiName,
-            String moduleName, String testName, RetryType retryType) {
-        super(build, sessionId, subPlan, includeFilters, excludeFilters, abiName, moduleName,
-                testName, retryType);
-        mSessionId = sessionId;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void validateBuildFingerprint(ITestDevice device) throws DeviceNotAvailableException {
-        IInvocationResult result = getResult();
-        String oldVendorFingerprint = result.getBuildFingerprint();
-        String currentVendorFingerprint = device.getProperty("ro.vendor.build.fingerprint");
-        if (!oldVendorFingerprint.equals(currentVendorFingerprint)) {
-            throw new IllegalArgumentException(
-                    String.format("Device vendor fingerprint must match %s to retry session %d. "
-                                    + "Found %s instead on %s",
-                            oldVendorFingerprint, mSessionId, currentVendorFingerprint,
-                            device.getSerialNumber()));
-        }
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/tradefed/device/metric/VtsCoverageCollector.java b/harnesses/tradefed/src/com/android/tradefed/device/metric/VtsCoverageCollector.java
deleted file mode 100644
index 3e10e07..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/device/metric/VtsCoverageCollector.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.tradefed.device.metric;
-
-import com.android.annotations.VisibleForTesting;
-import com.android.compatibility.common.tradefed.build.VtsCompatibilityInvocationHelper;
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.config.OptionClass;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.log.LogUtil.CLog;
-import com.android.tradefed.metrics.proto.MetricMeasurement.Metric;
-import com.android.tradefed.targetprep.VtsCoveragePreparer;
-import com.android.tradefed.util.CommandResult;
-import com.android.tradefed.util.CommandStatus;
-import com.android.tradefed.util.RunInterruptedException;
-import com.android.tradefed.util.VtsPythonRunnerHelper;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.util.Map;
-/**
- * A {@link IMetricCollector} that enables vts coverage measurement during a
- * test and generates the coverage report after the test run.
- */
-@OptionClass(alias = "vts-coverage-collector")
-public class VtsCoverageCollector extends BaseDeviceMetricCollector {
-    static final long BASE_TIMEOUT = 1000 * 60 * 20; // timeout for fetching artifacts
-
-    private VtsPythonRunnerHelper mPythonRunnerHelper = null;
-    @Override
-    public void onTestRunStart(DeviceMetricData testData) {
-        for (ITestDevice device : getDevices()) {
-            try {
-                device.executeShellCommand("rm -rf /data/misc/trace/*");
-            } catch (DeviceNotAvailableException e) {
-                CLog.e("Failed to cleanup existing traces: " + e.toString());
-            }
-        }
-    }
-
-    @Override
-    public void onTestRunEnd(DeviceMetricData testData,
-            final Map<String, Metric> currentTestCaseMetrics) throws RunInterruptedException {
-        String moduleName = getRunName().replace(' ', '_');
-        CLog.i("Test module name: " + moduleName);
-        IBuildInfo buildInfo = getBuildInfos().get(0);
-        if (buildInfo == null) {
-            CLog.e("Could not get build Info.");
-            return;
-        }
-        if (mPythonRunnerHelper == null) {
-            File workingDir = null;
-            VtsCompatibilityInvocationHelper invocationHelper = createInvocationHelper();
-            try {
-                workingDir = invocationHelper.getTestsDir();
-            } catch (FileNotFoundException e) {
-                CLog.e("VtsCompatibilityInvocationHelper cannot find test case directory. "
-                        + "Command working directory not set.");
-            }
-            mPythonRunnerHelper = new VtsPythonRunnerHelper(buildInfo, workingDir);
-        }
-        for (ITestDevice device : getDevices()) {
-            String serial = device.getSerialNumber();
-            String gcovDirPath = getGcoveResrouceDir(buildInfo, device);
-            if (gcovDirPath == null) {
-                CLog.e("Could not get gcov resource dir path.");
-                return;
-            }
-            String coverage_report_dir = buildInfo.getBuildAttributes().get("coverage_report_path");
-            if (coverage_report_dir == null) {
-                CLog.e("Must specify the directory to store the coverage report.");
-                return;
-            }
-            File local_coverage_report_dir = new File(coverage_report_dir, moduleName);
-
-            String cmdString = "python"
-                    + " -m vts.utils.python.coverage.coverage_utils get_coverage --serial " + serial
-                    + " --gcov_rescource_path " + gcovDirPath + " --report_path "
-                    + local_coverage_report_dir.getAbsolutePath() + " --report_prefix "
-                    + moduleName;
-            String[] cmd = cmdString.split("\\s+");
-            CommandResult commandResult = new CommandResult();
-            String interruptMessage =
-                    mPythonRunnerHelper.runPythonRunner(cmd, commandResult, BASE_TIMEOUT);
-            if (commandResult == null || commandResult.getStatus() != CommandStatus.SUCCESS) {
-                CLog.e("Could not get coverage data.");
-            }
-            if (interruptMessage != null) {
-                throw new RunInterruptedException(interruptMessage);
-            }
-        }
-    }
-
-    @VisibleForTesting
-    String getGcoveResrouceDir(IBuildInfo buildInfo, ITestDevice device) {
-        File gcovDir = buildInfo.getFile(VtsCoveragePreparer.getGcovResourceDirKey(device));
-        if (gcovDir != null) {
-            return gcovDir.getAbsolutePath();
-        }
-        return null;
-    }
-
-    @VisibleForTesting
-    void setPythonRunnerHelper(VtsPythonRunnerHelper pythonRunnerHelper) {
-        mPythonRunnerHelper = pythonRunnerHelper;
-    }
-
-    /**
-     * Creates a {@link VtsCompatibilityInvocationHelper} to get the working directory.
-     */
-    @VisibleForTesting
-    protected VtsCompatibilityInvocationHelper createInvocationHelper() {
-        return new VtsCompatibilityInvocationHelper();
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/tradefed/device/metric/VtsHalTraceCollector.java b/harnesses/tradefed/src/com/android/tradefed/device/metric/VtsHalTraceCollector.java
deleted file mode 100644
index abc1fb2..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/device/metric/VtsHalTraceCollector.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.tradefed.device.metric;
-
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.config.OptionClass;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.log.LogUtil.CLog;
-import com.android.tradefed.metrics.proto.MetricMeasurement.Metric;
-import com.android.tradefed.util.FileUtil;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Map;
-
-/**
- * A {@link IMetricCollector} that enables vts hal profiling during a test and
- * collects the trace file after the test run.
- */
-@OptionClass(alias = "vts-hal-trace-collector")
-public class VtsHalTraceCollector extends BaseDeviceMetricCollector {
-    // Path of 32 bit test libs on target device.
-    static final String VTS_TMP_LIB_DIR_32 = "/data/local/tmp/32/";
-    // Path of 64 bit test libs on target device.
-    static final String VTS_TMP_LIB_DIR_64 = "/data/local/tmp/64/";
-    // Path of vts test directory on target device.
-    static final String VTS_TMP_DIR = "/data/local/tmp/";
-    // VTS profiling configure binary name.
-    static final String PROFILING_CONFIGURE_BINARY = "vts_profiling_configure";
-    // Prefix of temp directory that stores the trace files.
-    static final String TRACE_DIR_PREFIX = System.getProperty("java.io.tmpdir") + "/vts-profiling/";
-    static final String TRACE_PATH = "trace_path";
-
-    @Override
-    public void onTestRunStart(DeviceMetricData testData) {
-        for (ITestDevice device : getDevices()) {
-            try {
-                // adb root.
-                device.enableAdbRoot();
-                // Set selinux permissive mode.
-                device.executeShellCommand("setenforce 0");
-                // Cleanup existing traces.
-                device.executeShellCommand(String.format("rm -rf %s/*.vts.trace", VTS_TMP_DIR));
-                device.executeShellCommand("chmod 777 " + VTS_TMP_DIR);
-                device.executeShellCommand("chmod 777 " + VTS_TMP_LIB_DIR_32);
-                device.executeShellCommand("chmod 777 " + VTS_TMP_LIB_DIR_64);
-                device.executeShellCommand(
-                        String.format("%s enable %s %s", VTS_TMP_DIR + PROFILING_CONFIGURE_BINARY,
-                                VTS_TMP_LIB_DIR_32, VTS_TMP_LIB_DIR_64));
-            } catch (DeviceNotAvailableException e) {
-                CLog.e("Could not enable vts hal profiling: " + e.toString());
-            }
-        }
-    }
-
-    @Override
-    public void onTestRunEnd(
-            DeviceMetricData testData, final Map<String, Metric> currentTestCaseMetrics) {
-        String moduleName = getRunName().replace(' ', '_');
-        CLog.i("Test module name: " + moduleName);
-        for (ITestDevice device : getDevices()) {
-            try {
-                // Pull trace files.
-                pullTraceFiles(device, moduleName);
-                // Disable profiling.
-                device.executeShellCommand(
-                        String.format("%s disable", VTS_TMP_DIR + PROFILING_CONFIGURE_BINARY));
-                // Cleanup the trace files.
-                device.executeShellCommand(String.format("rm -rf %s/*.vts.trace", VTS_TMP_DIR));
-            } catch (DeviceNotAvailableException | IOException e) {
-                CLog.e("Failed to get vts hal profiling trace: " + e.toString());
-            }
-        }
-    }
-
-    private void pullTraceFiles(ITestDevice device, String moduleName)
-            throws DeviceNotAvailableException, IOException {
-        File localTracedDir = null;
-        IBuildInfo buildInfo = getBuildInfos().get(0);
-        String tracePath = buildInfo.getBuildAttributes().get(TRACE_PATH);
-        // Create the local directory to store the trace files.
-        if (tracePath != null) {
-            localTracedDir = new File(String.format("%s/%s", tracePath, moduleName));
-        } else {
-            localTracedDir = new File(
-                    String.format("%s/%s", FileUtil.createTempDir(TRACE_DIR_PREFIX), moduleName));
-        }
-        if (!localTracedDir.exists()) {
-            if (!localTracedDir.mkdirs()) {
-                CLog.e("Failed to create trace dir: " + localTracedDir.getAbsolutePath());
-                return;
-            }
-        }
-        // Pull the trace files.
-        CLog.i("Storing trace files to: " + localTracedDir.getAbsolutePath());
-        String out = device.executeShellCommand(String.format("ls %s/*.vts.trace", VTS_TMP_DIR));
-        for (String line : out.split("\n")) {
-            line = line.trim();
-            File trace_file = new File(
-                    localTracedDir.getAbsolutePath(), line.substring(VTS_TMP_DIR.length()));
-            device.pullFile(line, trace_file);
-        }
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/tradefed/module/VtsHalAdapterModuleController.java b/harnesses/tradefed/src/com/android/tradefed/module/VtsHalAdapterModuleController.java
deleted file mode 100644
index 8b9dd3d..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/module/VtsHalAdapterModuleController.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * 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.
- */
-package com.android.tradefed.module;
-
-import com.android.tradefed.invoker.IInvocationContext;
-import com.android.tradefed.config.Option;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.log.LogUtil.CLog;
-import com.android.tradefed.testtype.suite.module.IModuleController;
-import com.android.tradefed.testtype.suite.module.BaseModuleController;
-
-/**
- * Controller to skip the HAL adapter test if the targeting HAL is not available.
- * Only used for single-device testing or the primary device in multi-device
- * testing.
- */
-public class VtsHalAdapterModuleController extends BaseModuleController {
-    // Command to list the registered instance for the given hal@version.
-    static final String LIST_HAL_CMD =
-            "lshal -ti --neat 2>/dev/null | grep -e '^hwbinder' | awk '{print $2}' | grep %s";
-
-    @Option(name = "hal-package-name",
-            description =
-                    "The package name of a target HAL required, e.g., android.hardware.foo@1.0")
-    private String mPackageName = null;
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public RunStrategy shouldRun(IInvocationContext context) {
-        ITestDevice device = context.getDevices().get(0);
-        try {
-            String out = device.executeShellCommand(String.format(LIST_HAL_CMD, mPackageName));
-            if (out.isEmpty()) {
-                CLog.w("The specific HAL service is not running. Skip test module.");
-                return RunStrategy.SKIP_MODULE_TESTCASES;
-            }
-            return RunStrategy.RUN;
-        } catch (DeviceNotAvailableException e) {
-            CLog.e("Failed to list HAL service.");
-            return RunStrategy.RUN;
-        }
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsCoveragePreparer.java b/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsCoveragePreparer.java
deleted file mode 100644
index ad088d5..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsCoveragePreparer.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-
-package com.android.tradefed.targetprep;
-
-import com.android.annotations.VisibleForTesting;
-import com.android.compatibility.common.tradefed.build.CompatibilityBuildHelper;
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.config.OptionClass;
-import com.android.tradefed.config.Option;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.log.LogUtil.CLog;
-import com.android.tradefed.targetprep.TargetSetupError;
-import com.android.tradefed.util.CommandResult;
-import com.android.tradefed.util.CommandStatus;
-import com.android.tradefed.util.FileUtil;
-import com.android.tradefed.util.IRunUtil;
-import com.android.tradefed.util.RunUtil;
-import com.android.tradefed.util.VtsVendorConfigFileUtil;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-/**
- * Preparer class for sanitizer and gcov coverage.
- *
- * <p>For devices instrumented with sanitizer coverage, this preparer fetches the unstripped
- * binaries and copies them to a temporary directory whose path is passed down with the test
- * IBuildInfo object. For gcov-instrumented devices, the zip containing gcno files is retrieved
- * along with the build info artifact.
- */
-@OptionClass(alias = "vts-coverage-preparer")
-public class VtsCoveragePreparer implements ITargetPreparer, ITargetCleaner {
-    static final long BASE_TIMEOUT = 1000 * 60 * 20; // timeout for fetching artifacts
-    static final String BUILD_INFO_ARTIFACT = "BUILD_INFO"; // name of build info artifact
-    static final String GCOV_PROPERTY = "ro.vts.coverage"; // indicates gcov when val is 1
-    static final String GCOV_ARTIFACT = "%s-coverage-%s.zip"; // gcov coverage artifact
-    static final String GCOV_FILE_NAME = "gcov.zip"; // gcov zip file to pass to VTS
-
-    static final String SELINUX_DISABLED = "Disabled"; // selinux disabled
-    static final String SELINUX_ENFORCING = "Enforcing"; // selinux enforcing mode
-    static final String SELINUX_PERMISSIVE = "Permissive"; // selinux permissive mode
-
-    static final String SYMBOLS_ARTIFACT = "%s-symbols-%s.zip"; // symbolized binary zip
-    static final String SYMBOLS_FILE_NAME = "symbols.zip"; // sancov zip to pass to VTS
-    static final String SANCOV_FLAVOR = "_asan_coverage"; // sancov device build flavor
-
-    // Path to store coverage data on the target.
-    static final String COVERAGE_DATA_PATH = "/data/misc/trace/";
-    // Path to store coverage report.
-    static final String COVERAGE_REPORT_PATH = "coverage_report_path";
-
-    // Build key for gcov resources
-    static final String GCOV_RESOURCES_KEY = "gcov-resources-path-%s";
-
-    // Buid key for sancov resources
-    static final String SANCOV_RESOURCES_KEY = "sancov-resources-path-%s";
-
-    // Relative path to coverage configure binary in VTS package
-    static final String COVERAGE_CONFIGURE_SRC = "DATA/bin/vts_coverage_configure";
-
-    // Target path for coverage configure binary, will be removed in teardown
-    static final String COVERAGE_CONFIGURE_DST = "/data/local/tmp/vts_coverage_configure";
-
-    // Default path to store coverage reports.
-    static final String DEFAULT_COVRAGE_REPORT_PATH = "/tmp/vts-coverage-report/";
-
-    // Default path to store coverage resource files locally.
-    static final String DEFAULT_LOCAL_COVERAGE_RESOURCE_PATH = "/tmp/coverage/";
-
-    private File mDeviceInfoPath = null; // host path where coverage device artifacts are stored
-    private String mEnforcingState = null; // start state for selinux enforcement
-    private IRunUtil mRunUtil = null;
-
-    @Option(name = "use-local-artifects", description = "Whether to use local artifacts.")
-    private boolean mUseLocalArtifects = false;
-
-    @Option(name = "local-coverage-resource-path",
-            description = "Path to look for local artifacts.")
-    private String mLocalCoverageResourcePath = DEFAULT_LOCAL_COVERAGE_RESOURCE_PATH;
-
-    @Option(name = "coverage-report-dir", description = "Local directory to store coverage report.")
-    private String mCoverageReportDir = null;
-
-    /** {@inheritDoc} */
-    @Override
-    public void setUp(ITestDevice device, IBuildInfo buildInfo)
-            throws DeviceNotAvailableException, TargetSetupError {
-        String flavor = device.getBuildFlavor();
-        String buildId = device.getBuildId();
-
-        if (buildId == null) {
-            CLog.w("Missing build ID. Coverage disabled.");
-            return;
-        }
-
-        boolean sancovEnabled = (flavor != null) && flavor.contains(SANCOV_FLAVOR);
-
-        String coverageProperty = device.getProperty(GCOV_PROPERTY);
-        boolean gcovEnabled = (coverageProperty != null) && coverageProperty.equals("1");
-
-        if (!sancovEnabled && !gcovEnabled) {
-            CLog.d("Coverage disabled.");
-            return;
-        }
-        if (sancovEnabled) {
-            CLog.d("Sanitizer coverage processing enabled.");
-        }
-        if (gcovEnabled) {
-            CLog.d("Gcov coverage processing enabled.");
-        }
-
-        if (mRunUtil == null) {
-            mRunUtil = new RunUtil();
-        }
-
-        CompatibilityBuildHelper buildHelper = createBuildHelper(buildInfo);
-        if (!mUseLocalArtifects) {
-            // Load the vendor configuration
-            String artifactFetcher = getArtifactFetcher(buildInfo);
-            if (artifactFetcher == null) {
-                throw new TargetSetupError(
-                        "Vendor configuration with build_artifact_fetcher required.");
-            }
-
-            try {
-                // Create a temporary coverage directory
-                mDeviceInfoPath = createTempDir(device);
-            } catch (IOException e) {
-                cleanupCoverageData(device);
-                throw new TargetSetupError(
-                        "Failed to create temp dir to store coverage resource files.");
-            }
-
-            if (sancovEnabled) {
-                // Fetch the symbolized binaries
-                String artifactName = String.format(
-                        SYMBOLS_ARTIFACT, flavor.substring(0, flavor.lastIndexOf("-")), buildId);
-                File artifactFile = new File(mDeviceInfoPath, SYMBOLS_FILE_NAME);
-
-                String cmdString = String.format(artifactFetcher, buildId, flavor, artifactName,
-                        artifactFile.getAbsolutePath().toString());
-                String[] cmd = cmdString.split("\\s+");
-                CommandResult commandResult = mRunUtil.runTimedCmd(BASE_TIMEOUT, cmd);
-                if (commandResult == null || commandResult.getStatus() != CommandStatus.SUCCESS
-                        || !artifactFile.exists()) {
-                    cleanupCoverageData(device);
-                    throw new TargetSetupError("Could not fetch unstripped binaries.");
-                }
-            }
-
-            if (gcovEnabled) {
-                // Fetch the symbolized binaries
-                String artifactName = String.format(
-                        GCOV_ARTIFACT, flavor.substring(0, flavor.lastIndexOf("-")), buildId);
-                File artifactFile = new File(mDeviceInfoPath, GCOV_FILE_NAME);
-
-                String cmdString = String.format(artifactFetcher, buildId, flavor, artifactName,
-                        artifactFile.getAbsolutePath().toString());
-                String[] cmd = cmdString.split("\\s+");
-                CommandResult commandResult = mRunUtil.runTimedCmd(BASE_TIMEOUT, cmd);
-                if (commandResult == null || commandResult.getStatus() != CommandStatus.SUCCESS
-                        || !artifactFile.exists()) {
-                    cleanupCoverageData(device);
-                    throw new TargetSetupError("Could not fetch gcov build artifacts.");
-                }
-            }
-
-            // Fetch the device build information file
-            String cmdString = String.format(artifactFetcher, buildId, flavor, BUILD_INFO_ARTIFACT,
-                    mDeviceInfoPath.getAbsolutePath().toString());
-            String[] cmd = cmdString.split("\\s+");
-            CommandResult commandResult = mRunUtil.runTimedCmd(BASE_TIMEOUT, cmd);
-            File artifactFile = new File(mDeviceInfoPath, BUILD_INFO_ARTIFACT);
-            if (commandResult == null || commandResult.getStatus() != CommandStatus.SUCCESS
-                    || !artifactFile.exists()) {
-                cleanupCoverageData(device);
-                throw new TargetSetupError("Could not fetch build info.");
-            }
-        } else {
-            mDeviceInfoPath = new File(mLocalCoverageResourcePath);
-            String fileName = sancovEnabled ? SYMBOLS_FILE_NAME : GCOV_FILE_NAME;
-            File artifactFile = new File(mDeviceInfoPath, fileName);
-            if (!artifactFile.exists()) {
-                cleanupCoverageData(device);
-                throw new TargetSetupError(String.format("Could not find %s under %s.",
-                        GCOV_FILE_NAME, mDeviceInfoPath.getAbsolutePath()));
-            }
-            File buildInfoArtifact = new File(mDeviceInfoPath, BUILD_INFO_ARTIFACT);
-            if (!buildInfoArtifact.exists()) {
-                cleanupCoverageData(device);
-                throw new TargetSetupError(String.format("Could not find %s under %s.",
-                        BUILD_INFO_ARTIFACT, mDeviceInfoPath.getAbsolutePath()));
-            }
-        }
-
-        try {
-            // Push the coverage configure tool
-            File configureSrc = new File(buildHelper.getTestsDir(), COVERAGE_CONFIGURE_SRC);
-            device.pushFile(configureSrc, COVERAGE_CONFIGURE_DST);
-        } catch (FileNotFoundException e) {
-            cleanupCoverageData(device);
-            throw new TargetSetupError("Failed to push the vts coverage configure tool.");
-        }
-
-        if (mCoverageReportDir != null) {
-            try {
-                File resultDir = buildHelper.getResultDir();
-                File coverageDir = new File(resultDir, mCoverageReportDir);
-                buildInfo.addBuildAttribute(COVERAGE_REPORT_PATH, coverageDir.getAbsolutePath());
-            } catch (FileNotFoundException e) {
-                cleanupCoverageData(device);
-                throw new TargetSetupError("Failed to get coverageDir.");
-            }
-        }
-
-        device.executeShellCommand(String.format("rm -rf %s/*", COVERAGE_DATA_PATH));
-        mEnforcingState = device.executeShellCommand("getenforce");
-        if (!mEnforcingState.equals(SELINUX_DISABLED)
-                && !mEnforcingState.equals(SELINUX_PERMISSIVE)) {
-            device.executeShellCommand("setenforce " + SELINUX_PERMISSIVE);
-        }
-
-        if (sancovEnabled) {
-            buildInfo.setFile(
-                    getSancovResourceDirKey(device), mDeviceInfoPath, buildInfo.getBuildId());
-        }
-
-        if (gcovEnabled) {
-            buildInfo.setFile(
-                    getGcovResourceDirKey(device), mDeviceInfoPath, buildInfo.getBuildId());
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void tearDown(ITestDevice device, IBuildInfo buildInfo, Throwable e)
-            throws DeviceNotAvailableException {
-        if (mEnforcingState != null && !mEnforcingState.equals(SELINUX_DISABLED)) {
-            device.executeShellCommand("setenforce " + mEnforcingState);
-        }
-        cleanupCoverageData(device);
-    }
-
-    /**
-     * Get the key of the symbolized binary directory for the specified device.
-     *
-     * @param device the target device whose sancov resources directory to get.
-     * @return the (String) key name of the device's sancov resources directory.
-     */
-    public static String getSancovResourceDirKey(ITestDevice device) {
-        return String.format(SANCOV_RESOURCES_KEY, device.getSerialNumber());
-    }
-
-    /**
-     * Get the key of the gcov resources for the specified device.
-     *
-     * @param device the target device whose sancov resources directory to get.
-     * @return the (String) key name of the device's gcov resources directory.
-     */
-    public static String getGcovResourceDirKey(ITestDevice device) {
-        return String.format(GCOV_RESOURCES_KEY, device.getSerialNumber());
-    }
-
-    /**
-     * Cleanup the coverage data on target and host.
-     *
-     * @param device the target device.
-     */
-    private void cleanupCoverageData(ITestDevice device) throws DeviceNotAvailableException {
-        if (mDeviceInfoPath != null) {
-            FileUtil.recursiveDelete(mDeviceInfoPath);
-        }
-        device.executeShellCommand("rm -rf " + COVERAGE_CONFIGURE_DST);
-        device.executeShellCommand(String.format("rm -rf %s/*", COVERAGE_DATA_PATH));
-    }
-
-    @VisibleForTesting
-    File createTempDir(ITestDevice device) throws IOException {
-        return FileUtil.createTempDir(device.getSerialNumber());
-    }
-
-    @VisibleForTesting
-    String getArtifactFetcher(IBuildInfo buildInfo) {
-        VtsVendorConfigFileUtil configFileUtil = new VtsVendorConfigFileUtil();
-        if (configFileUtil.LoadVendorConfig(buildInfo)) {
-            return configFileUtil.GetVendorConfigVariable("build_artifact_fetcher");
-        }
-        return null;
-    }
-
-    /**
-     * Create and return a {@link CompatibilityBuildHelper} to use during the preparer.
-     */
-    @VisibleForTesting
-    CompatibilityBuildHelper createBuildHelper(IBuildInfo buildInfo) {
-        return new CompatibilityBuildHelper(buildInfo);
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsDevicePreparer.java b/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsDevicePreparer.java
deleted file mode 100644
index 30b061b..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsDevicePreparer.java
+++ /dev/null
@@ -1,498 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.tradefed.targetprep;
-
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.config.Option;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.log.LogUtil.CLog;
-
-/**
- * Perform basic device preparation tasks such as check (and turn on/off) device framework.
- *
- * Options with prefix "enable" or "disable" enables or disables a feature,
- * and setting them to false means no operation.
- *
- * For a same feature, if "enable" and "disable" options are both set to true will result in no-op.
- *
- * Any of the "restore" option will restore the feature to the state before test. This means actions
- * may be taken even if the feature is not enabled. For example, if device framework is on,
- * "enable-framework" is "false", "restore-all" is set to "true", and during a test the framework
- * is turned on/off, this class will start the framework in the end.
- */
-public class VtsDevicePreparer implements ITargetPreparer, ITargetCleaner {
-    @Option(name = "start-framework",
-            description = "Whether to start android framework on device. "
-                    + "Setting this option to false does not stop framework. "
-                    + "If both start-framework and stop-framework is set to true, "
-                    + "no action will be taken.")
-    boolean mStartFramework = false;
-
-    @Option(name = "stop-framework",
-            description = "Whether to stop android framework on device. "
-                    + "Setting this option to false does not start framework. "
-                    + "If both start-framework and disable-framework is set to true, "
-                    + "no action will be taken.")
-    boolean mStopFramework = false;
-
-    @Option(name = "restore-framework",
-            description = "Whether to restore the initial framework "
-                    + "start/stop status after tests. "
-                    + "This option will be overriden by restore-all if that is set to true.")
-    boolean mRestoreFramework = false;
-
-    @Option(name = "enable-adb-root",
-            description = "Whether to enable adb root on device. "
-                    + "If set to true, `adb root` will be called. "
-                    + "Setting this option to false does not disable adb root. "
-                    + "This option requires enable-root setting be true in test plan setting. "
-                    + "If both enable-adb-root and disable-adb-root is set to true, no action "
-                    + "will be taken.")
-    boolean mEnableAdbRoot = false;
-
-    @Option(name = "disable-adb-root",
-            description = "Whether to disable adb root on device. "
-                    + "If set to true, `adb root` will be called. "
-                    + "Setting this option to false does not enable adb root. "
-                    + "If both enable-adb-root and disable-adb-root is set to true, "
-                    + "no action will be taken.")
-    boolean mDisableAdbRoot = false;
-
-    @Option(name = "restore-adb-root",
-            description = "Whether to restore the initial adb root "
-                    + "status after tests. "
-                    + "This option will be overriden by restore-all if that is set to true.")
-    boolean mRestoreAdbRoot = false;
-
-    @Option(name = "restore-all",
-            description = "Whether to restore device status after tests. "
-                    + "This option overrides individual restore options such as restore-framework.")
-    boolean mRestoreAll = false;
-
-    @Option(name = "enable-radio-log",
-            description = "Whether to enable radio modem logcat. Device will reboot if enabled. "
-                    + "This option requires adb root but will not automatically root adb. "
-                    + "Setting this option false does not disable already enabled radio log.")
-    boolean mEnableRadioLog = false;
-
-    @Option(name = "restore-radio-log",
-            description = "Whether to restore radio modem logcat status after test. "
-                    + "This option requires adb root but will not automatically root adb. "
-                    + "If both enable-radio-log and this option is set to true, "
-                    + "device will reboot again at the end of test.")
-    boolean mRestoreRadioLog = false;
-
-    public static long DEVICE_BOOT_TIMEOUT = 3 * 60 * 1000;
-    static final String SYSPROP_DEV_BOOTCOMPLETE = "dev.bootcomplete";
-    static final String SYSPROP_SYS_BOOT_COMPLETED = "sys.boot_completed";
-    public static String SYSPROP_RADIO_LOG = "persist.vendor.radio.adb_log_on";
-    public static String SYSPROP_RADIO_LOG_OLD = "persist.radio.adb_log_on";
-    public String mSyspropRadioLog = SYSPROP_RADIO_LOG;
-
-    // The name of a system property which tells whether to stop properly configured
-    // native servers where properly configured means a server's init.rc is
-    // configured to stop when that property's value is 1.
-    static final String SYSPROP_VTS_NATIVE_SERVER = "vts.native_server.on";
-
-    boolean mInitialFrameworkStarted = true;
-    boolean mInitialAdbRoot = false;
-    DeviceOptionState mInitialRadioLog = DeviceOptionState.UNKNOWN;
-    ITestDevice mDevice = null;
-
-    // Whether to reboot device during setUp
-    boolean mRebootSetup = false;
-    // Whether to reboot device during tearDown
-    boolean mRebootTearDown = false;
-
-    public enum DeviceOptionState {
-        UNKNOWN,
-        ENABLED,
-        DISABLED,
-        NOT_AVAILABLE;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void setUp(ITestDevice device, IBuildInfo buildInfo)
-            throws TargetSetupError, BuildError, DeviceNotAvailableException {
-        mDevice = device;
-
-        // The order of the following steps matters.
-
-        adbRootPreRebootSetUp();
-        radioLogPreRebootSetup();
-        frameworkPreRebootSetUp();
-
-        if (mRebootSetup) {
-            device.reboot();
-            device.waitForBootComplete(DEVICE_BOOT_TIMEOUT);
-        }
-
-        frameworkPostRebootSetUp();
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void tearDown(ITestDevice device, IBuildInfo buildInfo, Throwable e)
-            throws DeviceNotAvailableException {
-        if (e instanceof DeviceNotAvailableException) {
-            CLog.i("Skip tear down due to DeviceNotAvailableException");
-            return;
-        }
-        // The order of the following steps matters.
-
-        radioLogPreTearDown();
-
-        if (mRebootTearDown) {
-            device.reboot();
-            device.waitForBootComplete(DEVICE_BOOT_TIMEOUT);
-        }
-
-        adbRootPostTearDown();
-        frameworkPostTearDown();
-    }
-
-    /**
-     * Prepares adb root status.
-     *
-     * @throws DeviceNotAvailableException
-     */
-    private void adbRootPreRebootSetUp() throws DeviceNotAvailableException {
-        if (mRestoreAll || mRestoreAdbRoot) {
-            // mInitialAdbRoot is only needed at tearDown because AndroidDeviceController
-            // already checks initial adb root status
-            mInitialAdbRoot = mDevice.isAdbRoot();
-        }
-
-        if (mEnableAdbRoot && !mDisableAdbRoot) {
-            adbRoot();
-        } else if (mDisableAdbRoot && !mEnableAdbRoot) {
-            adbUnroot();
-        }
-    }
-
-    /**
-     * Restores adb root status
-     *
-     * @throws DeviceNotAvailableException
-     *
-     */
-    private void adbRootPostTearDown() throws DeviceNotAvailableException {
-        if (!mRestoreAll && !mRestoreAdbRoot) {
-            return;
-        }
-
-        if (mInitialAdbRoot) {
-            adbRoot();
-        } else {
-            adbUnroot();
-        }
-    }
-
-    /**
-     * Collect framework on/off status if restore option is enabled.
-     * @throws DeviceNotAvailableException
-     */
-    private void frameworkPreRebootSetUp() throws DeviceNotAvailableException {
-        if (mRestoreAll || mRestoreFramework) {
-            // mInitialFrameworkStarted is only needed at tearDown because AndroidDeviceController
-            // already checks initial framework status
-            mInitialFrameworkStarted = isFrameworkRunning();
-        }
-    }
-
-    /**
-     * Prepares device framework start/stop status
-     *
-     * @throws DeviceNotAvailableException
-     */
-    private void frameworkPostRebootSetUp() throws DeviceNotAvailableException {
-        if (mStartFramework && !mStopFramework) {
-            startFramework();
-        } else if (mStopFramework && !mStartFramework) {
-            stopFramework();
-        }
-    }
-
-    /**
-     * Restores the framework start/stop status
-     *
-     * @throws DeviceNotAvailableException
-     */
-    private void frameworkPostTearDown() throws DeviceNotAvailableException {
-        if (!mRestoreAll && !mRestoreFramework) {
-            return;
-        }
-
-        boolean current = isFrameworkRunning();
-
-        if (mInitialFrameworkStarted && !current) {
-            startFramework();
-        } else if (!mInitialFrameworkStarted && current) {
-            stopFramework();
-        }
-    }
-
-    /**
-     * @throws DeviceNotAvailableException
-     *
-     */
-    private void radioLogPreRebootSetup() throws DeviceNotAvailableException {
-        if (mEnableRadioLog || mRestoreAll || mRestoreRadioLog) {
-            mInitialRadioLog = radioLogGetState();
-
-            if (mInitialRadioLog == DeviceOptionState.NOT_AVAILABLE) {
-                CLog.d("Radio modem log configured but the setting is not available "
-                        + " on device. Skipping.");
-                return;
-            }
-        }
-
-        if (mEnableRadioLog && mInitialRadioLog == DeviceOptionState.DISABLED) {
-            this.setProperty(SYSPROP_RADIO_LOG, "1");
-            CLog.d("Turing on radio modem log.");
-            mRebootSetup = true;
-        }
-    }
-
-    /**
-     * @throws DeviceNotAvailableException
-     *
-     */
-    private void radioLogPreTearDown() throws DeviceNotAvailableException {
-        if (mInitialRadioLog == DeviceOptionState.NOT_AVAILABLE) {
-            return;
-        }
-
-        if (!mRestoreAll && !mRestoreRadioLog) {
-            return;
-        }
-
-        DeviceOptionState current = radioLogGetState();
-
-        if (mInitialRadioLog == DeviceOptionState.DISABLED
-                && current == DeviceOptionState.ENABLED) {
-            CLog.d("Turing off radio modem log.");
-            this.setProperty(SYSPROP_RADIO_LOG, "0");
-        } else if (mInitialRadioLog == DeviceOptionState.ENABLED
-                && current == DeviceOptionState.DISABLED) {
-            CLog.d("Turing on radio modem log.");
-            this.setProperty(SYSPROP_RADIO_LOG, "1");
-        } else {
-            return;
-        }
-
-        mRebootTearDown = true;
-    }
-
-    /**
-     * Returns the state of radio modem log on/off state.
-     * @return DeviceOptionState specifying the state.
-     * @throws DeviceNotAvailableException
-     */
-    private DeviceOptionState radioLogGetState() throws DeviceNotAvailableException {
-        String radioProp = mDevice.getProperty(mSyspropRadioLog);
-
-        if (radioProp == null && mSyspropRadioLog != SYSPROP_RADIO_LOG_OLD) {
-            mSyspropRadioLog = SYSPROP_RADIO_LOG_OLD;
-            radioProp = mDevice.getProperty(mSyspropRadioLog);
-        }
-
-        if (radioProp == null) {
-            return DeviceOptionState.NOT_AVAILABLE;
-        }
-
-        switch (radioProp) {
-            case "1":
-                return DeviceOptionState.ENABLED;
-            case "0":
-                return DeviceOptionState.DISABLED;
-            default:
-                return DeviceOptionState.NOT_AVAILABLE;
-        }
-    }
-
-    // ----------------------- Below are device util methods -----------------------
-
-    /**
-     * Executes command "adb root" if adb is not running as root.
-     *
-     * @throws DeviceNotAvailableException
-     */
-    void adbRoot() throws DeviceNotAvailableException {
-        if (!mDevice.isAdbRoot()) {
-            mDevice.executeAdbCommand("root");
-        }
-    }
-
-    /**
-     * Executes command "adb unroot" if adb is running as root.
-     *
-     * @throws DeviceNotAvailableException
-     */
-    void adbUnroot() throws DeviceNotAvailableException {
-        if (mDevice.isAdbRoot()) {
-            mDevice.executeAdbCommand("unroot");
-        }
-    }
-
-    /**
-     * Start Android framework on a device.
-     *
-     * This method also starts VTS native servers which is required to start the framework
-     * This method will block until boot complete or timeout.
-     * A default timeout value will be used
-     *
-     * @throws DeviceNotAvailableException if timeout waiting for boot complete
-     */
-    void startFramework() throws DeviceNotAvailableException {
-        startFramework(DEVICE_BOOT_TIMEOUT);
-    }
-
-    /**
-     * Starts Android framework on a device.
-     *
-     * This method also starts VTS native servers which is required to start the framework
-     * This method will block until boot complete or timeout.
-     *
-     * @param timeout timeout in milliseconds.
-     * @throws DeviceNotAvailableException if timeout waiting for boot complete
-     */
-    void startFramework(long timeout) throws DeviceNotAvailableException {
-        startNativeServers();
-        mDevice.executeShellCommand("start");
-
-        waitForFrameworkStartComplete();
-    }
-
-    /**
-     * Wait for Android framework to complete starting.
-     *
-     * @throws DeviceNotAvailableException timed out
-     */
-    void waitForFrameworkStartComplete() throws DeviceNotAvailableException {
-        waitForFrameworkStartComplete(DEVICE_BOOT_TIMEOUT);
-    }
-
-    /**
-     * Wait for Android framework to complete starting.
-     *
-     * @param timeout
-     * @throws DeviceNotAvailableException
-     */
-    void waitForFrameworkStartComplete(long timeout) throws DeviceNotAvailableException {
-        long start = System.currentTimeMillis();
-
-        // First, wait for boot completion
-        mDevice.waitForBootComplete(timeout);
-
-        while (!isFrameworkRunning()) {
-            if (System.currentTimeMillis() - start >= timeout) {
-                throw new DeviceNotAvailableException(
-                        "Timed out waiting for framework start complete.",
-                        mDevice.getSerialNumber());
-            }
-
-            try {
-                Thread.sleep(1000);
-            } catch (InterruptedException e) {
-                e.printStackTrace();
-                throw new DeviceNotAvailableException(
-                        "Intrupted while waiting for framework start complete.",
-                        mDevice.getSerialNumber());
-            }
-        }
-    }
-
-    /**
-     * Stops Android framework on a device.
-     *
-     * @throws DeviceNotAvailableException
-     */
-    void stopFramework() throws DeviceNotAvailableException {
-        mDevice.executeShellCommand("stop");
-        this.setProperty(SYSPROP_SYS_BOOT_COMPLETED, "0");
-    }
-
-    /**
-     * Restarts Android framework on a device.
-     *
-     * This method will block until start finish or timeout.
-     *
-     * @throws DeviceNotAvailableException
-     */
-    void restartFramework() throws DeviceNotAvailableException {
-        stopFramework();
-        startFramework();
-    }
-
-    /**
-     * Starts all native servers.
-     *
-     * @throws DeviceNotAvailableException
-     */
-    void startNativeServers() throws DeviceNotAvailableException {
-        this.setProperty(SYSPROP_VTS_NATIVE_SERVER, "0");
-    }
-
-    /**
-     * Stops all native servers.
-     *
-     * @throws DeviceNotAvailableException
-     */
-    void stopNativeServers() throws DeviceNotAvailableException {
-        this.setProperty(SYSPROP_VTS_NATIVE_SERVER, "1");
-    }
-
-    /**
-     * Sets a sysprop on the device.
-     *
-     * TODO: to be removed once the API is added to TF
-     *
-     * @param key the key of a sysprop.
-     * @param value the value of a sysprop.
-     * @throws DeviceNotAvailableException
-     */
-    void setProperty(String key, String value) throws DeviceNotAvailableException {
-        // TODO: check success
-        mDevice.executeShellCommand(String.format("setprop %s %s", key, value));
-    }
-
-    boolean isBootCompleted() throws DeviceNotAvailableException {
-        String sysBootCompleted = mDevice.getProperty(SYSPROP_SYS_BOOT_COMPLETED);
-        String devBootCompleted = mDevice.getProperty(SYSPROP_DEV_BOOTCOMPLETE);
-        return sysBootCompleted != null && sysBootCompleted.equals("1") && devBootCompleted != null
-                && devBootCompleted.equals("1");
-    }
-
-    /**
-     * Checks whether Android framework is started.
-     *
-     * @return True if started, False otherwise.
-     * @throws DeviceNotAvailableException
-     */
-    boolean isFrameworkRunning() throws DeviceNotAvailableException {
-        // First, check whether boot has completed.
-        if (!isBootCompleted()) {
-            return false;
-        }
-
-        String cmd = "ps -g system | grep system_server";
-        return mDevice.executeShellCommand(cmd).contains("system_server");
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsHalAdapterPreparer.java b/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsHalAdapterPreparer.java
deleted file mode 100644
index 2b90e99..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsHalAdapterPreparer.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.tradefed.targetprep;
-
-import com.android.annotations.VisibleForTesting;
-import com.android.compatibility.common.tradefed.build.VtsCompatibilityInvocationHelper;
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.config.Option;
-import com.android.tradefed.config.OptionClass;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.log.LogUtil.CLog;
-import com.android.tradefed.testtype.IAbi;
-import com.android.tradefed.testtype.IAbiReceiver;
-import com.android.tradefed.util.CmdUtil;
-import com.android.tradefed.util.FileUtil;
-import java.io.File;
-import java.io.IOException;
-import java.util.NoSuchElementException;
-import java.util.Vector;
-import java.util.function.Predicate;
-
-/**
- * Starts and stops a HAL (Hardware Abstraction Layer) adapter.
- * Only used for single-device testing or the primary device in multi-device
- * testing.
- */
-@OptionClass(alias = "vts-hal-adapter-preparer")
-public class VtsHalAdapterPreparer implements ITargetCleaner, IAbiReceiver {
-    static final int THREAD_COUNT_DEFAULT = 1;
-
-    static final String HAL_INTERFACE_SEP = "::";
-    static final String HAL_INSTANCE_SEP = "/";
-    // Relative path to vts native tests directory.
-    static final String VTS_NATIVE_TEST_DIR = "DATA/nativetest%s/";
-    // Path of native tests directory on target device.
-    static final String TARGET_NATIVE_TEST_DIR = "/data/nativetest%s/";
-    // Sysprop to stop HIDL adapaters. Currently, there's one global flag for all adapters.
-    static final String ADAPTER_SYSPROP = "test.hidl.adapters.deactivated";
-    // The wrapper script to start an adapter binary in the background.
-    static final String SCRIPT_PATH = "/data/local/tmp/vts_adapter.sh";
-    // Command to list the registered instance for the given hal@version.
-    static final String LIST_HAL_CMD =
-            "lshal -ti --neat 2>/dev/null | grep -e '^hwbinder' | awk '{print $2}' | grep %s";
-
-    @Option(name = "adapter-binary-name",
-            description = "Adapter binary file name (typically under /data/nativetest*/)")
-    private String mAdapterBinaryName = null;
-
-    @Option(name = "hal-package-name", description = "Target hal to adapter")
-    private String mPackageName = null;
-
-    @Option(name = "thread-count", description = "HAL adapter's thread count")
-    private int mThreadCount = THREAD_COUNT_DEFAULT;
-
-    // Application Binary Interface (ABI) info of the current test run.
-    private IAbi mAbi = null;
-
-    // CmdUtil help to verify the cmd results.
-    private CmdUtil mCmdUtil = null;
-    // Predicates to stop retrying cmd.
-    private Predicate<String> mCheckEmpty = (String str) -> {
-        return str.isEmpty();
-    };
-    private Predicate<String> mCheckNonEmpty = (String str) -> {
-        return !str.isEmpty();
-    };
-    private Vector<String> mCommands = new Vector<String>();
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void setUp(ITestDevice device, IBuildInfo buildInfo)
-            throws TargetSetupError, BuildError, DeviceNotAvailableException {
-        // adb root.
-        device.enableAdbRoot();
-        String bitness =
-                (mAbi != null) ? ((mAbi.getBitness() == "32") ? "" : mAbi.getBitness()) : "";
-        try {
-            pushAdapter(device, bitness);
-        } catch (IOException | NoSuchElementException e) {
-            CLog.e("Could not push adapter: " + e.toString());
-            throw new TargetSetupError("Could not push adapter.");
-        }
-
-        mCmdUtil = mCmdUtil != null ? mCmdUtil : new CmdUtil();
-        mCmdUtil.setSystemProperty(device, ADAPTER_SYSPROP, "false");
-
-        String out = device.executeShellCommand(String.format(LIST_HAL_CMD, mPackageName));
-        for (String line : out.split("\n")) {
-            if (!line.isEmpty()) {
-                if (!line.contains(HAL_INTERFACE_SEP)) {
-                    throw new TargetSetupError("HAL instance with wrong format.");
-                }
-                String interfaceInstance = line.split(HAL_INTERFACE_SEP, 2)[1];
-                if (!interfaceInstance.contains(HAL_INSTANCE_SEP)) {
-                    throw new TargetSetupError("HAL instance with wrong format.");
-                }
-                String interfaceName = interfaceInstance.split(HAL_INSTANCE_SEP, 2)[0];
-                String instanceName = interfaceInstance.split(HAL_INSTANCE_SEP, 2)[1];
-                // starts adapter
-                String command = String.format("chmod a+x %s", SCRIPT_PATH);
-                mCommands.add(command);
-                command = String.format("%s /data/nativetest%s/%s %s %s %d", SCRIPT_PATH, bitness,
-                        mAdapterBinaryName, interfaceName, instanceName, mThreadCount);
-                CLog.d("Trying to adapter for %s",
-                        mPackageName + "::" + interfaceName + "/" + instanceName);
-                mCommands.add(command);
-            }
-        }
-        if (mCommands.isEmpty()) {
-            CLog.w("The specific HAL service is not running.");
-            return;
-        }
-        if (!mCmdUtil.retry(
-                    device, mCommands, String.format(LIST_HAL_CMD, mPackageName), mCheckEmpty)) {
-            throw new TargetSetupError("HAL adapter setup failed.");
-        }
-
-        mCmdUtil.restartFramework(device);
-        if (!mCmdUtil.waitCmdResultWithDelay(
-                    device, "service list | grep IPackageManager", mCheckNonEmpty)) {
-            throw new TargetSetupError("Failed to start package service");
-        }
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void tearDown(ITestDevice device, IBuildInfo buildInfo, Throwable e)
-            throws DeviceNotAvailableException {
-        if (!mCommands.isEmpty()) {
-            // stops adapter(s)
-            String command = String.format("setprop %s %s", ADAPTER_SYSPROP, "true");
-            mCmdUtil = mCmdUtil != null ? mCmdUtil : new CmdUtil();
-            if (!mCmdUtil.retry(device, command, String.format(LIST_HAL_CMD, mPackageName),
-                        mCheckNonEmpty, mCommands.size() + mCmdUtil.MAX_RETRY_COUNT)) {
-                CLog.e("HAL restore failed.");
-            }
-            // TODO: cleanup the pushed adapter files.
-            mCmdUtil.restartFramework(device);
-        }
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void setAbi(IAbi abi) {
-        mAbi = abi;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public IAbi getAbi() {
-        return mAbi;
-    }
-
-    /**
-     * Push the required adapter binary to device.
-     *
-     * @param device device object.
-     * @param bitness ABI bitness.
-     * @throws DeviceNotAvailableException.
-     * @throws IOException.
-     * @throws NoSuchElementException.
-     */
-    private void pushAdapter(ITestDevice device, String bitness)
-            throws DeviceNotAvailableException, IOException, NoSuchElementException {
-        VtsCompatibilityInvocationHelper invocationHelper = createVtsHelper();
-        File adapterDir = new File(
-                invocationHelper.getTestsDir(), String.format(VTS_NATIVE_TEST_DIR, bitness));
-        File adapter = FileUtil.findFile(adapterDir, mAdapterBinaryName);
-        if (adapter != null) {
-            CLog.d("Pushing %s", mAdapterBinaryName);
-            device.pushFile(
-                    adapter, String.format(TARGET_NATIVE_TEST_DIR, bitness) + mAdapterBinaryName);
-        } else {
-            throw new NoSuchElementException("Could not find adapter: " + mAdapterBinaryName);
-        }
-    }
-
-    /**
-     * Create and return a {@link VtsCompatibilityInvocationHelper} to use during the preparer.
-     */
-    @VisibleForTesting
-    VtsCompatibilityInvocationHelper createVtsHelper() {
-        return new VtsCompatibilityInvocationHelper();
-    }
-
-    @VisibleForTesting
-    void setCmdUtil(CmdUtil cmdUtil) {
-        mCmdUtil = cmdUtil;
-    }
-
-    @VisibleForTesting
-    void addCommand(String command) {
-        mCommands.add(command);
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsPythonVirtualenvPreparer.java b/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsPythonVirtualenvPreparer.java
deleted file mode 100644
index 973e144..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsPythonVirtualenvPreparer.java
+++ /dev/null
@@ -1,672 +0,0 @@
-/*
- * Copyright (C) 2016 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.
- */
-
-package com.android.tradefed.targetprep;
-
-import com.android.annotations.VisibleForTesting;
-import com.android.compatibility.common.tradefed.build.CompatibilityBuildHelper;
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.command.remote.DeviceDescriptor;
-import com.android.tradefed.config.Option;
-import com.android.tradefed.config.OptionClass;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.invoker.IInvocationContext;
-import com.android.tradefed.log.LogUtil.CLog;
-import com.android.tradefed.targetprep.multi.IMultiTargetPreparer;
-import com.android.tradefed.util.CommandResult;
-import com.android.tradefed.util.CommandStatus;
-import com.android.tradefed.util.EnvUtil;
-import com.android.tradefed.util.FileUtil;
-import com.android.tradefed.util.IRunUtil;
-import com.android.tradefed.util.RunUtil;
-import com.android.tradefed.util.VtsPythonRunnerHelper;
-import com.android.tradefed.util.VtsVendorConfigFileUtil;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.Collection;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.NoSuchElementException;
-import java.util.TreeMap;
-import java.util.TreeSet;
-
-/**
- * Sets up a Python virtualenv on the host and installs packages. To activate it, the working
- * directory is changed to the root of the virtualenv.
- *
- * This's a fork of PythonVirtualenvPreparer and is forked in order to simplify the change
- * deployment process and reduce the deployment time, which are critical for VTS services.
- * That means changes here will be upstreamed gradually.
- */
-@OptionClass(alias = "python-venv")
-public class VtsPythonVirtualenvPreparer implements IMultiTargetPreparer {
-    private static final String LOCAL_PYPI_PATH_ENV_VAR_NAME = "VTS_PYPI_PATH";
-    private static final String LOCAL_PYPI_PATH_KEY = "pypi_packages_path";
-    private static final int SECOND_IN_MSECS = 1000;
-    private static final int MINUTE_IN_MSECS = 60 * SECOND_IN_MSECS;
-    protected static final int PIP_RETRY = 3;
-    private static final int PIP_RETRY_WAIT = 3 * SECOND_IN_MSECS;
-    protected static final int PIP_INSTALL_DELAY = SECOND_IN_MSECS;
-    public static final String VIRTUAL_ENV_V3 = "VIRTUAL_ENV_V3";
-    public static final String VIRTUAL_ENV = "VIRTUAL_ENV";
-
-    @Option(name = "venv-dir", description = "path of an existing virtualenv to use")
-    protected File mVenvDir = null;
-
-    @Option(name = "requirements-file", description = "pip-formatted requirements file")
-    private File mRequirementsFile = null;
-
-    @Option(name = "script-file", description = "scripts which need to be executed in advance")
-    private Collection<String> mScriptFiles = new TreeSet<>();
-
-    @Option(name = "dep-module", description = "modules which need to be installed by pip")
-    protected Collection<String> mDepModules = new LinkedHashSet<>();
-
-    @Option(name = "no-dep-module", description = "modules which should not be installed by pip")
-    private Collection<String> mNoDepModules = new TreeSet<>();
-
-    @Option(name = "reuse",
-            description = "Reuse an exising virtualenv path if exists in "
-                    + "temp directory. When this option is enabled, virtualenv directory used or "
-                    + "created by this preparer will not be deleted after tests complete.")
-    protected boolean mReuse = true;
-
-    @Option(name = "python-version",
-            description = "The version of a Python interpreter to use."
-                    + "Currently, only major version number is fully supported."
-                    + "Example: \"2\", or \"3\".")
-    private String mPythonVersion = "2";
-
-    @Option(name = "virtual-env-intallation-wait-time",
-            isTimeVal = true,
-            description = "The maximum wait time for virtual env installation.")
-    private long mVirtualEnvInstallationWaitTime = 600000L;
-
-    private IBuildInfo mBuildInfo = null;
-    private DeviceDescriptor mDescriptor = null;
-    private IRunUtil mRunUtil = new RunUtil();
-
-    String mLocalPypiPath = null;
-    String mPipPath = null;
-
-    // A map of initially installed pip modules and versions. Newly installed modules are not
-    // currently added automatically.
-    private Map<String, String> mPipInstallList = null;
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void setUp(IInvocationContext context)
-            throws TargetSetupError, BuildError, DeviceNotAvailableException {
-        mBuildInfo = context.getBuildInfos().get(0);
-        ITestDevice device = context.getDevices().get(0);
-        mDescriptor = device.getDeviceDescriptor();
-        // Ensure the method is locked even across instances
-        synchronized (VtsPythonVirtualenvPreparer.class) {
-            // Get virtual-env if existing
-            if (mVenvDir == null) {
-                mVenvDir = checkTestPlanLevelVirtualenv(mBuildInfo);
-                if (mVenvDir == null) {
-                    mVenvDir = createVirtualEnvCache(mBuildInfo);
-                }
-            }
-            if (new File(mVenvDir, "complete").exists()) {
-                VtsPythonRunnerHelper.activateVirtualenv(getRunUtil(), mVenvDir.getAbsolutePath());
-            } else {
-                // If cache is not good.
-                CLog.d("Preparing python dependencies...");
-
-                if (!createVirtualenv(mVenvDir)) {
-                    throw new TargetSetupError("Failed to create the virtual-env", mDescriptor);
-                }
-                CLog.d("Python virtualenv path is: " + mVenvDir);
-                VtsPythonRunnerHelper.activateVirtualenv(getRunUtil(), mVenvDir.getAbsolutePath());
-                try {
-                    new File(mVenvDir, "complete").createNewFile();
-                } catch (IOException e) {
-                    throw new TargetSetupError(
-                            "Failed to mark virtualenv complete.", e, mDescriptor);
-                }
-            }
-            // Setup the dependencies no matter what.
-            setLocalPypiPath();
-            installDeps();
-            // Set the built virtual-env in the build info.
-            CLog.d("Python virtualenv path is: " + mVenvDir);
-            addPathToBuild(mBuildInfo, mVenvDir);
-        }
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void tearDown(IInvocationContext context, Throwable e)
-            throws DeviceNotAvailableException {
-        mVenvDir = null;
-    }
-
-    /**
-     * This method sets mLocalPypiPath, the local PyPI package directory to
-     * install python packages from in the installDeps method.
-     */
-    protected void setLocalPypiPath() {
-        VtsVendorConfigFileUtil configReader = new VtsVendorConfigFileUtil();
-        if (configReader.LoadVendorConfig(mBuildInfo)) {
-            // First try to load local PyPI directory path from vendor config file
-            try {
-                String pypiPath = configReader.GetVendorConfigVariable(LOCAL_PYPI_PATH_KEY);
-                if (pypiPath.length() > 0 && dirExistsAndHaveReadAccess(pypiPath)) {
-                    mLocalPypiPath = pypiPath;
-                    CLog.d(String.format("Loaded %s: %s", LOCAL_PYPI_PATH_KEY, mLocalPypiPath));
-                }
-            } catch (NoSuchElementException e) {
-                /* continue */
-            }
-        }
-
-        // If loading path from vendor config file is unsuccessful,
-        // check local pypi path defined by LOCAL_PYPI_PATH_ENV_VAR_NAME
-        if (mLocalPypiPath == null) {
-            CLog.d("Checking whether local pypi packages directory exists");
-            String pypiPath = System.getenv(LOCAL_PYPI_PATH_ENV_VAR_NAME);
-            if (pypiPath == null) {
-                CLog.d("Local pypi packages directory not specified by env var %s",
-                        LOCAL_PYPI_PATH_ENV_VAR_NAME);
-            } else if (dirExistsAndHaveReadAccess(pypiPath)) {
-                mLocalPypiPath = pypiPath;
-                CLog.d("Set local pypi packages directory to %s", pypiPath);
-            }
-        }
-
-        if (mLocalPypiPath == null) {
-            CLog.d("Failed to set local pypi packages path. Therefore internet connection to "
-                    + "https://pypi.python.org/simple/ must be available to run VTS tests.");
-        }
-    }
-
-    /**
-     * This method returns whether the given path is a dir that exists and the user has read access.
-     */
-    private boolean dirExistsAndHaveReadAccess(String path) {
-        File pathDir = new File(path);
-        if (!pathDir.exists() || !pathDir.isDirectory()) {
-            CLog.d("Directory %s does not exist.", pathDir);
-            return false;
-        }
-
-        if (!EnvUtil.isOnWindows()) {
-            CommandResult c = getRunUtil().runTimedCmd(MINUTE_IN_MSECS, "ls", path);
-            if (c.getStatus() != CommandStatus.SUCCESS) {
-                CLog.d(String.format("Failed to read dir: %s. Result %s. stdout: %s, stderr: %s",
-                        path, c.getStatus(), c.getStdout(), c.getStderr()));
-                return false;
-            }
-            return true;
-        } else {
-            try {
-                String[] pathDirList = pathDir.list();
-                if (pathDirList == null) {
-                    CLog.d("Failed to read dir: %s. Please check access permission.", pathDir);
-                    return false;
-                }
-            } catch (SecurityException e) {
-                CLog.d(String.format(
-                        "Failed to read dir %s with SecurityException %s", pathDir, e));
-                return false;
-            }
-            return true;
-        }
-    }
-
-    /**
-     * Installs all python pip module dependencies specified in options.
-     * @throws TargetSetupError if failed
-     */
-    protected void installDeps() throws TargetSetupError {
-        boolean hasDependencies = false;
-        if (!mScriptFiles.isEmpty()) {
-            for (String scriptFile : mScriptFiles) {
-                CLog.d("Attempting to execute a script, %s", scriptFile);
-                CommandResult c = getRunUtil().runTimedCmd(5 * MINUTE_IN_MSECS, scriptFile);
-                if (c.getStatus() != CommandStatus.SUCCESS) {
-                    CLog.e("Executing script %s failed", scriptFile);
-                    throw new TargetSetupError("Failed to source a script", mDescriptor);
-                }
-            }
-        }
-
-        if (mRequirementsFile != null) {
-            hasDependencies = true;
-            boolean success = false;
-
-            long retry_interval = PIP_RETRY_WAIT;
-            for (int try_count = 0; try_count < PIP_RETRY + 1; try_count++) {
-                if (try_count > 0) {
-                    getRunUtil().sleep(retry_interval);
-                    retry_interval *= 3;
-                }
-
-                if (installPipRequirementFile(mRequirementsFile)) {
-                    success = true;
-                    break;
-                }
-            }
-
-            if (!success) {
-                throw new TargetSetupError(
-                        "Failed to install pip requirement file " + mRequirementsFile, mDescriptor);
-            }
-        }
-
-        if (!mDepModules.isEmpty()) {
-            for (String dep : mDepModules) {
-                hasDependencies = true;
-
-                if (mNoDepModules.contains(dep) || isPipModuleInstalled(dep)) {
-                    continue;
-                }
-
-                boolean success = installPipModuleLocally(dep);
-
-                long retry_interval = PIP_RETRY_WAIT;
-                for (int retry_count = 0; retry_count < PIP_RETRY + 1; retry_count++) {
-                    if (retry_count > 0) {
-                        getRunUtil().sleep(retry_interval);
-                        retry_interval *= 3;
-                    }
-
-                    if (success || (!success && installPipModule(dep))) {
-                        success = true;
-                        getRunUtil().sleep(PIP_INSTALL_DELAY);
-                        break;
-                    }
-                }
-
-                if (!success) {
-                    throw new TargetSetupError("Failed to install pip module " + dep, mDescriptor);
-                }
-            }
-        }
-        if (!hasDependencies) {
-            CLog.d("No dependencies to install");
-        }
-    }
-
-    /**
-     * Installs a pip requirement file from Internet.
-     * @param req pip module requirement file object
-     * @return true if success. False otherwise
-     */
-    private boolean installPipRequirementFile(File req) {
-        CommandResult result = getRunUtil().runTimedCmd(10 * MINUTE_IN_MSECS, getPipPath(),
-                "install", "-r", mRequirementsFile.getAbsolutePath());
-        CLog.d(String.format("Result %s. stdout: %s, stderr: %s", result.getStatus(),
-                result.getStdout(), result.getStderr()));
-
-        return result.getStatus() == CommandStatus.SUCCESS;
-    }
-
-    /**
-     * Installs a pip module from local directory.
-     * @param name of the module
-     * @return true if the module is successfully installed; false otherwise.
-     */
-    private boolean installPipModuleLocally(String name) {
-        if (mLocalPypiPath == null) {
-            return false;
-        }
-        CLog.d("Attempting installation of %s from local directory", name);
-        CommandResult result = getRunUtil().runTimedCmd(5 * MINUTE_IN_MSECS, getPipPath(),
-                "install", name, "--no-index", "--find-links=" + mLocalPypiPath);
-        CLog.d(String.format("Result %s. stdout: %s, stderr: %s", result.getStatus(),
-                result.getStdout(), result.getStderr()));
-
-        return result.getStatus() == CommandStatus.SUCCESS;
-    }
-
-    /**
-     * Install a pip module from Internet
-     * @param name of the module
-     * @return true if success. False otherwise
-     */
-    private boolean installPipModule(String name) {
-        CLog.d("Attempting installation of %s from PyPI", name);
-        CommandResult result =
-                getRunUtil().runTimedCmd(5 * MINUTE_IN_MSECS, getPipPath(), "install", name);
-        CLog.d("Result %s. stdout: %s, stderr: %s", result.getStatus(), result.getStdout(),
-                result.getStderr());
-        if (result.getStatus() != CommandStatus.SUCCESS) {
-            CLog.e("Installing %s from PyPI failed.", name);
-            CLog.d("Attempting to upgrade %s", name);
-            result = getRunUtil().runTimedCmd(
-                    5 * MINUTE_IN_MSECS, getPipPath(), "install", "--upgrade", name);
-
-            CLog.d(String.format("Result %s. stdout: %s, stderr: %s", result.getStatus(),
-                    result.getStdout(), result.getStderr()));
-        }
-
-        return result.getStatus() == CommandStatus.SUCCESS;
-    }
-
-    /**
-     * This method returns absolute pip path in virtualenv.
-     *
-     * This method is needed because although PATH is set in IRunUtil, IRunUtil will still
-     * use pip from system path.
-     *
-     * @return absolute pip path in virtualenv. null if virtualenv not available.
-     */
-    public String getPipPath() {
-        if (mPipPath != null) {
-            return mPipPath;
-        }
-
-        String virtualenvPath = mVenvDir.getAbsolutePath();
-        if (virtualenvPath == null) {
-            return null;
-        }
-        mPipPath = new File(VtsPythonRunnerHelper.getPythonBinDir(virtualenvPath), "pip")
-                           .getAbsolutePath();
-        return mPipPath;
-    }
-
-    /**
-     * Get the major python version from option.
-     *
-     * Currently, only 2 and 3 are supported.
-     *
-     * @return major version number
-     * @throws TargetSetupError
-     */
-    protected int getConfiguredPythonVersionMajor() throws TargetSetupError {
-        if (mPythonVersion.startsWith("3.") || mPythonVersion.equals("3")) {
-            return 3;
-        } else if (mPythonVersion.startsWith("2.") || mPythonVersion.equals("2")) {
-            return 2;
-        } else {
-            throw new TargetSetupError("Unsupported python version " + mPythonVersion, mDescriptor);
-        }
-    }
-
-    /**
-     * Add PYTHONPATH and VIRTUAL_ENV_PATH to BuildInfo.
-     * @param buildInfo
-     * @throws TargetSetupError
-     */
-    private void addPathToBuild(IBuildInfo buildInfo, File virtualEnvDir) throws TargetSetupError {
-        String target = null;
-        switch (getConfiguredPythonVersionMajor()) {
-            case 2:
-                target = VtsPythonVirtualenvPreparer.VIRTUAL_ENV;
-                break;
-            case 3:
-                target = VtsPythonVirtualenvPreparer.VIRTUAL_ENV_V3;
-                break;
-        }
-
-        if (!buildInfo.getBuildAttributes().containsKey(target)) {
-            buildInfo.addBuildAttribute(target, virtualEnvDir.getAbsolutePath());
-        }
-    }
-
-    /**
-     * Completes the creation of virtualenv.
-     * @return true if the directory is successfully prepared as virtualenv; false otherwise
-     */
-    protected boolean createVirtualenv(File virtualEnvDir) {
-        CLog.d("Creating virtualenv at " + virtualEnvDir);
-
-        String[] cmd = new String[] {
-                "virtualenv", "-p", "python" + mPythonVersion, virtualEnvDir.getAbsolutePath()};
-
-        long waitRetryCreate = 5 * SECOND_IN_MSECS;
-
-        for (int try_count = 0; try_count < PIP_RETRY + 1; try_count++) {
-            if (try_count > 0) {
-                getRunUtil().sleep(waitRetryCreate);
-            }
-            CommandResult c = getRunUtil().runTimedCmd(mVirtualEnvInstallationWaitTime, cmd);
-
-            if (!CommandStatus.SUCCESS.equals(c.getStatus())) {
-                String message_lower = (c.getStdout() + c.getStderr()).toLowerCase();
-                if (message_lower.contains("errno 17") // File exists
-                        || message_lower.contains("errno 26")
-                        || message_lower.contains("text file busy")) {
-                    // Race condition, retry.
-                    CLog.e("detected the virtualenv path is being created by other process.");
-                } else {
-                    // Other error, abort.
-                    CLog.e("Exit code: %s, stdout: %s, stderr: %s", c.getStatus(), c.getStdout(),
-                            c.getStderr());
-                    break;
-                }
-            } else {
-                CLog.d("Successfully created virtualenv at " + virtualEnvDir);
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    private File createVirtualEnvCache(IBuildInfo buildInfo) throws TargetSetupError {
-        File workingDir = null;
-        File virtualEnvDir = null;
-        if (mReuse) {
-            try {
-                workingDir = new CompatibilityBuildHelper(buildInfo).getDir();
-            } catch (FileNotFoundException e) {
-                workingDir = new File(System.getProperty("java.io.tmpdir"));
-            }
-            virtualEnvDir = new File(workingDir, "vts-virtualenv-" + mPythonVersion);
-            if (virtualEnvDir.exists()) {
-                // Use the cache
-                return virtualEnvDir;
-            }
-            // Create it first
-            virtualEnvDir.mkdirs();
-        } else {
-            try {
-                virtualEnvDir = FileUtil.createTempDir("vts-virtualenv-" + mPythonVersion + "-"
-                        + normalizeName(buildInfo.getTestTag()) + "_");
-            } catch (IOException e) {
-                throw new TargetSetupError(
-                        "Failed to create a directory for the virtual env.", e, mDescriptor);
-            }
-        }
-        return virtualEnvDir;
-    }
-
-    /**
-     * Checks whether a test plan-wise common virtualenv directory can be used.
-     * @param buildInfo
-     * @return true if a test plan-wise virtuanenv directory exists; false otherwise
-     * @throws TargetSetupError
-     */
-    protected File checkTestPlanLevelVirtualenv(IBuildInfo buildInfo) throws TargetSetupError {
-        String venvDir = null;
-        switch (getConfiguredPythonVersionMajor()) {
-            case 2:
-                venvDir =
-                        buildInfo.getBuildAttributes().get(VtsPythonVirtualenvPreparer.VIRTUAL_ENV);
-                break;
-            case 3:
-                venvDir = buildInfo.getBuildAttributes().get(
-                        VtsPythonVirtualenvPreparer.VIRTUAL_ENV_V3);
-                break;
-        }
-
-        if (venvDir != null && new File(venvDir).exists()) {
-            return new File(venvDir);
-        }
-        return null;
-    }
-
-    protected void addDepModule(String module) {
-        mDepModules.add(module);
-    }
-
-    protected void setRequirementsFile(File f) {
-        mRequirementsFile = f;
-    }
-
-    /**
-     * Get an instance of {@link IRunUtil}.
-     */
-    @VisibleForTesting
-    protected IRunUtil getRunUtil() {
-        if (mRunUtil == null) {
-            mRunUtil = new RunUtil();
-        }
-        return mRunUtil;
-    }
-
-    /**
-     * Locally checks whether a pip module is installed.
-     *
-     * This read the installed module list from command "pip list" and check whether the
-     * module in requirement string is installed and its version satisfied.
-     *
-     * Note: This method is only a help method for speed optimization purpose.
-     *       It does not check dependencies of the module.
-     *       It replace dots "." in module name with dash "-".
-     *       If the "pip list" command failed, it will return false and will not throw exception
-     *       It can also only accept one ">=" version requirement string.
-     *       If this method returns false, the requirement should still be checked using pip itself.
-     *
-     * @param requirement such as "numpy", "pip>=9"
-     * @return True if module is installed locally with correct version. False otherwise
-     */
-    private boolean isPipModuleInstalled(String requirement) {
-        if (mPipInstallList == null) {
-            mPipInstallList = getInstalledPipModules();
-            if (mPipInstallList == null) {
-                CLog.e("Failed to read local pip install list.");
-                return false;
-            }
-        }
-
-        String name;
-        String version = null;
-        if (requirement.contains(">=")) {
-            String[] tokens = requirement.split(">=");
-            if (tokens.length != 2) {
-                return false;
-            }
-            name = tokens[0];
-            version = tokens[1];
-        } else if (requirement.contains("=") || requirement.contains("<")
-                || requirement.contains(">")) {
-            return false;
-        } else {
-            name = requirement;
-        }
-
-        name = name.replaceAll("\\.", "-");
-
-        if (!mPipInstallList.containsKey(name)) {
-            return false;
-        }
-
-        // TODO: support other comparison and multiple condition if there's a use case.
-        if (version != null && !isVersionGreaterEqual(mPipInstallList.get(name), version)) {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * Compares whether version string 1 is greater or equal to version string 2
-     * @param version1
-     * @param version2
-     * @return True if the value of version1 >= version2
-     */
-    private static boolean isVersionGreaterEqual(String version1, String version2) {
-        version1 = version1.replaceAll("[^0-9.]+", "");
-        version2 = version2.replaceAll("[^0-9.]+", "");
-
-        String[] tokens1 = version1.split("\\.");
-        String[] tokens2 = version2.split("\\.");
-
-        int length = Math.max(tokens1.length, tokens2.length);
-        for (int i = 0; i < length; i++) {
-            try {
-                int token1 = i < tokens1.length ? Integer.parseInt(tokens1[i]) : 0;
-                int token2 = i < tokens2.length ? Integer.parseInt(tokens2[i]) : 0;
-                if (token1 < token2) {
-                    return false;
-                }
-            } catch (NumberFormatException e) {
-                CLog.e("failed to compare pip module version: %s and %s", version1, version2);
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * Gets map of installed pip packages and their versions.
-     * @return installed pip packages
-     */
-    private Map<String, String> getInstalledPipModules() {
-        CommandResult res = getRunUtil().runTimedCmd(30 * SECOND_IN_MSECS, getPipPath(), "list");
-        if (res.getStatus() != CommandStatus.SUCCESS) {
-            CLog.e(String.format("Failed to read pip installed list: "
-                            + "Result %s. stdout: %s, stderr: %s",
-                    res.getStatus(), res.getStdout(), res.getStderr()));
-            return null;
-        }
-        String raw = res.getStdout();
-        String[] lines = raw.split("\\r?\\n");
-
-        TreeMap<String, String> pipInstallList = new TreeMap<>();
-
-        for (String line : lines) {
-            line = line.trim();
-            if (line.length() == 0 || line.startsWith("Package ") || line.startsWith("-")) {
-                continue;
-            }
-            String[] tokens = line.split("\\s+");
-            if (tokens.length != 2) {
-                CLog.e("Error parsing pip installed package list. Line text: " + line);
-                continue;
-            }
-            pipInstallList.put(tokens[0], tokens[1]);
-        }
-
-        return pipInstallList;
-    }
-
-    /**
-     * Replacing characters in a string to make it a valid file name.
-     *
-     * The current method is to replace any non-word character with '_' except '.' and '-'.
-     *
-     * @param name the potential name of a file to normalize.
-     *                 Do not use path here as path delimitor will be replaced
-     * @return normalized file name
-     */
-    private String normalizeName(String name) {
-        return name.replaceAll("[^\\w.-]", "_");
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsTestPlanResultReporter.java b/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsTestPlanResultReporter.java
deleted file mode 100644
index 6a03411..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsTestPlanResultReporter.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-
-package com.android.tradefed.targetprep;
-
-import com.android.compatibility.common.tradefed.build.CompatibilityBuildHelper;
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.config.Option;
-import com.android.tradefed.config.OptionClass;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.invoker.IInvocationContext;
-import com.android.tradefed.log.LogUtil.CLog;
-import com.android.tradefed.util.FileUtil;
-import com.android.tradefed.util.IRunUtil;
-import com.android.tradefed.util.RunUtil;
-import com.android.tradefed.util.StreamUtil;
-import com.android.tradefed.util.VtsDashboardUtil;
-import com.android.tradefed.util.VtsVendorConfigFileUtil;
-import com.android.vts.proto.VtsComponentSpecificationMessage.ComponentSpecificationMessage;
-import com.android.vts.proto.VtsComponentSpecificationMessage.FunctionSpecificationMessage;
-import com.android.vts.proto.VtsReportMessage.ApiCoverageReportMessage;
-import com.android.vts.proto.VtsReportMessage.DashboardPostMessage;
-import com.android.vts.proto.VtsReportMessage.HalInterfaceMessage;
-import com.android.vts.proto.VtsReportMessage.TestPlanReportMessage;
-import com.google.protobuf.ByteString;
-import com.google.protobuf.TextFormat;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.IOException;
-import java.nio.file.Files;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-/**
- * Uploads the VTS test plan execution result to the web DB using a RESTful API and
- * an OAuth2 credential kept in a json file.
- */
-@OptionClass(alias = "vts-plan-result")
-public class VtsTestPlanResultReporter implements ITargetPreparer, ITargetCleaner {
-    private static final String PLUS_ME = "https://www.googleapis.com/auth/plus.me";
-    private static final String TEST_PLAN_EXECUTION_RESULT = "vts-test-plan-execution-result";
-    private static final String TEST_PLAN_REPORT_FILE = "TEST_PLAN_REPORT_FILE";
-    private static final String TEST_PLAN_REPORT_FILE_NAME = "status.json";
-    private static VtsVendorConfigFileUtil configReader = null;
-    private static VtsDashboardUtil dashboardUtil = null;
-    private static final int BASE_TIMEOUT_MSECS = 1000 * 60;
-    IRunUtil mRunUtil = new RunUtil();
-
-    @Option(name = "plan-name", description = "The plan name") private String mPlanName = null;
-
-    @Option(name = "file-path",
-            description = "The path of a VTS vendor config file (format: json).")
-    private String mVendorConfigFilePath = null;
-
-    @Option(name = "default-type",
-            description = "The default config file type, e.g., `prod` or `staging`.")
-    private String mDefaultType = VtsVendorConfigFileUtil.VENDOR_TEST_CONFIG_DEFAULT_TYPE;
-
-    private File mStatusDir;
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void setUp(ITestDevice device, IBuildInfo buildInfo) {
-        try {
-            mStatusDir = FileUtil.createTempDir(TEST_PLAN_EXECUTION_RESULT);
-            if (mStatusDir != null) {
-                File statusFile = new File(mStatusDir, TEST_PLAN_REPORT_FILE_NAME);
-                buildInfo.setFile(TEST_PLAN_REPORT_FILE, statusFile, buildInfo.getBuildId());
-            }
-        } catch (IOException ex) {
-            CLog.e("Can't create a temp dir to store test execution results.");
-            return;
-        }
-
-        // Use IBuildInfo to pass the uesd vendor config information to the rest of workflow.
-        buildInfo.addBuildAttribute(
-                VtsVendorConfigFileUtil.KEY_VENDOR_TEST_CONFIG_DEFAULT_TYPE, mDefaultType);
-        if (mVendorConfigFilePath != null) {
-            buildInfo.addBuildAttribute(VtsVendorConfigFileUtil.KEY_VENDOR_TEST_CONFIG_FILE_PATH,
-                    mVendorConfigFilePath);
-        }
-        configReader = new VtsVendorConfigFileUtil();
-        configReader.LoadVendorConfig(buildInfo);
-        dashboardUtil = new VtsDashboardUtil(configReader);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void tearDown(ITestDevice device, IBuildInfo buildInfo, Throwable e) {
-        File reportFile = buildInfo.getFile(TEST_PLAN_REPORT_FILE);
-        if (reportFile == null) {
-            CLog.e("Couldn't find %s to post results. Skipping tearDown.",
-                    TEST_PLAN_REPORT_FILE_NAME);
-            // Just in case clean up the directory.
-            FileUtil.recursiveDelete(mStatusDir);
-            return;
-        }
-        String repotFilePath = reportFile.getAbsolutePath();
-        DashboardPostMessage.Builder postMessage = DashboardPostMessage.newBuilder();
-        TestPlanReportMessage.Builder testPlanMessage = TestPlanReportMessage.newBuilder();
-        testPlanMessage.setTestPlanName(mPlanName);
-        boolean found = false;
-        try (BufferedReader br = new BufferedReader(new FileReader(repotFilePath))) {
-            String currentLine;
-            while ((currentLine = br.readLine()) != null) {
-                String[] lineWords = currentLine.split("\\s+");
-                if (lineWords.length != 2) {
-                    CLog.e(String.format("Invalid keys %s", currentLine));
-                    continue;
-                }
-                testPlanMessage.addTestModuleName(lineWords[0]);
-                testPlanMessage.addTestModuleStartTimestamp(Long.parseLong(lineWords[1]));
-                found = true;
-            }
-        } catch (IOException ex) {
-            CLog.d("Can't read the test plan result file %s", repotFilePath);
-            return;
-        }
-        // For profiling test plan, add the baseline API report.
-        if (mPlanName.endsWith("profiling")) {
-            addApiReportToTestPlanMessage(device, buildInfo, testPlanMessage);
-        }
-        CLog.d("Delete report dir %s", mStatusDir.getAbsolutePath());
-        FileUtil.recursiveDelete(mStatusDir);
-        postMessage.addTestPlanReport(testPlanMessage.build());
-        if (found) {
-            dashboardUtil.Upload(postMessage);
-        }
-    }
-
-    /**
-     * Method to parse all packaged .vts specs and get the list of all defined APIs
-     *
-     * @param device the target device.
-     * @param buildInfo the build info of the target device.
-     * @param testPlanMessage testPlanMessage builder for updating the report message.
-     */
-    private void addApiReportToTestPlanMessage(ITestDevice device, IBuildInfo buildInfo,
-            TestPlanReportMessage.Builder testPlanMessage) {
-        CompatibilityBuildHelper buildHelper = new CompatibilityBuildHelper(buildInfo);
-        Map<String, String> hal_release_map = new HashMap<String, String>();
-        File test_dir;
-        try {
-            test_dir = buildHelper.getTestsDir();
-        } catch (FileNotFoundException e) {
-            CLog.e("Failed to get test dir, error: " + e.getMessage());
-            return;
-        }
-        // Get the interface --> release_version mapping.
-        File hal_release_path = new File(test_dir, "DATA/etc/hidl_hals_for_release.json");
-        hal_release_map = creatHalRelaseMap(hal_release_path.getAbsolutePath());
-        if (hal_release_map == null) {
-            CLog.e("Failed to create hal releas map");
-            return;
-        }
-
-        List<File> specFiles = new ArrayList<File>();
-        try {
-            File specDir = new File(test_dir, "spec/hardware/interfaces");
-            Files.walk(specDir.toPath())
-                    .filter(p
-                            -> (p.toString().endsWith(".vts")
-                                    && !p.toString().endsWith("types.vts")))
-                    .forEach(p -> specFiles.add(p.toFile()));
-        } catch (IOException e) {
-            CLog.e("Failed to get spec files, error: " + e.getMessage());
-            return;
-        }
-
-        for (File specFile : specFiles) {
-            try {
-                InputStreamReader reader =
-                        new InputStreamReader(new FileInputStream(specFile), "ASCII");
-                ComponentSpecificationMessage.Builder spec_builder =
-                        ComponentSpecificationMessage.newBuilder();
-                TextFormat.merge(reader, spec_builder);
-                ComponentSpecificationMessage spec = spec_builder.build();
-                String full_api_name = spec.getPackage().toString("ASCII") + '@'
-                        + Integer.toString(spec.getComponentTypeVersionMajor()) + '.'
-                        + Integer.toString(spec.getComponentTypeVersionMinor())
-                        + "::" + spec.getComponentName().toString("ASCII");
-
-                HalInterfaceMessage.Builder halInterfaceMsg = HalInterfaceMessage.newBuilder();
-                halInterfaceMsg.setHalPackageName(spec.getPackage());
-                halInterfaceMsg.setHalVersionMajor(spec.getComponentTypeVersionMajor());
-                halInterfaceMsg.setHalVersionMinor(spec.getComponentTypeVersionMinor());
-                halInterfaceMsg.setHalInterfaceName(spec.getComponentName());
-                String release_level = hal_release_map.get(full_api_name);
-                if (release_level == null) {
-                    CLog.w("could not get the release level for %s", full_api_name);
-                    continue;
-                }
-                halInterfaceMsg.setHalReleaseLevel(ByteString.copyFrom(release_level.getBytes()));
-                ApiCoverageReportMessage.Builder apiReport = ApiCoverageReportMessage.newBuilder();
-                apiReport.setHalInterface(halInterfaceMsg.build());
-                for (FunctionSpecificationMessage api : spec.getInterface().getApiList()) {
-                    if (!api.getIsInherited())
-                        apiReport.addHalApi(api.getName());
-                }
-                testPlanMessage.addHalApiReport(apiReport.build());
-            } catch (Exception e) {
-                CLog.i("Failed to parse spec file: " + specFile.getAbsolutePath()
-                        + " error: " + e.getMessage());
-                continue;
-            }
-        }
-    }
-
-    /**
-     * Method to parse the hal release file and create a mapping between HAL interfaces and their
-     * corresponding release version.
-     *
-     * @param hal_release_file_path path to the hal release file.
-     * @return a map for HAL interfaces and their corresponding release version.
-     */
-    private Map<String, String> creatHalRelaseMap(String hal_release_file_path) {
-        Map<String, String> hal_release_map = new HashMap<String, String>();
-        try {
-            InputStream hal_release = new FileInputStream(hal_release_file_path);
-            if (hal_release == null) {
-                CLog.e("hal_release file %s does not exist", hal_release_file_path);
-                return hal_release_map;
-            }
-            String content = StreamUtil.getStringFromStream(hal_release);
-            JSONObject hal_release_json = new JSONObject(content);
-            Iterator<String> keys = hal_release_json.keys();
-            while (keys.hasNext()) {
-                String key = keys.next();
-                JSONArray value = (JSONArray) hal_release_json.get(key);
-                for (int i = 0; i < value.length(); i++) {
-                    String type = (String) value.get(i);
-                    hal_release_map.put(type, key);
-                }
-            }
-        } catch (IOException | JSONException e) {
-            CLog.e("Failed to parse hal release file, error: " + e.getMessage());
-            return null;
-        }
-        return hal_release_map;
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsTraceCollectPreparer.java b/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsTraceCollectPreparer.java
deleted file mode 100644
index eceae7f..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/targetprep/VtsTraceCollectPreparer.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.tradefed.targetprep;
-
-import com.android.annotations.VisibleForTesting;
-import com.android.compatibility.common.tradefed.build.CompatibilityBuildHelper;
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.config.Option;
-import com.android.tradefed.config.OptionClass;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.log.LogUtil.CLog;
-import com.android.tradefed.targetprep.TargetSetupError;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.NoSuchElementException;
-
-/**
- * Preparer class for collect HAL traces during the test run.
- *
- * Currently used for collecting HAL traces for CTS tests. In test setup, pushes
- * the profiler libs to device, sets up the permissions, and calls
- * vts_profiling_configure to enable profiling for HAL services. In test
- * tear down, pulls the traces to the host, resets permissions and cleans up the
- * trace files and profiler libs on the device.
- */
-@OptionClass(alias = "vts-trace-collect-preparer")
-public class VtsTraceCollectPreparer implements ITargetPreparer, ITargetCleaner {
-    static final String SELINUX_DISABLED = "Disabled"; // selinux disabled
-    static final String SELINUX_PERMISSIVE = "Permissive"; // selinux permissive mode
-
-    // Relative path to vts 32 bit lib directory.
-    static final String VTS_LIB_DIR_32 = "DATA/lib/";
-    // Relative path to vts 64 bit lib directory.
-    static final String VTS_LIB_DIR_64 = "DATA/lib64/";
-    // Relative path to vts binary directory.
-    static final String VTS_BINARY_DIR = "DATA/bin/";
-    // Path of 32 bit test libs on target device.
-    static final String VTS_TMP_LIB_DIR_32 = "/data/local/tmp/32/";
-    // Path of 64 bit test libs on target device.
-    static final String VTS_TMP_LIB_DIR_64 = "/data/local/tmp/64/";
-    // Path of vts test directory on target device.
-    static final String VTS_TMP_DIR = "/data/local/tmp/";
-    // Default path to store trace files locally.
-    static final String LOCAL_TRACE_DIR = "vts-profiling";
-
-    static final String VTS_PROFILER_SUFFIX = "vts.profiler.so";
-    static final String VTS_LIB_PREFIX = "libvts";
-    static final String PROFILING_CONFIGURE_BINARY = "vts_profiling_configure";
-    static final String TRACE_PATH = "trace_path";
-
-    private String mEnforcingState = null; // start state for selinux enforcement
-
-    @Option(name = "local-trace-dir", description = "Local directory to store trace.")
-    private String mLocalTraceDir = LOCAL_TRACE_DIR;
-
-    /** {@inheritDoc} */
-    @Override
-    public void setUp(ITestDevice device, IBuildInfo buildInfo)
-            throws DeviceNotAvailableException, TargetSetupError {
-        CompatibilityBuildHelper buildHelper = createBuildHelper(buildInfo);
-        try {
-            // adb root.
-            device.enableAdbRoot();
-            // Push 32 bit profiler libs.
-            pushProfilerLib(device, new File(buildHelper.getTestsDir(), VTS_LIB_DIR_32),
-                    VTS_TMP_LIB_DIR_32);
-            // Push 64 bit profiler libs.
-            pushProfilerLib(device, new File(buildHelper.getTestsDir(), VTS_LIB_DIR_64),
-                    VTS_TMP_LIB_DIR_64);
-            // Push vts_profiling_configure
-            device.pushFile(new File(buildHelper.getTestsDir(),
-                                    VTS_BINARY_DIR + PROFILING_CONFIGURE_BINARY),
-                    VTS_TMP_DIR + PROFILING_CONFIGURE_BINARY);
-        } catch (IOException | NoSuchElementException e) {
-            // Cleanup profiler libs.
-            removeProfilerLib(device);
-            throw new TargetSetupError("Could not push profiler.");
-        }
-        // Create directory to store the trace files.
-        try {
-            File resultDir = buildHelper.getResultDir();
-            File traceDir = new File(resultDir, mLocalTraceDir);
-            buildInfo.addBuildAttribute(TRACE_PATH, traceDir.getAbsolutePath());
-        } catch (FileNotFoundException e) {
-            CLog.e("Failed to get traceDir: " + e.getMessage());
-            // Cleanup profiler libs.
-            removeProfilerLib(device);
-            throw new TargetSetupError("Failed to get traceDir.");
-        }
-        // Set selinux permissive mode.
-        mEnforcingState = device.executeShellCommand("getenforce");
-        if (mEnforcingState == null
-                || (!mEnforcingState.equals(SELINUX_DISABLED)
-                           && !mEnforcingState.equals(SELINUX_PERMISSIVE))) {
-            device.executeShellCommand("setenforce " + SELINUX_PERMISSIVE);
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void tearDown(ITestDevice device, IBuildInfo buildInfo, Throwable e)
-            throws DeviceNotAvailableException {
-        // Reset selinux permission mode.
-        if (mEnforcingState != null && !mEnforcingState.equals(SELINUX_DISABLED)) {
-            device.executeShellCommand("setenforce " + mEnforcingState);
-        }
-        // Cleanup profiler libs.
-        removeProfilerLib(device);
-    }
-
-    /**
-     * Create and return a {@link CompatibilityBuildHelper} to use during the preparer.
-     */
-    @VisibleForTesting
-    CompatibilityBuildHelper createBuildHelper(IBuildInfo buildInfo) {
-        return new CompatibilityBuildHelper(buildInfo);
-    }
-
-    /**
-     * Push all the profiler libraries (with pattern *.vts-profiler.so) and VTS
-     * profiling related libraries (with pattern libvts*.so) to device.
-     *
-     * @param device device object
-     * @param profilerLibDir directory to lookup for profiler libraries.
-     * @param destDirName target directory on device to push to.
-     * @throws DeviceNotAvailableException
-     */
-    private void pushProfilerLib(ITestDevice device, File profilerLibDir, String destDirName)
-            throws DeviceNotAvailableException {
-        File[] files = profilerLibDir.listFiles();
-        if (files == null) {
-            CLog.d("No files found in %s", profilerLibDir.getAbsolutePath());
-            return;
-        }
-        for (File f : files) {
-            String fileName = f.getName();
-            if (f.isFile()
-                    && (fileName.endsWith(VTS_PROFILER_SUFFIX)
-                               || fileName.startsWith(VTS_LIB_PREFIX))) {
-                CLog.d("Pushing %s", fileName);
-                device.pushFile(f, destDirName + fileName);
-            }
-        }
-    }
-
-    /**
-     * Remove all profiler and VTS profiling libraries from device.
-     *
-     * @param device device object
-     * @throws DeviceNotAvailableException
-     */
-    private void removeProfilerLib(ITestDevice device) throws DeviceNotAvailableException {
-        device.executeShellCommand(String.format("rm -rf %s/*vts.profiler.so", VTS_TMP_LIB_DIR_32));
-        device.executeShellCommand(String.format("rm -rf %s/*vts.profiler.so", VTS_TMP_LIB_DIR_64));
-        device.executeShellCommand(String.format("rm -rf %s/libvts_*.so", VTS_TMP_LIB_DIR_32));
-        device.executeShellCommand(String.format("rm -rf %s/libvts_*.so", VTS_TMP_LIB_DIR_64));
-        device.executeShellCommand(String.format("rm %s/vts_profiling_configure", VTS_TMP_DIR));
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/tradefed/testtype/VtsFuzzTest.java b/harnesses/tradefed/src/com/android/tradefed/testtype/VtsFuzzTest.java
deleted file mode 100644
index b69ed85..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/testtype/VtsFuzzTest.java
+++ /dev/null
@@ -1,346 +0,0 @@
-/*
- * Copyright (C) 2016 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.
- */
-
-package com.android.tradefed.testtype;
-
-import com.android.ddmlib.IShellOutputReceiver;
-import com.android.ddmlib.Log;
-import com.android.tradefed.config.Option;
-import com.android.tradefed.config.OptionClass;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.result.ITestInvocationListener;
-import com.android.tradefed.result.ITestLifeCycleReceiver;
-
-import java.util.concurrent.TimeUnit;
-
-/**
- * A Test that runs a system fuzz test package (part of Vendor Test Suite, VTS) on given device.
- */
-@OptionClass(alias = "vtsfuzztest")
-public class VtsFuzzTest implements IDeviceTest, IRemoteTest {
-
-    private static final String LOG_TAG = "VtsFuzzTest";
-    static final String DEFAULT_FUZZER_BINARY_PATH = "/system/bin/fuzzer";
-
-    static final float DEFAULT_TARGET_VERSION = -1;
-    static final int DEFAULT_TARGET_VERSION_MAJOR = -1;
-    static final int DEFAULT_TARGET_VERSION_MINOR = -1;
-    static final int DEFAULT_EPOCH_COUNT = 10;
-
-    // fuzzer flags
-    private static final String VTS_FUZZ_TEST_FLAG_CLASS = "--class";
-    private static final String VTS_FUZZ_TEST_FLAG_TYPE = "--type";
-    private static final String VTS_FUZZ_TEST_FLAG_VERSION = "--version";
-    private static final String VTS_FUZZ_TEST_FLAG_EPOCH_COUNT = "--epoch_count";
-
-    private ITestDevice mDevice = null;
-
-    @Option(name = "fuzzer-binary-path",
-            description="The path on the device where fuzzer is located.")
-    private String mFuzzerBinaryPath = DEFAULT_FUZZER_BINARY_PATH;
-
-    @Option(name = "target-component-path",
-            description="The path of a target component (e.g., .so file path).")
-    private String mTargetComponentPath = null;
-
-    @Option(name = "target-class",
-            description="The target component class.")
-    private String mTargetClass = null;
-
-    @Option(name = "target-type",
-            description="The target component type.")
-    private String mTargetType = null;
-
-    @Deprecated
-    @Option(name = "target-version", description = "The target component version.")
-    private float mTargetVersion = DEFAULT_TARGET_VERSION;
-
-    @Option(name = "target-version-major", description = "The target major component version.")
-    private int mTargetVersionMajor = DEFAULT_TARGET_VERSION_MAJOR;
-
-    @Option(name = "target-version-minor", description = "The target minor component version.")
-    private int mTargetVersionMinor = DEFAULT_TARGET_VERSION_MINOR;
-
-    @Option(name = "epoch-count",
-            description="The epoch count.")
-    private int mEpochCount = DEFAULT_EPOCH_COUNT;
-
-    @Option(name = "test-timeout", description =
-            "The max time in ms for a VTS test to run. " +
-            "Test run will be aborted if any test takes longer.")
-    private int mMaxTestTimeMs = 15 * 60 * 1000;  // 15 minutes
-
-    @Option(name = "runtime-hint",
-            isTimeVal=true,
-            description="The hint about the test's runtime.")
-    private long mRuntimeHint = 5 * 60 * 1000;  // 5 minutes
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void setDevice(ITestDevice device) {
-        mDevice = device;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public ITestDevice getDevice() {
-        return mDevice;
-    }
-
-    /**
-     * Set the target component path variable.
-     *
-     * @param path The path to set.
-     */
-    public void setTargetComponentPath(String path) {
-        mTargetComponentPath = path;
-    }
-
-    /**
-     * Get the target component path variable.
-     *
-     * @return The target component path.
-     */
-    public String getTargetComponentPath() {
-        return mTargetComponentPath;
-    }
-
-    /**
-     * Set the target class variable.
-     *
-     * @param class_name The class name to set.
-     */
-    public void setTargetClass(String class_name) {
-        mTargetClass = class_name;
-    }
-
-    /**
-     * Get the target class name variable.
-     *
-     * @return The target class name.
-     */
-    public String getTargetClass() {
-        return mTargetClass;
-    }
-
-    /**
-     * Set the target type variable.
-     *
-     * @param type_name The type name to set.
-     */
-    public void setTargetType(String type_name) {
-        mTargetType = type_name;
-    }
-
-    /**
-     * Get the target type name variable.
-     *
-     * @return The target type name.
-     */
-    public String getTargetType() {
-        return mTargetType;
-    }
-
-    /**
-     * Set the target version variable.
-     *
-     * @param version The version to set.
-     */
-    @Deprecated
-    public void setTargetVersion(float version) {
-        mTargetVersion = version;
-    }
-
-    /**
-     * Get the target version variable.
-     *
-     * @return The version.
-     */
-    @Deprecated
-    public float getTargetVersion() {
-        return mTargetVersion;
-    }
-
-    /**
-     * Set the target major version variable.
-     *
-     * @param version_major The major version to set.
-     */
-    public void setTargetVersionMajor(int version_major) {
-        mTargetVersionMajor = version_major;
-    }
-
-    /**
-     * Get the target major version variable.
-     *
-     * @return The major version.
-     */
-    public int getTargetVersionMajor() {
-        return mTargetVersionMajor;
-    }
-
-    /**
-     * Set the target minor version variable.
-     *
-     * @param version_minor The minor version to set.
-     */
-    public void setTargetVersionMinor(int version_minor) {
-        mTargetVersionMinor = version_minor;
-    }
-
-    /**
-     * Get the target minor version variable.
-     *
-     * @return The minor version.
-     */
-    public int getTargetVersionMinor() {
-        return mTargetVersionMinor;
-    }
-
-    /**
-     * Set the epoch count variable.
-     *
-     * @param count The epoch count to set.
-     */
-    public void setEpochCount(int count) {
-        mEpochCount = count;
-    }
-
-    /**
-     * Get the epoch count variable.
-     *
-     * @return The epoch count.
-     */
-    public float getEpochCount() {
-        return mEpochCount;
-    }
-
-    /**
-     * Helper to get all the VtsFuzzTest flags to pass into the adb shell command.
-     *
-     * @return the {@link String} of all the VtsFuzzTest flags that should be passed to the VtsFuzzTest
-     * @throws IllegalArgumentException
-     */
-    private String getAllVtsFuzzTestFlags() {
-        String flags;
-
-        if (mTargetClass == null) {
-            throw new IllegalArgumentException(VTS_FUZZ_TEST_FLAG_CLASS + " must be set.");
-        }
-        flags = String.format("%s=%s", VTS_FUZZ_TEST_FLAG_CLASS, mTargetClass);
-
-        if (mTargetType == null) {
-            throw new IllegalArgumentException(VTS_FUZZ_TEST_FLAG_TYPE + " must be set.");
-        }
-        flags = String.format("%s %s=%s", flags, VTS_FUZZ_TEST_FLAG_TYPE, mTargetType);
-
-        if (mTargetVersionMajor == DEFAULT_TARGET_VERSION_MAJOR
-                || mTargetVersionMinor == DEFAULT_TARGET_VERSION_MINOR) {
-            throw new IllegalArgumentException(VTS_FUZZ_TEST_FLAG_VERSION + " must be set.");
-        }
-        flags = String.format("%s %s=%d.%d", flags, VTS_FUZZ_TEST_FLAG_VERSION, mTargetVersionMajor,
-                mTargetVersionMinor);
-
-        flags = String.format("%s %s=%s", flags, VTS_FUZZ_TEST_FLAG_EPOCH_COUNT, mEpochCount);
-
-        flags = String.format("%s %s", flags, mTargetComponentPath);
-        return flags;
-    }
-
-    /**
-     * Run the given fuzzer binary using the given flags
-     *
-     * @param testDevice the {@link ITestDevice}
-     * @param resultParser the test run output parser
-     * @param fullPath absolute file system path to gtest binary on device
-     * @param flags fuzzer execution flags
-     * @throws DeviceNotAvailableException
-     */
-    private void runTest(final ITestDevice testDevice, final IShellOutputReceiver resultParser,
-            final String fullPath, final String flags) throws DeviceNotAvailableException {
-        // TODO: add individual test timeout support, and rerun support
-        try {
-            String cmd = getVtsFuzzTestCmdLine(fullPath, flags);
-            testDevice.executeShellCommand(cmd, resultParser,
-                    mMaxTestTimeMs,
-                    TimeUnit.MILLISECONDS,
-                    0 /* retryAttempts */);
-        } catch (DeviceNotAvailableException e) {
-            // TODO: consider moving the flush of parser data on exceptions to TestDevice or
-            // AdbHelper
-            resultParser.flush();
-            throw e;
-        } catch (RuntimeException e) {
-            resultParser.flush();
-            throw e;
-        }
-    }
-
-    /**
-     * Helper method to build the fuzzer command to run.
-     *
-     * @param fullPath absolute file system path to fuzzer binary on device
-     * @param flags fuzzer execution flags
-     * @return the shell command line to run for the fuzzer
-     */
-    protected String getVtsFuzzTestCmdLine(String fullPath, String flags) {
-        StringBuilder cmdLine = new StringBuilder();
-        cmdLine.append(String.format("%s %s", fullPath, flags));
-        return cmdLine.toString();
-    }
-
-    /**
-     * Factory method for creating a {@link IShellOutputReceiver} that parses test output and
-     * forwards results to the result listener.
-     * <p/>
-     * Exposed so unit tests can mock
-     *
-     * @param listener
-     * @param runName
-     * @return a {@link IShellOutputReceiver}
-     */
-    IShellOutputReceiver createResultParser(String runName, ITestLifeCycleReceiver listener) {
-        VtsFuzzTestResultParser resultParser = new VtsFuzzTestResultParser(runName, listener);
-        return resultParser;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void run(ITestInvocationListener listener) throws DeviceNotAvailableException {
-        if (mDevice == null) {
-            throw new IllegalArgumentException("Device has not been set");
-        }
-
-        if (!mDevice.doesFileExist(mFuzzerBinaryPath)) {
-            Log.w(LOG_TAG, String.format("Could not find fuzzer binary file %s in %s!",
-                    mFuzzerBinaryPath, mDevice.getSerialNumber()));
-            return;
-        }
-
-        IShellOutputReceiver resultParser = createResultParser(mTargetComponentPath, listener);
-        String flags = getAllVtsFuzzTestFlags();
-        Log.i(LOG_TAG, String.format("Running fuzzer '%s %s' on %s",
-                mFuzzerBinaryPath, flags, mDevice.getSerialNumber()));
-        runTest(mDevice, resultParser, mFuzzerBinaryPath, flags);
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/tradefed/testtype/VtsFuzzTestResultParser.java b/harnesses/tradefed/src/com/android/tradefed/testtype/VtsFuzzTestResultParser.java
deleted file mode 100644
index edb0b6c..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/testtype/VtsFuzzTestResultParser.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * Copyright (C) 2016 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.
- */
-
-package com.android.tradefed.testtype;
-
-import com.android.ddmlib.IShellOutputReceiver;
-import com.android.ddmlib.Log;
-import com.android.ddmlib.MultiLineReceiver;
-import com.android.ddmlib.testrunner.ITestRunListener;
-import com.android.tradefed.result.ITestLifeCycleReceiver;
-import com.android.tradefed.result.TestDescription;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Map;
-
-/**
- * Parses the 'raw output mode' results of VTS fuzz tests that run from shell, and informs
- * a ITestRunListener of the results.
- * <p>Sample format of output expected:
- *
- * <pre>
- * ...
- * [  PASSED  ]
- * </pre>
- *
- * If a fuzz test run finds a problem, the process crashes or hangs and thus [  PASSED  ] is not
- * printed. All other lines are ignored.
- */
-public class VtsFuzzTestResultParser extends MultiLineReceiver {
-    private static final String LOG_TAG = "GTestResultParser";
-
-    // Variables to keep track of state
-    private int mNumTestsRun = 0;
-    private int mNumTestsExpected = 1;
-    private int mTotalNumberOfTestFailed = 0;
-    private final String mTestRunName;
-    private final Collection<ITestLifeCycleReceiver> mTestListeners;
-    private TestDescription mTestId;
-
-    /** True if start of test has already been reported to listener. */
-    private boolean mTestRunStartReported = false;
-
-    /** Stack data structure to keep the logs. */
-    private StringBuilder mStackTrace = null;
-
-    /** True if current test run has been canceled by user. */
-    private boolean mIsCancelled = false;
-
-    /** Prefixes used to demarcate and identify output. */
-    private static class Prefixes {
-        @SuppressWarnings("unused")
-        private static final String PASSED_MARKER = "[  PASSED  ]";
-        private static final String FAILED_MARKER = "[  FAILED  ]";
-        private static final String TIMEOUT_MARKER = "[ TIMEOUT  ]";
-    }
-
-    /**
-     * Creates the GTestResultParser.
-     *
-     * @param testRunName the test run name to provide to
-     *            {@link ITestRunListener#testRunStarted(String, int)}
-     * @param listeners informed of test results as the tests are executing
-     */
-    public VtsFuzzTestResultParser(
-            String testRunName, Collection<ITestLifeCycleReceiver> listeners) {
-        mTestRunName = testRunName;
-        mTestListeners = new ArrayList<>(listeners);
-        mStackTrace = new StringBuilder();
-    }
-
-    /**
-     * Creates the GTestResultParser for a single listener.
-     *
-     * @param testRunName the test run name to provide to
-     *            {@link ITestRunListener#testRunStarted(String, int)}
-     * @param listener informed of test results as the tests are executing
-     */
-    public VtsFuzzTestResultParser(String testRunName, ITestLifeCycleReceiver listener) {
-        mTestRunName = testRunName;
-        mTestListeners = new ArrayList<>(1);
-        mTestListeners.add(listener);
-        mStackTrace = new StringBuilder();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void processNewLines(String[] lines) {
-        if (!mTestRunStartReported) {
-            // current test results are cleared out after every complete test run,
-            // if it's not null, assume the last test caused this and report as a test failure
-            mTestId = new TestDescription("fuzzer", mTestRunName);
-            for (ITestLifeCycleReceiver listener : mTestListeners) {
-                listener.testRunStarted(mTestRunName, mNumTestsExpected);
-            }
-            mTestRunStartReported = true;
-        }
-
-        for (String line : lines) {
-            if (line.contains(Prefixes.PASSED_MARKER)) {
-                doTestEnded(true);
-            } else if (line.contains(Prefixes.FAILED_MARKER)
-                    || line.contains(Prefixes.TIMEOUT_MARKER)) {
-                doTestEnded(false);
-            } else {
-                mStackTrace.append(line + "\r\n");
-            }
-            Log.v(LOG_TAG, line);
-        }
-    }
-
-    /**
-     * Helper method to do the work necessary when a test has ended.
-     *
-     * @param testPassed Indicates whether the test passed or failed (set to true if passed, false
-     *          if failed)
-     */
-    private void doTestEnded(boolean testPassed) {
-        if (!testPassed) {  // test failed
-            for (ITestLifeCycleReceiver listener : mTestListeners) {
-                listener.testFailed(mTestId, mStackTrace.toString());
-            }
-            ++mTotalNumberOfTestFailed;
-        }
-
-        // For all cases (pass or fail), we ultimately need to report test has ended
-        for (ITestLifeCycleReceiver listener : mTestListeners) {
-            Map <String, String> emptyMap = Collections.emptyMap();
-            listener.testEnded(mTestId, emptyMap);
-        }
-
-        ++mNumTestsRun;
-    }
-
-    /**
-     * Process an instrumentation run failure
-     *
-     * @param errorMsg The message to output about the nature of the error
-     */
-    private void handleTestRunFailed(String errorMsg) {
-        errorMsg = (errorMsg == null ? "Unknown error" : errorMsg);
-        Log.i(LOG_TAG, String.format("Test run failed: %s", errorMsg));
-
-        // If there was any stack trace during the test run, append it to the "test failed"
-        // error message so we have an idea of what caused the crash/failure.
-        Map<String, String> emptyMap = Collections.emptyMap();
-        for (ITestLifeCycleReceiver listener : mTestListeners) {
-            listener.testFailed(mTestId, mStackTrace.toString());
-            listener.testEnded(mTestId, emptyMap);
-        }
-
-        // Report the test run failed
-        for (ITestLifeCycleReceiver listener : mTestListeners) {
-            listener.testRunFailed(errorMsg);
-        }
-    }
-
-    /**
-     * Called by parent when adb session is complete.
-     */
-    @Override
-    public void done() {
-        super.done();
-        if (mNumTestsRun < mNumTestsExpected) {
-            handleTestRunFailed(String.format("Test run failed. Expected %d tests, received %d",
-                    mNumTestsExpected, mNumTestsRun));
-        }
-    }
-
-    /**
-     * Returns true if test run canceled.
-     *
-     * @see IShellOutputReceiver#isCancelled()
-     */
-    @Override
-    public boolean isCancelled() {
-        return mIsCancelled;
-    }
-
-    /**
-     * Requests cancellation of test run.
-     */
-    public void cancel() {
-        mIsCancelled = true;
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/tradefed/testtype/VtsMultiDeviceTest.java b/harnesses/tradefed/src/com/android/tradefed/testtype/VtsMultiDeviceTest.java
deleted file mode 100644
index f7a579c..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/testtype/VtsMultiDeviceTest.java
+++ /dev/null
@@ -1,1524 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-
-package com.android.tradefed.testtype;
-
-import com.android.annotations.VisibleForTesting;
-import com.android.compatibility.common.tradefed.build.CompatibilityBuildHelper;
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.config.Option;
-import com.android.tradefed.config.OptionClass;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.invoker.IInvocationContext;
-import com.android.tradefed.log.LogUtil.CLog;
-import com.android.tradefed.metrics.proto.MetricMeasurement.Metric;
-import com.android.tradefed.result.FileInputStreamSource;
-import com.android.tradefed.result.ITestInvocationListener;
-import com.android.tradefed.result.LogDataType;
-import com.android.tradefed.result.TestDescription;
-import com.android.tradefed.targetprep.VtsCoveragePreparer;
-import com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer;
-import com.android.tradefed.util.CommandResult;
-import com.android.tradefed.util.CommandStatus;
-import com.android.tradefed.util.FileUtil;
-import com.android.tradefed.util.JsonUtil;
-import com.android.tradefed.util.OutputUtil;
-import com.android.tradefed.util.StreamUtil;
-import com.android.tradefed.util.VtsDashboardUtil;
-import com.android.tradefed.util.VtsPythonRunnerHelper;
-import com.android.tradefed.util.VtsVendorConfigFileUtil;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.TreeSet;
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-/**
- * A Test that runs a vts multi device test package (part of Vendor Test Suite, VTS10) on given
- * device.<p>
- * TODO: Complete unit tests
- */
-@OptionClass(alias = "vtsmultidevicetest")
-public class VtsMultiDeviceTest
-        implements IDeviceTest, IRemoteTest, ITestFilterReceiver, IRuntimeHintProvider,
-                   ITestCollector, IBuildReceiver, IAbiReceiver, IInvocationContextReceiver {
-    static final String ACTS_TEST_MODULE = "ACTS_TEST_MODULE";
-    static final String ADAPTER_ACTS_PATH = "vts/runners/adapters/acts/acts_adapter";
-    static final String ANDROIDDEVICE = "AndroidDevice";
-    static final String BUILD = "build";
-    static final String BUILD_ID = "build_id";
-    static final String BUILD_TARGET = "build_target";
-    static final String COVERAGE_PROPERTY = "ro.vts.coverage";
-    static final String DATA_FILE_PATH = "data_file_path";
-    static final String LOG_PATH = "log_path";
-    static final String LOG_SEVERITY = "log_severity";
-    static final String NAME = "name";
-    static final String SERIAL = "serial";
-    static final String TESTMODULE = "TestModule";
-    static final String TEST_BED = "test_bed";
-    static final String TEST_PLAN_REPORT_FILE = "TEST_PLAN_REPORT_FILE";
-    static final String TEST_SUITE = "test_suite";
-    static final String TEST_TIMEOUT = "test_timeout";
-    static final String ABI_NAME = "abi_name";
-    static final String ABI_BITNESS = "abi_bitness";
-    static final String SKIP_ON_32BIT_ABI = "skip_on_32bit_abi";
-    static final String SKIP_ON_64BIT_ABI = "skip_on_64bit_abi";
-    static final String SHELL_DEFAULT_NOHUP = "shell_default_nohup";
-    static final String SKIP_IF_THERMAL_THROTTLING = "skip_if_thermal_throttling";
-    static final String DISABLE_CPU_FREQUENCY_SCALING = "disable_cpu_frequency_scaling";
-    static final String DISABLE_FRAMEWORK = "DISABLE_FRAMEWORK";
-    static final String STOP_NATIVE_SERVERS = "STOP_NATIVE_SERVERS";
-    static final String RUN_32BIT_ON_64BIT_ABI = "run_32bit_on_64bit_abi";
-    static final String CONFIG_FILE_EXTENSION = ".config";
-    static final String INCLUDE_FILTER = "include_filter";
-    static final String EXCLUDE_FILTER = "exclude_filter";
-    static final String EXCLUDE_OVER_INCLUDE = "exclude_over_include";
-    static final String BINARY_TEST_SOURCE = "binary_test_source";
-    static final String BINARY_TEST_WORKING_DIRECTORY = "binary_test_working_directory";
-    static final String BINARY_TEST_ENVP = "binary_test_envp";
-    static final String BINARY_TEST_ARGS = "binary_test_args";
-    static final String BINARY_TEST_LD_LIBRARY_PATH = "binary_test_ld_library_path";
-    static final String BINARY_TEST_PROFILING_LIBRARY_PATH = "binary_test_profiling_library_path";
-    @Deprecated static final String BINARY_TEST_DISABLE_FRAMEWORK = "binary_test_disable_framework";
-    @Deprecated
-    static final String BINARY_TEST_STOP_NATIVE_SERVERS = "binary_test_stop_native_servers";
-    static final String BINARY_TEST_TYPE_GTEST = "gtest";
-    static final String BINARY_TEST_TYPE_LLVMFUZZER = "llvmfuzzer";
-    static final String BINARY_TEST_TYPE_HAL_HIDL_GTEST = "hal_hidl_gtest";
-    static final String BINARY_TEST_TYPE_HAL_HIDL_REPLAY_TEST = "hal_hidl_replay_test";
-    static final String BINARY_TEST_TYPE_HOST_BINARY_TEST = "host_binary_test";
-    static final String BUG_REPORT_ON_FAILURE = "BUG_REPORT_ON_FAILURE";
-    static final String COLLECT_TESTS_ONLY = "collect_tests_only";
-    static final String CONFIG_STR = "CONFIG_STR";
-    static final String CONFIG_INT = "CONFIG_INT";
-    static final String CONFIG_BOOL = "CONFIG_BOOL";
-    static final String LOGCAT_ON_FAILURE = "LOGCAT_ON_FAILURE";
-    static final String ENABLE_COVERAGE = "enable_coverage";
-    static final String EXCLUDE_COVERAGE_PATH = "exclude_coverage_path";
-    static final String ENABLE_LOG_UPLOADING = "enable_log_uploading";
-    static final String ENABLE_PROFILING = "enable_profiling";
-    static final String PROFILING_ARG_VALUE = "profiling_arg_value";
-    static final String ENABLE_SANCOV = "enable_sancov";
-    static final String GTEST_BATCH_MODE = "gtest_batch_mode";
-    static final String SAVE_TRACE_FIEL_REMOTE = "save_trace_file_remote";
-    static final String OUTPUT_COVERAGE_REPORT = "output_coverage_report";
-    static final String COVERAGE_REPORT_PATH = "coverage_report_path";
-    static final String GLOBAL_COVERAGE = "global_coverage";
-    static final String LTP_NUMBER_OF_THREADS = "ltp_number_of_threads";
-    static final String MAX_RETRY_COUNT = "max_retry_count";
-    static final String MOBLY_TEST_MODULE = "MOBLY_TEST_MODULE";
-    static final String NATIVE_SERVER_PROCESS_NAME = "native_server_process_name";
-    static final String PASSTHROUGH_MODE = "passthrough_mode";
-    static final String PRECONDITION_HWBINDER_SERVICE = "precondition_hwbinder_service";
-    static final String PRECONDITION_FEATURE = "precondition_feature";
-    static final String PRECONDITION_FILE_PATH_PREFIX = "precondition_file_path_prefix";
-    static final String PRECONDITION_FIRST_API_LEVEL = "precondition_first_api_level";
-    static final String PRECONDITION_LSHAL = "precondition_lshal";
-    static final String PRECONDITION_SYSPROP = "precondition_sysprop";
-    static final String PRECONDITION_VINTF = "precondition_vintf";
-    static final String ENABLE_SYSTRACE = "enable_systrace";
-    static final String HAL_HIDL_REPLAY_TEST_TRACE_PATHS = "hal_hidl_replay_test_trace_paths";
-    static final String HAL_HIDL_PACKAGE_NAME = "hal_hidl_package_name";
-    static final String REPORT_MESSAGE_FILE_NAME = "report_proto.msg";
-    static final String RUN_AS_VTS_SELF_TEST = "run_as_vts_self_test";
-    static final String RUN_AS_COMPLIANCE_TEST = "run_as_compliance_test";
-    static final String SYSTRACE_PROCESS_NAME = "systrace_process_name";
-    static final String TEMPLATE_BINARY_TEST_PATH = "vts/testcases/template/binary_test/binary_test";
-    static final String TEMPLATE_GTEST_BINARY_TEST_PATH = "vts/testcases/template/gtest_binary_test/gtest_binary_test";
-    static final String TEMPLATE_LLVMFUZZER_TEST_PATH = "vts/testcases/template/llvmfuzzer_test/llvmfuzzer_test";
-    static final String TEMPLATE_MOBLY_TEST_PATH = "vts/testcases/template/mobly/mobly_test";
-    static final String TEMPLATE_HAL_HIDL_GTEST_PATH = "vts/testcases/template/hal_hidl_gtest/hal_hidl_gtest";
-    static final String TEMPLATE_HAL_HIDL_REPLAY_TEST_PATH = "vts/testcases/template/hal_hidl_replay_test/hal_hidl_replay_test";
-    static final String TEMPLATE_HOST_BINARY_TEST_PATH = "vts/testcases/template/host_binary_test/host_binary_test";
-    static final String TEST_RUN_SUMMARY_FILE_NAME = "test_run_summary.json";
-    static final float DEFAULT_TARGET_VERSION = -1;
-    static final String DEFAULT_TESTCASE_CONFIG_PATH =
-            "vts/tools/vts-tradefed/res/default/DefaultTestCase.runner_conf";
-
-    private ITestDevice mDevice = null;
-    private IAbi mAbi = null;
-
-    @Option(name = "test-timeout",
-            description = "The amount of time (in milliseconds) for a test invocation. "
-                    + "If the test cannot finish before timeout, it is interrupted. As some "
-                    + "classes generate test cases during setup, they can use the given timeout "
-                    + "value for each generated test set.",
-            isTimeVal = true)
-    private long mTestTimeout = 1000 * 60 * 3;
-
-    @Option(name = "max-test-timeout",
-            description = "The maximum amount of time (in milliseconds) for a test invocation. "
-                    + "This timeout value doesn't change with number of generated test sets.",
-            isTimeVal = true)
-    private long mMaxTestTimeout = 1000 * 60 * 60 * 3;
-
-    @Option(name = "test-module-name",
-        description = "The name for a test module.")
-    private String mTestModuleName = null;
-
-    @Option(name = "test-case-path",
-            description = "The path for test case.")
-    private String mTestCasePath = null;
-
-    @Option(name = "test-case-path-type",
-            description = "The type of test case path ('module' by default or 'file').")
-    private String mTestCasePathType = null;
-
-    @Option(name = "test-config-path",
-            description = "The path for test case config file.")
-    private String mTestConfigPath = null;
-
-    @Option(name = "precondition-hwbinder-service",
-            description = "The name of a HW binder service needed to run the test.")
-    private String mPreconditionHwBinderServiceName = null;
-
-    @Option(name = "precondition-feature",
-        description = "The name of a `pm`-listable feature needed to run the test.")
-    private String mPreconditionFeature = null;
-
-    @Option(name = "precondition-file-path-prefix",
-            description = "The path prefix of a target-side file needed to run the test."
-                    + "Format of tags:"
-                    + "    <source>: source without tag."
-                    + "    <tag>::<source>: <tag> specifies bitness of testcase: _32bit or _64bit"
-                    + "    Note: multiple sources are ANDed"
-                    + "Format of each source string:"
-                    + "    <source>: absolute path of file prefix on device")
-    private Collection<String> mPreconditionFilePathPrefix = new ArrayList<>();
-
-    @Option(name = "precondition-first-api-level",
-            description = "The lowest first API level required to run the test.")
-    private int mPreconditionFirstApiLevel = 0;
-
-    @Option(name = "precondition-lshal",
-        description = "The name of a `lshal`-listable feature needed to run the test.")
-    private String mPreconditionLshal = null;
-
-    @Option(name = "precondition-sysprop",
-            description = "The name=value for a system property configuration that needs "
-                    + "to be met to run the test.")
-    private String mPreconditionSysProp = null;
-
-    @Option(name = "precondition-vintf",
-            description = "The full name of a HAL specified in vendor/manifest.xml and "
-                    + "needed to run the test (e.g., android.hardware.graphics.mapper@2.0). "
-                    + "this can override precondition-lshal option.")
-    private String mPreconditionVintf = null;
-
-    @Option(name = "enable-dashboard-uploading",
-            description = "Enables the runner's dashboard result uploading feature.")
-    private boolean mEnableDashboardUploading = true;
-
-    @Option(name = "enable-log-uploading",
-            description = "Enables the runner's log uploading feature.")
-    private boolean mEnableLogUploading = false;
-
-    @Option(name = "include-filter",
-            description = "The positive filter of the test names to run.")
-    private Set<String> mIncludeFilters = new TreeSet<>();
-
-    @Option(name = "exclude-filter",
-            description = "The negative filter of the test names to run.")
-    private Set<String> mExcludeFilters = new TreeSet<>();
-
-    @Option(name = "exclude-over-include",
-            description = "The negative filter of the test names to run.")
-    private boolean mExcludeOverInclude = false;
-
-    @Option(name = "runtime-hint", description = "The hint about the test's runtime.",
-            isTimeVal = true)
-    private long mRuntimeHint = 60000;  // 1 minute
-
-    @Option(name = "enable-profiling", description = "Enable profiling for the tests.")
-    private boolean mEnableProfiling = false;
-
-    @Option(name = "profiling-arg-value", description = "Whether to profile for arg value.")
-    private boolean mProfilingArgValue = false;
-
-    @Option(name = "save-trace-file-remote",
-            description = "Whether to save the trace file in remote storage.")
-    private boolean mSaveTraceFileRemote = false;
-
-    @Option(name = "enable-systrace", description = "Enable systrace for the tests.")
-    private boolean mEnableSystrace = false;
-
-    @Option(name = "enable-coverage",
-            description = "Enable coverage for the tests. In order for coverage to be measured, " +
-                          "ro.vts.coverage system must have value \"1\" to indicate the target " +
-                          "build is coverage instrumented.")
-    private boolean mEnableCoverage = true;
-
-    @Option(name = "global-coverage", description = "True to measure coverage for entire test, "
-                    + "measure coverage for each test case otherwise. Currently, only global "
-                    + "coverage is supported for binary tests")
-    private boolean mGlobalCoverage = true;
-
-    @Option(name = "enable-sancov",
-            description = "Enable sanitizer coverage for the tests. In order for coverage to be "
-                    + "measured, the device must be a sancov build with its build info and "
-                    + "unstripped binaries available to the sancov preparer class.")
-    private boolean mEnableSancov = true;
-
-    @Option(name = "output-coverage-report", description = "Whether to store raw coverage report.")
-    private boolean mOutputCoverageReport = false;
-
-    // Another design option is to parse a string or use enum for host preference on BINDER,
-    // PASSTHROUGH and DEFAULT(which is BINDER). Also in the future, we might want to deal with
-    // the case of target preference on PASSTHROUGH (if host does not specify to use BINDER mode).
-    @Option(name = "passthrough-mode", description = "Set getStub to use passthrough mode. "
-        + "Value true means use passthrough mode if available; false for binderized mode if "
-        + "available. Default is false")
-    private boolean mPassthroughMode = false;
-
-    @Option(name = "ltp-number-of-threads",
-            description = "Number of threads to run the LTP test cases. "
-                    + "0 means using number of avaiable CPU threads.")
-    private int mLtpNumberOfThreads = -1;
-
-    @Option(name = "shell-default-nohup",
-            description = "Whether to by default use nohup for shell commands.")
-    private boolean mShellDefaultNohup = false;
-
-    @Option(name = "skip-on-32bit-abi", description = "Whether to skip tests on 32bit ABI.")
-    private boolean mSkipOn32BitAbi = false;
-
-    @Option(name = "skip-on-64bit-abi", description = "Whether to skip tests on 64bit ABI.")
-    private boolean mSkipOn64BitAbi = false;
-
-    @Option(name = "skip-if-thermal-throttling",
-            description = "Whether to skip tests if target device suffers from thermal throttling.")
-    private boolean mSkipIfThermalThrottling = false;
-
-    @Option(name = "disable-cpu-frequency-scaling",
-            description = "Whether to disable cpu frequency scaling for test.")
-    private boolean mDisableCpuFrequencyScaling = true;
-
-    @Option(name = "run-32bit-on-64bit-abi",
-            description = "Whether to run 32bit tests on 64bit ABI.")
-    private boolean mRun32bBitOn64BitAbi = false;
-
-    @Option(name = "binary-test-source",
-            description = "Binary test source paths relative to vts testcase directory on host."
-                    + "Format of tags:"
-                    + "    <source>: source without tag."
-                    + "    <tag>::<source>: source with tag. Can be used to separate 32bit and 64"
-                    + "            bit tests with same file name."
-                    + "    <tag1>::<source1>, <tag1>::<source2>, <tag2>::<source3>: multiple"
-                    + "            sources connected by comma. White spaces in-between"
-                    + "            will be ignored."
-                    + "Format of each source string:"
-                    + "    <source file>: push file and create test case."
-                    + "            Source is relative path of source file under vts's testcases"
-                    + "            folder. Source file will be pushed to working directory"
-                    + "            discarding original directory structure, and test cases will"
-                    + "            be created using the pushed file."
-                    + "    <source file>-><destination file>: push file and create test case."
-                    + "            Destination path is absolute path on device. Test cases will"
-                    + "            be created using the pushed file."
-                    + "    <source file>->: push file only."
-                    + "            Push the source file to its' tag's corresponding"
-                    + "            working directory. Test case will not be created on"
-                    + "            this file. This is equivalent to but simpler than specifying a"
-                    + "            working directory for the tag and use VtsFilePusher to push the"
-                    + "            file to the directory."
-                    + "    -><destination file>: create test case only."
-                    + "            Destination is absolute device side path."
-                    + "    Note: each path in source string can be a directory. However, the"
-                    + "          default binary test runner and gtest binary test runner does not"
-                    + "          support creating test cases from a directory. You will need to"
-                    + "          override the binary test runner's CreateTestCase method in python."
-                    + "    If you wish to push a source file to a specific destination and not"
-                    + "    create a test case from it, please use VtsFilePusher.")
-    private Collection<String> mBinaryTestSource = new ArrayList<>();
-
-    @Option(name = "binary-test-working-directory", description = "Working directories for binary "
-                    + "tests. Tags can be added to the front of each directory using '::' as delimiter. "
-                    + "However, each tag should only has one working directory. This option is optional for "
-                    + "binary tests. If not specified, different directories will be used for files with "
-                    + "different tags.")
-    private Collection<String> mBinaryTestWorkingDirectory = new ArrayList<>();
-
-    @Option(name = "binary-test-envp", description = "Additional environment path for binary "
-        + "tests. Tags can be added to the front of each directory using '::' as delimiter. "
-        + "There can be multiple instances of binary-test-envp for a same tag, which will "
-        + "later automatically be combined.")
-    private Collection<String> mBinaryTestEnvp = new ArrayList<>();
-
-    @Option(name = "binary-test-args", description = "Additional args or flags for binary "
-        + "tests. Tags can be added to the front of each directory using '::' as delimiter. "
-        + "There can be multiple instances of binary-test-args for a same tag, which will "
-        + "later automatically be combined.")
-    private Collection<String> mBinaryTestArgs = new ArrayList<>();
-
-    @Option(name = "binary-test-ld-library-path", description = "LD_LIBRARY_PATH for binary "
-                    + "tests. Tags can be added to the front of each instance using '::' as delimiter. "
-                    + "Multiple directories can be added under a same tag using ':' as delimiter. "
-                    + "There can be multiple instances of ld-library-path for a same tag, which will "
-                    + "later automatically be combined using ':' as delimiter. Paths without a tag "
-                    + "will only used for binaries without tag. This option is optional for binary tests.")
-    private Collection<String> mBinaryTestLdLibraryPath = new ArrayList<>();
-
-    @Option(name = "binary-test-profiling-library-path", description = "Path to lookup and load "
-            + "profiling libraries for tests with profiling enabled. Tags can be added to the "
-            + "front of each directory using '::' as delimiter. Only one directory could be "
-            + "specified for the same tag. This option is optional for binary tests. If not "
-            + "specified, default directories will be used for files with different tags.")
-    private Collection<String> mBinaryTestProfilingLibraryPath = new ArrayList<>();
-
-    @Deprecated
-    @Option(name = "binary-test-disable-framework",
-            description = "Adb stop/start before/after test.")
-    private boolean mBinaryTestDisableFramework = false;
-
-    @Deprecated
-    @Option(name = "binary-test-stop-native-servers",
-            description = "Set to stop all properly configured native servers during the testing.")
-    private boolean mBinaryTestStopNativeServers = false;
-
-    @Option(name = "disable-framework", description = "Adb stop/start before/after test.")
-    private boolean mDisableFramework = false;
-
-    @Option(name = "stop-native-servers",
-            description = "Set to stop all properly configured native servers during the testing.")
-    private boolean mStopNativeServers = false;
-
-    @Option(name = "bug-report-on-failure",
-            description = "To catch bugreport zip file at the end of failed test cases. "
-                    + "If set to true, a report will be caught through adh shell command at the "
-                    + "end of each failed test cases.")
-    private boolean mBugReportOnFailure = false;
-
-    @Option(name = "logcat-on-failure",
-            description = "To catch logcat from each buffers at the end of failed test cases. "
-                    + "If set to true, a report will be caught through adh shell command at the "
-                    + "end of each failed test cases.")
-    private boolean mLogcatOnFailure = true;
-
-    @Option(name = "native-server-process-name",
-            description = "Name of a native server process. The runner checks to make sure "
-                    + "each specified native server process is not running after the framework stop.")
-    private Collection<String> mNativeServerProcessName = new ArrayList<>();
-
-    @Option(name = "binary-test-type", description = "Binary test type. Only specify this when "
-            + "running an extended binary test without a python test file. Available options: gtest")
-    private String mBinaryTestType = "";
-
-    @Option(name = "hal-hidl-replay-test-trace-path", description = "The path of a trace file to replay.")
-    private Collection<String> mHalHidlReplayTestTracePaths = new ArrayList<>();
-
-    @Option(name = "hal-hidl-package-name", description = "The name of a target HIDL HAL package "
-            + "e.g., 'android.hardware.light@2.0'.")
-    private String mHalHidlPackageName = null;
-
-    @Option(name = "systrace-process-name", description = "Process name for systrace.")
-    private String mSystraceProcessName = null;
-
-    @Option(name = "collect-tests-only",
-            description = "Only invoke setUpClass, generate*, and tearDownClass to collect list "
-                    + "of applicable test cases. All collected tests pass without being executed.")
-    private boolean mCollectTestsOnly = false;
-
-    @Option(name = "gtest-batch-mode", description = "Run Gtest binaries in batch mode.")
-    private boolean mGtestBatchMode = false;
-
-    @Option(name = "log-severity",
-            description = "Set the log severity level."
-                    + "Note, this is a legacy option and does not affect how log files are saved."
-                    + "By setting it to INFO, it will only make python DEBUG log not showing on "
-                    + "console even if TradeFed log display level is set to DEBUG."
-                    + "Therefore, it is not recommemded to set or modify this value in the current"
-                    + "implementation.")
-    private String mLogSeverity = "DEBUG";
-
-    @Option(name = "run-as-vts-self-test",
-            description = "Run the module as vts-selftest. "
-                    + "When the value is set to true, only setUpClass and tearDownClass function "
-                    + "of the module will be called to ensure the framework is free of bug. "
-                    + "Note that exception in tearDownClass will not be reported as failure.")
-    private boolean mRunAsVtsSelfTest = false;
-
-    @Option(name = "exclude-coverage-path",
-            description = "The coverage path that should be excluded in results. "
-                    + "Used only when enable-coverage is true.")
-    private Collection<String> mExcludeCoveragePath = new ArrayList<>();
-
-    @Option(name = "mobly-test-module",
-            description = "Mobly test module name. "
-                    + "If this value is specified, VTS will use mobly test template "
-                    + "with the configurations."
-                    + "Multiple values can be added by repeatly using this option.")
-    private Collection<String> mMoblyTestModule = new ArrayList<>();
-
-    @Option(name = "acts-test-module",
-            description = "Acts test module name. "
-                    + "If this value is specified, VTS will use acts test adapter "
-                    + "with the configurations."
-                    + "Multiple values can be added by repeatly using this option.")
-    private String mActsTestModule = null;
-
-    @Option(name = "config-str",
-            description = "Key-value map of custom config string. "
-                    + "The map will be passed directly to python runner and test module. "
-                    + "Only one value per key is stored."
-                    + "If the value for the same key is set multiple times, only the last value is "
-                    + "used.")
-    private TreeMap<String, String> mConfigStr = new TreeMap<>();
-
-    @Option(name = "config-int",
-            description = "Key-value map of custom config integer. "
-                    + "The map will be passed directly to python runner and test module. "
-                    + "Only one value per key is stored."
-                    + "If the value for the same key is set multiple times, only the last value is "
-                    + "used.")
-    private TreeMap<String, Integer> mConfigInt = new TreeMap<>();
-
-    @Option(name = "config-bool",
-            description = "Key-value map of custom config boolean. "
-                    + "The map will be passed directly to python runner and test module. "
-                    + "Only one value per key is stored."
-                    + "If the value for the same key is set multiple times, only the last value is "
-                    + "used.")
-    private TreeMap<String, Boolean> mConfigBool = new TreeMap<>();
-
-    @Option(name = "max-retry-count",
-            description = "The max number of retries. Currerntly done by VTS Python runner in "
-                    + "a test case granularity.")
-    private int mMaxRetryCount = 0;
-
-    private IBuildInfo mBuildInfo = null;
-    private String mRunName = null;
-    // the path to android-vts10/testcases
-    private String mTestCaseDir = "./";
-
-    private VtsVendorConfigFileUtil configReader = null;
-    private IInvocationContext mInvocationContext = null;
-    private OutputUtil mOutputUtil = null;
-    protected CompatibilityBuildHelper mBuildHelper = null;
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void setInvocationContext(IInvocationContext context) {
-        mInvocationContext = context;
-        setDevice(context.getDevices().get(0));
-        setBuild(context.getBuildInfos().get(0));
-    }
-
-    /**
-     * @return the mInvocationContext
-     */
-    public IInvocationContext getInvocationContext() {
-        return mInvocationContext;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void setDevice(ITestDevice device) {
-        mDevice = device;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public ITestDevice getDevice() {
-        return mDevice;
-    }
-
-    public void setTestCasePath(String path){
-        mTestCasePath = path;
-    }
-
-    public void setTestConfigPath(String path){
-        mTestConfigPath = path;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void addIncludeFilter(String filter) {
-        mIncludeFilters.add(cleanFilter(filter));
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void addAllIncludeFilters(Set<String> filters) {
-        for (String filter : filters) {
-            mIncludeFilters.add(cleanFilter(filter));
-        }
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void clearIncludeFilters() {
-        mIncludeFilters.clear();
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Set<String> getIncludeFilters() {
-        return mIncludeFilters;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void addExcludeFilter(String filter) {
-        mExcludeFilters.add(cleanFilter(filter));
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void addAllExcludeFilters(Set<String> filters) {
-        for (String filter : filters) {
-            mExcludeFilters.add(cleanFilter(filter));
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public void clearExcludeFilters() {
-        mExcludeFilters.clear();
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public Set<String> getExcludeFilters() {
-        return mExcludeFilters;
-    }
-
-    /**
-     * Conforms filters using a {@link TestDescription} format
-     * to be recognized by the GTest executable.
-     */
-    private String cleanFilter(String filter) {
-        return filter.replace('#', '.');
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public long getRuntimeHint() {
-        return mRuntimeHint;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void setCollectTestsOnly(boolean shouldCollectTest) {
-        mCollectTestsOnly = shouldCollectTest;
-    }
-
-    /**
-     * Generate a device json object from ITestDevice object.
-     *
-     * @param device device object
-     * @throws RuntimeException
-     * @throws JSONException
-     */
-    private JSONObject generateJsonDeviceItem(ITestDevice device) throws JSONException {
-        JSONObject deviceItemObject = new JSONObject();
-        deviceItemObject.put(SERIAL, device.getSerialNumber());
-        try {
-            deviceItemObject.put("product_type", device.getProductType());
-            deviceItemObject.put("product_variant", device.getProductVariant());
-            deviceItemObject.put("build_alias", device.getBuildAlias());
-            deviceItemObject.put("build_id", device.getBuildId());
-            deviceItemObject.put("build_flavor", device.getBuildFlavor());
-        } catch (DeviceNotAvailableException e) {
-            CLog.e("Device %s not available.", device.getSerialNumber());
-            throw new RuntimeException("Failed to get device information");
-        }
-        return deviceItemObject;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @SuppressWarnings("deprecation")
-    @Override
-    public void run(ITestInvocationListener listener)
-            throws IllegalArgumentException, DeviceNotAvailableException {
-        mOutputUtil = new OutputUtil(listener);
-        mOutputUtil.setTestModuleName(mTestModuleName);
-        if (mAbi != null) {
-            mOutputUtil.setAbiName(mAbi.getName());
-        }
-
-        if (mTestCasePath == null) {
-            if (!mBinaryTestSource.isEmpty()) {
-                String template;
-                switch (mBinaryTestType) {
-                    case BINARY_TEST_TYPE_GTEST:
-                        template = TEMPLATE_GTEST_BINARY_TEST_PATH;
-                        break;
-                    case BINARY_TEST_TYPE_HAL_HIDL_GTEST:
-                        template = TEMPLATE_HAL_HIDL_GTEST_PATH;
-                        break;
-                    case BINARY_TEST_TYPE_HOST_BINARY_TEST:
-                        template = TEMPLATE_HOST_BINARY_TEST_PATH;
-                        break;
-                    default:
-                        template = TEMPLATE_BINARY_TEST_PATH;
-                }
-                CLog.d("Using default test case template at %s.", template);
-                setTestCasePath(template);
-                if (mEnableCoverage && !mGlobalCoverage) {
-                    CLog.e("Only global coverage is supported for test type %s.", mBinaryTestType);
-                    throw new RuntimeException("Failed to produce VTS runner test config");
-                }
-            } else if (mBinaryTestType.equals(BINARY_TEST_TYPE_HAL_HIDL_REPLAY_TEST)) {
-                setTestCasePath(TEMPLATE_HAL_HIDL_REPLAY_TEST_PATH);
-            } else if (mBinaryTestType.equals(BINARY_TEST_TYPE_LLVMFUZZER)) {
-                // Fuzz test don't need test-case-path.
-                setTestCasePath(TEMPLATE_LLVMFUZZER_TEST_PATH);
-            } else if (!mMoblyTestModule.isEmpty()) {
-                setTestCasePath(TEMPLATE_MOBLY_TEST_PATH);
-            } else if (mActsTestModule != null) {
-                setTestCasePath(ADAPTER_ACTS_PATH);
-            } else {
-                throw new IllegalArgumentException("test-case-path is not set.");
-            }
-        }
-
-        doRunTest(listener);
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void setBuild(IBuildInfo buildInfo) {
-        mBuildInfo = buildInfo;
-        mBuildHelper = new CompatibilityBuildHelper(mBuildInfo);
-    }
-
-    /**
-     * Populate a jsonObject with default fields.
-     * This method uses deepMergeJsonObjects method from JsonUtil to merge the default config file with the target
-     * config file. Field already defined in target config file will not be overwritten. Also, JSONArray will not be
-     * deep merged.
-     *
-     * @param jsonObject the target json object to populate
-     * @param testCaseDataDir data file path
-     * @throws IOException
-     * @throws JSONException
-     */
-    private void populateDefaultJsonFields(JSONObject jsonObject, String testCaseDataDir)
-            throws IOException, JSONException {
-        CLog.d("Populating default fields to json object from %s", DEFAULT_TESTCASE_CONFIG_PATH);
-        String content =
-                FileUtil.readStringFromFile(new File(mTestCaseDir, DEFAULT_TESTCASE_CONFIG_PATH));
-        JSONObject defaultJsonObject = new JSONObject(content);
-
-        JsonUtil.deepMergeJsonObjects(jsonObject, defaultJsonObject);
-    }
-
-    /**
-     * Derive mRunName from module name or test paths.
-     *
-     * @return the derived mRunName.
-     * @throws RuntimeException if mTestModuleName, mTestConfigPath, and mTestCasePath are null.
-     */
-    private String deriveRunName() throws RuntimeException {
-        if (mRunName != null) {
-            return mRunName;
-        }
-
-        if (mTestModuleName != null) {
-            mRunName = mTestModuleName;
-        } else {
-            CLog.w("--test-module-name not set (not recommended); deriving automatically");
-            if (mTestConfigPath != null) {
-                mRunName = new File(mTestConfigPath).getName();
-                mRunName = mRunName.replace(CONFIG_FILE_EXTENSION, "");
-            } else if (mTestCasePath != null) {
-                mRunName = new File(mTestCasePath).getName();
-            } else {
-                throw new RuntimeException(
-                        "Failed to derive test module name; use --test-module-name option");
-            }
-        }
-        return mRunName;
-    }
-
-    /**
-     * This method reads the provided VTS runner test json config, adds or updates some of its
-     * fields (e.g., to add build info and device serial IDs), and returns the updated json object.
-     * This method calls populateDefaultJsonFields to populate the config JSONObject if the config file is missing
-     * or some required fields is missing from the JSONObject. If test name is not specified, this method
-     * will use the config file's file name file without extension as test name. If config file is missing, this method
-     * will use the test case's class name as test name.
-     *
-     * @param log_path the path of a directory to store the VTS runner logs.
-     * @return the updated JSONObject as the new test config.
-     */
-    protected void updateVtsRunnerTestConfig(JSONObject jsonObject)
-            throws IOException, JSONException {
-        configReader = new VtsVendorConfigFileUtil();
-        if (configReader.LoadVendorConfig(mBuildInfo)) {
-            JSONObject vendorConfigJson = configReader.GetVendorConfigJson();
-            if (vendorConfigJson != null) {
-                JsonUtil.deepMergeJsonObjects(jsonObject, vendorConfigJson);
-            }
-        }
-
-        CLog.d("Load original test config %s %s", mTestCaseDir, mTestConfigPath);
-        String content = null;
-
-        if (mTestConfigPath != null) {
-            content = FileUtil.readStringFromFile(
-                    new File(Paths.get(mTestCaseDir, mTestConfigPath).toString()));
-            CLog.d("Loaded original test config %s", content);
-            if (content != null) {
-                JsonUtil.deepMergeJsonObjects(jsonObject, new JSONObject(content));
-            }
-        }
-
-        populateDefaultJsonFields(jsonObject, mTestCaseDir);
-        CLog.d("Built a Json object using the loaded original test config");
-
-        JSONArray deviceArray = new JSONArray();
-
-        boolean coverageBuild = false;
-        boolean sancovBuild = false;
-
-        boolean first_device = true;
-        for (ITestDevice device : mInvocationContext.getDevices()) {
-            JSONObject deviceJson = generateJsonDeviceItem(device);
-            try {
-                String coverageProperty = device.getProperty(COVERAGE_PROPERTY);
-                boolean enable_coverage_for_device =
-                        coverageProperty != null && coverageProperty.equals("1");
-                if (first_device) {
-                    coverageBuild = enable_coverage_for_device;
-                    first_device = false;
-                } else {
-                    if (coverageBuild && (!enable_coverage_for_device)) {
-                        CLog.e("Device %s is not coverage build while others are.",
-                                device.getSerialNumber());
-                        throw new RuntimeException("Device build not the same.");
-                    }
-                }
-            } catch (DeviceNotAvailableException e) {
-                CLog.e("Device %s not available.", device.getSerialNumber());
-                throw new RuntimeException("Failed to get device information");
-            }
-
-            File sancovDir =
-                    mBuildInfo.getFile(VtsCoveragePreparer.getSancovResourceDirKey(device));
-            if (sancovDir != null) {
-                deviceJson.put("sancov_resources_path", sancovDir.getAbsolutePath());
-                sancovBuild = true;
-            }
-            File gcovDir = mBuildInfo.getFile(VtsCoveragePreparer.getGcovResourceDirKey(device));
-            if (gcovDir != null) {
-                deviceJson.put("gcov_resources_path", gcovDir.getAbsolutePath());
-                coverageBuild = true;
-            }
-            deviceArray.put(deviceJson);
-        }
-
-        JSONArray testBedArray = (JSONArray) jsonObject.get(TEST_BED);
-        if (testBedArray.length() == 0) {
-            JSONObject testBedItemObject = new JSONObject();
-            String testName = deriveRunName();
-            CLog.d("Setting test module name as %s", testName);
-            testBedItemObject.put(NAME, testName);
-            testBedItemObject.put(ANDROIDDEVICE, deviceArray);
-            testBedArray.put(testBedItemObject);
-        } else if (testBedArray.length() == 1) {
-            JSONObject testBedItemObject = (JSONObject) testBedArray.get(0);
-            JSONArray androidDeviceArray = (JSONArray) testBedItemObject.get(ANDROIDDEVICE);
-            int length;
-            length = (androidDeviceArray.length() > deviceArray.length())
-                    ? androidDeviceArray.length()
-                    : deviceArray.length();
-            for (int index = 0; index < length; index++) {
-                if (index < androidDeviceArray.length()) {
-                    if (index < deviceArray.length()) {
-                        JsonUtil.deepMergeJsonObjects((JSONObject) androidDeviceArray.get(index),
-                                (JSONObject) deviceArray.get(index));
-                    }
-                } else if (index < deviceArray.length()) {
-                    androidDeviceArray.put(index, deviceArray.get(index));
-                }
-            }
-        } else {
-            CLog.e("Multi-device not yet supported: %d devices requested",
-                    testBedArray.length());
-            throw new RuntimeException("Failed to produce VTS runner test config");
-        }
-        jsonObject.put(DATA_FILE_PATH, mTestCaseDir);
-        CLog.d("Added %s = %s to the Json object", DATA_FILE_PATH, mTestCaseDir);
-
-        JSONObject build = new JSONObject();
-        build.put(BUILD_ID, mBuildInfo.getBuildId());
-        build.put(BUILD_TARGET, mBuildInfo.getBuildTargetName());
-        jsonObject.put(BUILD, build);
-        CLog.d("Added %s to the Json object", BUILD);
-
-        JSONObject suite = new JSONObject();
-        suite.put(NAME, mBuildInfo.getTestTag());
-        suite.put(INCLUDE_FILTER, new JSONArray(mIncludeFilters));
-        CLog.d("Added include filter to test suite: %s", mIncludeFilters);
-        suite.put(EXCLUDE_FILTER, new JSONArray(mExcludeFilters));
-        CLog.d("Added exclude filter to test suite: %s", mExcludeFilters);
-
-        String coverageReportPath = mBuildInfo.getBuildAttributes().get("coverage_report_path");
-        if (coverageReportPath != null) {
-            jsonObject.put(OUTPUT_COVERAGE_REPORT, true);
-            CLog.d("Added %s to the Json object", OUTPUT_COVERAGE_REPORT);
-            jsonObject.put(COVERAGE_REPORT_PATH, coverageReportPath);
-            CLog.d("Added %s to the Json object", COVERAGE_REPORT_PATH);
-        }
-
-        if (mExcludeOverInclude) {
-            jsonObject.put(EXCLUDE_OVER_INCLUDE, mExcludeOverInclude);
-            CLog.d("Added %s to the Json object", EXCLUDE_OVER_INCLUDE);
-        }
-
-        jsonObject.put(TEST_SUITE, suite);
-        CLog.d("Added %s to the Json object", TEST_SUITE);
-
-        jsonObject.put(TEST_TIMEOUT, mTestTimeout);
-        CLog.i("Added %s to the Json object: %d", TEST_TIMEOUT, mTestTimeout);
-
-        if (!mLogSeverity.isEmpty()) {
-            String logSeverity = mLogSeverity.toUpperCase();
-            ArrayList<String> severityList =
-                    new ArrayList<String>(Arrays.asList("ERROR", "WARNING", "INFO", "DEBUG"));
-            if (!severityList.contains(logSeverity)) {
-                CLog.w("Unsupported log severity %s, use default log_severity:INFO instead.",
-                        logSeverity);
-                logSeverity = "INFO";
-            }
-            jsonObject.put(LOG_SEVERITY, logSeverity);
-            CLog.d("Added %s to the Json object: %s", LOG_SEVERITY, logSeverity);
-        }
-
-        if (mShellDefaultNohup) {
-            jsonObject.put(SHELL_DEFAULT_NOHUP, mShellDefaultNohup);
-            CLog.d("Added %s to the Json object", SHELL_DEFAULT_NOHUP);
-        }
-
-        if (mAbi != null) {
-            jsonObject.put(ABI_NAME, mAbi.getName());
-            CLog.d("Added %s to the Json object", ABI_NAME);
-            jsonObject.put(ABI_BITNESS, mAbi.getBitness());
-            CLog.d("Added %s to the Json object", ABI_BITNESS);
-        }
-
-        if (mSkipOn32BitAbi) {
-            jsonObject.put(SKIP_ON_32BIT_ABI, mSkipOn32BitAbi);
-            CLog.d("Added %s to the Json object", SKIP_ON_32BIT_ABI);
-        }
-
-        if (mSkipOn64BitAbi) {
-            jsonObject.put(SKIP_ON_64BIT_ABI, mSkipOn64BitAbi);
-            CLog.d("Added %s to the Json object", SKIP_ON_64BIT_ABI);
-        } else if (mRun32bBitOn64BitAbi) {
-            jsonObject.put(RUN_32BIT_ON_64BIT_ABI, mRun32bBitOn64BitAbi);
-            CLog.d("Added %s to the Json object", RUN_32BIT_ON_64BIT_ABI);
-        }
-
-        if (mSkipIfThermalThrottling) {
-            jsonObject.put(SKIP_IF_THERMAL_THROTTLING, mSkipIfThermalThrottling);
-            CLog.d("Added %s to the Json object", SKIP_IF_THERMAL_THROTTLING);
-        }
-
-        jsonObject.put(DISABLE_CPU_FREQUENCY_SCALING, mDisableCpuFrequencyScaling);
-        CLog.d("Added %s to the Json object, value: %s", DISABLE_CPU_FREQUENCY_SCALING,
-                mDisableCpuFrequencyScaling);
-
-        if (!mBinaryTestSource.isEmpty()) {
-            jsonObject.put(BINARY_TEST_SOURCE, new JSONArray(mBinaryTestSource));
-            CLog.d("Added %s to the Json object", BINARY_TEST_SOURCE);
-        }
-
-        if (!mBinaryTestWorkingDirectory.isEmpty()) {
-            jsonObject.put(BINARY_TEST_WORKING_DIRECTORY,
-                    new JSONArray(mBinaryTestWorkingDirectory));
-            CLog.d("Added %s to the Json object", BINARY_TEST_WORKING_DIRECTORY);
-        }
-
-        if (!mBinaryTestEnvp.isEmpty()) {
-            jsonObject.put(BINARY_TEST_ENVP, new JSONArray(mBinaryTestEnvp));
-            CLog.d("Added %s to the Json object", BINARY_TEST_ENVP);
-        }
-
-        if (!mBinaryTestArgs.isEmpty()) {
-            jsonObject.put(BINARY_TEST_ARGS, new JSONArray(mBinaryTestArgs));
-            CLog.d("Added %s to the Json object", BINARY_TEST_ARGS);
-        }
-
-        if (!mBinaryTestLdLibraryPath.isEmpty()) {
-            jsonObject.put(BINARY_TEST_LD_LIBRARY_PATH,
-                    new JSONArray(mBinaryTestLdLibraryPath));
-            CLog.d("Added %s to the Json object", BINARY_TEST_LD_LIBRARY_PATH);
-        }
-
-        if (mBugReportOnFailure) {
-            jsonObject.put(BUG_REPORT_ON_FAILURE, mBugReportOnFailure);
-            CLog.d("Added %s to the Json object", BUG_REPORT_ON_FAILURE);
-        }
-
-        if (!mLogcatOnFailure) {
-            jsonObject.put(LOGCAT_ON_FAILURE, mLogcatOnFailure);
-            CLog.d("Added %s to the Json object", LOGCAT_ON_FAILURE);
-        }
-
-        if (mEnableProfiling) {
-            jsonObject.put(ENABLE_PROFILING, mEnableProfiling);
-            CLog.d("Added %s to the Json object", ENABLE_PROFILING);
-        }
-
-        if (mProfilingArgValue) {
-            jsonObject.put(PROFILING_ARG_VALUE, mProfilingArgValue);
-            CLog.d("Added %s to the Json object", PROFILING_ARG_VALUE);
-        }
-
-        if (mSaveTraceFileRemote) {
-            jsonObject.put(SAVE_TRACE_FIEL_REMOTE, mSaveTraceFileRemote);
-            CLog.d("Added %s to the Json object", SAVE_TRACE_FIEL_REMOTE);
-        }
-
-        if (mEnableSystrace) {
-            jsonObject.put(ENABLE_SYSTRACE, mEnableSystrace);
-            CLog.d("Added %s to the Json object", ENABLE_SYSTRACE);
-        }
-
-        if (mEnableCoverage) {
-            jsonObject.put(GLOBAL_COVERAGE, mGlobalCoverage);
-            if (!mExcludeCoveragePath.isEmpty()) {
-                jsonObject.put(EXCLUDE_COVERAGE_PATH, new JSONArray(mExcludeCoveragePath));
-                CLog.d("Added %s to the Json object", EXCLUDE_COVERAGE_PATH);
-            }
-            if (coverageBuild) {
-                jsonObject.put(ENABLE_COVERAGE, mEnableCoverage);
-                CLog.d("Added %s to the Json object", ENABLE_COVERAGE);
-            } else {
-                CLog.d("Device build has coverage disabled");
-            }
-        }
-
-        if (mEnableSancov) {
-            if (sancovBuild) {
-                jsonObject.put(ENABLE_SANCOV, mEnableSancov);
-                CLog.d("Added %s to the Json object", ENABLE_SANCOV);
-            } else {
-                CLog.d("Device build has sancov disabled");
-            }
-        }
-
-        if (mPreconditionHwBinderServiceName != null) {
-            jsonObject.put(PRECONDITION_HWBINDER_SERVICE, mPreconditionHwBinderServiceName);
-            CLog.d("Added %s to the Json object", PRECONDITION_HWBINDER_SERVICE);
-        }
-
-        if (mPreconditionFeature != null) {
-            jsonObject.put(PRECONDITION_FEATURE, mPreconditionFeature);
-            CLog.d("Added %s to the Json object", PRECONDITION_FEATURE);
-        }
-
-        if (!mPreconditionFilePathPrefix.isEmpty()) {
-            jsonObject.put(
-                    PRECONDITION_FILE_PATH_PREFIX, new JSONArray(mPreconditionFilePathPrefix));
-            CLog.d("Added %s to the Json object", PRECONDITION_FILE_PATH_PREFIX);
-        }
-
-        if (mPreconditionFirstApiLevel != 0) {
-            jsonObject.put(PRECONDITION_FIRST_API_LEVEL, mPreconditionFirstApiLevel);
-            CLog.d("Added %s to the Json object", PRECONDITION_FIRST_API_LEVEL);
-        }
-
-        if (mPreconditionLshal != null) {
-            jsonObject.put(PRECONDITION_LSHAL, mPreconditionLshal);
-            CLog.d("Added %s to the Json object", PRECONDITION_LSHAL);
-        }
-
-        if (mPreconditionVintf != null) {
-            jsonObject.put(PRECONDITION_VINTF, mPreconditionVintf);
-            CLog.d("Added %s to the Json object", PRECONDITION_VINTF);
-        }
-
-        if (mPreconditionSysProp != null) {
-            jsonObject.put(PRECONDITION_SYSPROP, mPreconditionSysProp);
-            CLog.d("Added %s to the Json object", PRECONDITION_SYSPROP);
-        }
-
-        if (!mBinaryTestProfilingLibraryPath.isEmpty()) {
-            jsonObject.put(BINARY_TEST_PROFILING_LIBRARY_PATH,
-                    new JSONArray(mBinaryTestProfilingLibraryPath));
-            CLog.d("Added %s to the Json object", BINARY_TEST_PROFILING_LIBRARY_PATH);
-        }
-
-        if (mDisableFramework) {
-            jsonObject.put(DISABLE_FRAMEWORK, mDisableFramework);
-            CLog.d("Added %s to the Json object", DISABLE_FRAMEWORK);
-        }
-
-        if (mStopNativeServers) {
-            jsonObject.put(STOP_NATIVE_SERVERS, mStopNativeServers);
-            CLog.d("Added %s to the Json object", STOP_NATIVE_SERVERS);
-        }
-
-        if (mBinaryTestDisableFramework) {
-            jsonObject.put(BINARY_TEST_DISABLE_FRAMEWORK, mBinaryTestDisableFramework);
-            CLog.d("Added %s to the Json object", BINARY_TEST_DISABLE_FRAMEWORK);
-        }
-
-        if (mBinaryTestStopNativeServers) {
-            jsonObject.put(BINARY_TEST_STOP_NATIVE_SERVERS, mBinaryTestStopNativeServers);
-            CLog.d("Added %s to the Json object", BINARY_TEST_STOP_NATIVE_SERVERS);
-        }
-
-        if (!mNativeServerProcessName.isEmpty()) {
-            jsonObject.put(NATIVE_SERVER_PROCESS_NAME, new JSONArray(mNativeServerProcessName));
-            CLog.d("Added %s to the Json object", NATIVE_SERVER_PROCESS_NAME);
-        }
-
-        if (!mHalHidlReplayTestTracePaths.isEmpty()) {
-            jsonObject.put(HAL_HIDL_REPLAY_TEST_TRACE_PATHS,
-                    new JSONArray(mHalHidlReplayTestTracePaths));
-            CLog.d("Added %s to the Json object", HAL_HIDL_REPLAY_TEST_TRACE_PATHS);
-        }
-
-        if (mHalHidlPackageName != null) {
-            jsonObject.put(HAL_HIDL_PACKAGE_NAME, mHalHidlPackageName);
-            CLog.d("Added %s to the Json object", SYSTRACE_PROCESS_NAME);
-        }
-
-        if (mSystraceProcessName != null) {
-            jsonObject.put(SYSTRACE_PROCESS_NAME, mSystraceProcessName);
-            CLog.d("Added %s to the Json object", SYSTRACE_PROCESS_NAME);
-        }
-
-        if (mPassthroughMode) {
-            jsonObject.put(PASSTHROUGH_MODE, mPassthroughMode);
-            CLog.d("Added %s to the Json object", PASSTHROUGH_MODE);
-        }
-
-        if (mCollectTestsOnly) {
-            jsonObject.put(COLLECT_TESTS_ONLY, mCollectTestsOnly);
-            CLog.d("Added %s to the Json object", COLLECT_TESTS_ONLY);
-        }
-
-        if (mGtestBatchMode) {
-            jsonObject.put(GTEST_BATCH_MODE, mGtestBatchMode);
-            CLog.d("Added %s to the Json object", GTEST_BATCH_MODE);
-        }
-
-        if (mLtpNumberOfThreads >= 0) {
-            jsonObject.put(LTP_NUMBER_OF_THREADS, mLtpNumberOfThreads);
-            CLog.d("Added %s to the Json object", LTP_NUMBER_OF_THREADS);
-        }
-
-        if (mRunAsVtsSelfTest) {
-            jsonObject.put(RUN_AS_VTS_SELF_TEST, mRunAsVtsSelfTest);
-            CLog.d("Added %s to the Json object", RUN_AS_VTS_SELF_TEST);
-        }
-
-        if ("vts".equals(mBuildInfo.getTestTag())) {
-            jsonObject.put(RUN_AS_COMPLIANCE_TEST, true);
-            CLog.d("Added %s to the Json object", RUN_AS_COMPLIANCE_TEST);
-        }
-
-        if (!mMoblyTestModule.isEmpty()) {
-            jsonObject.put(MOBLY_TEST_MODULE, new JSONArray(mMoblyTestModule));
-            CLog.d("Added %s to the Json object", MOBLY_TEST_MODULE);
-        }
-
-        if (mActsTestModule != null) {
-            jsonObject.put(ACTS_TEST_MODULE, mActsTestModule);
-            CLog.d("Added %s to the Json object", ACTS_TEST_MODULE);
-        }
-
-        if (mBuildInfo.getFile(VtsPythonVirtualenvPreparer.VIRTUAL_ENV) != null) {
-            jsonObject.put(VtsPythonVirtualenvPreparer.VIRTUAL_ENV,
-                    mBuildInfo.getFile(VtsPythonVirtualenvPreparer.VIRTUAL_ENV).getAbsolutePath());
-        }
-
-        if (mBuildInfo.getFile(VtsPythonVirtualenvPreparer.VIRTUAL_ENV_V3) != null) {
-            jsonObject.put(VtsPythonVirtualenvPreparer.VIRTUAL_ENV_V3,
-                    mBuildInfo.getFile(VtsPythonVirtualenvPreparer.VIRTUAL_ENV_V3)
-                            .getAbsolutePath());
-        }
-
-        if (!mConfigStr.isEmpty()) {
-            jsonObject.put(CONFIG_STR, new JSONObject(mConfigStr));
-            CLog.d("Added %s to the Json object", CONFIG_STR);
-        }
-
-        if (!mConfigInt.isEmpty()) {
-            jsonObject.put(CONFIG_INT, new JSONObject(mConfigInt));
-            CLog.d("Added %s to the Json object", CONFIG_INT);
-        }
-
-        if (!mConfigBool.isEmpty()) {
-            jsonObject.put(CONFIG_BOOL, new JSONObject(mConfigBool));
-            CLog.d("Added %s to the Json object", CONFIG_BOOL);
-        }
-
-        if (mEnableLogUploading) {
-            jsonObject.put(ENABLE_LOG_UPLOADING, "true");
-            CLog.d("Added %s to the Json object with value: true)", ENABLE_LOG_UPLOADING);
-        }
-
-        if (mMaxRetryCount > 0) {
-            jsonObject.put(MAX_RETRY_COUNT, mMaxRetryCount);
-            CLog.d("Added %s to the Json object", MAX_RETRY_COUNT);
-        }
-    }
-
-    /**
-     * Log a test module execution status to device logcat.
-     *
-     * @param status
-     * @return true if succesful, false otherwise
-     */
-    @VisibleForTesting
-    protected void printToDeviceLogcatAboutTestModuleStatus(String status)
-            throws DeviceNotAvailableException {
-        mDevice.executeShellCommand(String.format(
-                "log -p i -t \"VTS\" \"[Test Module] %s %s\"", mTestModuleName, status));
-    }
-
-    /**
-     * Create vts python test runner test config json file.
-     *
-     * @param status
-     * @throws RuntimeException
-     * @return test config json file absolute path string
-     */
-    @VisibleForTesting
-    protected String createVtsRunnerTestConfigJsonFile(File vtsRunnerLogDir) {
-        JSONObject jsonObject = new JSONObject();
-        try {
-            updateVtsRunnerTestConfig(jsonObject);
-
-            jsonObject.put(LOG_PATH, vtsRunnerLogDir.getAbsolutePath());
-            CLog.d("Added %s to the Json object", LOG_PATH);
-        } catch (IOException e) {
-            throw new RuntimeException("Failed to read test config json file");
-        } catch (JSONException e) {
-            throw new RuntimeException("Failed to build updated test config json data");
-        }
-
-        CLog.d("VTS python test config json: %s", jsonObject.toString());
-
-        String jsonFilePath = null;
-        try {
-            File tmpFile = FileUtil.createTempFile(
-                    mBuildInfo.getTestTag() + "-config-" + mBuildInfo.getDeviceSerial(), ".json",
-                    vtsRunnerLogDir);
-            jsonFilePath = tmpFile.getAbsolutePath();
-            CLog.d("VTS test config json file path: %s", jsonFilePath);
-            FileUtil.writeToFile(jsonObject.toString(), tmpFile);
-        } catch (IOException e) {
-            throw new RuntimeException("Failed to create vts test config json file");
-        }
-        return jsonFilePath;
-    }
-
-    private boolean AddTestModuleKeys(String test_module_name, long test_module_timestamp) {
-        if (test_module_name.length() == 0 || test_module_timestamp == -1) {
-            CLog.e(String.format("Test module keys (%s,%d) are invalid.", test_module_name,
-                    test_module_timestamp));
-            return false;
-        }
-        File reportFile = mBuildInfo.getFile(TEST_PLAN_REPORT_FILE);
-
-        if (reportFile != null) {
-            try (FileWriter fw = new FileWriter(reportFile.getAbsoluteFile(), true);
-                    BufferedWriter bw = new BufferedWriter(fw);
-                    PrintWriter out = new PrintWriter(bw)) {
-                out.println(String.format("%s %s", test_module_name, test_module_timestamp));
-            } catch (IOException e) {
-                CLog.e(String.format(
-                        "Can't write to the test plan result file, %s", TEST_PLAN_REPORT_FILE));
-                return false;
-            }
-        } else {
-            CLog.w("No test plan report file configured.");
-        }
-        return true;
-    }
-
-    /**
-     * This method prepares a command for the test and runs the python file as
-     * given in the arguments.
-     *
-     * @param listener
-     * @throws RuntimeException
-     * @throws IllegalArgumentException
-     */
-    private void doRunTest(ITestInvocationListener listener)
-            throws IllegalArgumentException, DeviceNotAvailableException {
-        long methodStartTime = System.currentTimeMillis();
-        CLog.d("Device serial number: " + mDevice.getSerialNumber());
-
-        setTestCaseDir();
-
-        VtsMultiDeviceTestResultParser parser =
-                new VtsMultiDeviceTestResultParser(listener, deriveRunName());
-
-        File vtsRunnerLogDir = null;
-        try {
-            vtsRunnerLogDir = FileUtil.createTempDir("vts-runner-log");
-        } catch(IOException e) {
-            throw new RuntimeException("Failed to creat temp vts-runner-log directory");
-        }
-
-        long timeout = mMaxTestTimeout;
-        if (mMaxTestTimeout < mTestTimeout) {
-            // The Python runner will receive 2 interrupts.
-            // Delay the 2nd one to avoid interrupting the runner's teardown procedure.
-            timeout = mTestTimeout + VtsPythonRunnerHelper.TEST_ABORT_TIMEOUT_MSECS;
-            CLog.w("max-test-timeout is less than test-timeout. Set max timeout to %dms.", timeout);
-        }
-
-        try {
-            String jsonFilePath = createVtsRunnerTestConfigJsonFile(vtsRunnerLogDir);
-
-            VtsPythonRunnerHelper vtsPythonRunnerHelper =
-                    createVtsPythonRunnerHelper(new File(mTestCaseDir));
-
-            List<String> cmd = new ArrayList<>();
-            cmd.add("python");
-            if (mTestCasePathType != null && mTestCasePathType.toLowerCase().equals("file")) {
-                String testScript = mTestCasePath;
-                if (!testScript.endsWith(".py")) {
-                    testScript += ".py";
-                }
-                cmd.add(testScript);
-            } else {
-                cmd.add("-m");
-                cmd.add(mTestCasePath.replace("/", "."));
-            }
-            cmd.add(jsonFilePath);
-
-            printToDeviceLogcatAboutTestModuleStatus("BEGIN");
-
-            CommandResult commandResult = new CommandResult();
-            String interruptMessage;
-
-            File stdOutFile = FileUtil.createTempFile("vts_python_runner_stdout", ".log");
-            File stdErrFile = FileUtil.createTempFile("vts_python_runner_stderr", ".log");
-
-            OutputStream stdOut = new FileOutputStream(stdOutFile);
-            OutputStream stdErr = new FileOutputStream(stdErrFile);
-            List<String> errorMsgs = new ArrayList<>();
-
-            try {
-                interruptMessage = vtsPythonRunnerHelper.runPythonRunner(
-                        cmd.toArray(new String[0]), commandResult, timeout, stdOut, stdErr);
-
-                if (commandResult != null) {
-                    CommandStatus commandStatus = commandResult.getStatus();
-                    if (commandStatus != CommandStatus.SUCCESS
-                            && commandStatus != CommandStatus.TIMED_OUT) {
-                        errorMsgs.add("Python process failed");
-                        // Log the last 2k bytes of stdOutFile and stdErrFile
-                        String skippedBytesMsg = "";
-                        long startOffset = 0;
-                        if (stdOutFile.length() > 2048) {
-                            startOffset = stdOutFile.length() - 2048;
-                            skippedBytesMsg = String.format(
-                                    "...... <%d bytes skipped> ......\n", startOffset);
-                        }
-                        errorMsgs.add(String.format("Command stdout: %s%s", skippedBytesMsg,
-                                FileUtil.readStringFromFile(stdOutFile, startOffset, 2048)));
-                        skippedBytesMsg = "";
-                        startOffset = 0;
-                        if (stdErrFile.length() > 2048) {
-                            startOffset = stdErrFile.length() - 2048;
-                            skippedBytesMsg = String.format(
-                                    "...... <%d bytes skipped> ......\n", startOffset);
-                        }
-                        errorMsgs.add(String.format("Command stderr: %s%s", skippedBytesMsg,
-                                FileUtil.readStringFromFile(stdErrFile, startOffset, 2048)));
-                        errorMsgs.add("Command status: " + commandStatus);
-                    }
-                }
-            } finally {
-                StreamUtil.close(stdOut);
-                StreamUtil.close(stdErr);
-                listener.testLog(stdOutFile.getName(), LogDataType.TEXT,
-                        new FileInputStreamSource(stdOutFile));
-                listener.testLog(stdErrFile.getName(), LogDataType.TEXT,
-                        new FileInputStreamSource(stdErrFile));
-                FileUtil.deleteFile(stdOutFile);
-                FileUtil.deleteFile(stdErrFile);
-            }
-
-            // parse from test_run_summary.json instead of stdout
-            File testRunSummary = getFileTestRunSummary(vtsRunnerLogDir);
-            if (testRunSummary == null) {
-                errorMsgs.add("Couldn't locate the file : " + TEST_RUN_SUMMARY_FILE_NAME);
-            } else {
-                JSONObject object = null;
-                try {
-                    String jsonData = FileUtil.readStringFromFile(testRunSummary);
-                    CLog.d("Test Result Summary: %s", jsonData);
-                    object = new JSONObject(jsonData);
-                    parser.processJsonFile(object);
-                } catch (IOException | JSONException e) {
-                    errorMsgs.add("Error occurred in parsing Json file " + testRunSummary.toPath());
-                    CLog.e(e);
-                }
-                try {
-                    JSONObject planObject = object.getJSONObject(TESTMODULE);
-                    String test_module_name = planObject.getString("Name");
-                    long test_module_timestamp = planObject.getLong("Timestamp");
-                    AddTestModuleKeys(test_module_name, test_module_timestamp);
-                } catch (JSONException e) {
-                    // Do not report this as part of errorMsgs. These are optional metadata
-                    CLog.e(e);
-                }
-            }
-
-            if (errorMsgs.size() > 0) {
-                CLog.e(String.join(".\n", errorMsgs));
-                listener.testRunFailed(String.join(".\n", errorMsgs));
-                listener.testRunEnded(System.currentTimeMillis() - methodStartTime,
-                        new HashMap<String, Metric>());
-            }
-
-            printToDeviceLogcatAboutTestModuleStatus("END");
-            if (interruptMessage != null) {
-                throw new RuntimeException(interruptMessage);
-            }
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        } finally {
-            try {
-                mOutputUtil.ZipVtsRunnerOutputDir(vtsRunnerLogDir);
-
-                if (mEnableDashboardUploading) {
-                    File reportMsg = FileUtil.findFile(vtsRunnerLogDir, REPORT_MESSAGE_FILE_NAME);
-                    CLog.d("Report message path: %s", reportMsg);
-                    if (reportMsg == null) {
-                        CLog.e("Cannot find report message proto file.");
-                    } else if (reportMsg.length() > 0) {
-                        CLog.i("Uploading report message. File size: %s", reportMsg.length());
-                        VtsDashboardUtil dashboardUtil = new VtsDashboardUtil(configReader);
-                        dashboardUtil.Upload(reportMsg.getAbsolutePath());
-                    }
-                }
-            } finally {
-                CLog.d("Deleted the runner log dir, %s.", vtsRunnerLogDir);
-                FileUtil.recursiveDelete(vtsRunnerLogDir);
-            }
-            // If the framework was disabled in python, make sure we re-enable it no matter what.
-            // The python side never re-enable the framework.
-            if (mBinaryTestDisableFramework || mDisableFramework) {
-                for (ITestDevice device : mInvocationContext.getDevices()) {
-                    device.executeShellCommand("start");
-                }
-            }
-        }
-        for (ITestDevice device : mInvocationContext.getDevices()) {
-            device.waitForDeviceAvailable();
-        }
-    }
-
-    /**
-     * This method return the file test_run_summary.json which is then used to parse logs.
-     *
-     * @param logDir : The file that needs to be converted
-     * @return the file named test_run_summary.json
-     * @throws IllegalArgumentException
-     */
-    private File getFileTestRunSummary(File logDir) throws IllegalArgumentException {
-        File[] children;
-        if (logDir == null) {
-            throw new IllegalArgumentException("Argument logDir is null.");
-        }
-        children = logDir.listFiles();
-        if (children != null) {
-            for (File child : children) {
-                if (!child.isDirectory()) {
-                    if (child.getName().equals(TEST_RUN_SUMMARY_FILE_NAME)) {
-                        return child;
-                    }
-                } else {
-                    File file = getFileTestRunSummary(child);
-                    if (file != null) {
-                        return file;
-                    }
-                }
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Set the path for android-vts10/testcases/ which keeps the VTS python code under vts.
-     */
-    private void setTestCaseDir() {
-        try {
-            mTestCaseDir = mBuildHelper.getTestsDir().getAbsolutePath();
-        } catch (FileNotFoundException e) {
-            CLog.e("Cannot get testcase dir. Tests may not run correctly.");
-        }
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void setAbi(IAbi abi){
-        mAbi = abi;
-    }
-
-    /**
-     * Creates a {@link VtsPythonRunnerHelper}.
-     */
-    @VisibleForTesting
-    protected VtsPythonRunnerHelper createVtsPythonRunnerHelper(File workingDir) {
-        return new VtsPythonRunnerHelper(mBuildInfo, workingDir);
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/tradefed/testtype/VtsMultiDeviceTestResultParser.java b/harnesses/tradefed/src/com/android/tradefed/testtype/VtsMultiDeviceTestResultParser.java
deleted file mode 100644
index 62ac86c..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/testtype/VtsMultiDeviceTestResultParser.java
+++ /dev/null
@@ -1,507 +0,0 @@
-/*
- * Copyright (C) 2016 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.
- */
-package com.android.tradefed.testtype;
-
-import com.android.ddmlib.testrunner.ITestRunListener;
-import com.android.tradefed.log.LogUtil.CLog;
-import com.android.tradefed.result.ITestLifeCycleReceiver;
-import com.android.tradefed.result.TestDescription;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-
-/**
- * Interprets the output of tests run with Python's unit test framework and translates it into
- * calls on a series of {@link ITestRunListener}s. Output from these tests follows this
- * EBNF grammar:
- */
-public class VtsMultiDeviceTestResultParser {
-
-    // Parser state
-    String[] mAllLines;
-    String mCurrentLine;
-    int mLineNum;
-    ParserState mCurrentParseState = ParserState.TEST_CASE_ENTRY;
-
-    // Current test state
-    String mTestClass;
-    TestDescription mCurrentTestId;
-    String mCurrentTraceback;
-    long mTotalElapsedTime = 0;
-
-    // General state
-    private Map<TestDescription, String> mTestResultCache;
-    private final Collection<ITestLifeCycleReceiver> mListeners;
-    private String mRunName = null;
-    private String mCurrentTestName = null;
-    private int mTotalTestCount = 0;
-
-    // Variables to keep track of state for unit test
-    private int mNumTestsRun = 0;
-    private int mNumTestsExpected = 1;
-
-    // Constant tokens that appear in the result grammar.
-    static final String CASE_OK = "ok";
-    static final String RUN_OK = "OK";
-    static final String RUN_FAILED = "FAILED";
-    static final String TEST_CASE = "[Test Case]";
-    static final String PASS = "PASS";
-    static final String FAIL = "FAIL";
-    static final String TIMEOUT = "TIMEOUT";
-    static final String SKIP = "SKIP";
-    static final String ERROR = "ERROR";
-    static final String END_PATTERN = "<==========";
-    static final String BEGIN_PATTERN = "==========>";
-
-    // constants for parsing json file
-    static final String RESULTS = "Results";
-    static final String BEGIN_TIME = "Begin Time";
-    static final String DETAILS = "Details";
-    static final String TABLES = "Tables";
-    static final String END_TIME = "End Time";
-    static final String TEST_CLASS = "Test Class";
-    static final String TEST_NAME = "Test Name";
-    static final String RESULT = "Result";
-    static final String CLASS_ERRORS = "Class Errors";
-
-    // default message for test failure
-    static final String UNKNOWN_ERROR = "Unknown error.";
-    static final String UNKNOWN_FAILURE = "Unknown failure.";
-    static final String UNKNOWN_TIMEOUT = "Unknown timeout.";
-
-    // Enumeration for parser state.
-    static enum ParserState {
-        TEST_CASE_ENTRY,
-        COMPLETE,
-        TEST_RUN
-    }
-
-    private class PythonUnitTestParseException extends Exception {
-        public PythonUnitTestParseException(String reason) {
-            super(reason);
-        }
-    }
-
-    public VtsMultiDeviceTestResultParser(ITestLifeCycleReceiver listener, String runName) {
-        mListeners = new ArrayList<>(1);
-        mListeners.add(listener);
-        mRunName = runName;
-        mTestResultCache = new HashMap<>();
-    }
-
-    public void processNewLines(String[] lines) {
-        init(lines);
-
-        // extract the test class name if pattern matches for the first line
-        String[] toks = mCurrentLine.split(" ");
-        if (toks.length < 3 || !toks[toks.length - 1].equals(END_PATTERN) || !toks[toks.length - 3].
-                equals(BEGIN_PATTERN)) {
-            try {
-                parseError(BEGIN_PATTERN);
-            } catch (PythonUnitTestParseException e) {
-                e.printStackTrace();
-            }
-        } else {
-            mTestClass = toks[toks.length - 2];
-        }
-
-        // parse all lines
-        for (String line : lines) {
-            if (line.length() == 0 || !line.contains(TEST_CASE)) {
-                continue;
-            }
-            mCurrentLine = line;
-            try {
-                parse();
-            } catch (PythonUnitTestParseException e) {
-                e.printStackTrace();
-            }
-        }
-
-        // current state should not be in TEST_RUN state; if it's then mark for timeout.
-        if (mCurrentParseState.equals(ParserState.TEST_RUN)) {
-            markTestTimeout();
-        }
-        summary(lines);
-        completeTestRun();
-        mNumTestsRun++;
-    }
-
-    /**
-     * Called by parent when adb session is complete.
-     */
-    public void done() {
-        if (mNumTestsRun < mNumTestsExpected) {
-            handleTestRunFailed(String.format("Test run failed. Expected %d tests, received %d",
-                    mNumTestsExpected, mNumTestsRun));
-        }
-    }
-
-    /**
-     * Process an instrumentation run failure
-     *
-     * @param errorMsg The message to output about the nature of the error
-     */
-    private void handleTestRunFailed(String errorMsg) {
-        errorMsg = (errorMsg == null ? "Unknown error" : errorMsg);
-        CLog.e(String.format("Test run failed: %s", errorMsg));
-
-        Map<String, String> emptyMap = Collections.emptyMap();
-        for (ITestLifeCycleReceiver listener : mListeners) {
-            listener.testFailed(mCurrentTestId, FAIL);
-            listener.testEnded(mCurrentTestId, emptyMap);
-        }
-
-        // Report the test run failed
-        for (ITestLifeCycleReceiver listener : mListeners) {
-            listener.testRunFailed(errorMsg);
-        }
-    }
-
-    void init(String[] lines) {
-        mAllLines = lines;
-        mLineNum = 0;
-        mCurrentLine = mAllLines[0];
-    }
-
-    /**
-     * This method parses individual lines and calls functions based on the parsing state.
-     * @throws PythonUnitTestParseException
-     */
-    void parse() throws PythonUnitTestParseException {
-        try {
-            switch(mCurrentParseState) {
-                case TEST_CASE_ENTRY:
-                    registerTest();
-                    mCurrentParseState = ParserState.TEST_RUN;
-                    break;
-                case TEST_RUN:
-                    if (testRun()) {
-                        mCurrentParseState = ParserState.COMPLETE;
-                    } else {
-                        // incomplete test due to timeout.
-                        mCurrentParseState = ParserState.TEST_CASE_ENTRY;
-                        parse();
-                    }
-                    break;
-                case COMPLETE:
-                    mCurrentParseState = ParserState.TEST_CASE_ENTRY;
-                    parse();
-                    break;
-                default:
-                    break;
-            }
-        } catch (ArrayIndexOutOfBoundsException e) {
-            CLog.d("Underlying error in testResult: " + e);
-            throw new PythonUnitTestParseException("FailMessage");
-        }
-    }
-
-    /**
-     * This is called whenever the parser state is {@link ParserState#TEST_RUN}
-     */
-    private boolean testRun() {
-        // process the test case
-        String[] toks = mCurrentLine.split(" ");
-        // check the last token
-        String lastToken = toks[toks.length - 1];
-        if (lastToken.equals(PASS)){
-            markTestSuccess();
-            return true;
-        } else if (lastToken.equals(FAIL)){
-            markTestFailure();
-            return true;
-        } else if (lastToken.equals(SKIP)){
-            // SKIP is not a recognized test type in TradeFed.
-            return true;
-        } else {
-            markTestTimeout();
-            return false;
-        }
-    }
-
-    /**
-     * This method is called when parser is at {@link ParserState#TEST_CASE_ENTRY}} stage and
-     * this registers a new test case.
-     */
-    private void registerTest() {
-        // process the test case
-        String[] toks = mCurrentLine.split(" ");
-        mCurrentTestName = toks[toks.length - 1];
-        mCurrentTestId = new TestDescription(mTestClass, mCurrentTestName);
-        mTotalTestCount++;
-    }
-    /**
-     * Called at the end of the parsing to calculate the {@link #mTotalElapsedTime}
-     *
-     * @param lines The corresponding logs.
-     */
-    void summary(String[] lines) {
-        if (lines == null || lines.length == 0) {
-            mTotalElapsedTime = 0;
-            return;
-        }
-
-        Date startDate = getDate(lines, true);
-        Date endDate = getDate(lines, false);
-
-        if (startDate == null || endDate == null) {
-            mTotalElapsedTime = 0;
-            return;
-        }
-        mTotalElapsedTime = endDate.getTime() - startDate.getTime();
-    }
-
-    /**
-     * Return the time in milliseconds to calculate the time elapsed in a particular test.
-     *
-     * @param lines The logs that need to be parsed.
-     * @param calculateStartDate flag which is true if we need to calculate start date.
-     * @return {Date} the start and end time corresponding to a test.
-     */
-    private Date getDate(String[] lines, boolean calculateStartDate) {
-        Date date = null;
-        int begin = calculateStartDate ? 0 : lines.length - 1;
-        int diff = calculateStartDate ? 1 : -1;
-
-        for (int index = begin; index >= 0 && index < lines.length; index += diff) {
-            lines[index].trim();
-            String[] toks = lines[index].split(" ");
-
-            // set the start time from the first line
-            // the loop should continue if exception occurs, else it can break
-            if (toks.length < 3) {
-                continue;
-            }
-            String time = toks[2];
-            SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss.SSS");
-            try {
-                date = sdf.parse(time);
-            } catch (ParseException e) {
-                continue;
-            }
-            break;
-        }
-        return date;
-    }
-
-    boolean completeTestRun() {
-        for (ITestLifeCycleReceiver listener : mListeners) {
-            // do testRunStarted
-            listener.testRunStarted(mCurrentTestName, mTotalTestCount);
-
-            // mark each test passed or failed
-            for (Entry<TestDescription, String> test : mTestResultCache.entrySet()) {
-                listener.testStarted(test.getKey());
-                if (test.getValue() == PASS) {
-                    listener.testEnded(test.getKey(), Collections.<String, String>emptyMap());
-                } else if (test.getValue() == TIMEOUT) {
-                    listener.testFailed(test.getKey(), test.getValue());
-                    // Always call testEnded at the end of the test case
-                    listener.testEnded(test.getKey(), Collections.emptyMap());
-                } else if (test.getValue() == SKIP) {
-                    listener.testAssumptionFailure(test.getKey(), test.getValue());
-                    // Always call testEnded at the end of the test case
-                    listener.testEnded(test.getKey(), Collections.emptyMap());
-                } else {
-                    listener.testFailed(test.getKey(), test.getValue());
-                    // Always call testEnded at the end of the test case
-                    listener.testEnded(test.getKey(), Collections.emptyMap());
-                }
-            }
-            listener.testRunEnded(mTotalElapsedTime, Collections.<String, String>emptyMap());
-        }
-        return true;
-    }
-
-    private static void printJsonTable(String name, JSONArray table) throws JSONException {
-        ArrayList<Integer> columnLength = new ArrayList<Integer>();
-        for (int rowIndex = 0; rowIndex < table.length(); rowIndex++) {
-            JSONArray row = table.getJSONArray(rowIndex);
-            for (int colIndex = 0; colIndex < row.length(); colIndex++) {
-                if (columnLength.size() == colIndex) {
-                    columnLength.add(1);
-                }
-                if (!row.isNull(colIndex)) {
-                    int len = row.getString(colIndex).length();
-                    if (columnLength.get(colIndex) < len) {
-                        columnLength.set(colIndex, len);
-                    }
-                }
-            }
-        }
-        StringBuilder sb = new StringBuilder(name + "\n");
-        for (int rowIndex = 0; rowIndex < table.length(); rowIndex++) {
-            JSONArray row = table.getJSONArray(rowIndex);
-            for (int colIndex = 0; colIndex < row.length(); colIndex++) {
-                String cell = row.isNull(colIndex) ? "" : row.getString(colIndex);
-                if (colIndex > 0) {
-                    sb.append("  ");
-                }
-                int padLength = columnLength.get(colIndex) - cell.length();
-                for (int padCount = 0; padCount < padLength; padCount++) {
-                    sb.append(" ");
-                }
-                sb.append(cell);
-            }
-            sb.append("\n");
-        }
-        CLog.d("JSON table: %s", sb.toString());
-    }
-
-    /**
-     * This method parses the json object and summarizes the test result through listener.
-     * @param object
-     * @throws RuntimeException
-     */
-    public void processJsonFile(JSONObject object) throws RuntimeException {
-        try {
-            JSONArray results = object.getJSONArray(RESULTS);
-            if (results == null) {
-                results = new JSONArray();
-            }
-            for (ITestLifeCycleReceiver listener : mListeners) {
-                long elapsedTime;
-                if (results.length() > 0) {
-                    long firstBeginTime = (long) results.getJSONObject(0).get(BEGIN_TIME);
-                    long lastEndTime =
-                            (long) results.getJSONObject(results.length() - 1).get(END_TIME);
-                    elapsedTime = lastEndTime - firstBeginTime;
-                } else {
-                    elapsedTime = 0;
-                    CLog.e("JSONArray is null.");
-                }
-
-                int nNonSkippedTests = 0;
-                for (int index = 0; index < results.length(); index++) {
-                    JSONObject resultObject = results.getJSONObject(index);
-                    String result = (String) resultObject.get(RESULT);
-                    if (!result.equals(SKIP)) {
-                        nNonSkippedTests++;
-                    }
-                }
-
-                listener.testRunStarted(mRunName, nNonSkippedTests);
-
-                for (int index = 0; index < results.length(); index++) {
-                    JSONObject resultObject = results.getJSONObject(index);
-                    String result = (String) resultObject.get(RESULT);
-                    String testClass = (String) resultObject.get(TEST_CLASS);
-                    String testName = (String) resultObject.get(TEST_NAME);
-                    long beginTime = (long) results.getJSONObject(index).get(BEGIN_TIME);
-                    long endTime = (long) results.getJSONObject(index).get(END_TIME);
-                    String details =
-                            resultObject.isNull(DETAILS) ? "" : resultObject.getString(DETAILS);
-
-                    // mark test started
-                    TestDescription TestDescription = new TestDescription(testClass, testName);
-
-                    /* SKIP is not recognized in TF. Does not report result instead. */
-                    if (!result.equals(SKIP)) {
-                        listener.testStarted(TestDescription, beginTime);
-
-                        switch (result) {
-                            case PASS:
-                                break;
-                            case ERROR:
-                                /* Error is reported by the VTS runner when an unexpected exception
-                                   happened during test execution. It could be due to: a framework
-                                   bug, an unhandled I/O, a TCP error, or a bug in test module or
-                                   template execution code. Error thus does not necessarily indicate
-                                   a test failure or a bug in device implementation. Since error is
-                                   not yet recognized in TF, it is converted to FAIL. */
-                            case TIMEOUT:
-                                /* Timeout is not recognized in TF. Use FAIL instead. */
-                            case FAIL:
-                                /* Indicates a test failure. */
-                                listener.testFailed(TestDescription,
-                                        details.isEmpty() ? UNKNOWN_FAILURE : details);
-                                break;
-                            default:
-                                listener.testFailed(TestDescription,
-                                        "Internal error: Cannot recognize test result type. Details: "
-                                                + details);
-                                break;
-                        }
-
-                        listener.testEnded(TestDescription, endTime, Collections.emptyMap());
-                    }
-
-                    if (!resultObject.isNull(TABLES)) {
-                        JSONObject tables = resultObject.getJSONObject(TABLES);
-                        Iterator<String> iter = tables.keys();
-                        while (iter.hasNext()) {
-                            String key = iter.next();
-                            printJsonTable(key, tables.getJSONArray(key));
-                        }
-                    }
-                }
-
-                if (!object.isNull(CLASS_ERRORS)) {
-                    listener.testRunFailed(object.getString(CLASS_ERRORS));
-                }
-                listener.testRunEnded(elapsedTime, Collections.<String, String>emptyMap());
-            }
-        } catch (JSONException e) {
-            CLog.e("Exception occurred: %s", e);
-        }
-    }
-
-    /**
-     * This is called whenever the program encounters unexpected tokens in parsing.
-     *
-     * @param expected The string that was expected.
-     * @throws PythonUnitTestParseException
-     */
-    private void parseError(String expected)
-            throws PythonUnitTestParseException {
-        throw new PythonUnitTestParseException(
-                String.format("Expected \"%s\" on line %d, found %s instead",
-                        expected, mLineNum + 1, mCurrentLine));
-    }
-
-    private void markTestSuccess() {
-        mTestResultCache.put(mCurrentTestId, PASS);
-    }
-
-    private void markTestFailure() {
-        mTestResultCache.put(mCurrentTestId, FAIL);
-    }
-
-    /**
-     * This method is called whenever the current test doesn't finish as expected and runs out
-     * of time.
-     */
-    private void markTestTimeout() {
-        mTestResultCache.put(mCurrentTestId, TIMEOUT);
-    }
-
-    public boolean isCancelled() {
-        return false;
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/tradefed/util/CmdUtil.java b/harnesses/tradefed/src/com/android/tradefed/util/CmdUtil.java
deleted file mode 100644
index 9d3aa0e..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/util/CmdUtil.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.tradefed.util;
-
-import com.android.annotations.VisibleForTesting;
-import com.android.ddmlib.CollectingOutputReceiver;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.log.LogUtil.CLog;
-
-import java.util.Vector;
-import java.util.concurrent.TimeUnit;
-import java.util.function.Predicate;
-
-public class CmdUtil {
-    public static final int MAX_RETRY_COUNT = 10;
-    static final int DELAY_BETWEEN_RETRY_IN_SECS = 3;
-    static final long FRAMEWORK_START_TIMEOUT = 1000 * 60 * 2; // 2 minutes.
-    static final String BOOTCOMPLETE_PROP = "dev.bootcomplete";
-
-    // An interface to wait with delay. Used for testing purpose.
-    public interface ISleeper { public void sleep(int seconds) throws InterruptedException; }
-    private ISleeper mSleeper = null;
-
-    /**
-     * Helper method to retry given cmd until the expected results are satisfied.
-     * An example usage it to retry 'lshal' until the expected hal service appears.
-     *
-     * @param device testing device.
-     * @param cmd the command string to be executed on device.
-     * @param predicate function that checks the exit condition.
-     * @return true if the exit condition is satisfied, false otherwise.
-     * @throws DeviceNotAvailableException
-     */
-    public boolean waitCmdResultWithDelay(ITestDevice device, String cmd,
-            Predicate<String> predicate) throws DeviceNotAvailableException {
-        for (int count = 0; count < MAX_RETRY_COUNT; count++) {
-            if (validateCmdSuccess(device, cmd, predicate)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Helper method to retry a given set of commands, cmds.
-     *
-     * @param device testing device.
-     * @param cmds a vector of the command strings to be executed on device.
-     * @param validation_cmd the validation command string to be executed on device.
-     * @param predicate function that checks the exit condition.
-     * @return true if the exit condition is satisfied, false otherwise.
-     * @throws DeviceNotAvailableException
-     */
-    public boolean retry(ITestDevice device, Vector<String> cmds, String validation_cmd,
-            Predicate<String> predicate) throws DeviceNotAvailableException {
-        if (cmds.isEmpty()) {
-            CLog.w("retry() called but cmd is an epmty vector.");
-            return false;
-        }
-        for (int count = 0; count < MAX_RETRY_COUNT; count++) {
-            for (String cmd : cmds) {
-                CLog.d("Running a command: %s", cmd);
-                String out = device.executeShellCommand(cmd);
-                CLog.d("Command output: %s", out);
-            }
-            if (validateCmdSuccess(device, validation_cmd, predicate)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Helper method to retry a given cmd.
-     *
-     * @param device testing device.
-     * @param cmd the command string to be executed on device.
-     * @param validation_cmd the validation command string to be executed on device.
-     * @param predicate function that checks the exit condition.
-     * @return true if the exit condition is satisfied, false otherwise.
-     * @throws DeviceNotAvailableException
-     */
-    public boolean retry(ITestDevice device, String cmd, String validation_cmd,
-            Predicate<String> predicate) throws DeviceNotAvailableException {
-        return retry(device, cmd, validation_cmd, predicate, MAX_RETRY_COUNT);
-    }
-
-    /**
-     * Helper method to retry a given cmd.
-     *
-     * @param device testing device.
-     * @param cmd the command string to be executed on device.
-     * @param validation_cmd the validation command string to be executed on device.
-     * @param predicate function that checks the exit condition.
-     * @param retry_count the max number of times to try
-     * @return true if the exit condition is satisfied, false otherwise.
-     * @throws DeviceNotAvailableException
-     */
-    public boolean retry(ITestDevice device, String cmd, String validation_cmd,
-            Predicate<String> predicate, int retry_count) throws DeviceNotAvailableException {
-        for (int count = 0; count < retry_count; count++) {
-            CLog.d("Running a command: %s", cmd);
-            device.executeShellCommand(cmd);
-            if (validateCmdSuccess(device, validation_cmd, predicate)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Validates the device status and waits if the validation fails.
-     *
-     * @param device testing device.
-     * @param cmd the command string to be executed on device.
-     * @param predicate function that checks the exit condition.
-     * @return true if the exit condition is satisfied, false otherwise.
-     * @throws DeviceNotAvailableException
-     */
-    protected boolean validateCmdSuccess(ITestDevice device, String cmd,
-            Predicate<String> predicate) throws DeviceNotAvailableException {
-        if (cmd == null) {
-            CLog.w("validateCmdSuccess() called but cmd is null");
-            return false;
-        }
-        String out = device.executeShellCommand(cmd);
-        CLog.d("validating cmd output: %s", out);
-        if (out != null && predicate.test(out)) {
-            CLog.d("Exit condition satisfied.");
-            return true;
-        } else {
-            CLog.d("Exit condition not satisfied. Waiting for %s more seconds.",
-                    DELAY_BETWEEN_RETRY_IN_SECS);
-            try {
-                if (mSleeper != null) {
-                    mSleeper.sleep(DELAY_BETWEEN_RETRY_IN_SECS);
-                } else {
-                    TimeUnit.SECONDS.sleep(DELAY_BETWEEN_RETRY_IN_SECS);
-                }
-            } catch (InterruptedException ex) {
-                /* pass */
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Restarts the Andriod framework and waits for the device boot completion.
-     *
-     * @param device the test device instance.
-     * @throws DeviceNotAvailableException
-     */
-    public void restartFramework(ITestDevice device) throws DeviceNotAvailableException {
-        device.executeShellCommand("stop");
-        setSystemProperty(device, BOOTCOMPLETE_PROP, "0");
-        device.executeShellCommand("start");
-        device.waitForDeviceAvailable(FRAMEWORK_START_TIMEOUT);
-    }
-
-    /**
-     * Gets a sysprop from the device.
-     *
-     * @param device the test device instance.
-     * @param name the name of a sysprop.
-     * @return the device sysprop value.
-     * @throws DeviceNotAvailableException
-     */
-    public String getSystemProperty(ITestDevice device, String name)
-            throws DeviceNotAvailableException {
-        CollectingOutputReceiver receiver = new CollectingOutputReceiver();
-        device.executeShellCommand(String.format("getprop %s", name), receiver);
-        return receiver.getOutput();
-    }
-
-    /**
-     * Sets a sysprop on the device.
-     *
-     * @param device the test device instance.
-     * @param name the name of a sysprop.
-     * @param value the value of a sysprop.
-     * @throws DeviceNotAvailableException
-     */
-    public void setSystemProperty(ITestDevice device, String name, String value)
-            throws DeviceNotAvailableException {
-        device.executeShellCommand(String.format("setprop %s %s", name, value));
-    }
-
-    @VisibleForTesting
-    void setSleeper(ISleeper sleeper) {
-        mSleeper = sleeper;
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/tradefed/util/EnvUtil.java b/harnesses/tradefed/src/com/android/tradefed/util/EnvUtil.java
deleted file mode 100644
index 03c1b4b..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/util/EnvUtil.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.tradefed.util;
-
-/**
- * Utility class to deal with system environment
- */
-public class EnvUtil {
-    static final String OS_NAME = "os.name";
-    static final String WINDOWS = "Windows"; // Not officially supported OS.
-
-    /**
-     * This method returns whether the OS is Windows.
-     */
-    public static boolean isOnWindows() {
-        return System.getProperty(OS_NAME).contains(WINDOWS);
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/tradefed/util/JsonUtil.java b/harnesses/tradefed/src/com/android/tradefed/util/JsonUtil.java
deleted file mode 100644
index 7b8247f..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/util/JsonUtil.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2016 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.
- */
-
-package com.android.tradefed.util;
-
-import com.android.tradefed.log.LogUtil.CLog;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.util.Iterator;
-
-/**
- * A helper class for JSON related operations
- */
-public class JsonUtil {
-    /**
-     * Deep merge two JSONObjects.
-     * This method merge source JSONObject fields into the target JSONObject without overwriting.
-     * JSONArray will not be deep merged.
-     *
-     * @param target the target json object to merge
-     * @param source the source json object to read
-     * @throws JSONException
-     */
-    public static void deepMergeJsonObjects(JSONObject target, JSONObject source)
-            throws JSONException {
-        Iterator<String> iter = source.keys();
-        while (iter.hasNext()) {
-            String key = iter.next();
-            Object source_value = source.get(key);
-            Object target_value = null;
-            try {
-                target_value = target.get(key);
-            } catch (JSONException e) {
-                CLog.d("Merging Json key '%s' into target object.", key);
-                target.put(key, source_value);
-                continue;
-            }
-
-            if (JSONObject.class.isInstance(target_value)
-                    && JSONObject.class.isInstance(source_value)) {
-                deepMergeJsonObjects((JSONObject) target_value, (JSONObject) source_value);
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/harnesses/tradefed/src/com/android/tradefed/util/OutputUtil.java b/harnesses/tradefed/src/com/android/tradefed/util/OutputUtil.java
deleted file mode 100644
index e524c6e..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/util/OutputUtil.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.tradefed.util;
-
-import com.android.tradefed.log.ITestLogger;
-import com.android.tradefed.log.LogUtil.CLog;
-import com.android.tradefed.result.FileInputStreamSource;
-import com.android.tradefed.result.LogDataType;
-import java.io.File;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Set;
-
-/**
- * Utility class to add output file to TradeFed log directory.
- */
-public class OutputUtil {
-    // Test logger object from test invocation
-    ITestLogger mListener;
-    private String mTestModuleName = null;
-    private String mAbiName = null;
-
-    public OutputUtil(ITestLogger listener) {
-        mListener = listener;
-    }
-
-    /**
-     * Collect all VTS python runner log output files as a single zip file
-     * @param logDirectory
-     */
-    public void ZipVtsRunnerOutputDir(File logDirectory) {
-        try {
-            Set<String> latest = FileUtil.findFiles(logDirectory, "latest");
-            if (latest.isEmpty()) {
-                CLog.e("Empty python log directory: %s", logDirectory);
-                return;
-            }
-
-            File tmpZip = ZipUtil.createZip(
-                    Arrays.asList(new File(latest.iterator().next()).listFiles()));
-            String outputFileName = "module_" + mTestModuleName + "_output_files_" + mAbiName;
-            try (FileInputStreamSource inputSource = new FileInputStreamSource(tmpZip, true)) {
-                mListener.testLog(outputFileName, LogDataType.ZIP, inputSource);
-            }
-        } catch (IOException e) {
-            CLog.e("Error processing python module output directory: %s", logDirectory);
-            CLog.e(e);
-        }
-    }
-
-    /**
-     * @param testModuleName
-     */
-    public void setTestModuleName(String testModuleName) {
-        mTestModuleName = testModuleName;
-    }
-
-    /**
-     * @param abiName
-     */
-    public void setAbiName(String abiName) {
-        mAbiName = abiName;
-    }
-}
\ No newline at end of file
diff --git a/harnesses/tradefed/src/com/android/tradefed/util/ProcessHelper.java b/harnesses/tradefed/src/com/android/tradefed/util/ProcessHelper.java
deleted file mode 100644
index 2156e56..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/util/ProcessHelper.java
+++ /dev/null
@@ -1,395 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-
-package com.android.tradefed.util;
-
-import com.android.tradefed.log.LogUtil.CLog;
-
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.io.Reader;
-import java.io.Writer;
-
-/**
- * A helper for interruptible process execution.
- */
-public class ProcessHelper {
-    // Timeout values of destroying the process.
-    private static final int DESTROY_PROCESS_MAX_POLL_COUNT = 3;
-    private static final long DESTROY_PROCESS_POLL_INTERVAL_MSECS = 500;
-    private static final String DEBUG = "DEBUG";
-    private static final String INFO = "INFO";
-    private static final String WARN = "WARN";
-    private static final String ERROR = "ERROR";
-
-    // Timeout value of joining the stdout and stderr threads.
-    private static final int THREAD_JOIN_TIMEOUT_MSECS = 1000;
-
-    // The process being monitored.
-    private final Process mProcess;
-
-    // The stdout and stderr of the process.
-    private final Reader mStdoutReader;
-    private final Reader mStderrReader;
-
-    // The threads redirecting the stdout and stderr to buffers.
-    private final ReaderThread mStdoutThread;
-    private final ReaderThread mStderrThread;
-
-    // The buffers of stdout and stderr.
-    private final StringBuilder mStdout;
-    private final StringBuilder mStderr;
-
-    // The stdin of the process.
-    private final Writer mStdinWriter;
-
-    /**
-     * A thread that keeps reading string from an input stream.
-     */
-    static class ReaderThread extends Thread {
-        private static final int BUF_SIZE = 16 * 1024;
-        private Reader mReader;
-        private StringBuilder mBuffer;
-
-        static enum LogType {
-            STDOUT,
-            STDERR;
-        }
-
-        private LogType mLogType;
-
-        /**
-         * @param reader the input stream to read from.
-         * @param buffer the buffer containing the input data.
-         * @param name the name of the thread.
-         * @param logType enum, type of log output.
-         */
-        public ReaderThread(Reader reader, StringBuilder buffer, String name, LogType logType) {
-            super(name);
-            mReader = reader;
-            mBuffer = buffer;
-            mLogType = logType;
-        }
-
-        /**
-         * Read string from the input stream until EOF.
-         */
-        @Override
-        public void run() {
-            char[] charBuffer = new char[BUF_SIZE];
-            // reader will be closed in cleanUp()
-            try {
-                String currentLogLevel = INFO;
-                while (true) {
-                    int readCount = mReader.read(charBuffer, 0, charBuffer.length);
-                    if (readCount < 0) {
-                        break;
-                    }
-                    String newRead = new String(charBuffer, 0, readCount);
-
-                    int newLineLen = 0;
-                    if (newRead.endsWith("\r\n")) {
-                        newLineLen = 2;
-                    } else if (newRead.endsWith("\n")) {
-                        newLineLen = 1;
-                    }
-
-                    String newReadPrint = newRead.substring(0, newRead.length() - newLineLen);
-                    switch (mLogType) {
-                        case STDOUT:
-                            // Logs coming from stdout for the process, which may contain
-                            // python DEBUG and ERROR logs.
-                            String[] tokens = newReadPrint.split("\\s+");
-                            if (tokens.length >= 4) {
-                                String level = tokens[3];
-                                switch (tokens[3]) {
-                                    case DEBUG:
-                                    case INFO:
-                                    case WARN:
-                                    case ERROR:
-                                        currentLogLevel = level;
-                                        break;
-                                    default:
-                                        // Use the last known log level
-                                }
-                            }
-
-                            switch (currentLogLevel) {
-                                case DEBUG:
-                                    CLog.d(newReadPrint);
-                                    break;
-                                case INFO:
-                                    CLog.i(newReadPrint);
-                                    break;
-                                case WARN:
-                                    CLog.w(newReadPrint);
-                                    break;
-                                case ERROR:
-                                    CLog.e(newReadPrint);
-                                    break;
-                                default:
-                                    // This case should never happen
-                                    CLog.e("Error in current log level state.");
-                                    CLog.i(newReadPrint);
-                            }
-
-                            break;
-                        case STDERR:
-                            // Logs coming from stderr for the process, which is always
-                            // ERROR level
-                            CLog.e(newReadPrint);
-                            break;
-                    }
-                    mBuffer.append(newRead);
-                }
-            } catch (IOException e) {
-                CLog.e("IOException during ProcessHelper#ReaderThread run.");
-                CLog.e(e);
-            }
-        }
-    }
-
-    /**
-     * This class waits for a process. It is run by {@link IRunUtil}.
-     */
-    class VtsRunnable implements IRunUtil.IRunnableResult {
-        private boolean mCancelled = false;
-        private Thread mExecutionThread = null;
-        private final Object mLock = new Object();
-
-        /**
-         * @return whether the command is successful. {@link RunUtil} returns
-         * {@link CommandStatus#SUCCESS} or {@link CommandStatus#FAILED} according to the
-         * this return value.
-         */
-        @Override
-        public boolean run() {
-            synchronized (mLock) {
-                mExecutionThread = Thread.currentThread();
-                if (mCancelled) {
-                    CLog.w("Process was cancelled before being awaited.");
-                    return false;
-                }
-            }
-            boolean success;
-            try {
-                success = (mProcess.waitFor() == 0);
-                CLog.d("Process terminates normally.");
-            } catch (InterruptedException e) {
-                success = false;
-                CLog.e("Process is interrupted.");
-            }
-            return success;
-        }
-
-        /**
-         * This method makes {@link #run()} method stop waiting for the process. It can be called
-         * more than once. {@link RunUtil} calls this method if {@link CommandStatus} is TIMED_OUT
-         * or EXCEPTION.
-         */
-        @Override
-        public void cancel() {
-            CLog.w("Attempt to interrupt execution thread.");
-            synchronized (mLock) {
-                if (!mCancelled) {
-                    mCancelled = true;
-                    if (mExecutionThread != null) {
-                        mExecutionThread.interrupt();
-                    } else {
-                        CLog.d("Execution thread has not started.");
-                    }
-                } else {
-                    CLog.e("Execution thread has been cancelled.");
-                }
-            }
-        }
-
-        /**
-         * @return the thread of {@link #run()}; null if the thread has not started.
-         */
-        public Thread getExecutionThread() {
-            synchronized (mLock) {
-                return mExecutionThread;
-            }
-        }
-    }
-
-    /**
-     * Create an instance that monitors a running process.
-     *
-     * @param process the process to monitor.
-     */
-    public ProcessHelper(Process process) {
-        mProcess = process;
-        mStdout = new StringBuilder();
-        mStderr = new StringBuilder();
-        mStdinWriter = new OutputStreamWriter(mProcess.getOutputStream());
-        mStdoutReader = new InputStreamReader(mProcess.getInputStream());
-        mStderrReader = new InputStreamReader(mProcess.getErrorStream());
-        mStdoutThread = new ReaderThread(
-                mStdoutReader, mStdout, "process-helper-stdout", ReaderThread.LogType.STDOUT);
-        mStderrThread = new ReaderThread(
-                mStderrReader, mStderr, "process-helper-stderr", ReaderThread.LogType.STDERR);
-        mStdoutThread.start();
-        mStderrThread.start();
-    }
-
-    /**
-     * Wait for the process until termination, timeout, or interrupt.
-     *
-     * @param timeoutMsecs the time to wait in milliseconds.
-     * @return {@link CommandStatus#SUCCESS} or {@link CommandStatus#FAILED} if the process
-     * terminated. {@link CommandStatus#TIMED_OUT} if timeout. {@link CommandStatus#EXCEPTION} for
-     * other types of errors.
-     * @throws RunInterruptedException if TradeFed interrupts the test invocation.
-     */
-    public CommandStatus waitForProcess(long timeoutMsecs) throws RunInterruptedException {
-        VtsRunnable vtsRunnable = new VtsRunnable();
-        CommandStatus status;
-        // Use default RunUtil because it can receive the notification of "invocation stop".
-        try {
-            status = RunUtil.getDefault().runTimed(timeoutMsecs, vtsRunnable, true);
-        } catch (RunInterruptedException e) {
-            // clear the flag set by default RunUtil.
-            Thread.interrupted();
-            // RunUtil does not always call cancel() and join() when interrupted.
-            vtsRunnable.cancel();
-            Thread execThread = vtsRunnable.getExecutionThread();
-            if (execThread != null) {
-                joinThread(execThread, THREAD_JOIN_TIMEOUT_MSECS);
-            }
-            throw e;
-        }
-        if (CommandStatus.SUCCESS.equals(status) || CommandStatus.FAILED.equals(status)) {
-            // Join the receiver threads otherwise output might not be available yet.
-            joinThread(mStdoutThread, THREAD_JOIN_TIMEOUT_MSECS);
-            joinThread(mStderrThread, THREAD_JOIN_TIMEOUT_MSECS);
-        } else {
-            CLog.w("Process status is %s", status);
-        }
-        return status;
-    }
-
-    /**
-     * Write a string to stdin of the process.
-     *
-     * @param data the string.
-     * @throws IOException if the operation fails.
-     */
-    public void writeStdin(String data) throws IOException {
-        mStdinWriter.write(data);
-        mStdinWriter.flush();
-    }
-
-    /**
-     * Close stdin of the process.
-     *
-     * @throws IOException if the operation fails.
-     */
-    public void closeStdin() throws IOException {
-        mStdinWriter.close();
-    }
-
-    /**
-     * @return the stdout of the process. As the buffer is not thread safe, the caller must call
-     * {@link #cleanUp()} or {@link #waitForProcess(long)} to ensure process termination before
-     * calling this method.
-     */
-    public String getStdout() {
-        return mStdout.toString();
-    }
-
-    /**
-     * @return the stderr of the process. As the buffer is not thread safe, the caller must call
-     * {@link #cleanUp()} or {@link #waitForProcess(long)} to ensure process termination before
-     * calling this method.
-     */
-    public String getStderr() {
-        return mStderr.toString();
-    }
-
-    /**
-     * @return whether the process is running.
-     */
-    public boolean isRunning() {
-        try {
-            mProcess.exitValue();
-            return false;
-        } catch (IllegalThreadStateException e) {
-            return true;
-        }
-    }
-
-    /**
-     * Kill the process if it is running. Clean up all threads and streams.
-     */
-    public void cleanUp() {
-        try {
-            for (int pollCount = 0; isRunning(); pollCount++) {
-                if (pollCount >= DESTROY_PROCESS_MAX_POLL_COUNT) {
-                    CLog.e("Cannot destroy the process.");
-                    break;
-                }
-                if (pollCount == 0) {
-                    CLog.w("Kill the running process.");
-                    mProcess.destroy();
-                } else {
-                    Thread.sleep(DESTROY_PROCESS_POLL_INTERVAL_MSECS);
-                }
-            }
-        } catch (InterruptedException e) {
-            CLog.e(e);
-        }
-        try {
-            closeStdin();
-        } catch (IOException e) {
-            CLog.e(e);
-        }
-        try {
-            mStdoutReader.close();
-        } catch (IOException e) {
-            CLog.e(e);
-        }
-        try {
-            mStderrReader.close();
-        } catch (IOException e) {
-            CLog.e(e);
-        }
-        joinThread(mStdoutThread, THREAD_JOIN_TIMEOUT_MSECS);
-        joinThread(mStderrThread, THREAD_JOIN_TIMEOUT_MSECS);
-    }
-
-    /**
-     * Join a thread and log error.
-     *
-     * @param thread the thread to join.
-     * @param timeoutMsec the timeout in milliseconds.
-     * @return whether the thread is joined successfully.
-     */
-    private static boolean joinThread(Thread thread, long timeoutMsec) {
-        try {
-            thread.join(timeoutMsec);
-        } catch (InterruptedException e) {
-            CLog.e(e);
-        }
-        if (thread.isAlive()) {
-            CLog.e("Failed to join %s.", thread.getName());
-            return false;
-        }
-        return true;
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/tradefed/util/VtsDashboardApiTransport.java b/harnesses/tradefed/src/com/android/tradefed/util/VtsDashboardApiTransport.java
deleted file mode 100644
index 640ca74..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/util/VtsDashboardApiTransport.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.tradefed.util;
-
-import com.google.api.client.http.ByteArrayContent;
-import com.google.api.client.http.FileContent;
-import com.google.api.client.http.GenericUrl;
-import com.google.api.client.http.HttpContent;
-import com.google.api.client.http.HttpHeaders;
-import com.google.api.client.http.HttpRequest;
-import com.google.api.client.http.HttpRequestFactory;
-import com.google.api.client.http.HttpResponse;
-import com.google.api.client.http.HttpTransport;
-import com.google.api.client.http.MultipartContent;
-import com.google.api.client.http.MultipartContent.Part;
-import com.google.api.client.json.jackson2.JacksonFactory;
-import com.google.api.client.util.Charsets;
-import com.google.common.base.Preconditions;
-import com.google.gson.Gson;
-
-import java.io.File;
-import java.io.IOException;
-import java.lang.reflect.Type;
-import java.net.URI;
-import java.time.Duration;
-import java.util.Map;
-
-/**
- * Http Client Class Library which is customized for dashboard using google http java client
- * Currently, this class support GET, POST method and media file upload.
- */
-public class VtsDashboardApiTransport {
-    /**
-     * The target API host url
-     */
-    private String API_URL = "";
-
-    /**
-     * The recommended concrete implementation HTTP transport library to use depends on what
-     * environment you are running in
-     */
-    private final HttpTransport httpTransport;
-
-    /**
-     * VtsDashboardApiTransport class constructor function.
-     */
-    public VtsDashboardApiTransport(HttpTransport httpTransport, String apiUrl) {
-        this.httpTransport = Preconditions.checkNotNull(httpTransport);
-        this.API_URL = apiUrl;
-    }
-
-    /**
-     * Upload file content through GET method.
-     *
-     * @param path The url path from API HOST.
-     * @param responseType The response class type.
-     * @return responseType Class will have mapped attributes from Json response.
-     * @throws IOException when http request is broken.
-     */
-    @SuppressWarnings("unchecked")
-    public <T> T get(String path, Type responseType) throws IOException {
-        HttpRequestFactory requestFactory = getHttpRequestFactory();
-
-        GenericUrl url = new GenericUrl(URI.create(API_URL + "/" + path));
-        try {
-            HttpRequest httpRequest = requestFactory.buildGetRequest(url);
-            HttpResponse response = httpRequest.execute();
-            return (T) response.parseAs(responseType);
-        } catch (IOException e) {
-            throw new IOException("Error running get API operation " + path, e);
-        }
-    }
-
-    /**
-     * Upload file content through POST method.
-     *
-     * @param path The url path from API HOST.
-     * @param request The request post data object.
-     * @param responseType The response class type.
-     * @return responseType Class will have mapped attributes from Json response.
-     * @throws IOException when http request is broken.
-     */
-    @SuppressWarnings("unchecked")
-    public <T> T post(String path, Object request, Type responseType) throws IOException {
-        HttpRequestFactory requestFactory = getHttpRequestFactory();
-
-        GenericUrl url = new GenericUrl(URI.create(API_URL + "/" + path));
-
-        HttpContent httpContent = new ByteArrayContent(
-                "application/json", new Gson().toJson(request).getBytes(Charsets.UTF_8));
-        try {
-            HttpRequest httpRequest = requestFactory.buildPostRequest(url, httpContent);
-            HttpResponse response = httpRequest.execute();
-            return (T) response.parseAs(responseType);
-        } catch (IOException e) {
-            throw new IOException("Error running post API operation " + path, e);
-        }
-    }
-
-    /**
-     * Upload file content through POST method.
-     *
-     * @param path The url path from API HOST.
-     * @param fileType The file type to upload.
-     * @param testFilePath The file path to upload.
-     * @return String Response body will be returned.
-     * @throws IOException when http request is broken.
-     */
-    public String postFile(String path, String fileType, String testFilePath) throws IOException {
-        HttpRequestFactory requestFactory = getHttpRequestFactory();
-
-        FileContent fileContent = new FileContent(fileType, new File(testFilePath));
-
-        GenericUrl url = new GenericUrl(URI.create(API_URL + "/" + path));
-        HttpRequest request = requestFactory.buildPostRequest(url, fileContent);
-
-        return request.execute().parseAsString();
-    }
-
-    /**
-     * Upload multiple files content through POST method.
-     *
-     * @param path The url path from API HOST.
-     * @param testFileMap The map for each file with file type.
-     * @return String Response body will be returned.
-     * @throws IOException when http request is broken.
-     */
-    public String postMultiFiles(String path, Map<String, String> testFileMap) throws IOException {
-        HttpRequestFactory requestFactory = getHttpRequestFactory();
-
-        MultipartContent multipartContent = new MultipartContent();
-        for (Map.Entry<String, String> entry : testFileMap.entrySet()) {
-            FileContent fileContent = new FileContent(entry.getKey(), new File(entry.getValue()));
-            Part part = new Part(fileContent);
-            part.setHeaders(new HttpHeaders().set("Content-Disposition",
-                    String.format(
-                            "form-data; name=\"content\"; filename=\"%s\"", entry.getValue())));
-            multipartContent.addPart(part);
-        }
-
-        GenericUrl url = new GenericUrl(URI.create(API_URL + "/" + path));
-        HttpRequest request = requestFactory.buildPostRequest(url, multipartContent);
-
-        return request.execute().parseAsString();
-    }
-
-    /**
-     * Get HttpRequestFactory instance with default options.
-     *
-     * @return HttpRequestFactory from google-http-java-client library with custom options.
-     */
-    protected HttpRequestFactory getHttpRequestFactory() {
-        return httpTransport.createRequestFactory(request -> {
-            request.setConnectTimeout((int) Duration.ofMinutes(1).toMillis());
-            request.setReadTimeout((int) Duration.ofMinutes(1).toMillis());
-            HttpHeaders httpHeaders = new HttpHeaders();
-            request.setHeaders(httpHeaders);
-            request.setParser(new JacksonFactory().createJsonObjectParser());
-        });
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/tradefed/util/VtsDashboardUtil.java b/harnesses/tradefed/src/com/android/tradefed/util/VtsDashboardUtil.java
deleted file mode 100644
index b17c79a..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/util/VtsDashboardUtil.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-
-package com.android.tradefed.util;
-
-import com.android.tradefed.log.LogUtil.CLog;
-import com.android.vts.proto.VtsReportMessage.DashboardPostMessage;
-
-import com.google.api.client.auth.oauth2.Credential;
-import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
-import com.google.api.client.http.javanet.NetHttpTransport;
-import com.google.api.client.json.JsonFactory;
-import com.google.api.client.json.jackson2.JacksonFactory;
-import com.google.common.base.Strings;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Base64;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.NoSuchElementException;
-import java.util.Optional;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * Uploads the VTS test plan execution result to the web DB using a RESTful API and an OAuth2
- * credential kept in a json file.
- */
-public class VtsDashboardUtil {
-    private static final String PLUS_ME = "https://www.googleapis.com/auth/plus.me";
-    private static final int BASE_TIMEOUT_MSECS = 1000 * 60;
-    private static VtsVendorConfigFileUtil mConfigReader;
-    private static final IRunUtil mRunUtil = new RunUtil();
-    private static VtsDashboardApiTransport vtsDashboardApiTransport;
-
-    public VtsDashboardUtil(VtsVendorConfigFileUtil configReader) {
-        mConfigReader = configReader;
-        try {
-            String apiUrl = mConfigReader.GetVendorConfigVariable("dashboard_api_host_url");
-            vtsDashboardApiTransport = new VtsDashboardApiTransport(new NetHttpTransport(), apiUrl);
-        } catch (NoSuchElementException e) {
-            CLog.w("Configure file not available.");
-        }
-    }
-
-    /**
-     * Returns an OAuth2 token string obtained using a service account json keyfile.
-     *
-     * Uses the service account keyfile located at config variable 'service_key_json_path'
-     * to request an OAuth2 token.
-     */
-    private String GetToken() {
-        String keyFilePath;
-        try {
-            keyFilePath = mConfigReader.GetVendorConfigVariable("service_key_json_path");
-        } catch (NoSuchElementException e) {
-            return null;
-        }
-
-        JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
-        Credential credential = null;
-        try {
-            List<String> listStrings = new LinkedList<>();
-            listStrings.add(PLUS_ME);
-            credential = GoogleCredential.fromStream(new FileInputStream(keyFilePath))
-                                 .createScoped(listStrings);
-            credential.refreshToken();
-            return credential.getAccessToken();
-        } catch (FileNotFoundException e) {
-            CLog.e(String.format("Service key file %s doesn't exist.", keyFilePath));
-        } catch (IOException e) {
-            CLog.e(String.format("Can't read the service key file, %s", keyFilePath));
-        }
-        return null;
-    }
-
-    /**
-     * Uploads the given message to the web DB.
-     *
-     * @param message, DashboardPostMessage that keeps the result to upload.
-     */
-    public void Upload(DashboardPostMessage.Builder message) {
-        String dashboardCurlCommand =
-                mConfigReader.GetVendorConfigVariable("dashboard_use_curl_command");
-        Optional<String> dashboardCurlCommandOpt = Optional.of(dashboardCurlCommand);
-        Boolean curlCommandCheck = Boolean.parseBoolean(dashboardCurlCommandOpt.orElse("false"));
-        String token = GetToken();
-        if (token == null) {
-            return;
-        }
-        message.setAccessToken(token);
-        String messageFilePath = "";
-        try {
-            messageFilePath = WriteToTempFile(
-                    Base64.getEncoder().encodeToString(message.build().toByteArray()).getBytes());
-        } catch (IOException e) {
-            CLog.e("Couldn't write a proto message to a temp file.");
-        }
-
-        if (Strings.isNullOrEmpty(messageFilePath)) {
-            CLog.e("Couldn't get the MessageFilePath.");
-        } else {
-            if (curlCommandCheck) {
-                CurlUpload(messageFilePath);
-            } else {
-                Upload(messageFilePath);
-            }
-        }
-    }
-
-    /**
-     * Uploads the given message file path to the web DB using google http java api library.
-     *
-     * @param messageFilePath, DashboardPostMessage file path that keeps the result to upload.
-     */
-    public Boolean Upload(String messageFilePath) {
-        try {
-            String response = vtsDashboardApiTransport.postFile(
-                    "/api/datastore", "application/octet-stream", messageFilePath);
-            CLog.d(String.format("Upload Result : %s", response));
-            return true;
-        } catch (IOException e) {
-            CLog.e("Error occurred on uploading dashboard message file!");
-            CLog.e(e.getLocalizedMessage());
-            return false;
-        }
-    }
-
-    /**
-     * Uploads the given message file path to the web DB using curl command.
-     *
-     * @param messageFilePath, DashboardPostMessage file path that keeps the result to upload.
-     */
-    @Deprecated
-    public void CurlUpload(String messageFilePath) {
-        try {
-            String commandTemplate =
-                    mConfigReader.GetVendorConfigVariable("dashboard_post_command");
-            commandTemplate = commandTemplate.replace("{path}", messageFilePath);
-            // removes ', while keeping any substrings quoted by "".
-            commandTemplate = commandTemplate.replace("'", "");
-            CLog.d(String.format("Upload command: %s", commandTemplate));
-            List<String> commandList = new ArrayList<String>();
-            Matcher matcher = Pattern.compile("([^\"]\\S*|\".+?\")\\s*").matcher(commandTemplate);
-            while (matcher.find()) {
-                commandList.add(matcher.group(1));
-            }
-            CommandResult c = mRunUtil.runTimedCmd(BASE_TIMEOUT_MSECS * 3,
-                    (String[]) commandList.toArray(new String[commandList.size()]));
-            if (c == null || c.getStatus() != CommandStatus.SUCCESS) {
-                CLog.e("Uploading the test plan execution result to GAE DB faiied.");
-                CLog.e("Stdout: %s", c.getStdout());
-                CLog.e("Stderr: %s", c.getStderr());
-            }
-            FileUtil.deleteFile(new File(messageFilePath));
-        } catch (NoSuchElementException e) {
-            CLog.e("dashboard_post_command unspecified in vendor config.");
-        }
-    }
-
-    /**
-     * Simple wrapper to write data to a temp file.
-     *
-     * @param data, actual data to write to a file.
-     * @throws IOException
-     */
-    private String WriteToTempFile(byte[] data) throws IOException {
-        File tempFile = File.createTempFile("tempfile", ".tmp");
-        String filePath = tempFile.getAbsolutePath();
-        FileOutputStream out = new FileOutputStream(filePath);
-        out.write(data);
-        out.close();
-        return filePath;
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/tradefed/util/VtsPythonRunnerHelper.java b/harnesses/tradefed/src/com/android/tradefed/util/VtsPythonRunnerHelper.java
deleted file mode 100644
index 38d25d8..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/util/VtsPythonRunnerHelper.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.tradefed.util;
-
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.log.LogUtil.CLog;
-import com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.OutputStream;
-
-/**
- * A helper class for executing VTS python scripts.
- */
-public class VtsPythonRunnerHelper {
-    // The timeout for the runner's teardown prodedure.
-    public static final long TEST_ABORT_TIMEOUT_MSECS = 1000 * 40;
-
-    static final String PATH = "PATH";
-    static final String PYTHONHOME = "PYTHONHOME";
-    static final String VTS = "vts";
-
-    // Python virtual environment root path
-    private File mVirtualenvPath;
-    protected IRunUtil mRunUtil;
-
-    public VtsPythonRunnerHelper(IBuildInfo buildInfo, File workingDir) {
-        this(buildInfo.getBuildAttributes().get(VtsPythonVirtualenvPreparer.VIRTUAL_ENV),
-                workingDir);
-    }
-
-    public VtsPythonRunnerHelper(String virtualEnvPath, File workingDir) {
-        this(virtualEnvPath == null ? null : new File(virtualEnvPath), workingDir);
-    }
-
-    public VtsPythonRunnerHelper(File virtualEnvPath, File workingDir) {
-        this(virtualEnvPath, workingDir, new RunUtil());
-    }
-
-    public VtsPythonRunnerHelper(File virtualEnvPath, File workingDir, IRunUtil runUtil) {
-        mVirtualenvPath = virtualEnvPath;
-        mRunUtil = runUtil;
-        activateVirtualenv(mRunUtil, getPythonVirtualEnv());
-        mRunUtil.setWorkingDir(workingDir);
-    }
-
-    /**
-     * Run VTS Python runner and handle interrupt from TradeFed.
-     *
-     * @param cmd the command to start VTS Python runner.
-     * @param commandResult the object containing the command result.
-     * @param timeout command timeout value.
-     * @return null if the command terminates or times out; a message string if the command is
-     * interrupted by TradeFed.
-     */
-    public String runPythonRunner(String[] cmd, CommandResult commandResult, long timeout) {
-        OutputStream stdOut = new ByteArrayOutputStream();
-        OutputStream stdErr = new ByteArrayOutputStream();
-        try {
-            return runPythonRunner(cmd, commandResult, timeout, stdOut, stdErr);
-        } finally {
-            try {
-                stdOut.close();
-                stdErr.close();
-                commandResult.setStdout(((ByteArrayOutputStream) stdOut).toString("UTF-8"));
-                commandResult.setStderr(((ByteArrayOutputStream) stdErr).toString("UTF-8"));
-            } catch (IOException e) {
-                throw new RuntimeException(e);
-            }
-        }
-    }
-
-    /**
-     * Run VTS Python runner and handle interrupt from TradeFed.
-     *
-     * @param cmd the command to start VTS Python runner.
-     * @param commandResult the object containing the command result.
-     * @param timeout command timeout value.
-     * @return null if the command terminates or times out; a message string if the command is
-     * interrupted by TradeFed.
-     */
-    public String runPythonRunner(String[] cmd, CommandResult commandResult, long timeout,
-            OutputStream stdOut, OutputStream stdErr) {
-        String interruptMessage;
-        CommandStatus commandStatus;
-        CommandResult result;
-        try {
-            result = mRunUtil.runTimedCmd(timeout, stdOut, stdErr, cmd);
-            commandStatus = result.getStatus();
-            interruptMessage = null;
-        } catch (RunInterruptedException e) {
-            CLog.e("Python process is interrupted.");
-            commandStatus = CommandStatus.TIMED_OUT;
-            interruptMessage = (e.getMessage() != null ? e.getMessage() : "");
-        }
-        commandResult.setStatus(commandStatus);
-        return interruptMessage;
-    }
-
-    /**
-     * Gets python bin directory path.
-     *
-     * This method will check the directory existence.
-     *
-     * @return python bin directory; null if not exist.
-     */
-    public static String getPythonBinDir(String virtualenvPath) {
-        if (virtualenvPath == null) {
-            return null;
-        }
-        String binDirName = EnvUtil.isOnWindows() ? "Scripts" : "bin";
-        File res = new File(virtualenvPath, binDirName);
-        if (!res.exists()) {
-            return null;
-        }
-        return res.getAbsolutePath();
-    }
-
-    /**
-     * Get python virtualenv path
-     * @return virutalenv path. null if doesn't exist
-     */
-    public String getPythonVirtualEnv() {
-        if (mVirtualenvPath == null) {
-            return null;
-        }
-        return mVirtualenvPath.getAbsolutePath();
-    }
-
-    /**
-     * Activate virtualenv for a RunUtil.
-     *
-     * This method will check for python bin directory existence
-     *
-     * @param runUtil
-     * @param virtualenvPath
-     */
-    public static void activateVirtualenv(IRunUtil runUtil, String virtualenvPath) {
-        String pythonBinDir = getPythonBinDir(virtualenvPath);
-        if (pythonBinDir == null || !new File(pythonBinDir).exists()) {
-            CLog.e("Invalid python virtualenv path. Using python from system path.");
-        } else {
-            String separater = EnvUtil.isOnWindows() ? ";" : ":";
-            runUtil.setEnvVariable(PATH, pythonBinDir + separater + System.getenv().get(PATH));
-            runUtil.setEnvVariable(VtsPythonVirtualenvPreparer.VIRTUAL_ENV, virtualenvPath);
-            runUtil.unsetEnvVariable(PYTHONHOME);
-        }
-    }
-}
diff --git a/harnesses/tradefed/src/com/android/tradefed/util/VtsVendorConfigFileUtil.java b/harnesses/tradefed/src/com/android/tradefed/util/VtsVendorConfigFileUtil.java
deleted file mode 100644
index 6495fd2..0000000
--- a/harnesses/tradefed/src/com/android/tradefed/util/VtsVendorConfigFileUtil.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-
-package com.android.tradefed.util;
-
-import java.io.InputStream;
-import java.io.IOException;
-import java.util.Map;
-import java.util.NoSuchElementException;
-
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.log.LogUtil.CLog;
-import com.android.tradefed.util.StreamUtil;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-/**
- * Util to access a VTS config file.
- */
-public class VtsVendorConfigFileUtil {
-    public static final String KEY_VENDOR_TEST_CONFIG_DEFAULT_TYPE =
-            "vts-vendor-config:default-type";
-    public static final String KEY_VENDOR_TEST_CONFIG_FILE_PATH = "vts-vendor-config:file-path";
-    public static final String VENDOR_TEST_CONFIG_DEFAULT_TYPE = "prod";
-    public static final String VENDOR_TEST_CONFIG_FILE_PATH_PROD =
-            "/config/vts-tradefed-vendor-config-prod.json";
-    public static final String VENDOR_TEST_CONFIG_FILE_PATH_TEST =
-            "/config/vts-tradefed-vendor-config-test.json";
-
-    private JSONObject vendorConfigJson = null;
-
-    // The path of a VTS vendor config file (format: json).
-    private String mVendorConfigFilePath = null;
-
-    // The default config file type, e.g., `prod` or `test`.
-    private String mDefaultType = VENDOR_TEST_CONFIG_DEFAULT_TYPE;
-
-    /**
-     * Returns the specified vendor config file path.
-     */
-    public String GetVendorConfigFilePath() {
-        if (mVendorConfigFilePath == null) {
-            if (mDefaultType.toLowerCase().equals(VENDOR_TEST_CONFIG_DEFAULT_TYPE)) {
-                mVendorConfigFilePath = VENDOR_TEST_CONFIG_FILE_PATH_PROD;
-            } else {
-                mVendorConfigFilePath = VENDOR_TEST_CONFIG_FILE_PATH_TEST;
-            }
-        }
-        return mVendorConfigFilePath;
-    }
-
-    /**
-     * Loads a VTS vendor config file.
-     *
-     * @param configPath, the path of a config file.
-     * @throws RuntimeException
-     */
-    public boolean LoadVendorConfig(String configPath) throws RuntimeException {
-        if (configPath == null || configPath.length() == 0) {
-            configPath = GetVendorConfigFilePath();
-        }
-        CLog.d("Loading vendor test config %s", configPath);
-        InputStream config = getClass().getResourceAsStream(configPath);
-        if (config == null) {
-            CLog.d("Vendor test config file %s does not exist", configPath);
-            return false;
-        }
-        try {
-            String content = StreamUtil.getStringFromStream(config);
-            if (content == null) {
-                CLog.e("Loaded vendor test config is empty");
-                return false;
-            }
-            CLog.d("Loaded vendor test config %s", content);
-            vendorConfigJson = new JSONObject(content);
-        } catch (IOException e) {
-            throw new RuntimeException("Failed to read vendor config json file");
-        } catch (JSONException e) {
-            throw new RuntimeException("Failed to parse vendor config json data");
-        }
-        return true;
-    }
-
-    /**
-     * Loads a VTS vendor config file.
-     *
-     * @param defaultType, The default config file type, e.g., `prod` or `test`.
-     * @param vendorConfigFilePath, The path of a VTS vendor config file (format: json).
-     * @throws RuntimeException
-     */
-    public boolean LoadVendorConfig(String defaultType, String vendorConfigFilePath)
-            throws RuntimeException {
-        mDefaultType = defaultType;
-        mVendorConfigFilePath = vendorConfigFilePath;
-        return LoadVendorConfig("");
-    }
-
-    /**
-     * Loads a VTS vendor config file.
-     *
-     * @param defaultType, The default config file type, e.g., `prod` or `test`.
-     * @param vendorConfigFilePath, The path of a VTS vendor config file (format: json).
-     * @throws RuntimeException
-     */
-    public boolean LoadVendorConfig(IBuildInfo buildInfo) throws RuntimeException {
-        Map<String, String> attrs = buildInfo.getBuildAttributes();
-        if (attrs.containsKey(KEY_VENDOR_TEST_CONFIG_DEFAULT_TYPE)) {
-            mDefaultType = attrs.get(KEY_VENDOR_TEST_CONFIG_DEFAULT_TYPE);
-        } else {
-            CLog.d("No default vendor test configuration provided. Defaulting to prod.");
-        }
-        mVendorConfigFilePath = attrs.get(KEY_VENDOR_TEST_CONFIG_FILE_PATH);
-        return LoadVendorConfig(mDefaultType, mVendorConfigFilePath);
-    }
-
-    /**
-     * Gets the value of a config variable.
-     *
-     * @param varName, the name of a variable.
-     * @throws NoSuchElementException
-     */
-    public String GetVendorConfigVariable(String varName) throws NoSuchElementException {
-        if (vendorConfigJson == null) {
-            CLog.e("Vendor config json file invalid or not yet loaded.");
-            throw new NoSuchElementException("config is empty");
-        }
-        try {
-            return vendorConfigJson.getString(varName);
-        } catch (JSONException e) {
-            CLog.e("Vendor config file does not define %s", varName);
-            throw new NoSuchElementException("config parsing error");
-        }
-    }
-
-    /**
-     * Returns the current vendor config json object.
-     */
-    public JSONObject GetVendorConfigJson() {
-        return vendorConfigJson;
-    }
-}
diff --git a/harnesses/tradefed/tests/Android.bp b/harnesses/tradefed/tests/Android.bp
deleted file mode 100644
index 5e819f7..0000000
--- a/harnesses/tradefed/tests/Android.bp
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2016 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.
-
-java_library_host {
-    name: "vts10-tradefed-tests",
-
-    srcs: ["src/**/*.java"],
-
-    static_libs: [
-        "easymock",
-        "mockito-host",
-        "objenesis",
-    ],
-    libs: [
-        "tradefed",
-        "vts10-tradefed",
-    ],
-    java_resource_dirs: ["res"],
-}
diff --git a/harnesses/tradefed/tests/res/testtype/test_run_summary_class_errors.json b/harnesses/tradefed/tests/res/testtype/test_run_summary_class_errors.json
deleted file mode 100644
index 602c53a..0000000
--- a/harnesses/tradefed/tests/res/testtype/test_run_summary_class_errors.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-    "Class Errors": "class error",
-    "Results": [
-        {
-            "Begin Time": 1525424790227,
-            "Details": "unit test",
-            "End Time": 1525424790227,
-            "Extra Errors": {},
-            "Extras": null,
-            "Result": "ERROR",
-            "Tables": {},
-            "Test Class": "SampleLightFuzzTest",
-            "Test Name": "testTurnOnLightBlackBoxFuzzing",
-            "UID": null
-        }
-    ],
-    "Summary": {
-        "Error": 1,
-        "Executed": 0,
-        "Failed": 0,
-        "Passed": 0,
-        "Requested": 1,
-        "Skipped": 0
-    },
-    "TestModule": {
-        "Name": null,
-        "Timestamp": null
-    }
-}
diff --git a/harnesses/tradefed/tests/res/testtype/test_run_summary_normal.json b/harnesses/tradefed/tests/res/testtype/test_run_summary_normal.json
deleted file mode 100644
index 7a8e83d..0000000
--- a/harnesses/tradefed/tests/res/testtype/test_run_summary_normal.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
-    "Class Errors": null,
-    "Results": [
-        {
-            "Begin Time": 1525425222367,
-            "Details": null,
-            "End Time": 1525425223793,
-            "Extra Errors": {},
-            "Extras": null,
-            "Result": "PASS",
-            "Tables": {},
-            "Test Class": "SampleLightFuzzTest",
-            "Test Name": "testTurnOnLightBlackBoxFuzzing",
-            "UID": null
-        },
-        {
-            "Begin Time": 1525425749536,
-            "Details": "unit test",
-            "End Time": 1525425749537,
-            "Extra Errors": {},
-            "Extras": null,
-            "Result": "FAIL",
-            "Tables": {},
-            "Test Class": "SampleLightFuzzTest",
-            "Test Name": "testTurnOnLightWhiteBoxFuzzing",
-            "UID": null
-        }
-    ],
-    "Summary": {
-        "Error": 0,
-        "Executed": 2,
-        "Failed": 1,
-        "Passed": 1,
-        "Requested": 2,
-        "Skipped": 0
-    },
-    "TestModule": {
-        "Name": null,
-        "Timestamp": null
-    }
-}
diff --git a/harnesses/tradefed/tests/res/testtype/vts_fuzz_output1.txt b/harnesses/tradefed/tests/res/testtype/vts_fuzz_output1.txt
deleted file mode 100644
index e00d15e..0000000
--- a/harnesses/tradefed/tests/res/testtype/vts_fuzz_output1.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-vts
-...
-[  PASSED  ]
diff --git a/harnesses/tradefed/tests/res/testtype/vts_fuzz_output2.txt b/harnesses/tradefed/tests/res/testtype/vts_fuzz_output2.txt
deleted file mode 100644
index 09e0d1c..0000000
--- a/harnesses/tradefed/tests/res/testtype/vts_fuzz_output2.txt
+++ /dev/null
@@ -1 +0,0 @@
-segfault
\ No newline at end of file
diff --git a/harnesses/tradefed/tests/res/testtype/vts_multi_device_test_parser_output.txt b/harnesses/tradefed/tests/res/testtype/vts_multi_device_test_parser_output.txt
deleted file mode 100644
index aa7c79a..0000000
--- a/harnesses/tradefed/tests/res/testtype/vts_multi_device_test_parser_output.txt
+++ /dev/null
@@ -1,290 +0,0 @@
-[VTS-Example] 07-01 08:54:59.495 INFO ==========> SampleLightFuzzTest <==========
-[VTS-Example] 07-01 08:55:01.215 INFO Exception occurred in command: killall vts_hal_agent > /dev/null 2&>1
-[VTS-Example] 07-01 08:55:01.258 INFO Exception occurred in command: killall vts_hal_driver32 > /dev/null 2&>1
-[VTS-Example] 07-01 08:55:01.296 INFO Exception occurred in command: killall vts_hal_driver64 > /dev/null 2&>1
-[VTS-Example] 07-01 08:55:02.299 INFO sending a command (type SET_HOST_INFO)
-[VTS-Example] 07-01 08:55:02.312 INFO resp 2 bytes
-[VTS-Example] 07-01 08:55:02.313 INFO TcpServer Thread-2 started (127.0.0.1:5365)
-[VTS-Example] 07-01 08:55:02.313 INFO sending a command (type SET_HOST_INFO)
-[VTS-Example] 07-01 08:55:02.323 INFO resp 2 bytes
-[VTS-Example] 07-01 08:55:02.324 INFO sending a command (type LIST_HALS)
-[VTS-Example] 07-01 08:55:02.329 INFO resp 910 bytes
-[VTS-Example] 07-01 08:55:02.367 INFO Init the stub service for light
-[VTS-Example] 07-01 08:55:02.368 INFO service_name: vts_binder_light
-[VTS-Example] 07-01 08:55:02.368 INFO file_path: /system/lib64/hw/lights.angler.so
-[VTS-Example] 07-01 08:55:02.368 INFO bits: 64
-[VTS-Example] 07-01 08:55:02.368 INFO sending a command (type LAUNCH_STUB_SERVICE)
-[VTS-Example] 07-01 08:55:03.395 INFO resp 29 bytes
-[VTS-Example] 07-01 08:55:03.434 INFO sending a command (type LIST_APIS)
-[VTS-Example] 07-01 08:55:03.439 INFO resp 2616 bytes
-[VTS-Example] 07-01 08:55:03.484 INFO sending a command (type CALL_API)
-[VTS-Example] 07-01 08:55:03.485 INFO target API: name: "#Open"
-return_type {
-  scalar_type: "int32_t"
-}
-arg {
-  type: TYPE_STRING
-  string_value {
-    message: "backlight"
-  }
-}
-
-[VTS-Example] 07-01 08:55:03.506 INFO resp 135 bytes
-[VTS-Example] 07-01 08:55:03.554 INFO [Test Case] testTurnOnLightBlackBoxFuzzing
-[VTS-Example] 07-01 08:55:03.554 INFO blackbox fuzzing
-[VTS-Example] 07-01 08:55:03.560 INFO MessageGenerator light_state_t name: "light_state_t"
-type: TYPE_STRUCT
-struct_value {
-  name: "color"
-  type: TYPE_SCALAR
-  scalar_value {
-    uint32_t: 4294967040
-  }
-  scalar_type: "uint32_t"
-}
-struct_value {
-  name: "flashMode"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-struct_value {
-  name: "flashOnMs"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-struct_value {
-  name: "flashOffMs"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-struct_value {
-  name: "brightnessMode"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-
-[VTS-Example] 07-01 08:55:09.171 INFO resp 982 bytes
-[VTS-Example] 07-01 08:55:09.217 INFO remote call set_light(None, <vts.proto.InterfaceSpecificationMessage_pb2.VariableSpecificationMessage object at 0x7ffb43779ad0>)
-[VTS-Example] 07-01 08:55:09.219 INFO sending a command (type CALL_API)
-[VTS-Example] 07-01 08:55:09.219 INFO target API: name: "set_light"
-return_type {
-  type: TYPE_SCALAR
-  scalar_type: "int32_t"
-}
-arg {
-  type: TYPE_PREDEFINED
-  scalar_type: "pointer"
-  predefined_type: "struct light_device_t*"
-}
-arg {
-  name: "light_state_t"
-  type: TYPE_STRUCT
-  struct_value {
-    name: "color"
-    type: TYPE_SCALAR
-    scalar_value {
-      uint32_t: 4286537472
-    }
-    scalar_type: "uint32_t"
-  }
-  struct_value {
-    name: "flashMode"
-    type: TYPE_SCALAR
-    scalar_value {
-      int32_t: 8388614
-    }
-    scalar_type: "int32_t"
-  }
-  struct_value {
-    name: "flashOnMs"
-    type: TYPE_SCALAR
-    scalar_value {
-      int32_t: 139364
-    }
-    scalar_type: "int32_t"
-  }
-  struct_value {
-    name: "flashOffMs"
-    type: TYPE_SCALAR
-    scalar_value {
-      int32_t: 2097352
-    }
-    scalar_type: "int32_t"
-  }
-  struct_value {
-    name: "brightnessMode"
-    type: TYPE_SCALAR
-    scalar_value {
-      int32_t: 134217728
-    }
-    scalar_type: "int32_t"
-  }
-}
-
-[VTS-Example] 07-01 08:55:09.229 INFO resp 982 bytes
-[VTS-Example] 07-01 08:55:09.282 INFO [Test Case] testTurnOnLightBlackBoxFuzzing PASS
-[VTS-Example] 07-01 08:55:09.282 INFO [Test Case] testTurnOnLightWhiteBoxFuzzing
-[VTS-Example] 07-01 08:55:09.282 INFO whitebox fuzzing
-[VTS-Example] 07-01 08:55:09.286 INFO MessageGenerator light_state_t name: "light_state_t"
-type: TYPE_STRUCT
-struct_value {
-  name: "color"
-  type: TYPE_SCALAR
-  scalar_value {
-    uint32_t: 4294967040
-  }
-  scalar_type: "uint32_t"
-}
-struct_value {
-  name: "flashMode"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-struct_value {
-  name: "flashOnMs"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-struct_value {
-  name: "flashOffMs"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-struct_value {
-  name: "brightnessMode"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-
-[VTS-Example] 07-01 08:55:09.289 INFO MessageGenerator light_state_t name: "light_state_t"
-type: TYPE_STRUCT
-struct_value {
-  name: "color"
-  type: TYPE_SCALAR
-  scalar_value {
-    uint32_t: 4294967040
-  }
-  scalar_type: "uint32_t"
-}
-struct_value {
-  name: "flashMode"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-struct_value {
-  name: "flashOnMs"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-struct_value {
-  name: "flashOffMs"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-struct_value {
-  name: "brightnessMode"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-
-
-[VTS-Example] 07-01 08:55:14.438 INFO resp 977 bytes
-[VTS-Example] 07-01 08:55:14.485 INFO remote call set_light(None, <vts.proto.InterfaceSpecificationMessage_pb2.VariableSpecificationMessage object at 0x7ffb449f43d0>)
-[VTS-Example] 07-01 08:55:14.487 INFO sending a command (type CALL_API)
-[VTS-Example] 07-01 08:55:14.487 INFO target API: name: "set_light"
-return_type {
-  type: TYPE_SCALAR
-  scalar_type: "int32_t"
-}
-arg {
-  type: TYPE_PREDEFINED
-  scalar_type: "pointer"
-  predefined_type: "struct light_device_t*"
-}
-arg {
-  name: "light_state_t"
-  type: TYPE_STRUCT
-  struct_value {
-    name: "color"
-    type: TYPE_SCALAR
-    scalar_value {
-      uint32_t: 4294705024
-    }
-    scalar_type: "uint32_t"
-  }
-  struct_value {
-    name: "flashMode"
-    type: TYPE_SCALAR
-    scalar_value {
-      int32_t: 515
-    }
-    scalar_type: "int32_t"
-  }
-  struct_value {
-    name: "flashOnMs"
-    type: TYPE_SCALAR
-    scalar_value {
-      int32_t: 33556068
-    }
-    scalar_type: "int32_t"
-  }
-  struct_value {
-    name: "flashOffMs"
-    type: TYPE_SCALAR
-    scalar_value {
-      int32_t: 268435656
-    }
-    scalar_type: "int32_t"
-  }
-  struct_value {
-    name: "brightnessMode"
-    type: TYPE_SCALAR
-    scalar_value {
-      int32_t: 32768
-    }
-    scalar_type: "int32_t"
-  }
-}
-
-[VTS-Example] 07-01 08:58:54.724 INFO resp 975 bytes
-more than one product dir found.
-undefined symbol: __gcov_flushGcovFlush: Can't find __gcov_flush
-FunctionCallEnd: no gcov basepath set
-[VTS-Example] 07-01 08:58:54.777 INFO [Test Case] testTurnOnLightWhiteBoxFuzzing PASS
-[VTS-Example] 07-01 08:58:54.777 INFO Summary for test class SampleLightFuzzTest: Error 0, Executed 2, Failed 0, Passed 2, Requested 2, Skipped 0
\ No newline at end of file
diff --git a/harnesses/tradefed/tests/res/testtype/vts_multi_device_test_parser_output_error.txt b/harnesses/tradefed/tests/res/testtype/vts_multi_device_test_parser_output_error.txt
deleted file mode 100644
index 18669d8..0000000
--- a/harnesses/tradefed/tests/res/testtype/vts_multi_device_test_parser_output_error.txt
+++ /dev/null
@@ -1,68 +0,0 @@
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output: [VTS-Example] 07-08 11:56:25.218 INFO ==========> SampleLightTest <==========
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output: [VTS-Example] 07-08 11:56:25.512 INFO TcpServer Thread-1 started (127.0.0.1:8293)
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output: [VTS-Example] 07-08 11:56:25.515 INFO sending a command (type SET_HOST_INFO)
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output: [VTS-Example] 07-08 11:56:25.515 INFO command command_type: SET_HOST_INFO
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output: callback_port: 8293
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output: [VTS-Example] 07-08 11:56:25.518 ERROR Failed to setup SampleLightTest.
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output: Traceback (most recent call last):
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output:   File "/usr/local/yim/cloudandroid/android/master-real/test/vts/runners/host/base_test.py", line 510, in run
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output:     if self._setUpClass() is False:
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output:   File "/usr/local/yim/cloudandroid/android/master-real/test/vts/runners/host/base_test.py", line 112, in _setUpClass
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output:     return self.setUpClass()
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output:   File "/usr/local/yim/cloudandroid/android/master-real/test/vts/testcases/host/sample/SampleLightTest.py", line 33, in setUpClass
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output:     bits=32)
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output:   File "/usr/local/yim/cloudandroid/android/master-real/test/vts/utils/python/mirror/hal_mirror.py", line 106, in InitConventionalHal
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output:     bits=bits)
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output:   File "/usr/local/yim/cloudandroid/android/master-real/test/vts/utils/python/mirror/hal_mirror.py", line 173, in _CreateMirrorObject
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output:     callback_port=self._host_callback_port)
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output:   File "/usr/local/yim/cloudandroid/android/master-real/test/vts/runners/host/tcp_client/vts_tcp_client.py", line 92, in Connect
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output:     resp = self.RecvResponse()
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output:   File "/usr/local/yim/cloudandroid/android/master-real/test/vts/runners/host/tcp_client/vts_tcp_client.py", line 263, in RecvResponse
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output:     header = self.channel.readline()
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output:   File "/usr/lib/python2.7/socket.py", line 447, in readline
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output:     data = self._sock.recv(self._rbufsize)
-07-08 11:56:25 I/VtsMultiDeviceTestResultParser: Standard output: error: [Errno 104] Connection reset by peer
-07-08 11:56:25 D/ModuleListener: ModuleListener.testRunStarted(VtsHostDrivenTest, 0)
-07-08 11:56:25 I/ConsoleReporter: [009283827981beee] Starting armeabi-v7a SampleCameraTest with 0 test
-07-08 11:56:25 D/ModuleListener: ModuleListener.testRunEnded(0, {})
-07-08 11:56:25 I/ConsoleReporter: [009283827981beee] armeabi-v7a SampleCameraTest completed in 0 ms. 0 passed, 0 failed, 0 not executed
-07-08 11:56:25 D/ModuleDef: Cleaner: FilePusher
-07-08 11:56:25 W/CompatibilityTest: Inaccurate runtime hint for armeabi-v7a SampleCameraTest, expected 1m 0s was 744 ms
-07-08 11:56:25 I/CompatibilityTest: Running system status checker after module execution: SampleCameraTest
-07-08 11:56:26 I/MonitoringUtils: Connectivity: passed check.
-07-08 11:56:26 I/CompatibilityTest: Running system status checker before module execution: SampleCameraTest
-07-08 11:56:26 D/ModuleDef: Preparer: FilePusher
-07-08 11:56:26 E/PushFilePreparer: Trying to push local 'libvts_common.so' to remote '/data/local/tmp/libvts_common.so'
-07-08 11:56:26 E/PushFilePreparer: not absolute
-07-08 11:56:26 I/FilePusher: Copying from /usr/local/yim/cloudandroid/android/master-real/out/host/linux-x86/vts/android-vts/testcases/libvts_common.so
-07-08 11:56:26 D/ModuleDef: Test: VtsMultiDeviceTest
-07-08 11:56:26 D/RunUtil: Running command with timeout: 1000ms
-07-08 11:56:26 D/RunUtil: Running [which, python]
-07-08 11:56:26 D/RunUtil: Running command with timeout: 300000ms
-07-08 11:56:26 D/RunUtil: Running [/usr/bin/python, -m, test/vts/testcases/host/sample/SampleLightTest, test/vts/testcases/host/sample/SampleLightTest.config]
-07-08 11:56:27 I/VtsMultiDeviceTest: Standard output is: [VTS-Example] 07-08 11:56:26.877 INFO ==========> SampleLightTest <==========
-[VTS-Example] 07-08 11:56:27.147 INFO TcpServer Thread-1 started (127.0.0.1:3617)
-[VTS-Example] 07-08 11:56:27.149 INFO sending a command (type SET_HOST_INFO)
-[VTS-Example] 07-08 11:56:27.150 INFO command command_type: SET_HOST_INFO
-callback_port: 3617
-
-[VTS-Example] 07-08 11:56:27.151 ERROR Failed to setup SampleLightTest.
-Traceback (most recent call last):
-  File "/usr/local/yim/cloudandroid/android/master-real/test/vts/runners/host/base_test.py", line 510, in run
-    if self._setUpClass() is False:
-  File "/usr/local/yim/cloudandroid/android/master-real/test/vts/runners/host/base_test.py", line 112, in _setUpClass
-    return self.setUpClass()
-  File "/usr/local/yim/cloudandroid/android/master-real/test/vts/testcases/host/sample/SampleLightTest.py", line 33, in setUpClass
-    bits=32)
-  File "/usr/local/yim/cloudandroid/android/master-real/test/vts/utils/python/mirror/hal_mirror.py", line 106, in InitConventionalHal
-    bits=bits)
-  File "/usr/local/yim/cloudandroid/android/master-real/test/vts/utils/python/mirror/hal_mirror.py", line 173, in _CreateMirrorObject
-    callback_port=self._host_callback_port)
-  File "/usr/local/yim/cloudandroid/android/master-real/test/vts/runners/host/tcp_client/vts_tcp_client.py", line 92, in Connect
-    resp = self.RecvResponse()
-  File "/usr/local/yim/cloudandroid/android/master-real/test/vts/runners/host/tcp_client/vts_tcp_client.py", line 263, in RecvResponse
-    header = self.channel.readline()
-  File "/usr/lib/python2.7/socket.py", line 447, in readline
-    data = self._sock.recv(self._rbufsize)
-error: [Errno 104] Connection reset by peer
diff --git a/harnesses/tradefed/tests/res/testtype/vts_multi_device_test_parser_output_timeout.txt b/harnesses/tradefed/tests/res/testtype/vts_multi_device_test_parser_output_timeout.txt
deleted file mode 100644
index a0adb80..0000000
--- a/harnesses/tradefed/tests/res/testtype/vts_multi_device_test_parser_output_timeout.txt
+++ /dev/null
@@ -1,289 +0,0 @@
-[VTS-Example] 07-01 08:54:59.495 INFO ==========> SampleLightFuzzTest <==========
-[VTS-Example] 07-01 08:55:01.215 INFO Exception occurred in command: killall vts_hal_agent > /dev/null 2&>1
-[VTS-Example] 07-01 08:55:01.258 INFO Exception occurred in command: killall vts_hal_driver32 > /dev/null 2&>1
-[VTS-Example] 07-01 08:55:01.296 INFO Exception occurred in command: killall vts_hal_driver64 > /dev/null 2&>1
-[VTS-Example] 07-01 08:55:02.299 INFO sending a command (type SET_HOST_INFO)
-[VTS-Example] 07-01 08:55:02.312 INFO resp 2 bytes
-[VTS-Example] 07-01 08:55:02.313 INFO TcpServer Thread-2 started (127.0.0.1:5365)
-[VTS-Example] 07-01 08:55:02.313 INFO sending a command (type SET_HOST_INFO)
-[VTS-Example] 07-01 08:55:02.323 INFO resp 2 bytes
-[VTS-Example] 07-01 08:55:02.324 INFO sending a command (type LIST_HALS)
-[VTS-Example] 07-01 08:55:02.329 INFO resp 910 bytes
-[VTS-Example] 07-01 08:55:02.367 INFO Init the stub service for light
-[VTS-Example] 07-01 08:55:02.368 INFO service_name: vts_binder_light
-[VTS-Example] 07-01 08:55:02.368 INFO file_path: /system/lib64/hw/lights.angler.so
-[VTS-Example] 07-01 08:55:02.368 INFO bits: 64
-[VTS-Example] 07-01 08:55:02.368 INFO sending a command (type LAUNCH_STUB_SERVICE)
-[VTS-Example] 07-01 08:55:03.395 INFO resp 29 bytes
-[VTS-Example] 07-01 08:55:03.434 INFO sending a command (type LIST_APIS)
-[VTS-Example] 07-01 08:55:03.439 INFO resp 2616 bytes
-[VTS-Example] 07-01 08:55:03.484 INFO sending a command (type CALL_API)
-[VTS-Example] 07-01 08:55:03.485 INFO target API: name: "#Open"
-return_type {
-  scalar_type: "int32_t"
-}
-arg {
-  type: TYPE_STRING
-  string_value {
-    message: "backlight"
-  }
-}
-
-[VTS-Example] 07-01 08:55:03.506 INFO resp 135 bytes
-[VTS-Example] 07-01 08:55:03.554 INFO [Test Case] testTurnOnLightBlackBoxFuzzing
-[VTS-Example] 07-01 08:55:03.554 INFO blackbox fuzzing
-[VTS-Example] 07-01 08:55:03.560 INFO MessageGenerator light_state_t name: "light_state_t"
-type: TYPE_STRUCT
-struct_value {
-  name: "color"
-  type: TYPE_SCALAR
-  scalar_value {
-    uint32_t: 4294967040
-  }
-  scalar_type: "uint32_t"
-}
-struct_value {
-  name: "flashMode"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-struct_value {
-  name: "flashOnMs"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-struct_value {
-  name: "flashOffMs"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-struct_value {
-  name: "brightnessMode"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-
-[VTS-Example] 07-01 08:55:09.171 INFO resp 982 bytes
-[VTS-Example] 07-01 08:55:09.217 INFO remote call set_light(None, <vts.proto.InterfaceSpecificationMessage_pb2.VariableSpecificationMessage object at 0x7ffb43779ad0>)
-[VTS-Example] 07-01 08:55:09.219 INFO sending a command (type CALL_API)
-[VTS-Example] 07-01 08:55:09.219 INFO target API: name: "set_light"
-return_type {
-  type: TYPE_SCALAR
-  scalar_type: "int32_t"
-}
-arg {
-  type: TYPE_PREDEFINED
-  scalar_type: "pointer"
-  predefined_type: "struct light_device_t*"
-}
-arg {
-  name: "light_state_t"
-  type: TYPE_STRUCT
-  struct_value {
-    name: "color"
-    type: TYPE_SCALAR
-    scalar_value {
-      uint32_t: 4286537472
-    }
-    scalar_type: "uint32_t"
-  }
-  struct_value {
-    name: "flashMode"
-    type: TYPE_SCALAR
-    scalar_value {
-      int32_t: 8388614
-    }
-    scalar_type: "int32_t"
-  }
-  struct_value {
-    name: "flashOnMs"
-    type: TYPE_SCALAR
-    scalar_value {
-      int32_t: 139364
-    }
-    scalar_type: "int32_t"
-  }
-  struct_value {
-    name: "flashOffMs"
-    type: TYPE_SCALAR
-    scalar_value {
-      int32_t: 2097352
-    }
-    scalar_type: "int32_t"
-  }
-  struct_value {
-    name: "brightnessMode"
-    type: TYPE_SCALAR
-    scalar_value {
-      int32_t: 134217728
-    }
-    scalar_type: "int32_t"
-  }
-}
-
-[VTS-Example] 07-01 08:55:09.229 INFO resp 982 bytes
-[VTS-Example] 07-01 08:55:09.282 INFO [Test Case] testTurnOnLightBlackBoxFuzzing PASS
-[VTS-Example] 07-01 08:55:09.282 INFO [Test Case] testTurnOnLightWhiteBoxFuzzing
-[VTS-Example] 07-01 08:55:09.282 INFO whitebox fuzzing
-[VTS-Example] 07-01 08:55:09.286 INFO MessageGenerator light_state_t name: "light_state_t"
-type: TYPE_STRUCT
-struct_value {
-  name: "color"
-  type: TYPE_SCALAR
-  scalar_value {
-    uint32_t: 4294967040
-  }
-  scalar_type: "uint32_t"
-}
-struct_value {
-  name: "flashMode"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-struct_value {
-  name: "flashOnMs"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-struct_value {
-  name: "flashOffMs"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-struct_value {
-  name: "brightnessMode"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-
-[VTS-Example] 07-01 08:55:09.289 INFO MessageGenerator light_state_t name: "light_state_t"
-type: TYPE_STRUCT
-struct_value {
-  name: "color"
-  type: TYPE_SCALAR
-  scalar_value {
-    uint32_t: 4294967040
-  }
-  scalar_type: "uint32_t"
-}
-struct_value {
-  name: "flashMode"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-struct_value {
-  name: "flashOnMs"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-struct_value {
-  name: "flashOffMs"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-struct_value {
-  name: "brightnessMode"
-  type: TYPE_SCALAR
-  scalar_value {
-    int32_t: 0
-  }
-  scalar_type: "int32_t"
-}
-
-
-[VTS-Example] 07-01 08:55:14.438 INFO resp 977 bytes
-[VTS-Example] 07-01 08:55:14.485 INFO remote call set_light(None, <vts.proto.InterfaceSpecificationMessage_pb2.VariableSpecificationMessage object at 0x7ffb449f43d0>)
-[VTS-Example] 07-01 08:55:14.487 INFO sending a command (type CALL_API)
-[VTS-Example] 07-01 08:55:14.487 INFO target API: name: "set_light"
-return_type {
-  type: TYPE_SCALAR
-  scalar_type: "int32_t"
-}
-arg {
-  type: TYPE_PREDEFINED
-  scalar_type: "pointer"
-  predefined_type: "struct light_device_t*"
-}
-arg {
-  name: "light_state_t"
-  type: TYPE_STRUCT
-  struct_value {
-    name: "color"
-    type: TYPE_SCALAR
-    scalar_value {
-      uint32_t: 4294705024
-    }
-    scalar_type: "uint32_t"
-  }
-  struct_value {
-    name: "flashMode"
-    type: TYPE_SCALAR
-    scalar_value {
-      int32_t: 515
-    }
-    scalar_type: "int32_t"
-  }
-  struct_value {
-    name: "flashOnMs"
-    type: TYPE_SCALAR
-    scalar_value {
-      int32_t: 33556068
-    }
-    scalar_type: "int32_t"
-  }
-  struct_value {
-    name: "flashOffMs"
-    type: TYPE_SCALAR
-    scalar_value {
-      int32_t: 268435656
-    }
-    scalar_type: "int32_t"
-  }
-  struct_value {
-    name: "brightnessMode"
-    type: TYPE_SCALAR
-    scalar_value {
-      int32_t: 32768
-    }
-    scalar_type: "int32_t"
-  }
-}
-
-[VTS-Example] 07-01 08:58:54.724 INFO resp 975 bytes
-more than one product dir found.
-undefined symbol: __gcov_flushGcovFlush: Can't find __gcov_flush
-FunctionCallEnd: no gcov basepath set
-[VTS-Example] 07-01 08:58:54.777 INFO Summary for test class SampleLightFuzzTest: Error 0, Executed 2, Failed 0, Passed 2, Requested 2, Skipped 0
\ No newline at end of file
diff --git a/harnesses/tradefed/tests/res/util/results/2017.09.01_17.30.00/test_result.xml b/harnesses/tradefed/tests/res/util/results/2017.09.01_17.30.00/test_result.xml
deleted file mode 100644
index 31203b2..0000000
--- a/harnesses/tradefed/tests/res/util/results/2017.09.01_17.30.00/test_result.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version='1.0' encoding='UTF-8' standalone='no' ?><?xml-stylesheet type="text/xsl" href="vts_result.xsl"?>

-<Result start="1504258200493" end="1504258240603" start_display="Fri Sep 01 17:30:00 CST 2017" end_display="Fri Sep 01 17:30:40 CST 2017" suite_name="VTS" suite_version="8.0" suite_plan="vts" suite_build_number="test123456" report_version="5.0" command_line_args="vts -m SampleShellTest -a arm64-v8a" devices="TEST123456" host_name="unit.test.google.com" os_name="Linux" os_version="4.4.0-92-generic" os_arch="amd64" java_vendor="JetBrains s.r.o" java_version="1.8.0_152-android">

-  <Build build_abis_64="arm64-v8a" build_manufacturer="unknown" build_abis_32="armeabi-v7a,armeabi" build_product="aosp_arm64_ab" build_brand="Android" build_board="sailfish" build_serial="TEST123456" build_version_security_patch="2017-10-05" build_system_fingerprint="Android/aosp_arm64_ab/generic_arm64_ab:8.0.0/OC/4311089:userdebug/test-keys" build_reference_fingerprint="null" build_fingerprint="Android/aosp_sailfish/sailfish:8.0.0/OC/4311111:userdebug/test-keys" build_version_sdk="26" build_abis="arm64-v8a,armeabi-v7a,armeabi" build_device="generic_arm64_ab" build_abi="arm64-v8a" build_model="AOSP on ARM64" build_id="OC" build_abi2="null" build_vendor_fingerprint="Android/aosp_sailfish/sailfish:8.0.0/OC/4311111:userdebug/test-keys" build_version_release="8.0.0" build_version_base_os="" build_type="userdebug" build_tags="test-keys" />

-  <Summary pass="7" failed="0" modules_done="1" modules_total="1" />

-  <Module name="SampleShellTest" abi="arm64-v8a" runtime="21450" done="true" pass="7">

-    <TestCase name="SampleShellTest">

-      <Test result="pass" name="testCommandList" />

-      <Test result="pass" name="testCommandSequenceCd" />

-      <Test result="pass" name="testCommandSequenceExport" />

-      <Test result="pass" name="testCommandSequenceMktemp" />

-      <Test result="pass" name="testMultipleCommands" />

-      <Test result="pass" name="testMultipleShells" />

-      <Test result="pass" name="testOneCommand" />

-    </TestCase>

-  </Module>

-</Result>

diff --git a/harnesses/tradefed/tests/src/com/android/compatibility/common/tradefed/VtsUnitTests.java b/harnesses/tradefed/tests/src/com/android/compatibility/common/tradefed/VtsUnitTests.java
deleted file mode 100644
index 6ab624e..0000000
--- a/harnesses/tradefed/tests/src/com/android/compatibility/common/tradefed/VtsUnitTests.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.
- */
-package com.android.compatibility.common.tradefed;
-
-import com.android.compatibility.common.tradefed.util.VtsRetryFilterHelperTest;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.junit.runners.Suite.SuiteClasses;
-/**
- * A test suite for all VTS Tradefed unit tests.
- *
- * <p>All tests listed here should be self-contained, and do not require any external dependencies.
- */
-@RunWith(Suite.class)
-@SuiteClasses({
-    // NOTE: please keep classes sorted lexicographically in each group
-    // testtype
-
-    // util
-    VtsRetryFilterHelperTest.class,
-})
-public class VtsUnitTests {
-    // empty on purpose
-}
diff --git a/harnesses/tradefed/tests/src/com/android/compatibility/common/tradefed/config/ConfigurationFactoryTest.java b/harnesses/tradefed/tests/src/com/android/compatibility/common/tradefed/config/ConfigurationFactoryTest.java
deleted file mode 100644
index 2343f13..0000000
--- a/harnesses/tradefed/tests/src/com/android/compatibility/common/tradefed/config/ConfigurationFactoryTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2019 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.
- */
-package com.android.compatibility.common.tradefed.config;
-
-import com.android.tradefed.config.ConfigurationException;
-import com.android.tradefed.config.ConfigurationFactory;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/**
- * Unit tests for {@link ConfigurationFactory} imported from Trade Federation to check vts
- * configuration loading.
- */
-@RunWith(JUnit4.class)
-public class ConfigurationFactoryTest {
-    private ConfigurationFactory mConfigFactory;
-
-    @Before
-    public void setUp() throws Exception {
-        mConfigFactory = (ConfigurationFactory) ConfigurationFactory.getInstance();
-    }
-
-    /**
-     * Sanity test to ensure all config names on classpath are loadable.
-     */
-    @Test
-    public void testLoadAllConfigs() throws ConfigurationException {
-        // we dry-run the templates otherwise it will always fail.
-        mConfigFactory.loadAllConfigs(false);
-    }
-
-    /**
-     * Sanity test to ensure all configs on classpath can be fully loaded and parsed.
-     */
-    @Test
-    public void testLoadAndPrintAllConfigs() throws ConfigurationException {
-        // Printing the help involves more checks since it tries to resolve the config objects.
-        mConfigFactory.loadAndPrintAllConfigs();
-    }
-}
\ No newline at end of file
diff --git a/harnesses/tradefed/tests/src/com/android/compatibility/common/tradefed/util/VtsRetryFilterHelperTest.java b/harnesses/tradefed/tests/src/com/android/compatibility/common/tradefed/util/VtsRetryFilterHelperTest.java
deleted file mode 100644
index c891c1e..0000000
--- a/harnesses/tradefed/tests/src/com/android/compatibility/common/tradefed/util/VtsRetryFilterHelperTest.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-
-package com.android.compatibility.common.tradefed.util;
-
-import com.android.compatibility.common.tradefed.build.CompatibilityBuildHelper;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.util.FileUtil;
-
-import org.easymock.EasyMock;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-import java.io.File;
-import java.util.HashSet;
-
-/**
- * Unit tests for {@link VtsRetryFilterHelper}.
- */
-@RunWith(JUnit4.class)
-public class VtsRetryFilterHelperTest {
-    private final String RESULTS_FILE = "/util/results/2017.09.01_17.30.00/test_result.xml";
-    private final String VENDOR_FINGERPRINT =
-            "Android/aosp_sailfish/sailfish:8.0.0/OC/4311111:userdebug/test-keys";
-    private final String WRONG_FINGERPRINT =
-            "Android/other_device/other_device:8.0.0/OC/4311112:userdebug/test-keys";
-    private final String VENDOR_FINGERPRINT_PROPERTY = "ro.vendor.build.fingerprint";
-    private CompatibilityBuildHelper mBuildHelper;
-    private RetryFilterHelper mHelper;
-
-    private File mTmpDir;
-
-    @Before
-    public void setUp() throws Exception {
-        mTmpDir = FileUtil.createTempDir("vts-unit-tests");
-        File invDir = new File(mTmpDir, "2017.09.01_17.30.00");
-        invDir.mkdirs();
-        FileUtil.saveResourceFile(
-                getClass().getResourceAsStream(RESULTS_FILE), invDir, "test_result.xml");
-        mBuildHelper = new CompatibilityBuildHelper(null) {
-            @Override
-            public File getResultsDir() {
-                return mTmpDir;
-            }
-        };
-        mHelper = new VtsRetryFilterHelper(mBuildHelper, 0, "SUB_PLAN", new HashSet<String>(),
-                new HashSet<String>(), "ABI_NAME", "MODULE_NAME", "TEST_NAME", RetryType.FAILED);
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        FileUtil.recursiveDelete(mTmpDir);
-    }
-
-    /**
-     * Create a mock {@link ITestDevice} with fingerprint properties.
-     * @param vendorFingerprint The vendor fingerprint of the device.
-     * @return The mock device.
-     * @throws DeviceNotAvailableException
-     */
-    private ITestDevice createMockDevice(String vendorFingerprint)
-            throws DeviceNotAvailableException {
-        ITestDevice mockDevice = EasyMock.createMock(ITestDevice.class);
-        EasyMock.expect(mockDevice.getProperty(VENDOR_FINGERPRINT_PROPERTY))
-                .andReturn(vendorFingerprint);
-        EasyMock.expect(mockDevice.getSerialNumber()).andStubReturn("serial");
-        EasyMock.replay(mockDevice);
-        return mockDevice;
-    }
-
-    /**
-     * Test ValidateBuildFingerprint without error.
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void testValidateBuildFingerprint() throws DeviceNotAvailableException {
-        mHelper.validateBuildFingerprint(createMockDevice(VENDOR_FINGERPRINT));
-    }
-
-    /**
-     * Test ValidateBuildFingerprint with the incorrect fingerprint.
-     * @throws DeviceNotAvailableException
-     */
-    @Test(expected = IllegalArgumentException.class)
-    public void testMismatchSystemFingerprint() throws DeviceNotAvailableException {
-        mHelper.validateBuildFingerprint(createMockDevice(WRONG_FINGERPRINT));
-    }
-}
diff --git a/harnesses/tradefed/tests/src/com/android/tradefed/VtsUnitTests.java b/harnesses/tradefed/tests/src/com/android/tradefed/VtsUnitTests.java
deleted file mode 100644
index 50e518d..0000000
--- a/harnesses/tradefed/tests/src/com/android/tradefed/VtsUnitTests.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * 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.
- */
-package com.android.tradefed;
-
-import com.android.compatibility.common.tradefed.config.ConfigurationFactoryTest;
-import com.android.tradefed.device.metric.VtsCoverageCollectorTest;
-import com.android.tradefed.device.metric.VtsHalTraceCollectorTest;
-import com.android.tradefed.module.VtsHalAdapterModuleControllerTest;
-import com.android.tradefed.presubmit.VtsConfigLoadingTest;
-import com.android.tradefed.targetprep.VtsCoveragePreparerTest;
-import com.android.tradefed.targetprep.VtsDevicePreparerTest;
-import com.android.tradefed.targetprep.VtsHalAdapterPreparerTest;
-import com.android.tradefed.targetprep.VtsPythonVirtualenvPreparerTest;
-import com.android.tradefed.targetprep.VtsTraceCollectPreparerTest;
-import com.android.tradefed.testtype.VtsFuzzTestResultParserTest;
-import com.android.tradefed.testtype.VtsFuzzTestTest;
-import com.android.tradefed.testtype.VtsMultiDeviceTestResultParserTest;
-import com.android.tradefed.testtype.VtsMultiDeviceTestTest;
-import com.android.tradefed.util.CmdUtilTest;
-import com.android.tradefed.util.OutputUtilTest;
-import com.android.tradefed.util.ProcessHelperTest;
-import com.android.tradefed.util.VtsPythonRunnerHelperTest;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.junit.runners.Suite.SuiteClasses;
-
-/**
- * A test suite for all VTS Tradefed unit tests.
- *
- * <p>All tests listed here should be self-contained, and do not require any external dependencies.
- */
-@RunWith(Suite.class)
-@SuiteClasses({
-        // NOTE: please keep classes sorted lexicographically in each group
-        // config
-        ConfigurationFactoryTest.class,
-        // device
-        VtsCoverageCollectorTest.class,
-        VtsDevicePreparerTest.class,
-        VtsHalTraceCollectorTest.class,
-
-        // module
-        VtsHalAdapterModuleControllerTest.class,
-
-        // presubmit
-        VtsConfigLoadingTest.class,
-
-        // targetprep
-        VtsCoveragePreparerTest.class,
-        VtsHalAdapterPreparerTest.class,
-        VtsPythonVirtualenvPreparerTest.class,
-        VtsTraceCollectPreparerTest.class,
-
-        // testtype
-        VtsFuzzTestResultParserTest.class,
-        VtsFuzzTestTest.class,
-        VtsMultiDeviceTestResultParserTest.class,
-        VtsMultiDeviceTestTest.class,
-
-        // util
-        CmdUtilTest.class,
-        ProcessHelperTest.class,
-        VtsPythonRunnerHelperTest.class,
-        OutputUtilTest.class,
-})
-public class VtsUnitTests {
-    // empty on purpose
-}
diff --git a/harnesses/tradefed/tests/src/com/android/tradefed/device/metric/VtsCoverageCollectorTest.java b/harnesses/tradefed/tests/src/com/android/tradefed/device/metric/VtsCoverageCollectorTest.java
deleted file mode 100644
index a9066d7..0000000
--- a/harnesses/tradefed/tests/src/com/android/tradefed/device/metric/VtsCoverageCollectorTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.tradefed.device.metric;
-
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.verify;
-
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.invoker.IInvocationContext;
-import com.android.tradefed.result.ITestInvocationListener;
-import com.android.tradefed.util.VtsPythonRunnerHelper;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-/**
- * Unit tests for {@link VtsCoverageCollector}.
- */
-@RunWith(JUnit4.class)
-public class VtsCoverageCollectorTest {
-    private Map<String, String> mBuildAttributes = new HashMap<>();
-    private List<IBuildInfo> mBuildInfos = new ArrayList<IBuildInfo>();
-    private List<ITestDevice> mDevices = new ArrayList<ITestDevice>();
-
-    @Mock ITestInvocationListener mMockListener;
-    @Mock IInvocationContext mMockContext;
-    @Mock IBuildInfo mBuildInfo;
-    @Mock ITestDevice mDevice;
-    @Mock VtsPythonRunnerHelper mMockRunner;
-    @InjectMocks VtsCoverageCollector mCollector = new testCollector();
-
-    private class testCollector extends VtsCoverageCollector {
-        @Override
-        public String getRunName() {
-            return "device1 testRun";
-        }
-        @Override
-        String getGcoveResrouceDir(IBuildInfo buildInfo, ITestDevice device) {
-            return "/tmp/test-coverage";
-        }
-    }
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        mCollector.init(mMockContext, mMockListener);
-        mCollector.setPythonRunnerHelper(mMockRunner);
-        mDevices.add(mDevice);
-        mBuildInfos.add(mBuildInfo);
-        doReturn(mDevices).when(mMockContext).getDevices();
-        doReturn(mBuildInfos).when(mMockContext).getBuildInfos();
-    }
-
-    @Test
-    public void testOnTestRunEndBasic() throws Exception {
-        mBuildAttributes.put("coverage_report_path", "/tmp/test-coverage/");
-        doReturn("1234").when(mDevice).getSerialNumber();
-        doReturn(mBuildAttributes).when(mBuildInfo).getBuildAttributes();
-
-        String expectedCmdStr = "python -m vts.utils.python.coverage.coverage_utils "
-                + "get_coverage --serial 1234 --gcov_rescource_path /tmp/test-coverage "
-                + "--report_path /tmp/test-coverage/device1_testRun "
-                + "--report_prefix device1_testRun";
-        String[] expected_cmd = expectedCmdStr.split("\\s+");
-
-        doReturn(null)
-                .when(mMockRunner)
-                .runPythonRunner(Mockito.eq(expected_cmd), Mockito.any(), Mockito.anyLong());
-
-        mCollector.onTestRunEnd(null, null);
-
-        verify(mMockRunner).runPythonRunner(Mockito.any(), Mockito.any(), Mockito.anyLong());
-    }
-
-    @Test
-    public void testOnTestRunEndReportDirMissing() throws Exception {
-        mBuildAttributes.remove("coverage_report_path");
-        doReturn("1234").when(mDevice).getSerialNumber();
-        doReturn(mBuildAttributes).when(mBuildInfo).getBuildAttributes();
-        mCollector.onTestRunEnd(null, null);
-        // Ensure the properties was requested
-        verify(mBuildInfo).getBuildAttributes();
-    }
-}
diff --git a/harnesses/tradefed/tests/src/com/android/tradefed/device/metric/VtsHalTraceCollectorTest.java b/harnesses/tradefed/tests/src/com/android/tradefed/device/metric/VtsHalTraceCollectorTest.java
deleted file mode 100644
index 2108872..0000000
--- a/harnesses/tradefed/tests/src/com/android/tradefed/device/metric/VtsHalTraceCollectorTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.tradefed.device.metric;
-
-import static org.junit.Assert.assertTrue;
-
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.invoker.IInvocationContext;
-import com.android.tradefed.result.ITestInvocationListener;
-import com.android.tradefed.util.FileUtil;
-
-import org.easymock.EasyMock;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Unit tests for {@link VtsHalTraceCollector}.
- */
-@RunWith(JUnit4.class)
-public class VtsHalTraceCollectorTest {
-    private static final String VTS_TMP_DIR = VtsHalTraceCollector.VTS_TMP_DIR;
-    private static final String TRACE_PATH = VtsHalTraceCollector.TRACE_PATH;
-
-    private Map<String, String> mBuildAttributes = new HashMap<>();
-    private List<IBuildInfo> mBuildInfos = new ArrayList<IBuildInfo>();
-    private List<ITestDevice> mDevices = new ArrayList<ITestDevice>();
-    private VtsHalTraceCollector mCollect;
-    private IBuildInfo mMockBuildInfo;
-    private ITestDevice mMockDevice;
-    private IInvocationContext mMockContext;
-    private ITestInvocationListener mMockListener;
-
-    @Before
-    public void setUp() throws Exception {
-        mMockDevice = EasyMock.createNiceMock(ITestDevice.class);
-        mMockBuildInfo = EasyMock.createNiceMock(IBuildInfo.class);
-        mMockListener = EasyMock.createNiceMock(ITestInvocationListener.class);
-        mMockContext = EasyMock.createNiceMock(IInvocationContext.class);
-        mCollect = new VtsHalTraceCollector() {
-            @Override
-            public String getRunName() {
-                return "device1 testRun";
-            }
-        };
-        mCollect.init(mMockContext, mMockListener);
-    }
-
-    @Test
-    public void testOnTestRunEnd() throws Exception {
-        File traceBaseDir = FileUtil.createTempDir("vts-trace");
-        File traceDir = null;
-        try {
-            mBuildAttributes.put(TRACE_PATH, traceBaseDir.getAbsolutePath());
-            EasyMock.expect(mMockBuildInfo.getBuildAttributes()).andReturn(mBuildAttributes);
-            mDevices.add(mMockDevice);
-            mBuildInfos.add(mMockBuildInfo);
-            EasyMock.expect(mMockContext.getDevices()).andReturn(mDevices);
-            EasyMock.expect(mMockContext.getBuildInfos()).andReturn(mBuildInfos);
-            String listResult = VTS_TMP_DIR + "test1.vts.trace\n" + VTS_TMP_DIR + "test2.vts.trace";
-            EasyMock.expect(mMockDevice.executeShellCommand(
-                                    EasyMock.eq(String.format("ls %s/*.vts.trace", VTS_TMP_DIR))))
-                    .andReturn(listResult);
-            traceDir = new File(traceBaseDir, "device1_testRun/");
-            File testTrace1 = new File(traceDir, "test1.vts.trace");
-            File testTrace2 = new File(traceDir, "test2.vts.trace");
-            EasyMock.expect(mMockDevice.pullFile(EasyMock.eq(VTS_TMP_DIR + "test1.vts.trace"),
-                                    EasyMock.eq(testTrace1)))
-                    .andReturn(true)
-                    .times(1);
-            EasyMock.expect(mMockDevice.pullFile(EasyMock.eq(VTS_TMP_DIR + "test2.vts.trace"),
-                                    EasyMock.eq(testTrace2)))
-                    .andReturn(true)
-                    .times(1);
-
-            EasyMock.replay(mMockBuildInfo);
-            EasyMock.replay(mMockContext);
-            EasyMock.replay(mMockDevice);
-
-            mCollect.onTestRunEnd(null, null);
-            assertTrue(traceDir.exists());
-
-            EasyMock.verify(mMockBuildInfo);
-            EasyMock.verify(mMockContext);
-            EasyMock.verify(mMockDevice);
-
-        } finally {
-            FileUtil.recursiveDelete(traceDir);
-            FileUtil.recursiveDelete(traceBaseDir);
-        }
-    }
-}
diff --git a/harnesses/tradefed/tests/src/com/android/tradefed/module/VtsHalAdapterModuleControllerTest.java b/harnesses/tradefed/tests/src/com/android/tradefed/module/VtsHalAdapterModuleControllerTest.java
deleted file mode 100644
index 73f3e92..0000000
--- a/harnesses/tradefed/tests/src/com/android/tradefed/module/VtsHalAdapterModuleControllerTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.tradefed.module;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.*;
-
-import com.android.tradefed.config.OptionSetter;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.invoker.IInvocationContext;
-import com.android.tradefed.testtype.suite.module.IModuleController;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.mockito.InjectMocks;
-import org.mockito.Mockito;
-
-import java.util.ArrayList;
-import java.util.List;
-/**
- * Unit tests for {@link VtsHalAdapterModuleController).
- */
-@RunWith(JUnit4.class)
-public final class VtsHalAdapterModuleControllerTest {
-    private String LIST_HAL_CMD = VtsHalAdapterModuleController.LIST_HAL_CMD;
-    private String TEST_HAL_PACKAGE = "android.hardware.foo@1.1";
-
-    private List<ITestDevice> mDevices = new ArrayList<ITestDevice>();
-
-    @Mock private IInvocationContext mInvocationContext;
-    @Mock private ITestDevice mDevice;
-    @InjectMocks
-    private VtsHalAdapterModuleController mModuleControler = new VtsHalAdapterModuleController();
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        mDevices.add(mDevice);
-        doReturn(mDevices).when(mInvocationContext).getDevices();
-        OptionSetter setter = new OptionSetter(mModuleControler);
-        setter.setOptionValue("hal-package-name", TEST_HAL_PACKAGE);
-    }
-
-    // Test the normal case when the targeting HAL is available.
-    @Test
-    public void testShouldRun() throws Exception {
-        String output = "android.hardware.foo@1.1::IFoo/default";
-        doReturn(output).when(mDevice).executeShellCommand(
-                String.format(LIST_HAL_CMD, TEST_HAL_PACKAGE));
-        assertEquals(
-                IModuleController.RunStrategy.RUN, mModuleControler.shouldRun(mInvocationContext));
-    }
-
-    // Test the case when we need to skip the test as the targeting HAL is not available.
-    @Test
-    public void testShouldSkip() throws Exception {
-        doReturn("").when(mDevice).executeShellCommand(
-                String.format(LIST_HAL_CMD, TEST_HAL_PACKAGE));
-        assertEquals(IModuleController.RunStrategy.SKIP_MODULE_TESTCASES,
-                mModuleControler.shouldRun(mInvocationContext));
-    }
-}
diff --git a/harnesses/tradefed/tests/src/com/android/tradefed/presubmit/VtsConfigLoadingTest.java b/harnesses/tradefed/tests/src/com/android/tradefed/presubmit/VtsConfigLoadingTest.java
deleted file mode 100644
index b496dd8..0000000
--- a/harnesses/tradefed/tests/src/com/android/tradefed/presubmit/VtsConfigLoadingTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * 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.
- */
-package com.android.tradefed.presubmit;
-
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import com.android.tradefed.config.ConfigurationDescriptor;
-import com.android.tradefed.config.ConfigurationException;
-import com.android.tradefed.config.ConfigurationFactory;
-import com.android.tradefed.config.IConfiguration;
-import com.android.tradefed.testtype.IRemoteTest;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-import java.io.File;
-import java.io.FilenameFilter;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * Test that configuration in VTS10 can load and have expected properties.
- */
-@RunWith(JUnit4.class)
-public class VtsConfigLoadingTest {
-    /**
-     * List of the officially supported runners in VTS10.
-     */
-    private static final Set<String> SUPPORTED_VTS_TEST_TYPE = new HashSet<>(Arrays.asList(
-            "com.android.compatibility.common.tradefed.testtype.JarHostTest",
-            "com.android.tradefed.testtype.AndroidJUnitTest",
-            "com.android.tradefed.testtype.GTest",
-            "com.android.tradefed.testtype.VtsMultiDeviceTest"));
-
-    /**
-     * Test that configuration shipped in Tradefed can be parsed.
-     */
-    @Test
-    public void testConfigurationLoad() throws Exception {
-        String vtsRoot = System.getProperty("VTS10_ROOT");
-        File testcases = new File(vtsRoot, "/android-vts10/testcases/");
-        if (!testcases.exists()) {
-            fail(String.format("%s does not exists", testcases));
-            return;
-        }
-        File[] listVtsConfig = testcases.listFiles(new FilenameFilter() {
-            @Override
-            public boolean accept(File dir, String name) {
-                // Only check the VTS test config
-                if (name.startsWith("Vts") && name.endsWith(".config")) {
-                    return true;
-                }
-                return false;
-            }
-        });
-        assertTrue(listVtsConfig.length > 0);
-        for (File config : listVtsConfig) {
-            IConfiguration c = ConfigurationFactory.getInstance().createConfigurationFromArgs(
-                    new String[] {config.getAbsolutePath()});
-            for (IRemoteTest test : c.getTests()) {
-                // Check that all the tests runners are well supported.
-                if (!SUPPORTED_VTS_TEST_TYPE.contains(test.getClass().getCanonicalName())) {
-                    throw new ConfigurationException(
-                            String.format("testtype %s is not officially supported by VTS10.",
-                                    test.getClass().getCanonicalName()));
-                }
-            }
-        }
-    }
-}
diff --git a/harnesses/tradefed/tests/src/com/android/tradefed/targetprep/VtsCoveragePreparerTest.java b/harnesses/tradefed/tests/src/com/android/tradefed/targetprep/VtsCoveragePreparerTest.java
deleted file mode 100644
index f873006..0000000
--- a/harnesses/tradefed/tests/src/com/android/tradefed/targetprep/VtsCoveragePreparerTest.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.tradefed.targetprep;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.fail;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyLong;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-import com.android.compatibility.common.tradefed.build.CompatibilityBuildHelper;
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.config.OptionSetter;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.targetprep.TargetSetupError;
-import com.android.tradefed.util.CommandResult;
-import com.android.tradefed.util.CommandStatus;
-import com.android.tradefed.util.FileUtil;
-import com.android.tradefed.util.IRunUtil;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-/**
- * Unit tests for {@link VtsCoveragePreparer}.
- */
-@RunWith(JUnit4.class)
-public final class VtsCoveragePreparerTest {
-    private String BUILD_INFO_ARTIFACT = VtsCoveragePreparer.BUILD_INFO_ARTIFACT;
-    private String GCOV_PROPERTY = VtsCoveragePreparer.GCOV_PROPERTY;
-    private String GCOV_FILE_NAME = VtsCoveragePreparer.GCOV_FILE_NAME;
-    private String SYMBOLS_FILE_NAME = VtsCoveragePreparer.SYMBOLS_FILE_NAME;
-    private String COVERAGE_REPORT_PATH = VtsCoveragePreparer.COVERAGE_REPORT_PATH;
-
-    // Path to store coverage report files.
-    private static final String TEST_COVERAGE_REPORT_PATH = "/tmp/test-coverage";
-
-    private File mTestDir;
-    private CompatibilityBuildHelper mMockHelper;
-
-    private class TestCoveragePreparer extends VtsCoveragePreparer {
-        @Override
-        CompatibilityBuildHelper createBuildHelper(IBuildInfo buildInfo) {
-            return mMockHelper;
-        }
-
-        @Override
-        File createTempDir(ITestDevice device) {
-            return mTestDir;
-        }
-
-        @Override
-        String getArtifactFetcher(IBuildInfo buildInfo) {
-            return "fetcher --bid %s --target %s %s %s";
-        }
-    }
-
-    @Mock private IBuildInfo mBuildInfo;
-    @Mock private ITestDevice mDevice;
-    @Mock private IRunUtil mRunUtil;
-    @InjectMocks private TestCoveragePreparer mPreparer = new TestCoveragePreparer();
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        mTestDir = FileUtil.createTempDir("vts-coverage-preparer-unit-tests");
-        mMockHelper = new CompatibilityBuildHelper(mBuildInfo) {
-            @Override
-            public File getTestsDir() throws FileNotFoundException {
-                return mTestDir;
-            }
-            @Override
-            public File getResultDir() throws FileNotFoundException {
-                return mTestDir;
-            }
-        };
-        doReturn("build_id").when(mDevice).getBuildId();
-        doReturn("1234").when(mDevice).getSerialNumber();
-        doReturn("enforcing").when(mDevice).executeShellCommand("getenforce");
-        doReturn("build_id").when(mBuildInfo).getBuildId();
-        CommandResult commandResult = new CommandResult();
-        commandResult.setStatus(CommandStatus.SUCCESS);
-        doReturn(commandResult).when(mRunUtil).runTimedCmd(anyLong(), any());
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        FileUtil.recursiveDelete(mTestDir);
-    }
-
-    @Test
-    public void testOnSetUpCoverageDisabled() throws Exception {
-        doReturn("UnknowFlaver").when(mDevice).getBuildFlavor();
-        doReturn("None").when(mDevice).getProperty(GCOV_PROPERTY);
-
-        mPreparer.setUp(mDevice, mBuildInfo);
-        verify(mBuildInfo, never()).setFile((String) any(), any(), any());
-    }
-
-    @Test
-    public void testOnSetUpSancovEnabled() throws Exception {
-        doReturn("walleye_asan_coverage-userdebug").when(mDevice).getBuildFlavor();
-        createTestFile(SYMBOLS_FILE_NAME);
-        createTestFile(BUILD_INFO_ARTIFACT);
-
-        mPreparer.setUp(mDevice, mBuildInfo);
-        verify(mBuildInfo, times(1))
-                .setFile(eq(VtsCoveragePreparer.getSancovResourceDirKey(mDevice)), eq(mTestDir),
-                        eq("build_id"));
-    }
-
-    @Test
-    public void testOnSetUpGcovEnabled() throws Exception {
-        doReturn("walleye_coverage-userdebug").when(mDevice).getBuildFlavor();
-        doReturn("1").when(mDevice).getProperty(GCOV_PROPERTY);
-        createTestFile(GCOV_FILE_NAME);
-        createTestFile(BUILD_INFO_ARTIFACT);
-        mPreparer.setUp(mDevice, mBuildInfo);
-        verify(mBuildInfo, times(1))
-                .setFile(eq(VtsCoveragePreparer.getGcovResourceDirKey(mDevice)), eq(mTestDir),
-                        eq("build_id"));
-    }
-
-    @Test
-    public void testOnSetUpLocalArtifectsNormal() throws Exception {
-        OptionSetter setter = new OptionSetter(mPreparer);
-        setter.setOptionValue("use-local-artifects", "true");
-        setter.setOptionValue("local-coverage-resource-path", mTestDir.getAbsolutePath());
-        doReturn("1").when(mDevice).getProperty(GCOV_PROPERTY);
-        createTestFile(GCOV_FILE_NAME);
-        createTestFile(BUILD_INFO_ARTIFACT);
-
-        mPreparer.setUp(mDevice, mBuildInfo);
-        verify(mBuildInfo, times(1))
-                .setFile(eq(VtsCoveragePreparer.getGcovResourceDirKey(mDevice)), eq(mTestDir),
-                        eq("build_id"));
-    }
-
-    @Test
-    public void testOnSetUpLocalArtifectsNotExists() throws Exception {
-        OptionSetter setter = new OptionSetter(mPreparer);
-        setter.setOptionValue("use-local-artifects", "true");
-        setter.setOptionValue("local-coverage-resource-path", mTestDir.getAbsolutePath());
-        doReturn("1").when(mDevice).getProperty(GCOV_PROPERTY);
-
-        try {
-            mPreparer.setUp(mDevice, mBuildInfo);
-        } catch (TargetSetupError e) {
-            // Expected.
-            assertEquals(String.format("Could not find %s under %s.", GCOV_FILE_NAME,
-                                 mTestDir.getAbsolutePath()),
-                    e.getMessage());
-            verify(mBuildInfo, never()).setFile((String) any(), any(), any());
-            return;
-        }
-        fail();
-    }
-
-    @Test
-    public void testOnSetUpOutputCoverageReport() throws Exception {
-        OptionSetter setter = new OptionSetter(mPreparer);
-        setter.setOptionValue("coverage-report-dir", TEST_COVERAGE_REPORT_PATH);
-        doReturn("walleye_coverage-userdebug").when(mDevice).getBuildFlavor();
-        doReturn("1").when(mDevice).getProperty(GCOV_PROPERTY);
-        createTestFile(GCOV_FILE_NAME);
-        createTestFile(BUILD_INFO_ARTIFACT);
-
-        mPreparer.setUp(mDevice, mBuildInfo);
-        verify(mBuildInfo, times(1))
-                .addBuildAttribute(eq(COVERAGE_REPORT_PATH),
-                        eq(mTestDir.getAbsolutePath() + TEST_COVERAGE_REPORT_PATH));
-    }
-
-    @Test
-    public void testOnTearDown() throws Exception {
-        doReturn("walleye_coverage-userdebug").when(mDevice).getBuildFlavor();
-        doReturn("1").when(mDevice).getProperty(GCOV_PROPERTY);
-        File artifectsFile = createTestFile(GCOV_FILE_NAME);
-        File buildInfoFile = createTestFile(BUILD_INFO_ARTIFACT);
-        mPreparer.setUp(mDevice, mBuildInfo);
-        mPreparer.tearDown(mDevice, mBuildInfo, null);
-        verify(mDevice, times(1)).executeShellCommand("setenforce enforcing");
-        assertFalse(artifectsFile.exists());
-        assertFalse(buildInfoFile.exists());
-    }
-
-    /**
-     * Helper method to create a test file under mTestDir.
-     *
-     * @param fileName test file name.
-     * @return created test file.
-     */
-    private File createTestFile(String fileName) throws IOException {
-        File testFile = new File(mTestDir, fileName);
-        testFile.createNewFile();
-        return testFile;
-    }
-}
diff --git a/harnesses/tradefed/tests/src/com/android/tradefed/targetprep/VtsDevicePreparerTest.java b/harnesses/tradefed/tests/src/com/android/tradefed/targetprep/VtsDevicePreparerTest.java
deleted file mode 100644
index f8af9a5..0000000
--- a/harnesses/tradefed/tests/src/com/android/tradefed/targetprep/VtsDevicePreparerTest.java
+++ /dev/null
@@ -1,561 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.tradefed.targetprep;
-
-import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.ArgumentMatchers.contains;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.targetprep.VtsDevicePreparer.DeviceOptionState;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-import org.mockito.ArgumentMatchers;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-/**
- * Unit tests for {@link VtsDevicePreparer}.</p>
- */
-@RunWith(JUnit4.class)
-public class VtsDevicePreparerTest {
-    VtsDevicePreparer mPreparer;
-    @Mock private ITestDevice mockDevice;
-    @Mock private IBuildInfo mockBuildInfo;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mPreparer = new VtsDevicePreparer();
-        mPreparer.mDevice = mockDevice;
-    }
-
-    /**
-     * Tests the functionality of adbRoot
-     *
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void test_adbUnroot_notAlreadyRoot() throws DeviceNotAvailableException {
-        doReturn(false).when(mockDevice).isAdbRoot();
-        mPreparer.adbUnroot();
-        verify(mockDevice, times(0)).executeAdbCommand(ArgumentMatchers.anyString());
-    }
-
-    /**
-     * Tests the functionality of adbRoot
-     *
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void test_adbUnroot_alreadyRoot() throws DeviceNotAvailableException {
-        doReturn(true).when(mockDevice).isAdbRoot();
-        mPreparer.adbUnroot();
-        verify(mockDevice, times(1)).executeAdbCommand(eq("unroot"));
-    }
-
-    /**
-     * Tests the functionality of adbRoot
-     *
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void test_adbRoot_notAlreadyRoot() throws DeviceNotAvailableException {
-        doReturn(false).when(mockDevice).isAdbRoot();
-        mPreparer.adbRoot();
-        verify(mockDevice, times(1)).executeAdbCommand(eq("root"));
-    }
-
-    /**
-     * Tests the functionality of adbRoot
-     *
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void test_adbRoot_alreadyRoot() throws DeviceNotAvailableException {
-        doReturn(true).when(mockDevice).isAdbRoot();
-        mPreparer.adbRoot();
-        verify(mockDevice, times(0)).executeAdbCommand(ArgumentMatchers.anyString());
-    }
-
-    /**
-     * Tests the functionality of startFramework
-     *
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void test_startFramework() throws DeviceNotAvailableException {
-        doReturn("1").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_DEV_BOOTCOMPLETE);
-        doReturn("1").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_SYS_BOOT_COMPLETED);
-        doReturn("system_server")
-                .when(mockDevice)
-                .executeShellCommand(eq("ps -g system | grep system_server"));
-        mPreparer.startFramework();
-        verify(mockDevice, times(1))
-                .executeShellCommand(
-                        eq("setprop " + VtsDevicePreparer.SYSPROP_VTS_NATIVE_SERVER + " 0"));
-        verify(mockDevice, times(1)).executeShellCommand(eq("start"));
-    }
-
-    /**
-     * Tests the functionality of stopFramework
-     *
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void test_stopFramework() throws DeviceNotAvailableException {
-        mPreparer.stopFramework();
-        verify(mockDevice, times(1)).executeShellCommand(eq("stop"));
-        verify(mockDevice, times(1))
-                .executeShellCommand(
-                        eq("setprop " + VtsDevicePreparer.SYSPROP_SYS_BOOT_COMPLETED + " 0"));
-    }
-
-    /**
-     * Tests the functionality of startNativeServers
-     *
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void test_startNativeServers() throws DeviceNotAvailableException {
-        mPreparer.startNativeServers();
-        verify(mockDevice, times(1))
-                .executeShellCommand(
-                        eq("setprop " + VtsDevicePreparer.SYSPROP_VTS_NATIVE_SERVER + " 0"));
-    }
-
-    /**
-     * Tests the functionality of stopNativeServers
-     *
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void test_stopNativeServers() throws DeviceNotAvailableException {
-        mPreparer.stopNativeServers();
-        verify(mockDevice, times(1))
-                .executeShellCommand(
-                        eq("setprop " + VtsDevicePreparer.SYSPROP_VTS_NATIVE_SERVER + " 1"));
-    }
-
-    /**
-     * Tests the functionality of setProp
-     *
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void test_setProp() throws DeviceNotAvailableException {
-        mPreparer.setProperty("key", "value");
-        verify(mockDevice, times(1)).executeShellCommand(eq("setprop key value"));
-    }
-
-    /**
-     * Tests the functionality of isBootCompleted
-     *
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void test_isBootCompleted_true() throws DeviceNotAvailableException {
-        doReturn("1").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_DEV_BOOTCOMPLETE);
-        doReturn("1").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_SYS_BOOT_COMPLETED);
-        assertTrue(mPreparer.isBootCompleted());
-        verify(mockDevice, times(1)).getProperty(eq(VtsDevicePreparer.SYSPROP_DEV_BOOTCOMPLETE));
-        verify(mockDevice, times(1)).getProperty(eq(VtsDevicePreparer.SYSPROP_SYS_BOOT_COMPLETED));
-    }
-
-    /**
-     * Tests the functionality of isBootCompleted
-     *
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void test_isBootCompleted_false1() throws DeviceNotAvailableException {
-        doReturn("0").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_DEV_BOOTCOMPLETE);
-        doReturn("1").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_SYS_BOOT_COMPLETED);
-        assertTrue(!mPreparer.isBootCompleted());
-    }
-
-    /**
-     * Tests the functionality of isBootCompleted
-     *
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void test_isBootCompleted_false2() throws DeviceNotAvailableException {
-        doReturn("1").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_DEV_BOOTCOMPLETE);
-        doReturn("0").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_SYS_BOOT_COMPLETED);
-        assertTrue(!mPreparer.isBootCompleted());
-    }
-
-    /**
-     * Tests the functionality of isBootCompleted
-     *
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void test_isBootCompleted_false3() throws DeviceNotAvailableException {
-        doReturn("0").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_DEV_BOOTCOMPLETE);
-        doReturn("0").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_SYS_BOOT_COMPLETED);
-        assertTrue(!mPreparer.isBootCompleted());
-    }
-
-    /**
-     * Tests the functionality of isBootCompleted when a dev boot completed sysprop is undefined.
-     *
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void test_isBootCompleted_null1() throws DeviceNotAvailableException {
-        doReturn(null).when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_DEV_BOOTCOMPLETE);
-        doReturn("1").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_SYS_BOOT_COMPLETED);
-        assertTrue(!mPreparer.isBootCompleted());
-    }
-
-    /**
-     * Tests the functionality of isBootCompleted when a sys boot completed sysprop is undefined.
-     *
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void test_isBootCompleted_null2() throws DeviceNotAvailableException {
-        doReturn("1").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_DEV_BOOTCOMPLETE);
-        doReturn(null).when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_SYS_BOOT_COMPLETED);
-        assertTrue(!mPreparer.isBootCompleted());
-    }
-
-    /**
-     * Tests the functionality of isBootCompleted when two boot completed sysprops are undefined.
-     *
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void test_isBootCompleted_null3() throws DeviceNotAvailableException {
-        doReturn(null).when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_DEV_BOOTCOMPLETE);
-        doReturn(null).when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_SYS_BOOT_COMPLETED);
-        assertTrue(!mPreparer.isBootCompleted());
-    }
-
-    /**
-     * Tests the functionality of isFrameworkRunning
-     *
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void test_isFrameworkRunning_true() throws DeviceNotAvailableException {
-        doReturn("1").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_DEV_BOOTCOMPLETE);
-        doReturn("1").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_SYS_BOOT_COMPLETED);
-        doReturn("system_server").when(mockDevice).executeShellCommand(contains("ps -g system"));
-        assertTrue(mPreparer.isFrameworkRunning());
-    }
-
-    /**
-     * Tests the functionality of isFrameworkRunning
-     *
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void test_isFrameworkRunning_false() throws DeviceNotAvailableException {
-        doReturn("1").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_DEV_BOOTCOMPLETE);
-        doReturn("1").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_SYS_BOOT_COMPLETED);
-        doReturn("").when(mockDevice).executeShellCommand(contains("ps -g system"));
-        assertTrue(!mPreparer.isFrameworkRunning());
-    }
-
-    /**
-     * Tests the functionality of enable-radio-log option
-     *
-     * @throws DeviceNotAvailableException
-     * @throws BuildError
-     * @throws TargetSetupError
-     */
-    @Test
-    public void test_setUp_enableRadioLog()
-            throws DeviceNotAvailableException, TargetSetupError, BuildError {
-        doReturn("0").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_RADIO_LOG);
-        mPreparer.mEnableRadioLog = true;
-        mPreparer.setUp(mockDevice, mockBuildInfo);
-        verify(mockDevice, times(1))
-                .executeShellCommand("setprop " + VtsDevicePreparer.SYSPROP_RADIO_LOG + " 1");
-        verify(mockDevice, times(1)).reboot();
-    }
-
-    /**
-     * Tests the functionality of enable-radio-log option
-     *
-     * @throws DeviceNotAvailableException
-     * @throws BuildError
-     * @throws TargetSetupError
-     */
-    @Test
-    public void test_setUp_enableRadioLog_alreadyEnabled()
-            throws DeviceNotAvailableException, TargetSetupError, BuildError {
-        doReturn("1").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_RADIO_LOG);
-        mPreparer.mEnableRadioLog = true;
-        mPreparer.setUp(mockDevice, mockBuildInfo);
-        verify(mockDevice, times(0))
-                .executeShellCommand(eq("setprop " + VtsDevicePreparer.SYSPROP_RADIO_LOG + " 1"));
-        verify(mockDevice, times(0)).reboot();
-    }
-
-    /**
-     * Tests the functionality of enable-radio-log option
-     *
-     * @throws DeviceNotAvailableException
-     * @throws BuildError
-     * @throws TargetSetupError
-     */
-    @Test
-    public void test_setUp_enableRadioLog_notAvailable1()
-            throws DeviceNotAvailableException, TargetSetupError, BuildError {
-        doReturn(null).when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_RADIO_LOG);
-        mPreparer.mEnableRadioLog = true;
-        mPreparer.setUp(mockDevice, mockBuildInfo);
-        verify(mockDevice, times(0))
-                .executeShellCommand(eq("setprop " + VtsDevicePreparer.SYSPROP_RADIO_LOG + " 1"));
-        verify(mockDevice, times(0)).reboot();
-    }
-
-    /**
-     * Tests the functionality of enable-radio-log option
-     *
-     * @throws DeviceNotAvailableException
-     * @throws BuildError
-     * @throws TargetSetupError
-     */
-    @Test
-    public void test_setUp_enableRadioLog_notAvailable2()
-            throws DeviceNotAvailableException, TargetSetupError, BuildError {
-        doReturn("").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_RADIO_LOG);
-        mPreparer.mEnableRadioLog = true;
-        mPreparer.setUp(mockDevice, mockBuildInfo);
-        verify(mockDevice, times(0))
-                .executeShellCommand(eq("setprop " + VtsDevicePreparer.SYSPROP_RADIO_LOG + " 1"));
-        verify(mockDevice, times(0)).reboot();
-    }
-
-    /**
-     * Test tearDown is skipped when pre-existing DeviceNotAvailableException is seen.
-     */
-    @Test
-    public void test_tearDown_with_DNAE() throws Exception {
-        DeviceNotAvailableException exception =
-                new DeviceNotAvailableException("device not available");
-        mPreparer.tearDown(mockDevice, mockBuildInfo, exception);
-    }
-
-    /**
-     * Tests the functionality of radio log restore option.
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void test_tearDown_enableAdbRoot_turnOff() throws DeviceNotAvailableException {
-        doReturn(true).when(mockDevice).isAdbRoot();
-        doReturn("1").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_RADIO_LOG);
-        mPreparer.mEnableRadioLog = true;
-        mPreparer.mRestoreRadioLog = true;
-        mPreparer.mInitialRadioLog = DeviceOptionState.DISABLED;
-        mPreparer.tearDown(mockDevice, mockBuildInfo, null);
-        verify(mockDevice, times(1))
-                .executeShellCommand("setprop " + VtsDevicePreparer.SYSPROP_RADIO_LOG + " 0");
-        verify(mockDevice, times(1)).reboot();
-    }
-
-    /**
-     * Tests the functionality of radio log restore option.
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void test_tearDown_enableAdbRoot_noNeedTurnOff() throws DeviceNotAvailableException {
-        doReturn(true).when(mockDevice).isAdbRoot();
-        doReturn("1").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_RADIO_LOG);
-        mPreparer.mEnableRadioLog = true;
-        mPreparer.mRestoreRadioLog = true;
-        mPreparer.mInitialRadioLog = DeviceOptionState.ENABLED;
-        mPreparer.tearDown(mockDevice, mockBuildInfo, null);
-        verify(mockDevice, times(0))
-                .executeShellCommand("setprop " + VtsDevicePreparer.SYSPROP_RADIO_LOG + " 0");
-        verify(mockDevice, times(0)).reboot();
-    }
-
-    /**
-     * Tests the functionality of radio log restore option.
-     * @throws DeviceNotAvailableException
-     */
-    @Test
-    public void test_tearDown_enableAdbRoot_noNeedTurnOff2() throws DeviceNotAvailableException {
-        doReturn(true).when(mockDevice).isAdbRoot();
-        doReturn("1").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_RADIO_LOG);
-        mPreparer.mEnableRadioLog = false;
-        mPreparer.mRestoreRadioLog = true;
-        mPreparer.mInitialRadioLog = DeviceOptionState.ENABLED;
-        mPreparer.tearDown(mockDevice, mockBuildInfo, null);
-        verify(mockDevice, times(0))
-                .executeShellCommand("setprop " + VtsDevicePreparer.SYSPROP_RADIO_LOG + " 0");
-        verify(mockDevice, times(0)).reboot();
-    }
-
-    /**
-     * Tests the functionality of enable-adb-root option
-     *
-     * @throws DeviceNotAvailableException
-     * @throws BuildError
-     * @throws TargetSetupError
-     */
-    @Test
-    public void test_setUp_enableAdbRoot()
-            throws DeviceNotAvailableException, TargetSetupError, BuildError {
-        doReturn(false).when(mockDevice).isAdbRoot();
-        mPreparer.mEnableAdbRoot = true;
-        mPreparer.setUp(mockDevice, mockBuildInfo);
-        verify(mockDevice, times(1)).executeAdbCommand(eq("root"));
-    }
-
-    /**
-     * Tests the functionality of enable-adb-root option
-     *
-     * @throws DeviceNotAvailableException
-     * @throws BuildError
-     * @throws TargetSetupError
-     */
-    @Test
-    public void test_setUp_enableAdbRoot_alreadyRoot()
-            throws DeviceNotAvailableException, TargetSetupError, BuildError {
-        doReturn(true).when(mockDevice).isAdbRoot();
-        mPreparer.mEnableAdbRoot = true;
-        mPreparer.setUp(mockDevice, mockBuildInfo);
-        verify(mockDevice, times(0)).executeAdbCommand(eq("root"));
-    }
-
-    /**
-     * Tests the functionality of enable-adb-root option
-     *
-     * @throws DeviceNotAvailableException
-     * @throws BuildError
-     * @throws TargetSetupError
-     */
-    @Test
-    public void test_setUp_disableAdbRoot()
-            throws DeviceNotAvailableException, TargetSetupError, BuildError {
-        doReturn(true).when(mockDevice).isAdbRoot();
-        mPreparer.mDisableAdbRoot = true;
-        mPreparer.setUp(mockDevice, mockBuildInfo);
-        verify(mockDevice, times(1)).executeAdbCommand(eq("unroot"));
-    }
-
-    /**
-     * Tests the functionality of enable-adb-root option
-     *
-     * @throws DeviceNotAvailableException
-     * @throws BuildError
-     * @throws TargetSetupError
-     */
-    @Test
-    public void test_setUp_disableAdbRoot_alreadyUnroot()
-            throws DeviceNotAvailableException, TargetSetupError, BuildError {
-        doReturn(false).when(mockDevice).isAdbRoot();
-        mPreparer.mDisableAdbRoot = true;
-        mPreparer.setUp(mockDevice, mockBuildInfo);
-        verify(mockDevice, times(0)).executeAdbCommand(eq("unroot"));
-    }
-
-    /**
-     * Tests the functionality of start-framework option
-     *
-     * @throws DeviceNotAvailableException
-     * @throws BuildError
-     * @throws TargetSetupError
-     */
-    @Test
-    public void test_setUp_startFramework()
-            throws DeviceNotAvailableException, TargetSetupError, BuildError {
-        doReturn("1").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_DEV_BOOTCOMPLETE);
-        doReturn("1").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_SYS_BOOT_COMPLETED);
-        doReturn("system_server")
-                .when(mockDevice)
-                .executeShellCommand("ps -g system | grep system_server");
-        mPreparer.mStartFramework = true;
-        mPreparer.setUp(mockDevice, mockBuildInfo);
-        verify(mockDevice, times(1)).executeShellCommand(eq("start"));
-    }
-
-    /**
-     * Tests the functionality of stop-framework option
-     *
-     * @throws DeviceNotAvailableException
-     * @throws BuildError
-     * @throws TargetSetupError
-     */
-    @Test
-    public void test_setUp_stopFramework()
-            throws DeviceNotAvailableException, TargetSetupError, BuildError {
-        mPreparer.mStopFramework = true;
-        mPreparer.setUp(mockDevice, mockBuildInfo);
-        verify(mockDevice, times(1)).executeShellCommand(eq("stop"));
-    }
-
-    /**
-     * Tests whether conflict options invokes no action
-     *
-     * @throws DeviceNotAvailableException
-     * @throws BuildError
-     * @throws TargetSetupError
-     */
-    @Test
-    public void test_setUp_conflict()
-            throws DeviceNotAvailableException, TargetSetupError, BuildError {
-        mPreparer.mStartFramework = true;
-        mPreparer.mStopFramework = true;
-        mPreparer.mEnableAdbRoot = true;
-        mPreparer.mDisableAdbRoot = true;
-        mPreparer.setUp(mockDevice, mockBuildInfo);
-        verify(mockDevice, times(0)).executeShellCommand(eq("start"));
-        verify(mockDevice, times(0)).executeShellCommand(eq("stop"));
-        verify(mockDevice, times(0)).executeAdbCommand(eq("root"));
-        verify(mockDevice, times(0)).executeAdbCommand(eq("unroot"));
-    }
-
-    /**
-     * Tests the functionality of restore-framework option
-     *
-     * @throws DeviceNotAvailableException
-     * @throws BuildError
-     * @throws TargetSetupError
-     */
-    @Test
-    public void test_tearDown_restoreFramework()
-            throws DeviceNotAvailableException, TargetSetupError, BuildError {
-        doReturn("0")
-                .doReturn("1")
-                .when(mockDevice)
-                .getProperty(VtsDevicePreparer.SYSPROP_DEV_BOOTCOMPLETE);
-        doReturn("1").when(mockDevice).getProperty(VtsDevicePreparer.SYSPROP_SYS_BOOT_COMPLETED);
-        doReturn("system_server")
-                .when(mockDevice)
-                .executeShellCommand("ps -g system | grep system_server");
-        mPreparer.mRestoreFramework = true;
-        mPreparer.mInitialFrameworkStarted = true;
-        mPreparer.mStopFramework = true;
-        mPreparer.tearDown(mockDevice, mockBuildInfo, new Exception());
-        verify(mockDevice, times(1)).executeShellCommand(eq("start"));
-    }
-}
diff --git a/harnesses/tradefed/tests/src/com/android/tradefed/targetprep/VtsHalAdapterPreparerTest.java b/harnesses/tradefed/tests/src/com/android/tradefed/targetprep/VtsHalAdapterPreparerTest.java
deleted file mode 100644
index af8511b..0000000
--- a/harnesses/tradefed/tests/src/com/android/tradefed/targetprep/VtsHalAdapterPreparerTest.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.tradefed.targetprep;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-import static org.mockito.Mockito.*;
-
-import com.android.compatibility.common.tradefed.build.VtsCompatibilityInvocationHelper;
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.config.OptionSetter;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.testtype.IAbi;
-import com.android.tradefed.util.CmdUtil;
-import com.android.tradefed.util.FileUtil;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.mockito.InjectMocks;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Vector;
-import java.util.function.Predicate;
-/**
- * Unit tests for {@link VtsHalAdapterPreparer}.
- */
-@RunWith(JUnit4.class)
-public final class VtsHalAdapterPreparerTest {
-    private int THREAD_COUNT_DEFAULT = VtsHalAdapterPreparer.THREAD_COUNT_DEFAULT;
-    private String SCRIPT_PATH = VtsHalAdapterPreparer.SCRIPT_PATH;
-    private String LIST_HAL_CMD = VtsHalAdapterPreparer.LIST_HAL_CMD;
-
-    private String VTS_NATIVE_TEST_DIR = "DATA/nativetest64/";
-    private String TARGET_NATIVE_TEST_DIR = "/data/nativetest64/";
-    private String TEST_HAL_ADAPTER_BINARY = "android.hardware.foo@1.0-adapter";
-    private String TEST_HAL_PACKAGE = "android.hardware.foo@1.1";
-
-    private class TestCmdUtil extends CmdUtil {
-        public boolean mCmdSuccess = true;
-        @Override
-        public boolean waitCmdResultWithDelay(ITestDevice device, String cmd,
-                Predicate<String> predicate) throws DeviceNotAvailableException {
-            return mCmdSuccess;
-        }
-
-        @Override
-        public boolean retry(ITestDevice device, String cmd, String validation_cmd,
-                Predicate<String> predicate, int retry_count) throws DeviceNotAvailableException {
-            device.executeShellCommand(cmd);
-            return mCmdSuccess;
-        }
-
-        @Override
-        public boolean retry(ITestDevice device, Vector<String> cmds, String validation_cmd,
-                Predicate<String> predicate) throws DeviceNotAvailableException {
-            for (String cmd : cmds) {
-                device.executeShellCommand(cmd);
-            }
-            return mCmdSuccess;
-        }
-
-        @Override
-        public void restartFramework(ITestDevice device) throws DeviceNotAvailableException {}
-
-        @Override
-        public void setSystemProperty(ITestDevice device, String name, String value)
-                throws DeviceNotAvailableException {}
-    }
-    private TestCmdUtil mCmdUtil = new TestCmdUtil();
-    VtsCompatibilityInvocationHelper mMockHelper = null;
-    private class TestPreparer extends VtsHalAdapterPreparer {
-        @Override
-        VtsCompatibilityInvocationHelper createVtsHelper() {
-            return mMockHelper;
-        }
-    }
-    File mTestDir = null;
-
-    @Mock private IBuildInfo mBuildInfo;
-    @Mock private ITestDevice mDevice;
-    @Mock private IAbi mAbi;
-    @InjectMocks private TestPreparer mPreparer = new TestPreparer();
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        // Create the base dirs
-        mTestDir = FileUtil.createTempDir("vts-hal-adapter-preparer-unit-tests");
-        new File(mTestDir, VTS_NATIVE_TEST_DIR).mkdirs();
-        mMockHelper = new VtsCompatibilityInvocationHelper() {
-            @Override
-            public File getTestsDir() throws FileNotFoundException {
-                return mTestDir;
-            }
-        };
-        mPreparer.setCmdUtil(mCmdUtil);
-        OptionSetter setter = new OptionSetter(mPreparer);
-        setter.setOptionValue("adapter-binary-name", TEST_HAL_ADAPTER_BINARY);
-        setter.setOptionValue("hal-package-name", TEST_HAL_PACKAGE);
-        doReturn("64").when(mAbi).getBitness();
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        FileUtil.recursiveDelete(mTestDir);
-    }
-
-    @Test
-    public void testOnSetUpAdapterSingleInstance() throws Exception {
-        File testAdapter = createTestAdapter();
-        String output = "android.hardware.foo@1.1::IFoo/default";
-        doReturn(output).doReturn("").when(mDevice).executeShellCommand(
-                String.format(LIST_HAL_CMD, TEST_HAL_PACKAGE));
-
-        mPreparer.setUp(mDevice, mBuildInfo);
-        verify(mDevice, times(1))
-                .pushFile(eq(testAdapter), eq(TARGET_NATIVE_TEST_DIR + TEST_HAL_ADAPTER_BINARY));
-        String adapterCmd = String.format("%s /data/nativetest64/%s %s %s %d", SCRIPT_PATH,
-                TEST_HAL_ADAPTER_BINARY, "IFoo", "default", THREAD_COUNT_DEFAULT);
-        verify(mDevice, times(1)).executeShellCommand(eq(adapterCmd));
-    }
-
-    @Test
-    public void testOnSetUpAdapterMultipleInstance() throws Exception {
-        createTestAdapter();
-        String output = "android.hardware.foo@1.1::IFoo/default\n"
-                + "android.hardware.foo@1.1::IFoo/test\n"
-                + "android.hardware.foo@1.1::IFooSecond/default\n"
-                + "android.hardware.foo@1.1::IFooSecond/slot/1\n";
-        doReturn(output).doReturn("").when(mDevice).executeShellCommand(
-                String.format(LIST_HAL_CMD, TEST_HAL_PACKAGE));
-
-        mPreparer.setUp(mDevice, mBuildInfo);
-
-        List<String> adapterCmds = new ArrayList<String>();
-        adapterCmds.add(String.format("%s /data/nativetest64/%s %s %s %d", SCRIPT_PATH,
-                TEST_HAL_ADAPTER_BINARY, "IFoo", "default", THREAD_COUNT_DEFAULT));
-        adapterCmds.add(String.format("%s /data/nativetest64/%s %s %s %d", SCRIPT_PATH,
-                TEST_HAL_ADAPTER_BINARY, "IFoo", "test", THREAD_COUNT_DEFAULT));
-        adapterCmds.add(String.format("%s /data/nativetest64/%s %s %s %d", SCRIPT_PATH,
-                TEST_HAL_ADAPTER_BINARY, "IFooSecond", "default", THREAD_COUNT_DEFAULT));
-        adapterCmds.add(String.format("%s /data/nativetest64/%s %s %s %d", SCRIPT_PATH,
-                TEST_HAL_ADAPTER_BINARY, "IFooSecond", "slot/1", THREAD_COUNT_DEFAULT));
-
-        for (String cmd : adapterCmds) {
-            verify(mDevice, times(1)).executeShellCommand(eq(cmd));
-        }
-    }
-
-    @Test
-    public void testOnSetupAdapterNotFound() throws Exception {
-        try {
-            mPreparer.setUp(mDevice, mBuildInfo);
-        } catch (TargetSetupError e) {
-            assertEquals("Could not push adapter.", e.getMessage());
-            return;
-        }
-        fail();
-    }
-
-    @Test
-    public void testOnSetupServiceNotAvailable() throws Exception {
-        createTestAdapter();
-        doReturn("").when(mDevice).executeShellCommand(
-                String.format(LIST_HAL_CMD, TEST_HAL_PACKAGE));
-        mPreparer.setUp(mDevice, mBuildInfo);
-    }
-
-    @Test
-    public void testOnSetUpAdapterFailed() throws Exception {
-        createTestAdapter();
-        String output = "android.hardware.foo@1.1::IFoo/default";
-        doReturn(output).when(mDevice).executeShellCommand(
-                String.format(LIST_HAL_CMD, TEST_HAL_PACKAGE));
-        mCmdUtil.mCmdSuccess = false;
-        try {
-            mPreparer.setUp(mDevice, mBuildInfo);
-        } catch (TargetSetupError e) {
-            assertEquals("HAL adapter setup failed.", e.getMessage());
-            return;
-        }
-        fail();
-    }
-
-    @Test
-    public void testOnTearDownRestoreFailed() throws Exception {
-        mCmdUtil.mCmdSuccess = false;
-        mPreparer.setCmdUtil(mCmdUtil);
-        mPreparer.addCommand("one");
-        mPreparer.tearDown(mDevice, mBuildInfo, null);
-    }
-
-    /**
-     * Helper method to create a test adapter under mTestDir.
-     *
-     * @return created test file.
-     */
-    private File createTestAdapter() throws IOException {
-        File testAdapter = new File(mTestDir, VTS_NATIVE_TEST_DIR + TEST_HAL_ADAPTER_BINARY);
-        testAdapter.createNewFile();
-        return testAdapter;
-    }
-}
diff --git a/harnesses/tradefed/tests/src/com/android/tradefed/targetprep/VtsPythonVirtualenvPreparerTest.java b/harnesses/tradefed/tests/src/com/android/tradefed/targetprep/VtsPythonVirtualenvPreparerTest.java
deleted file mode 100644
index 0cb94c1..0000000
--- a/harnesses/tradefed/tests/src/com/android/tradefed/targetprep/VtsPythonVirtualenvPreparerTest.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * Copyright (C) 2016 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.
- */
-
-package com.android.tradefed.targetprep;
-
-import static org.easymock.EasyMock.anyLong;
-import static org.easymock.EasyMock.expect;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import com.android.tradefed.build.BuildInfo;
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.util.CommandResult;
-import com.android.tradefed.util.CommandStatus;
-import com.android.tradefed.util.FileUtil;
-import com.android.tradefed.util.IRunUtil;
-
-import org.easymock.EasyMock;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-import org.mockito.Mock;
-
-import java.io.File;
-import java.io.IOException;
-
-/**
- * Unit tests for {@link VtsPythonVirtualenvPreparer}.</p>
- * TODO: add tests to cover a full end-to-end scenario.
- */
-@RunWith(JUnit4.class)
-public class VtsPythonVirtualenvPreparerTest {
-    private VtsPythonVirtualenvPreparer mPreparer;
-    private IRunUtil mMockRunUtil;
-    @Mock private IBuildInfo mBuildInfo;
-
-    @Before
-    public void setUp() throws Exception {
-        mMockRunUtil = EasyMock.createMock(IRunUtil.class);
-
-        mPreparer = new VtsPythonVirtualenvPreparer() {
-            @Override
-            protected IRunUtil getRunUtil() {
-                return mMockRunUtil;
-            }
-        };
-        mPreparer.mVenvDir = new File("");
-        mPreparer.mDepModules.add("enum");
-    }
-
-    /**
-     * Test that the installation of dependencies and requirements file is as expected.
-     */
-    @Test
-    public void testInstallDeps_reqFile_success() throws Exception {
-        File requirementFile = FileUtil.createTempFile("reqfile", ".txt");
-        try {
-            mPreparer.setRequirementsFile(requirementFile);
-            CommandResult result = new CommandResult(CommandStatus.SUCCESS);
-            result.setStdout("output");
-            result.setStderr("std err");
-            // First check that the install requirements was attempted.
-            expect(mMockRunUtil.runTimedCmd(anyLong(), EasyMock.eq(mPreparer.getPipPath()),
-                           EasyMock.eq("install"), EasyMock.eq("-r"),
-                           EasyMock.eq(requirementFile.getAbsolutePath())))
-                    .andReturn(result);
-            // Check that all default modules are installed
-            addDefaultModuleExpectations(mMockRunUtil, result);
-            EasyMock.replay(mMockRunUtil);
-            mPreparer.installDeps();
-            EasyMock.verify(mMockRunUtil);
-        } finally {
-            FileUtil.deleteFile(requirementFile);
-        }
-    }
-
-    /**
-     * Test that if an extra dependency module is required, we install it too.
-     */
-    @Test
-    public void testInstallDeps_depModule_success() throws Exception {
-        mPreparer.addDepModule("blahblah");
-        CommandResult result = new CommandResult(CommandStatus.SUCCESS);
-        result.setStdout("output");
-        result.setStderr("std err");
-        addDefaultModuleExpectations(mMockRunUtil, result);
-        // The non default module provided is also attempted to be installed.
-        expect(mMockRunUtil.runTimedCmd(anyLong(), EasyMock.eq(mPreparer.getPipPath()),
-                       EasyMock.eq("install"), EasyMock.eq("blahblah")))
-                .andReturn(result);
-        mMockRunUtil.sleep(VtsPythonVirtualenvPreparer.PIP_INSTALL_DELAY);
-        EasyMock.replay(mMockRunUtil);
-        mPreparer.installDeps();
-        EasyMock.verify(mMockRunUtil);
-    }
-
-    /**
-     * Tests the value of PIP_INSTALL_DELAY is at least 1 second.
-     */
-    @Test
-    public void test_PIP_INSTALL_DELAY_minimum_value() {
-        assertTrue(VtsPythonVirtualenvPreparer.PIP_INSTALL_DELAY >= 1000);
-    }
-
-    /**
-     * Test that an installation failure of the requirements file throws a {@link TargetSetupError}.
-     */
-    @Test
-    public void testInstallDeps_reqFile_failure() throws Exception {
-        File requirementFile = FileUtil.createTempFile("reqfile", ".txt");
-        try {
-            mPreparer.setRequirementsFile(requirementFile);
-            CommandResult result = new CommandResult(CommandStatus.TIMED_OUT);
-            result.setStdout("output");
-            result.setStderr("std err");
-            expect(mMockRunUtil.runTimedCmd(anyLong(), EasyMock.eq(mPreparer.getPipPath()),
-                           EasyMock.eq("install"), EasyMock.eq("-r"),
-                           EasyMock.eq(requirementFile.getAbsolutePath())))
-                    .andReturn(result)
-                    .times(VtsPythonVirtualenvPreparer.PIP_RETRY + 1);
-            mMockRunUtil.sleep(EasyMock.anyLong());
-            EasyMock.expectLastCall().times(VtsPythonVirtualenvPreparer.PIP_RETRY);
-            EasyMock.replay(mMockRunUtil);
-            IBuildInfo buildInfo = new BuildInfo();
-            try {
-                mPreparer.installDeps();
-                fail("installDeps succeeded despite a failed command");
-            } catch (TargetSetupError e) {
-                assertTrue(buildInfo.getFile("PYTHONPATH") == null);
-            }
-            EasyMock.verify(mMockRunUtil);
-        } finally {
-            FileUtil.deleteFile(requirementFile);
-        }
-    }
-
-    /**
-     * Test that an installation failure of the dep module throws a {@link TargetSetupError}.
-     */
-    @Test
-    public void testInstallDeps_depModule_failure() throws Exception {
-        CommandResult result = new CommandResult(CommandStatus.TIMED_OUT);
-        result.setStdout("output");
-        result.setStderr("std err");
-        expect(mMockRunUtil.runTimedCmd(
-                       anyLong(), EasyMock.eq(mPreparer.getPipPath()), EasyMock.eq("list")))
-                .andReturn(result);
-        expect(mMockRunUtil.runTimedCmd(anyLong(), EasyMock.eq(mPreparer.getPipPath()),
-                       EasyMock.eq("install"), EasyMock.eq("enum")))
-                .andReturn(result)
-                .times(VtsPythonVirtualenvPreparer.PIP_RETRY + 1);
-        // If installing the dependency failed, an upgrade is attempted:
-        expect(mMockRunUtil.runTimedCmd(anyLong(), EasyMock.eq(mPreparer.getPipPath()),
-                       EasyMock.eq("install"), EasyMock.eq("--upgrade"), EasyMock.eq("enum")))
-                .andReturn(result)
-                .times(VtsPythonVirtualenvPreparer.PIP_RETRY + 1);
-        mMockRunUtil.sleep(EasyMock.anyLong());
-        EasyMock.expectLastCall().times(VtsPythonVirtualenvPreparer.PIP_RETRY);
-        EasyMock.replay(mMockRunUtil);
-        IBuildInfo buildInfo = new BuildInfo();
-        try {
-            mPreparer.installDeps();
-            fail("installDeps succeeded despite a failed command");
-        } catch (TargetSetupError e) {
-            assertTrue(buildInfo.getFile("PYTHONPATH") == null);
-        }
-        EasyMock.verify(mMockRunUtil);
-    }
-
-    private void addDefaultModuleExpectations(IRunUtil mockRunUtil, CommandResult result) {
-        expect(mockRunUtil.runTimedCmd(
-                       anyLong(), EasyMock.eq(mPreparer.getPipPath()), EasyMock.eq("list")))
-                .andReturn(result);
-        expect(mockRunUtil.runTimedCmd(anyLong(), EasyMock.eq(mPreparer.getPipPath()),
-                       EasyMock.eq("install"), EasyMock.eq("enum")))
-                .andReturn(result);
-        mMockRunUtil.sleep(VtsPythonVirtualenvPreparer.PIP_INSTALL_DELAY);
-    }
-
-    /**
-     * Tests the functionality of createVirtualenv.
-     * @throws IOException
-     */
-    @Test
-    public void test_initVirtualenv_creationSuccess() throws IOException {
-        // Create virutalenv dir command success
-        CommandResult result = new CommandResult();
-        result.setStatus(CommandStatus.SUCCESS);
-        expect(mMockRunUtil.runTimedCmd(EasyMock.anyInt(), EasyMock.eq("virtualenv"),
-                       EasyMock.anyObject(), EasyMock.anyObject(), EasyMock.anyObject()))
-                .andReturn(result);
-        EasyMock.replay(mMockRunUtil);
-
-        File testDir = FileUtil.createTempDir("vts-test-dir");
-        try {
-            assertTrue(mPreparer.createVirtualenv(testDir));
-        } finally {
-            FileUtil.recursiveDelete(testDir);
-        }
-        EasyMock.verify(mMockRunUtil);
-    }
-
-    /**
-     * Tests the functionality of createVirtualenv.
-     */
-    @Test
-    public void test_initVirtualenv_creationFail_Errno26_waitSucceed() throws IOException {
-        // Create virutalenv dir command success
-        CommandResult result = new CommandResult(CommandStatus.FAILED);
-        result.setStderr("...Errno 26...");
-        expect(mMockRunUtil.runTimedCmd(EasyMock.anyLong(), EasyMock.eq("virtualenv"),
-                       EasyMock.anyObject(), EasyMock.anyObject(), EasyMock.anyObject()))
-                .andReturn(result)
-                .once();
-        CommandResult nextResult = new CommandResult(CommandStatus.SUCCESS);
-        expect(mMockRunUtil.runTimedCmd(EasyMock.anyLong(), EasyMock.eq("virtualenv"),
-                       EasyMock.anyObject(), EasyMock.anyObject(), EasyMock.anyObject()))
-                .andReturn(nextResult)
-                .once();
-        mMockRunUtil.sleep(EasyMock.anyLong());
-
-        EasyMock.replay(mMockRunUtil);
-        File testDir = FileUtil.createTempDir("vts-test-dir");
-        try {
-            assertTrue(mPreparer.createVirtualenv(testDir));
-        } finally {
-            FileUtil.recursiveDelete(testDir);
-        }
-        EasyMock.verify(mMockRunUtil);
-    }
-
-    /**
-     * Tests the functionality of createVirtualenv.
-     * @throws IOException
-     */
-    @Test
-    public void test_initVirtualenv_creationFail_Errno26_waitFailed() throws IOException {
-        // Create virutalenv dir command success
-        CommandResult result = new CommandResult();
-        result.setStatus(CommandStatus.FAILED);
-        result.setStderr("...Errno 26...");
-        expect(mMockRunUtil.runTimedCmd(EasyMock.anyInt(), EasyMock.eq("virtualenv"),
-                       EasyMock.anyObject(), EasyMock.anyObject(), EasyMock.anyObject()))
-                .andReturn(result)
-                .times(VtsPythonVirtualenvPreparer.PIP_RETRY + 1);
-        mMockRunUtil.sleep(EasyMock.anyLong());
-        EasyMock.expectLastCall().times(VtsPythonVirtualenvPreparer.PIP_RETRY);
-        EasyMock.replay(mMockRunUtil);
-        File testDir = FileUtil.createTempDir("vts-test-dir");
-        try {
-            assertFalse(mPreparer.createVirtualenv(testDir));
-        } finally {
-            FileUtil.recursiveDelete(testDir);
-        }
-        EasyMock.verify(mMockRunUtil);
-    }
-
-    /**
-     * Tests the functionality of createVirtualenv.
-     * @throws IOException
-     */
-    @Test
-    public void test_initVirtualenv_creationFail_noErrno26() throws IOException {
-        // Create virutalenv dir command success
-        CommandResult result = new CommandResult();
-        result.setStatus(CommandStatus.FAILED);
-        result.setStderr("...");
-        expect(mMockRunUtil.runTimedCmd(EasyMock.anyInt(), EasyMock.eq("virtualenv"),
-                       EasyMock.anyObject(), EasyMock.anyObject(), EasyMock.anyObject()))
-                .andReturn(result);
-        EasyMock.replay(mMockRunUtil);
-
-        File testDir = FileUtil.createTempDir("vts-test-dir");
-        try {
-            assertFalse(mPreparer.createVirtualenv(testDir));
-        } finally {
-            FileUtil.recursiveDelete(testDir);
-        }
-        EasyMock.verify(mMockRunUtil);
-    }
-}
\ No newline at end of file
diff --git a/harnesses/tradefed/tests/src/com/android/tradefed/targetprep/VtsTraceCollectPreparerTest.java b/harnesses/tradefed/tests/src/com/android/tradefed/targetprep/VtsTraceCollectPreparerTest.java
deleted file mode 100644
index 8c2b003..0000000
--- a/harnesses/tradefed/tests/src/com/android/tradefed/targetprep/VtsTraceCollectPreparerTest.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.tradefed.targetprep;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-
-import com.android.compatibility.common.tradefed.build.CompatibilityBuildHelper;
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.util.FileUtil;
-import com.android.tradefed.targetprep.TargetSetupError;
-
-import junit.framework.AssertionFailedError;
-
-import org.easymock.EasyMock;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.util.NoSuchElementException;
-
-/**
- * Unit tests for {@link VtsTraceCollectPreparer}.
- */
-@RunWith(JUnit4.class)
-public final class VtsTraceCollectPreparerTest {
-    private String SELINUX_PERMISSIVE = VtsTraceCollectPreparer.SELINUX_PERMISSIVE;
-    private String VTS_LIB_DIR_32 = VtsTraceCollectPreparer.VTS_LIB_DIR_32;
-    private String VTS_LIB_DIR_64 = VtsTraceCollectPreparer.VTS_LIB_DIR_64;
-    private String VTS_BINARY_DIR = VtsTraceCollectPreparer.VTS_BINARY_DIR;
-    private String VTS_TMP_LIB_DIR_32 = VtsTraceCollectPreparer.VTS_TMP_LIB_DIR_32;
-    private String VTS_TMP_LIB_DIR_64 = VtsTraceCollectPreparer.VTS_TMP_LIB_DIR_64;
-    private String VTS_TMP_DIR = VtsTraceCollectPreparer.VTS_TMP_DIR;
-    private String PROFILING_CONFIGURE_BINARY = VtsTraceCollectPreparer.PROFILING_CONFIGURE_BINARY;
-    private String TRACE_PATH = VtsTraceCollectPreparer.TRACE_PATH;
-    private String LOCAL_TRACE_DIR = VtsTraceCollectPreparer.LOCAL_TRACE_DIR;
-
-    private static final String TEST_VTS_PROFILER = "test-vts.profiler.so";
-    private static final String TEST_VTS_LIB = "libvts-for-test.so";
-    private static final String UNRELATED_LIB = "somelib.so";
-
-    private VtsTraceCollectPreparer mPreparer;
-    private IBuildInfo mMockBuildInfo;
-    private ITestDevice mMockDevice;
-    private CompatibilityBuildHelper mMockHelper;
-    private File mTestDir;
-
-    @Before
-    public void setUp() throws Exception {
-        mMockDevice = EasyMock.createNiceMock(ITestDevice.class);
-        mMockBuildInfo = EasyMock.createNiceMock(IBuildInfo.class);
-        mTestDir = FileUtil.createTempDir("vts-trace-collect-unit-tests");
-        mMockHelper = new CompatibilityBuildHelper(mMockBuildInfo) {
-            @Override
-            public File getTestsDir() throws FileNotFoundException {
-                return mTestDir;
-            }
-            @Override
-            public File getResultDir() throws FileNotFoundException {
-                return mTestDir;
-            }
-        };
-        mPreparer = new VtsTraceCollectPreparer() {
-            @Override
-            CompatibilityBuildHelper createBuildHelper(IBuildInfo buildInfo) {
-                return mMockHelper;
-            }
-        };
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        // Cleanup test files.
-        FileUtil.recursiveDelete(mTestDir);
-    }
-
-    @Test
-    public void testOnSetUp() throws Exception {
-        // Create the base dirs
-        new File(mTestDir, VTS_LIB_DIR_32).mkdirs();
-        new File(mTestDir, VTS_LIB_DIR_64).mkdirs();
-        // Files that should be pushed.
-        File testProfilerlib32 = createTestFile(TEST_VTS_PROFILER, "32");
-        File testProfilerlib64 = createTestFile(TEST_VTS_PROFILER, "64");
-        File testVtslib32 = createTestFile(TEST_VTS_LIB, "32");
-        File testVtslib64 = createTestFile(TEST_VTS_LIB, "64");
-        // Files that should not be pushed.
-        File testUnrelatedlib32 = createTestFile(UNRELATED_LIB, "32");
-        File testUnrelatedlib64 = createTestFile(UNRELATED_LIB, "64");
-
-        EasyMock.expect(mMockDevice.pushFile(EasyMock.eq(testProfilerlib32),
-                                EasyMock.eq(VTS_TMP_LIB_DIR_32 + TEST_VTS_PROFILER)))
-                .andReturn(true)
-                .times(1);
-        EasyMock.expect(mMockDevice.pushFile(EasyMock.eq(testProfilerlib64),
-                                EasyMock.eq(VTS_TMP_LIB_DIR_64 + TEST_VTS_PROFILER)))
-                .andReturn(true)
-                .times(1);
-        EasyMock.expect(mMockDevice.pushFile(EasyMock.eq(testVtslib32),
-                                EasyMock.eq(VTS_TMP_LIB_DIR_32 + TEST_VTS_LIB)))
-                .andReturn(true)
-                .times(1);
-        EasyMock.expect(mMockDevice.pushFile(EasyMock.eq(testVtslib64),
-                                EasyMock.eq(VTS_TMP_LIB_DIR_64 + TEST_VTS_LIB)))
-                .andReturn(true)
-                .times(1);
-        EasyMock.expect(mMockDevice.pushFile(EasyMock.eq(testUnrelatedlib32),
-                                EasyMock.eq(VTS_TMP_LIB_DIR_32 + UNRELATED_LIB)))
-                .andThrow(new AssertionFailedError())
-                .anyTimes();
-        EasyMock.expect(mMockDevice.pushFile(EasyMock.eq(testUnrelatedlib64),
-                                EasyMock.eq(VTS_TMP_LIB_DIR_64 + UNRELATED_LIB)))
-                .andThrow(new AssertionFailedError())
-                .anyTimes();
-        EasyMock.expect(mMockDevice.pushFile(EasyMock.eq(new File(mTestDir,
-                                                     VTS_BINARY_DIR + PROFILING_CONFIGURE_BINARY)),
-                                EasyMock.eq(VTS_TMP_DIR + PROFILING_CONFIGURE_BINARY)))
-                .andReturn(true)
-                .times(1);
-        EasyMock.expect(mMockDevice.executeShellCommand(EasyMock.eq("getenforce")))
-                .andReturn("")
-                .times(1);
-        EasyMock.expect(mMockDevice.executeShellCommand(
-                                EasyMock.eq("setenforce " + SELINUX_PERMISSIVE)))
-                .andReturn("")
-                .times(1);
-
-        // Configure the trace directory path.
-        File traceDir = new File(mTestDir, LOCAL_TRACE_DIR);
-        mMockBuildInfo.addBuildAttribute(TRACE_PATH, traceDir.getAbsolutePath());
-        EasyMock.expectLastCall().times(1);
-        EasyMock.replay(mMockDevice, mMockBuildInfo);
-
-        // Run setUp.
-        mPreparer.setUp(mMockDevice, mMockBuildInfo);
-        EasyMock.verify(mMockDevice, mMockBuildInfo);
-    }
-
-    @Test
-    public void testOnSetUpPushFileException() throws Exception {
-        EasyMock.expect(mMockDevice.pushFile(EasyMock.anyObject(), EasyMock.anyObject()))
-                .andThrow(new NoSuchElementException("file not found."));
-        EasyMock.replay(mMockDevice);
-        try {
-            mPreparer.setUp(mMockDevice, mMockBuildInfo);
-            EasyMock.verify(mMockDevice);
-        } catch (TargetSetupError e) {
-            // Expected.
-            assertEquals("Could not push profiler.", e.getMessage());
-            return;
-        }
-        fail();
-    }
-
-    @Test
-    public void testOnTearDown() throws Exception {
-        EasyMock.expect(mMockDevice.executeShellCommand(EasyMock.eq("getenforce")))
-                .andReturn(SELINUX_PERMISSIVE);
-        EasyMock.expect(mMockDevice.executeShellCommand(
-                                EasyMock.eq("setenforce " + SELINUX_PERMISSIVE)))
-                .andReturn("")
-                .times(1);
-        EasyMock.replay(mMockDevice, mMockBuildInfo);
-        mPreparer.setUp(mMockDevice, mMockBuildInfo);
-        mPreparer.tearDown(mMockDevice, mMockBuildInfo, null);
-        EasyMock.verify(mMockDevice, mMockBuildInfo);
-    }
-
-    /**
-     * Helper method to create a test file under mTestDir.
-     *
-     * @param fileName test file name.
-     * @param bitness bitness for the test file. Only supports "32" or "64".
-     * @return created test file, null for unsupported bitness.
-     */
-    private File createTestFile(String fileName, String bitness) throws Exception {
-        if (bitness == "32") {
-            File testFile32 = new File(mTestDir, VTS_LIB_DIR_32 + fileName);
-            testFile32.createNewFile();
-            return testFile32;
-        } else if (bitness == "64") {
-            File testFile64 = new File(mTestDir, VTS_LIB_DIR_64 + fileName);
-            testFile64.createNewFile();
-            return testFile64;
-        }
-        return null;
-    }
-}
diff --git a/harnesses/tradefed/tests/src/com/android/tradefed/testtype/VtsFuzzTestResultParserTest.java b/harnesses/tradefed/tests/src/com/android/tradefed/testtype/VtsFuzzTestResultParserTest.java
deleted file mode 100644
index 67d99aa..0000000
--- a/harnesses/tradefed/tests/src/com/android/tradefed/testtype/VtsFuzzTestResultParserTest.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (C) 2016 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.
- */
-package com.android.tradefed.testtype;
-
-import com.android.ddmlib.Log;
-import com.android.tradefed.result.ITestLifeCycleReceiver;
-import com.android.tradefed.result.TestDescription;
-
-import junit.framework.TestCase;
-
-import org.easymock.EasyMock;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.Map;
-import java.util.Vector;
-
-
-/**
- * Unit tests for {@link VtsFuzzTestResultParserTest}.
- */
-public class VtsFuzzTestResultParserTest extends TestCase {
-    private static final String TEST_TYPE_DIR = "testtype";
-    private static final String TEST_MODULE_NAME = "module";
-    private static final String VTS_FUZZ_OUTPUT_FILE_1 = "vts_fuzz_output1.txt";
-    private static final String VTS_FUZZ_OUTPUT_FILE_2 = "vts_fuzz_output2.txt";
-    private static final String LOG_TAG = "VtsFuzzTestResultParserTest";
-
-    /**
-     * Helper to read a file from the res/testtype directory and return its contents as a String[]
-     *
-     * @param filename the name of the file (without the extension) in the res/testtype directory
-     * @return a String[] of the
-     */
-    private String[] readInFile(String filename) {
-        Vector<String> fileContents = new Vector<String>();
-        try {
-            InputStream gtestResultStream1 = getClass().getResourceAsStream(File.separator +
-                    TEST_TYPE_DIR + File.separator + filename);
-            BufferedReader reader = new BufferedReader(new InputStreamReader(gtestResultStream1));
-            String line = null;
-            while ((line = reader.readLine()) != null) {
-                fileContents.add(line);
-            }
-        }
-        catch (NullPointerException e) {
-            Log.e(LOG_TAG, "Output file does not exist: " + filename);
-        }
-        catch (IOException e) {
-            Log.e(LOG_TAG, "Unable to read contents of an output file: " + filename);
-        }
-        return fileContents.toArray(new String[fileContents.size()]);
-    }
-
-    /**
-     * Tests the parser for a passed test run output with 1 test.
-     */
-    @SuppressWarnings("unchecked")
-    public void testParsePassedFile() throws Exception {
-        String[] contents = readInFile(VTS_FUZZ_OUTPUT_FILE_1);
-        ITestLifeCycleReceiver mockRunListener = EasyMock.createMock(ITestLifeCycleReceiver.class);
-        mockRunListener.testRunStarted(TEST_MODULE_NAME, 1);
-        mockRunListener.testEnded(
-                (TestDescription) EasyMock.anyObject(), (Map<String, String>) EasyMock.anyObject());
-        EasyMock.replay(mockRunListener);
-        VtsFuzzTestResultParser resultParser =
-                new VtsFuzzTestResultParser(TEST_MODULE_NAME, mockRunListener);
-        resultParser.processNewLines(contents);
-        resultParser.done();
-    }
-
-    /**
-     * Tests the parser for a failed test run output with 1 test.
-     */
-    public void testParseFailedFile() throws Exception {
-        String[] contents =  readInFile(VTS_FUZZ_OUTPUT_FILE_2);
-        ITestLifeCycleReceiver mockRunListener = EasyMock.createMock(ITestLifeCycleReceiver.class);
-        mockRunListener.testRunStarted(TEST_MODULE_NAME, 1);
-        mockRunListener.testFailed(
-                (TestDescription) EasyMock.anyObject(), (String) EasyMock.anyObject());
-        mockRunListener.testEnded(
-                (TestDescription) EasyMock.anyObject(), (Map<String, String>) EasyMock.anyObject());
-        mockRunListener.testRunFailed((String)EasyMock.anyObject());
-        EasyMock.replay(mockRunListener);
-        VtsFuzzTestResultParser resultParser = new VtsFuzzTestResultParser(
-            TEST_MODULE_NAME, mockRunListener);
-        resultParser.processNewLines(contents);
-        resultParser.done();
-    }
-}
diff --git a/harnesses/tradefed/tests/src/com/android/tradefed/testtype/VtsFuzzTestTest.java b/harnesses/tradefed/tests/src/com/android/tradefed/testtype/VtsFuzzTestTest.java
deleted file mode 100644
index 7d48467..0000000
--- a/harnesses/tradefed/tests/src/com/android/tradefed/testtype/VtsFuzzTestTest.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (C) 2016 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.
- */
-package com.android.tradefed.testtype;
-
-import com.android.ddmlib.IShellOutputReceiver;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.result.ITestInvocationListener;
-import com.android.tradefed.result.ITestLifeCycleReceiver;
-
-import junit.framework.TestCase;
-
-import org.easymock.EasyMock;
-
-import java.util.concurrent.TimeUnit;
-
-
-/**
- * Unit tests for {@link VtsFuzzTest}.
- */
-public class VtsFuzzTestTest extends TestCase {
-    private ITestInvocationListener mMockInvocationListener = null;
-    private IShellOutputReceiver mMockReceiver = null;
-    private ITestDevice mMockITestDevice = null;
-    private VtsFuzzTest mTest;
-
-    /**
-     * Helper to initialize the various EasyMocks we'll need.
-     */
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mMockInvocationListener = EasyMock.createMock(ITestInvocationListener.class);
-        mMockReceiver = EasyMock.createMock(IShellOutputReceiver.class);
-        mMockITestDevice = EasyMock.createMock(ITestDevice.class);
-        EasyMock.expect(mMockITestDevice.getSerialNumber()).andStubReturn("serial");
-        mTest = new VtsFuzzTest() {
-            @Override
-            IShellOutputReceiver createResultParser(
-                    String runName, ITestLifeCycleReceiver listener) {
-                return mMockReceiver;
-            }
-        };
-    }
-
-    /**
-     * Helper that replays all mocks.
-     */
-    private void replayMocks() {
-      EasyMock.replay(mMockInvocationListener, mMockITestDevice, mMockReceiver);
-    }
-
-    /**
-     * Helper that verifies all mocks.
-     */
-    private void verifyMocks() {
-      EasyMock.verify(mMockInvocationListener, mMockITestDevice, mMockReceiver);
-    }
-
-    /**
-     * Test the run method with a normal input.
-     */
-    public void testRunNormalInput() throws DeviceNotAvailableException {
-        final String fuzzerBinaryPath = VtsFuzzTest.DEFAULT_FUZZER_BINARY_PATH;
-
-        mTest.setDevice(mMockITestDevice);
-        EasyMock.expect(mMockITestDevice.doesFileExist(fuzzerBinaryPath)).andReturn(true);
-        mMockITestDevice.executeShellCommand(
-            EasyMock.contains(fuzzerBinaryPath),
-            EasyMock.same(mMockReceiver),
-            EasyMock.anyLong(),
-            (TimeUnit)EasyMock.anyObject(),
-            EasyMock.anyInt());
-
-        replayMocks();
-
-        mTest.setTargetClass("hal_conventional");
-        mTest.setTargetType("gps");
-        mTest.setTargetVersionMajor(1);
-        mTest.setTargetVersionMinor(0);
-        mTest.setTargetComponentPath("libunittest_foo.so");
-        mTest.run(mMockInvocationListener);
-        verifyMocks();
-    }
-
-    /**
-     * Test the run method with abnormal input data.
-     */
-    public void testRunAbnormalInput() throws DeviceNotAvailableException {
-        final String fuzzerBinaryPath = VtsFuzzTest.DEFAULT_FUZZER_BINARY_PATH;
-
-        mTest.setDevice(mMockITestDevice);
-        EasyMock.expect(mMockITestDevice.doesFileExist(fuzzerBinaryPath)).andReturn(true);
-
-        replayMocks();
-
-        try {
-            mTest.run(mMockInvocationListener);
-        } catch (IllegalArgumentException e) {
-            // expected
-        }
-
-        verifyMocks();
-    }
-
-    /**
-     * Test the run method without any device.
-     */
-    public void testRunDevice() throws DeviceNotAvailableException {
-        mTest.setDevice(null);
-
-        replayMocks();
-
-        try {
-            mTest.run(mMockInvocationListener);
-        } catch (IllegalArgumentException e) {
-            // expected
-        }
-
-        verifyMocks();
-    }
-}
diff --git a/harnesses/tradefed/tests/src/com/android/tradefed/testtype/VtsMultiDeviceTestResultParserTest.java b/harnesses/tradefed/tests/src/com/android/tradefed/testtype/VtsMultiDeviceTestResultParserTest.java
deleted file mode 100644
index b5835b1..0000000
--- a/harnesses/tradefed/tests/src/com/android/tradefed/testtype/VtsMultiDeviceTestResultParserTest.java
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
- * Copyright (C) 2016 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.
- */
-package com.android.tradefed.testtype;
-
-import com.android.tradefed.result.ITestLifeCycleReceiver;
-import com.android.tradefed.result.TestDescription;
-import com.android.tradefed.util.StreamUtil;
-
-import org.easymock.EasyMock;
-import org.json.JSONException;
-import org.json.JSONObject;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Collections;
-import java.util.Date;
-
-/**
- * Unit tests for {@link VtsMultiDeviceTestResultParser}.
- */
-@RunWith(JUnit4.class)
-public class VtsMultiDeviceTestResultParserTest {
-    // Test file paths in the resources
-    private static final String OUTPUT_FILE_1 = "/testtype/vts_multi_device_test_parser_output.txt";
-    private static final String OUTPUT_FILE_2 =
-            "/testtype/vts_multi_device_test_parser_output_timeout.txt";
-    private static final String OUTPUT_FILE_3 =
-            "/testtype/vts_multi_device_test_parser_output_error.txt";
-    private static final String SUMMARY_FILE_NORMAL = "/testtype/test_run_summary_normal.json";
-    private static final String SUMMARY_FILE_CLASS_ERRORS =
-            "/testtype/test_run_summary_class_errors.json";
-
-    // test name
-    private static final String RUN_NAME = "SampleLightFuzzTest";
-    private static final String TEST_NAME_1 = "testTurnOnLightBlackBoxFuzzing";
-    private static final String TEST_NAME_2 = "testTurnOnLightWhiteBoxFuzzing";
-
-    // error messages in the summary files.
-    private static final String FAILURE_MESSAGE = "unit test";
-    private static final String CLASS_ERROR_MESSAGE = "class error";
-
-    /**
-     * Test the run method with a normal input.
-     */
-    @Test
-    public void testRunTimeoutInput() throws IOException {
-        String[] contents = getOutput(OUTPUT_FILE_2);
-        long totalTime = getTotalTime(contents);
-
-        // prepare the mock object
-        ITestLifeCycleReceiver mockRunListener = EasyMock.createMock(ITestLifeCycleReceiver.class);
-        mockRunListener.testRunStarted(TEST_NAME_2, 2);
-        TestDescription test1 = new TestDescription(RUN_NAME, TEST_NAME_2);
-        mockRunListener.testStarted(test1);
-        mockRunListener.testFailed(test1, "TIMEOUT");
-        mockRunListener.testEnded(test1, Collections.emptyMap());
-
-        TestDescription test2 = new TestDescription(RUN_NAME, TEST_NAME_1);
-        mockRunListener.testStarted(test2);
-        mockRunListener.testEnded(test2, Collections.emptyMap());
-        mockRunListener.testRunEnded(totalTime, Collections.emptyMap());
-
-        EasyMock.replay(mockRunListener);
-        VtsMultiDeviceTestResultParser resultParser =
-                new VtsMultiDeviceTestResultParser(mockRunListener, RUN_NAME);
-        resultParser.processNewLines(contents);
-        resultParser.done();
-        EasyMock.verify(mockRunListener);
-    }
-
-    /**
-     * Test the run method with a normal input.
-     */
-    @Test
-    public void testRunNormalInput() throws IOException {
-        String[] contents = getOutput(OUTPUT_FILE_1);
-        long totalTime = getTotalTime(contents);
-
-        // prepare the mock object
-        ITestLifeCycleReceiver mockRunListener = EasyMock.createMock(ITestLifeCycleReceiver.class);
-        mockRunListener.testRunStarted(TEST_NAME_2, 2);
-        TestDescription test1 = new TestDescription(RUN_NAME, TEST_NAME_2);
-        mockRunListener.testStarted(test1);
-        mockRunListener.testEnded(test1, Collections.emptyMap());
-
-        TestDescription test2 = new TestDescription(RUN_NAME, TEST_NAME_1);
-        mockRunListener.testStarted(test2);
-        mockRunListener.testEnded(test2, Collections.emptyMap());
-        mockRunListener.testRunEnded(totalTime, Collections.emptyMap());
-
-        EasyMock.replay(mockRunListener);
-        VtsMultiDeviceTestResultParser resultParser =
-                new VtsMultiDeviceTestResultParser(mockRunListener, RUN_NAME);
-        resultParser.processNewLines(contents);
-        resultParser.done();
-        EasyMock.verify(mockRunListener);
-    }
-
-    /**
-     * Test the run method with a erroneous input.
-     */
-    @Test
-    public void testRunErrorInput() throws IOException {
-        String[] contents = getOutput(OUTPUT_FILE_3);
-        long totalTime = getTotalTime(contents);
-
-        // prepare the mock object
-        ITestLifeCycleReceiver mockRunListener = EasyMock.createMock(ITestLifeCycleReceiver.class);
-        mockRunListener.testRunStarted(null, 0);
-        mockRunListener.testRunEnded(totalTime, Collections.<String, String>emptyMap());
-
-        EasyMock.replay(mockRunListener);
-        VtsMultiDeviceTestResultParser resultParser =
-                new VtsMultiDeviceTestResultParser(mockRunListener, RUN_NAME);
-        resultParser.processNewLines(contents);
-        resultParser.done();
-        EasyMock.verify(mockRunListener);
-    }
-    /**
-     * @param contents The logs that are used for a test case.
-     * @return {long} total running time of the test.
-     */
-    private long getTotalTime(String[] contents) {
-        Date startDate = getDate(contents, true);
-        Date endDate = getDate(contents, false);
-
-        if (startDate == null || endDate == null) {
-            return 0;
-        }
-        return endDate.getTime() - startDate.getTime();
-    }
-
-    /**
-     * Read a resource file as a string.
-     *
-     * @param resource the name of the resource.
-     * @return {String} the contents of the resource.
-     * @throws IOException if fails to read.
-     */
-    private String getResourceAsString(String resource) throws IOException {
-        InputStream input = getClass().getResourceAsStream(resource);
-        Assert.assertNotNull("Cannot load " + resource, input);
-        try {
-            return StreamUtil.getStringFromStream(input);
-        } finally {
-            input.close();
-        }
-    }
-
-    /**
-     * Returns the sample shell output for a test command.
-     *
-     * @return {String} shell output
-     * @throws IOException
-     */
-    private String[] getOutput(String filePath) throws IOException {
-        return getResourceAsString(filePath).split("\n");
-    }
-
-    /**
-     * Return the time in milliseconds to calculate the time elapsed in a particular test.
-     *
-     * @param lines The logs that need to be parsed.
-     * @param calculateStartDate flag which is true if we need to calculate start date.
-     * @return {Date} the start and end time corresponding to a test.
-     */
-    private Date getDate(String[] lines, boolean calculateStartDate) {
-        Date date = null;
-        int begin = calculateStartDate ? 0 : lines.length - 1;
-        int diff = calculateStartDate ? 1 : -1;
-
-        for (int index = begin; index >= 0 && index < lines.length; index += diff) {
-            lines[index].trim();
-            String[] toks = lines[index].split(" ");
-
-            // set the start time from the first line
-            // the loop should continue if exception occurs, else it can break
-            if (toks.length < 3) {
-                continue;
-            }
-            String time = toks[2];
-            SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss.SSS");
-            try {
-                date = sdf.parse(time);
-            } catch (ParseException e) {
-                continue;
-            }
-            break;
-        }
-        return date;
-    }
-
-    /*
-     * Test parsing a summary containing passing and failing records.
-     */
-    @Test
-    public void testNormalSummary() throws IOException, JSONException {
-        JSONObject object = new JSONObject(getResourceAsString(SUMMARY_FILE_NORMAL));
-
-        ITestLifeCycleReceiver mockRunListener = EasyMock.createMock(ITestLifeCycleReceiver.class);
-        mockRunListener.testRunStarted(RUN_NAME, 2);
-        TestDescription test1 = new TestDescription(RUN_NAME, TEST_NAME_1);
-        mockRunListener.testStarted(test1, 1525425222367l);
-        mockRunListener.testEnded(test1, 1525425223793l, Collections.emptyMap());
-
-        TestDescription test2 = new TestDescription(RUN_NAME, TEST_NAME_2);
-        mockRunListener.testStarted(test2, 1525425749536l);
-        mockRunListener.testFailed(test2, FAILURE_MESSAGE);
-        mockRunListener.testEnded(test2, 1525425749537l, Collections.emptyMap());
-        mockRunListener.testRunEnded(EasyMock.anyLong(), EasyMock.eq(Collections.emptyMap()));
-
-        EasyMock.replay(mockRunListener);
-        VtsMultiDeviceTestResultParser resultParser =
-                new VtsMultiDeviceTestResultParser(mockRunListener, RUN_NAME);
-        resultParser.processJsonFile(object);
-    }
-
-    /*
-     * Test parsing a summary containing class error message.
-     */
-    @Test
-    public void testClassErrorSummary() throws IOException, JSONException {
-        JSONObject object = new JSONObject(getResourceAsString(SUMMARY_FILE_CLASS_ERRORS));
-
-        ITestLifeCycleReceiver mockRunListener = EasyMock.createMock(ITestLifeCycleReceiver.class);
-        mockRunListener.testRunStarted(RUN_NAME, 1);
-        TestDescription test1 = new TestDescription(RUN_NAME, TEST_NAME_1);
-        mockRunListener.testStarted(test1, 1525424790227l);
-        mockRunListener.testFailed(test1, FAILURE_MESSAGE);
-        mockRunListener.testEnded(test1, 1525424790227l, Collections.emptyMap());
-        mockRunListener.testRunFailed(CLASS_ERROR_MESSAGE);
-        mockRunListener.testRunEnded(EasyMock.anyLong(), EasyMock.eq(Collections.emptyMap()));
-
-        EasyMock.replay(mockRunListener);
-        VtsMultiDeviceTestResultParser resultParser =
-                new VtsMultiDeviceTestResultParser(mockRunListener, RUN_NAME);
-        resultParser.processJsonFile(object);
-    }
-}
diff --git a/harnesses/tradefed/tests/src/com/android/tradefed/testtype/VtsMultiDeviceTestTest.java b/harnesses/tradefed/tests/src/com/android/tradefed/testtype/VtsMultiDeviceTestTest.java
deleted file mode 100644
index d82799f..0000000
--- a/harnesses/tradefed/tests/src/com/android/tradefed/testtype/VtsMultiDeviceTestTest.java
+++ /dev/null
@@ -1,374 +0,0 @@
-/*
- * Copyright (C) 2016 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.
- */
-package com.android.tradefed.testtype;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import com.android.tradefed.build.IBuildInfo;
-import com.android.tradefed.build.IFolderBuildInfo;
-import com.android.tradefed.config.OptionSetter;
-import com.android.tradefed.device.DeviceNotAvailableException;
-import com.android.tradefed.device.ITestDevice;
-import com.android.tradefed.invoker.IInvocationContext;
-import com.android.tradefed.metrics.proto.MetricMeasurement.Metric;
-import com.android.tradefed.result.FileInputStreamSource;
-import com.android.tradefed.result.ITestInvocationListener;
-import com.android.tradefed.result.LogDataType;
-import com.android.tradefed.util.CommandResult;
-import com.android.tradefed.util.CommandStatus;
-import com.android.tradefed.util.StreamUtil;
-import com.android.tradefed.util.VtsPythonRunnerHelper;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileWriter;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
-import org.easymock.EasyMock;
-import org.json.JSONObject;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/**
- * Unit tests for {@link VtsMultiDeviceTest}.
- * This class requires testcase config files.
- * The working directory is assumed to be
- * test/
- * which contains the same config as the build output
- * out/host/linux-x86/vts10/android-vts10/testcases/
- */
-@RunWith(JUnit4.class)
-public class VtsMultiDeviceTestTest {
-    private static final String PYTHON_BINARY = "python";
-    private static final String PYTHON_DIR = "mock/";
-    private static final String TEST_CASE_PATH =
-        "vts/testcases/host/sample/SampleLightTest";
-
-    private ITestInvocationListener mMockInvocationListener = null;
-    private VtsMultiDeviceTest mTest = null;
-    private ITestDevice mDevice = null;
-
-    /**
-     * Helper to initialize the various EasyMocks we'll need.
-     */
-    @Before
-    public void setUp() throws Exception {
-        mMockInvocationListener = EasyMock.createMock(ITestInvocationListener.class);
-        mTest = new VtsMultiDeviceTest() {
-            // TODO: Test this method.
-            @Override
-            protected void updateVtsRunnerTestConfig(JSONObject jsonObject) {
-                return;
-            }
-            @Override
-            protected VtsPythonRunnerHelper createVtsPythonRunnerHelper(File workingDir) {
-                return createMockVtsPythonRunnerHelper(CommandStatus.SUCCESS, workingDir);
-            }
-        };
-        mTest.setInvocationContext(createMockInvocationContext());
-        mTest.setTestCasePath(TEST_CASE_PATH);
-        mTest.setTestConfigPath(VtsMultiDeviceTest.DEFAULT_TESTCASE_CONFIG_PATH);
-    }
-
-    @After
-    public void tearDown() {
-    }
-
-    /**
-     * Check VTS Python command strings.
-     */
-    private void assertCommand(String[] cmd) {
-        assertEquals(cmd[0], PYTHON_BINARY);
-        assertEquals(cmd[1], "-m");
-        assertEquals(cmd[2], TEST_CASE_PATH.replace("/", "."));
-        assertTrue(cmd[3].endsWith(".json"));
-        assertEquals(cmd.length, 4);
-    }
-
-    /**
-     * Create files in log directory.
-     */
-    private void createResult(String jsonPath) throws Exception {
-        String logPath = null;
-        try (FileInputStream fi = new FileInputStream(jsonPath)) {
-            JSONObject configJson = new JSONObject(StreamUtil.getStringFromStream(fi));
-            logPath = (String) configJson.get(VtsMultiDeviceTest.LOG_PATH);
-        }
-        // create a test result on log path
-        try (FileWriter fw = new FileWriter(new File(logPath, "test_run_summary.json"))) {
-            JSONObject outJson = new JSONObject();
-            fw.write(outJson.toString());
-        }
-        new File(logPath, VtsMultiDeviceTest.REPORT_MESSAGE_FILE_NAME).createNewFile();
-    }
-
-    /**
-     * Create a mock IBuildInfo with necessary getter methods.
-     */
-    private static IBuildInfo createMockBuildInfo() {
-        Map<String, String> buildAttributes = new HashMap<String, String>();
-        buildAttributes.put("ROOT_DIR", "DIR_NOT_EXIST");
-        buildAttributes.put("ROOT_DIR2", "DIR_NOT_EXIST");
-        buildAttributes.put("SUITE_NAME", "JUNIT_TEST_SUITE");
-        IFolderBuildInfo buildInfo = EasyMock.createNiceMock(IFolderBuildInfo.class);
-        EasyMock.expect(buildInfo.getBuildId()).andReturn("BUILD_ID").anyTimes();
-        EasyMock.expect(buildInfo.getBuildTargetName()).andReturn("BUILD_TARGET_NAME").anyTimes();
-        EasyMock.expect(buildInfo.getTestTag()).andReturn("TEST_TAG").anyTimes();
-        EasyMock.expect(buildInfo.getDeviceSerial()).andReturn("1234567890ABCXYZ").anyTimes();
-        EasyMock.expect(buildInfo.getRootDir()).andReturn(new File("DIR_NOT_EXIST")).anyTimes();
-        EasyMock.expect(buildInfo.getBuildAttributes()).andReturn(buildAttributes).anyTimes();
-        EasyMock.expect(buildInfo.getFile(EasyMock.eq("PYTHONPATH")))
-                .andReturn(new File("DIR_NOT_EXIST"))
-                .anyTimes();
-        EasyMock.expect(buildInfo.getFile(EasyMock.eq("VIRTUALENVPATH")))
-                .andReturn(new File("DIR_NOT_EXIST"))
-                .anyTimes();
-        EasyMock.replay(buildInfo);
-        return buildInfo;
-    }
-
-    /**
-     * Create a mock ITestDevice with necessary getter methods.
-     */
-    private ITestDevice createMockDevice() throws DeviceNotAvailableException {
-        // TestDevice
-        mDevice = EasyMock.createMock(ITestDevice.class);
-        EasyMock.expect(mDevice.getSerialNumber()).andReturn("1234567890ABCXYZ").anyTimes();
-        EasyMock.expect(mDevice.getBuildAlias()).andReturn("BUILD_ALIAS").anyTimes();
-        EasyMock.expect(mDevice.getBuildFlavor()).andReturn("BUILD_FLAVOR").anyTimes();
-        EasyMock.expect(mDevice.getBuildId()).andReturn("BUILD_ID").anyTimes();
-        EasyMock.expect(mDevice.getProductType()).andReturn("PRODUCT_TYPE").anyTimes();
-        EasyMock.expect(mDevice.getProductVariant()).andReturn("PRODUCT_VARIANT").anyTimes();
-        return mDevice;
-    }
-
-    /**
-     * Create a mock IInovationConext with necessary getter methods.
-     */
-    private IInvocationContext createMockInvocationContext() throws DeviceNotAvailableException {
-        IInvocationContext mockInvocationContext =
-                EasyMock.createNiceMock(IInvocationContext.class);
-        EasyMock.expect(mockInvocationContext.getDevices())
-                .andReturn(Arrays.asList(createMockDevice()))
-                .anyTimes();
-        EasyMock.expect(mockInvocationContext.getBuildInfos())
-                .andReturn(Arrays.asList(createMockBuildInfo()))
-                .anyTimes();
-        EasyMock.replay(mockInvocationContext);
-        return mockInvocationContext;
-    }
-
-    /**
-     * Create a process helper which mocks status of a running process.
-     */
-    private VtsPythonRunnerHelper createMockVtsPythonRunnerHelper(
-            CommandStatus status, File workingDir) {
-        return new VtsPythonRunnerHelper(new File(PYTHON_DIR), workingDir) {
-            @Override
-            public String runPythonRunner(
-                    String[] cmd, CommandResult commandResult, long testTimeout) {
-                assertCommand(cmd);
-                try {
-                    createResult(cmd[3]);
-                } catch (Exception e) {
-                    throw new RuntimeException(e);
-                }
-                commandResult.setStatus(status);
-                return null;
-            }
-        };
-    }
-
-    /**
-     * Test the run method with a normal input.
-     */
-    @Test
-    public void testRunNormalInput() throws Exception {
-        EasyMock.expect(mDevice.executeShellCommand(
-                                "log -p i -t \"VTS\" \"[Test Module] null BEGIN\""))
-                .andReturn("");
-        EasyMock.expect(mDevice.executeShellCommand(
-                                "log -p i -t \"VTS\" \"[Test Module] null END\""))
-                .andReturn("");
-        mDevice.waitForDeviceAvailable();
-        EasyMock.replay(mDevice);
-        mTest.run(mMockInvocationListener);
-        EasyMock.verify(mDevice);
-    }
-
-    @Test
-    public void testRunNormalInput_restartFramework() throws Exception {
-        OptionSetter setter = new OptionSetter(mTest);
-        setter.setOptionValue("disable-framework", "true");
-        EasyMock.expect(mDevice.executeShellCommand(
-                                "log -p i -t \"VTS\" \"[Test Module] null BEGIN\""))
-                .andReturn("");
-        EasyMock.expect(mDevice.executeShellCommand(
-                                "log -p i -t \"VTS\" \"[Test Module] null END\""))
-                .andReturn("");
-        mDevice.waitForDeviceAvailable();
-        // We always restart the server at the end of the test
-        EasyMock.expect(mDevice.executeShellCommand("start")).andReturn("");
-        EasyMock.replay(mDevice);
-        mTest.run(mMockInvocationListener);
-        EasyMock.verify(mDevice);
-    }
-
-    /**
-     * Test the run method without DNAE exception.
-     */
-    @Test
-    public void testRunWithoutDNAE() throws Exception {
-        class NewVtsMultiDeviceTest extends VtsMultiDeviceTest {
-            private File mVtsRunnerLogDir;
-            public File getVtsRunnerLogDir() {
-                return mVtsRunnerLogDir;
-            }
-            @Override
-            protected void updateVtsRunnerTestConfig(JSONObject jsonObject) {
-                return;
-            }
-            @Override
-            protected String createVtsRunnerTestConfigJsonFile(File vtsRunnerLogDir) {
-                mVtsRunnerLogDir = vtsRunnerLogDir;
-                return super.createVtsRunnerTestConfigJsonFile(vtsRunnerLogDir);
-            }
-            @Override
-            protected VtsPythonRunnerHelper createVtsPythonRunnerHelper(File workingDir) {
-                return createMockVtsPythonRunnerHelper(CommandStatus.SUCCESS, workingDir);
-            }
-        }
-        NewVtsMultiDeviceTest newTest = new NewVtsMultiDeviceTest();
-        newTest.setInvocationContext(createMockInvocationContext());
-        newTest.setTestCasePath(TEST_CASE_PATH);
-        newTest.setTestConfigPath(VtsMultiDeviceTest.DEFAULT_TESTCASE_CONFIG_PATH);
-
-        EasyMock.expect(mDevice.executeShellCommand(
-                                "log -p i -t \"VTS\" \"[Test Module] null BEGIN\""))
-                .andReturn("");
-        EasyMock.expect(mDevice.executeShellCommand(
-                                "log -p i -t \"VTS\" \"[Test Module] null END\""))
-                .andReturn("");
-        mDevice.waitForDeviceAvailable();
-        EasyMock.replay(mDevice);
-        newTest.run(mMockInvocationListener);
-        assertFalse("VtsMultiDeviceTest runner fails to delete vtsRunnerLogDir",
-                newTest.getVtsRunnerLogDir().exists());
-        EasyMock.verify(mDevice);
-    }
-
-    /**
-     * Test the run method with DNAE exception.
-     */
-    @Test
-    public void testRunWithDNAE() throws Exception {
-        class NewVtsMultiDeviceTest extends VtsMultiDeviceTest {
-            private File mVtsRunnerLogDir;
-            public File getVtsRunnerLogDir() {
-                return mVtsRunnerLogDir;
-            }
-            @Override
-            protected void updateVtsRunnerTestConfig(JSONObject jsonObject) {
-                return;
-            }
-            @Override
-            protected String createVtsRunnerTestConfigJsonFile(File vtsRunnerLogDir) {
-                mVtsRunnerLogDir = vtsRunnerLogDir;
-                return super.createVtsRunnerTestConfigJsonFile(vtsRunnerLogDir);
-            }
-            @Override
-            protected VtsPythonRunnerHelper createVtsPythonRunnerHelper(File workingDir) {
-                return createMockVtsPythonRunnerHelper(CommandStatus.SUCCESS, workingDir);
-            }
-            @Override
-            protected void printToDeviceLogcatAboutTestModuleStatus(String status)
-                    throws DeviceNotAvailableException {
-                if ("END".equals(status)) {
-                    throw new DeviceNotAvailableException();
-                }
-            }
-        }
-        NewVtsMultiDeviceTest newTest = new NewVtsMultiDeviceTest();
-        newTest.setInvocationContext(createMockInvocationContext());
-        newTest.setTestCasePath(TEST_CASE_PATH);
-        newTest.setTestConfigPath(VtsMultiDeviceTest.DEFAULT_TESTCASE_CONFIG_PATH);
-        try {
-            newTest.run(mMockInvocationListener);
-            fail("DeviceNotAvailableException is expected");
-        } catch (DeviceNotAvailableException expected) {
-            // vtsRunnerLogDir should be deleted
-            assertFalse("VtsMultiDeviceTest runner fails to delete vtsRunnerLogDir",
-                    newTest.getVtsRunnerLogDir().exists());
-        }
-    }
-
-    /**
-     * Test the run method with Python runner returning CommandStatus.FAILED.
-     */
-    @Test
-    public void testRunWithPythonCommandStatusFailed() throws Exception {
-        class NewVtsMultiDeviceTest extends VtsMultiDeviceTest {
-            private File mVtsRunnerLogDir;
-            public File getVtsRunnerLogDir() {
-                return mVtsRunnerLogDir;
-            }
-            @Override
-            protected void updateVtsRunnerTestConfig(JSONObject jsonObject) {
-                return;
-            }
-            @Override
-            protected String createVtsRunnerTestConfigJsonFile(File vtsRunnerLogDir) {
-                mVtsRunnerLogDir = vtsRunnerLogDir;
-                return super.createVtsRunnerTestConfigJsonFile(vtsRunnerLogDir);
-            }
-            @Override
-            protected VtsPythonRunnerHelper createVtsPythonRunnerHelper(File workingDir) {
-                return createMockVtsPythonRunnerHelper(CommandStatus.FAILED, workingDir);
-            }
-        }
-        mMockInvocationListener.testLog(EasyMock.<String>anyObject(), EasyMock.eq(LogDataType.TEXT),
-                EasyMock.<FileInputStreamSource>anyObject());
-        EasyMock.expectLastCall().times(2);
-        mMockInvocationListener.testRunFailed((String) EasyMock.anyObject());
-        mMockInvocationListener.testRunEnded(
-                EasyMock.anyLong(), EasyMock.<HashMap<String, Metric>>anyObject());
-
-        NewVtsMultiDeviceTest newTest = new NewVtsMultiDeviceTest();
-        newTest.setInvocationContext(createMockInvocationContext());
-        newTest.setTestCasePath(TEST_CASE_PATH);
-        newTest.setTestConfigPath(VtsMultiDeviceTest.DEFAULT_TESTCASE_CONFIG_PATH);
-
-        EasyMock.expect(mDevice.executeShellCommand(
-                                "log -p i -t \"VTS\" \"[Test Module] null BEGIN\""))
-                .andReturn("");
-        EasyMock.expect(mDevice.executeShellCommand(
-                                "log -p i -t \"VTS\" \"[Test Module] null END\""))
-                .andReturn("");
-        mDevice.waitForDeviceAvailable();
-
-        EasyMock.replay(mMockInvocationListener, mDevice);
-        newTest.run(mMockInvocationListener);
-        assertFalse("VtsMultiDeviceTest runner fails to delete vtsRunnerLogDir",
-                newTest.getVtsRunnerLogDir().exists());
-        EasyMock.verify(mMockInvocationListener, mDevice);
-    }
-}
diff --git a/harnesses/tradefed/tests/src/com/android/tradefed/util/CmdUtilTest.java b/harnesses/tradefed/tests/src/com/android/tradefed/util/CmdUtilTest.java
deleted file mode 100644
index 1713d03..0000000
--- a/harnesses/tradefed/tests/src/com/android/tradefed/util/CmdUtilTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.tradefed.util;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.*;
-
-import com.android.tradefed.device.ITestDevice;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-import java.util.function.Predicate;
-import java.util.Vector;
-
-/**
- * Unit tests for {@link CmdUtil}.
- */
-@RunWith(JUnit4.class)
-public class CmdUtilTest {
-    static final String RUN_CMD = "run cmd";
-    static final String TEST_CMD = "test cmd";
-
-    class MockSleeper implements CmdUtil.ISleeper {
-        @Override
-        public void sleep(int seconds) throws InterruptedException {
-            return;
-        }
-    }
-
-    CmdUtil mCmdUtil = null;
-
-    // Predicates to stop retrying cmd.
-    private Predicate<String> mCheckEmpty = (String str) -> {
-        return str.isEmpty();
-    };
-
-    @Mock private ITestDevice mDevice;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        CmdUtil.ISleeper msleeper = new MockSleeper();
-        mCmdUtil = new CmdUtil();
-        mCmdUtil.setSleeper(msleeper);
-    }
-
-    @Test
-    public void testWaitCmdSuccess() throws Exception {
-        doReturn("").when(mDevice).executeShellCommand(TEST_CMD);
-        assertTrue(mCmdUtil.waitCmdResultWithDelay(mDevice, TEST_CMD, mCheckEmpty));
-    }
-
-    @Test
-    public void testWaitCmdSuccessWithRetry() throws Exception {
-        when(mDevice.executeShellCommand(TEST_CMD)).thenReturn("something").thenReturn("");
-        assertTrue(mCmdUtil.waitCmdResultWithDelay(mDevice, TEST_CMD, mCheckEmpty));
-    }
-
-    @Test
-    public void testWaitCmdSuccessFail() throws Exception {
-        doReturn("something").when(mDevice).executeShellCommand(TEST_CMD);
-        assertFalse(mCmdUtil.waitCmdResultWithDelay(mDevice, TEST_CMD, mCheckEmpty));
-    }
-
-    @Test
-    public void testRetrySuccess() throws Exception {
-        doReturn("").when(mDevice).executeShellCommand(TEST_CMD);
-        assertTrue(mCmdUtil.retry(mDevice, RUN_CMD, TEST_CMD, mCheckEmpty));
-        verify(mDevice, times(1)).executeShellCommand(eq(RUN_CMD));
-    }
-
-    @Test
-    public void testRetrySuccessWithRetry() throws Exception {
-        when(mDevice.executeShellCommand(TEST_CMD)).thenReturn("something").thenReturn("");
-        assertTrue(mCmdUtil.retry(mDevice, RUN_CMD, TEST_CMD, mCheckEmpty));
-        verify(mDevice, times(2)).executeShellCommand(eq(RUN_CMD));
-    }
-
-    @Test
-    public void testRetryFail() throws Exception {
-        doReturn("something").when(mDevice).executeShellCommand(TEST_CMD);
-        assertFalse(mCmdUtil.retry(mDevice, RUN_CMD, TEST_CMD, mCheckEmpty));
-        verify(mDevice, times(CmdUtil.MAX_RETRY_COUNT)).executeShellCommand(eq(RUN_CMD));
-    }
-
-    @Test
-    public void testRetryMultipleCommandsSuccess() throws Exception {
-        doReturn("").when(mDevice).executeShellCommand(TEST_CMD);
-        Vector<String> cmds = new Vector<String>();
-        int command_count = 5;
-        for (int i = 0; i < command_count; i++) {
-            cmds.add(RUN_CMD);
-        }
-        assertTrue(mCmdUtil.retry(mDevice, cmds, TEST_CMD, mCheckEmpty));
-        verify(mDevice, times(command_count)).executeShellCommand(eq(RUN_CMD));
-    }
-}
diff --git a/harnesses/tradefed/tests/src/com/android/tradefed/util/OutputUtilTest.java b/harnesses/tradefed/tests/src/com/android/tradefed/util/OutputUtilTest.java
deleted file mode 100644
index 78cfafc..0000000
--- a/harnesses/tradefed/tests/src/com/android/tradefed/util/OutputUtilTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.tradefed.util;
-
-import com.android.tradefed.log.ITestLogger;
-import com.android.tradefed.result.LogDataType;
-
-import org.easymock.EasyMock;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-import org.mockito.MockitoAnnotations;
-
-import java.io.File;
-
-/**
- * Unit tests for {@link CmdUtil}.
- */
-@RunWith(JUnit4.class)
-public class OutputUtilTest {
-    OutputUtil mOutputUtil = null;
-
-    private ITestLogger mLogger;
-    private File mTestDir = null;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        mLogger = EasyMock.createMock(ITestLogger.class);
-        mOutputUtil = new OutputUtil(mLogger);
-        mTestDir = FileUtil.createTempDir("output-util-test");
-    }
-
-    @After
-    public void tearDown() {
-        FileUtil.recursiveDelete(mTestDir);
-    }
-
-    /**
-     * Test using {@link OutputUtil#ZipVtsRunnerOutputDir(File)} on an empty dir. it shouldn't log
-     * anything.
-     */
-    @Test
-    public void testZipVtsRunnerOutputDir_emptyDir() {
-        EasyMock.replay(mLogger);
-        mOutputUtil.ZipVtsRunnerOutputDir(mTestDir);
-        EasyMock.verify(mLogger);
-    }
-
-    @Test
-    public void testZipVtsRunnerOutputDir() {
-        File latest = new File(mTestDir, "latest");
-        latest.mkdir();
-
-        mLogger.testLog(EasyMock.anyObject(), EasyMock.eq(LogDataType.ZIP), EasyMock.anyObject());
-        EasyMock.replay(mLogger);
-        mOutputUtil.ZipVtsRunnerOutputDir(mTestDir);
-        EasyMock.verify(mLogger);
-    }
-}
diff --git a/harnesses/tradefed/tests/src/com/android/tradefed/util/ProcessHelperTest.java b/harnesses/tradefed/tests/src/com/android/tradefed/util/ProcessHelperTest.java
deleted file mode 100644
index 70ff407..0000000
--- a/harnesses/tradefed/tests/src/com/android/tradefed/util/ProcessHelperTest.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-
-package com.android.tradefed.util;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-/**
- * Test cases for {@link ProcessHelper}.
- */
-@RunWith(JUnit4.class)
-public class ProcessHelperTest {
-    private ProcessHelper mProcessHelper;
-
-    /**
-     * Return a mock process.
-     */
-    private Process createMockProcess(
-            String stdout, String stderr, int exitValue, long executionTimeMsecs) {
-        // No need to close OutputStream and ByteArrayInputStream because doing so has no effect.
-        OutputStream stdinStream = new OutputStream() {
-            @Override
-            public void write(int b) throws IOException {}
-        };
-        InputStream stdoutStream = new ByteArrayInputStream(stdout.getBytes());
-        InputStream stderrStream = new ByteArrayInputStream(stderr.getBytes());
-        long endTime = System.currentTimeMillis() + executionTimeMsecs;
-
-        return new Process() {
-            private boolean destroyed = false;
-
-            private boolean isRunning() {
-                return System.currentTimeMillis() <= endTime && !destroyed;
-            }
-
-            @Override
-            public void destroy() {
-                destroyed = true;
-            }
-
-            @Override
-            public int exitValue() {
-                if (isRunning()) {
-                    throw new IllegalThreadStateException();
-                }
-                return exitValue;
-            }
-
-            @Override
-            public InputStream getInputStream() {
-                return stdoutStream;
-            }
-
-            @Override
-            public OutputStream getOutputStream() {
-                return stdinStream;
-            }
-
-            @Override
-            public InputStream getErrorStream() {
-                return stderrStream;
-            }
-
-            @Override
-            public int waitFor() throws InterruptedException {
-                while (isRunning()) {
-                    Thread.sleep(50);
-                }
-                return exitValue;
-            }
-        };
-    }
-
-    /**
-     * Reset the ProcessHelper.
-     */
-    @Before
-    public void setUp() {
-        mProcessHelper = null;
-    }
-
-    /**
-     * Terminate the process, join threads and close IO streams.
-     */
-    @After
-    public void tearDown() {
-        if (mProcessHelper != null) {
-            mProcessHelper.cleanUp();
-        }
-    }
-
-    /**
-     * Test running a process that returns zero.
-     */
-    @Test
-    public void testSuccess() {
-        mProcessHelper = new ProcessHelper(createMockProcess("123\n", "456\n", 0, 10));
-        CommandStatus status = mProcessHelper.waitForProcess(10000);
-        assertEquals(CommandStatus.SUCCESS, status);
-        assertFalse(mProcessHelper.isRunning());
-        assertTrue(mProcessHelper.getStdout().equals("123\n"));
-        assertTrue(mProcessHelper.getStderr().equals("456\n"));
-    }
-
-    /**
-     * Test running a process that returns non-zero.
-     */
-    @Test
-    public void testFailure() {
-        mProcessHelper = new ProcessHelper(createMockProcess("123\n", "456\n", 1, 10));
-        CommandStatus status = mProcessHelper.waitForProcess(10000);
-        assertEquals(CommandStatus.FAILED, status);
-        assertFalse(mProcessHelper.isRunning());
-        assertTrue(mProcessHelper.getStdout().equals("123\n"));
-        assertTrue(mProcessHelper.getStderr().equals("456\n"));
-    }
-
-    /**
-     * Test running a process that times out.
-     */
-    @Test
-    public void testTimeout() {
-        mProcessHelper = new ProcessHelper(createMockProcess("", "", 1, 10000));
-        CommandStatus status = mProcessHelper.waitForProcess(100);
-        assertEquals(CommandStatus.TIMED_OUT, status);
-        assertTrue(mProcessHelper.isRunning());
-    }
-
-    /**
-     * Test running a process and being interrupted.
-     */
-    @Test
-    public void testInterrupt() throws InterruptedException {
-        mProcessHelper = new ProcessHelper(createMockProcess("", "", 1, 10000));
-        IRunUtil runUtil = RunUtil.getDefault();
-        Thread testThread = Thread.currentThread();
-
-        Thread timer = new Thread() {
-            @Override
-            public void run() {
-                try {
-                    Thread.sleep(50);
-                } catch (InterruptedException e) {
-                    fail();
-                }
-                runUtil.interrupt(testThread, "unit test");
-            }
-        };
-
-        runUtil.allowInterrupt(true);
-        timer.start();
-        try {
-            mProcessHelper.waitForProcess(100);
-            fail();
-        } catch (RunInterruptedException e) {
-            assertTrue(mProcessHelper.isRunning());
-        } finally {
-            timer.join(1000);
-        }
-    }
-}
diff --git a/harnesses/tradefed/tests/src/com/android/tradefed/util/VtsDashboardApiTransportTest.java b/harnesses/tradefed/tests/src/com/android/tradefed/util/VtsDashboardApiTransportTest.java
deleted file mode 100644
index 503039f..0000000
--- a/harnesses/tradefed/tests/src/com/android/tradefed/util/VtsDashboardApiTransportTest.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * 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.
- */
-package com.android.tradefed.util;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-
-import com.android.tradefed.build.IFolderBuildInfo;
-import com.google.api.client.http.HttpHeaders;
-import com.google.api.client.http.HttpRequest;
-import com.google.api.client.http.HttpRequestFactory;
-import com.google.api.client.http.HttpResponse;
-import com.google.api.client.http.HttpTransport;
-import com.google.api.client.http.LowLevelHttpRequest;
-import com.google.api.client.http.LowLevelHttpResponse;
-import com.google.api.client.json.Json;
-import com.google.api.client.json.jackson2.JacksonFactory;
-import com.google.api.client.testing.http.HttpTesting;
-import com.google.api.client.testing.http.MockHttpTransport;
-import com.google.api.client.testing.http.MockLowLevelHttpRequest;
-import com.google.api.client.testing.http.MockLowLevelHttpResponse;
-import com.google.api.client.util.Key;
-import com.google.common.base.Preconditions;
-import java.io.File;
-import java.io.IOException;
-import java.time.Duration;
-import java.util.HashMap;
-import java.util.Map;
-import org.easymock.EasyMock;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-/**
- * Unit tests for {@link VtsDashboardApiTransportTest}.
- */
-@RunWith(JUnit4.class)
-public class VtsDashboardApiTransportTest {
-    private static final String SAMPLE = "123\u05D9\u05e0\u05D9\u05D1";
-
-    private HttpTransport mockHttpTransport = null;
-    private VtsDashboardApiTransport vtsDashboardApiTransport = null;
-
-    public static class RspResult {
-        @Key public int a;
-        @Key public int b;
-        @Key public String c;
-    }
-
-    @Before
-    public void setUp() throws Exception {
-        this.mockHttpTransport = this.createMockHttpTransport(Json.MEDIA_TYPE, SAMPLE);
-        this.vtsDashboardApiTransport =
-                new VtsDashboardApiTransport(this.mockHttpTransport, HttpTesting.SIMPLE_URL);
-    }
-
-    /**
-     * Terminate the mockHttpTransport, join threads and close IO streams.
-     */
-    @After
-    public void tearDown() throws IOException {
-        if (this.mockHttpTransport != null) {
-            this.mockHttpTransport.shutdown();
-        }
-    }
-
-    /**
-     * Create a mock HttpTransport with returns the expected results.
-     */
-    private HttpTransport createMockHttpTransport(String mediaType, String content) {
-        HttpTransport transport = new MockHttpTransport() {
-            @Override
-            public LowLevelHttpRequest buildRequest(String method, String url) throws IOException {
-                return new MockLowLevelHttpRequest() {
-                    @Override
-                    public LowLevelHttpResponse execute() throws IOException {
-                        MockLowLevelHttpResponse result = new MockLowLevelHttpResponse();
-                        result.setContentType(mediaType);
-                        result.setContent(content);
-                        return result;
-                    }
-                };
-            }
-        };
-        return transport;
-    }
-
-    @Test
-    public void testBasicRequest() throws Exception {
-        HttpRequest request = mockHttpTransport.createRequestFactory().buildGetRequest(
-                HttpTesting.SIMPLE_GENERIC_URL);
-        HttpResponse response = request.execute();
-        assertEquals(SAMPLE, response.parseAsString());
-    }
-
-    @Test
-    public void testGetMethod() throws Exception {
-        String jsonContent = "{\"a\": 1234, \"b\": 5678, \"c\": \"getData\"}";
-        this.mockHttpTransport = this.createMockHttpTransport(Json.MEDIA_TYPE, jsonContent);
-        this.vtsDashboardApiTransport =
-                new VtsDashboardApiTransport(this.mockHttpTransport, HttpTesting.SIMPLE_URL);
-
-        RspResult rspResult = this.vtsDashboardApiTransport.get("", RspResult.class);
-        assertEquals(rspResult.a, 1234);
-        assertEquals(rspResult.b, 5678);
-        assertEquals(rspResult.c, "getData");
-    }
-
-    @Test
-    public void testPostMethod() throws Exception {
-        String jsonContent = "{\"a\": 4321, \"b\": 8765, \"c\": \"postData\"}";
-        this.mockHttpTransport = this.createMockHttpTransport(Json.MEDIA_TYPE, jsonContent);
-        this.vtsDashboardApiTransport =
-                new VtsDashboardApiTransport(this.mockHttpTransport, HttpTesting.SIMPLE_URL);
-
-        Map<String, Object> postData = new HashMap<>();
-        postData.put("a", "aData");
-        postData.put("z", 2343);
-        RspResult rspResult = this.vtsDashboardApiTransport.post("", postData, RspResult.class);
-        assertEquals(rspResult.a, 4321);
-        assertEquals(rspResult.b, 8765);
-        assertEquals(rspResult.c, "postData");
-    }
-
-    @Test
-    public void testPostFile() throws Exception {
-        String jsonContent = "{\"resultCode\": 1234, \"resultMsg\": \"success!\"}";
-        this.mockHttpTransport = this.createMockHttpTransport(Json.MEDIA_TYPE, jsonContent);
-        this.vtsDashboardApiTransport =
-                new VtsDashboardApiTransport(this.mockHttpTransport, HttpTesting.SIMPLE_URL);
-
-        File temp = File.createTempFile("temp-post-file", ".tmp");
-        String rsp = this.vtsDashboardApiTransport.postFile(
-                "", "application/octet-stream", temp.getAbsolutePath());
-        assertEquals(rsp, jsonContent);
-    }
-
-    @Test
-    public void testPostMultiFile() throws Exception {
-        String jsonContent = "{\"resultCode\": 1234, \"resultMsg\": \"success!\"}";
-        this.mockHttpTransport = this.createMockHttpTransport(Json.MEDIA_TYPE, jsonContent);
-        this.vtsDashboardApiTransport =
-                new VtsDashboardApiTransport(this.mockHttpTransport, HttpTesting.SIMPLE_URL);
-
-        Map<String, String> postFiles = new HashMap<>();
-        postFiles.put("application/octet-stream",
-                File.createTempFile("temp-post-file1", ".tmp").getAbsolutePath());
-        postFiles.put("application/json",
-                File.createTempFile("temp-post-file2", ".tmp").getAbsolutePath());
-        String rsp = this.vtsDashboardApiTransport.postMultiFiles("", postFiles);
-        assertEquals(rsp, jsonContent);
-    }
-}
diff --git a/harnesses/tradefed/tests/src/com/android/tradefed/util/VtsPythonRunnerHelperTest.java b/harnesses/tradefed/tests/src/com/android/tradefed/util/VtsPythonRunnerHelperTest.java
deleted file mode 100644
index 297b05f..0000000
--- a/harnesses/tradefed/tests/src/com/android/tradefed/util/VtsPythonRunnerHelperTest.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * 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.
- */
-package com.android.tradefed.util;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertTrue;
-
-import com.android.tradefed.build.IFolderBuildInfo;
-import com.android.tradefed.log.LogUtil.CLog;
-
-import org.easymock.EasyMock;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.JUnit4;
-
-import java.io.File;
-import java.io.IOException;
-
-/**
- * Unit tests for {@link VtsPythonRunnerHelper}.
- */
-@RunWith(JUnit4.class)
-public class VtsPythonRunnerHelperTest {
-    private static final String[] mPythonCmd = {"python"};
-    private static final long mTestTimeout = 1000 * 5;
-
-    private VtsPythonRunnerHelper mVtsPythonRunnerHelper = null;
-    private String mVirtualenvPath = "virtualenv_path_" + System.currentTimeMillis();
-
-    @Before
-    public void setUp() throws Exception {
-        IFolderBuildInfo buildInfo = EasyMock.createNiceMock(IFolderBuildInfo.class);
-        EasyMock.replay(buildInfo);
-    }
-
-    /**
-     * Create a mock runUtil with returns the expected results.
-     */
-    private IRunUtil createMockRunUtil() {
-        IRunUtil runUtil = new RunUtil() {
-            private String path = null;
-
-            @Override
-            public void setEnvVariable(String key, String value) {
-                super.setEnvVariable(key, value);
-                if (key.equals("PATH")) {
-                    path = value;
-                }
-            }
-
-            @Override
-            public CommandResult runTimedCmd(final long timeout, final String... command) {
-                CommandResult cmdRes = new CommandResult(CommandStatus.SUCCESS);
-                String out = "";
-                if (command.length == 2 && command[0].equals("which")
-                        && command[1].equals("python")) {
-                    if (path != null) {
-                        out = path.split(":")[0] + "/python";
-                    } else {
-                        out = "/usr/bin/python";
-                    }
-                }
-                cmdRes.setStdout(out);
-                return cmdRes;
-            }
-        };
-        return runUtil;
-    }
-
-    /**
-     * Create a mock runUtil with returns the expected command status.
-     */
-    private IRunUtil createMockRunUtil(CommandStatus status) {
-        IRunUtil runUtil = EasyMock.createMock(IRunUtil.class);
-        EasyMock.expect(runUtil.runTimedCmd(EasyMock.anyLong(), EasyMock.anyObject(),
-                                EasyMock.anyObject(), EasyMock.anyObject()))
-                .andReturn(new CommandResult(status));
-        runUtil.setWorkingDir(null);
-        return runUtil;
-    }
-
-    @Test
-    public void testProcessRunSuccess() {
-        IRunUtil runUtil = createMockRunUtil(CommandStatus.SUCCESS);
-        EasyMock.replay(runUtil);
-        mVtsPythonRunnerHelper =
-                new VtsPythonRunnerHelper(new File(mVirtualenvPath), null, runUtil);
-        CommandResult commandResult = new CommandResult();
-        String interruptMessage =
-                mVtsPythonRunnerHelper.runPythonRunner(mPythonCmd, commandResult, mTestTimeout);
-        assertEquals(interruptMessage, null);
-        assertEquals(commandResult.getStatus(), CommandStatus.SUCCESS);
-        EasyMock.verify(runUtil);
-    }
-
-    @Test
-    public void testProcessRunFailed() {
-        IRunUtil runUtil = createMockRunUtil(CommandStatus.FAILED);
-        EasyMock.replay(runUtil);
-        mVtsPythonRunnerHelper =
-                new VtsPythonRunnerHelper(new File(mVirtualenvPath), null, runUtil);
-        CommandResult commandResult = new CommandResult();
-        String interruptMessage =
-                mVtsPythonRunnerHelper.runPythonRunner(mPythonCmd, commandResult, mTestTimeout);
-        assertEquals(interruptMessage, null);
-        assertEquals(commandResult.getStatus(), CommandStatus.FAILED);
-        EasyMock.verify(runUtil);
-    }
-
-    @Test
-    public void testProcessRunTimeout() {
-        IRunUtil runUtil = createMockRunUtil(CommandStatus.TIMED_OUT);
-        EasyMock.replay(runUtil);
-        mVtsPythonRunnerHelper =
-                new VtsPythonRunnerHelper(new File(mVirtualenvPath), null, runUtil);
-        CommandResult commandResult = new CommandResult();
-        String interruptMessage =
-                mVtsPythonRunnerHelper.runPythonRunner(mPythonCmd, commandResult, mTestTimeout);
-        assertEquals(interruptMessage, null);
-        assertEquals(commandResult.getStatus(), CommandStatus.TIMED_OUT);
-        EasyMock.verify(runUtil);
-    }
-
-    @Test
-    public void testProcessRunInterrupted() {
-        IRunUtil runUtil = EasyMock.createMock(IRunUtil.class);
-        EasyMock.expect(runUtil.runTimedCmd(EasyMock.anyLong(), EasyMock.anyObject(),
-                                EasyMock.anyObject(), EasyMock.anyObject()))
-                .andThrow(new RunInterruptedException("abort"));
-        runUtil.setWorkingDir(null);
-        EasyMock.replay(runUtil);
-        mVtsPythonRunnerHelper =
-                new VtsPythonRunnerHelper(new File(mVirtualenvPath), null, runUtil);
-        CommandResult commandResult = new CommandResult();
-        String interruptMessage =
-                mVtsPythonRunnerHelper.runPythonRunner(mPythonCmd, commandResult, mTestTimeout);
-        assertNotEquals(interruptMessage, null);
-        assertEquals(commandResult.getStatus(), CommandStatus.TIMED_OUT);
-        EasyMock.verify(runUtil);
-    }
-
-    @Test
-    public void testActivateVirtualEnvNotExist() {
-        IRunUtil runUtil = createMockRunUtil();
-        assertEquals(null, VtsPythonRunnerHelper.getPythonBinDir(mVirtualenvPath));
-        VtsPythonRunnerHelper.activateVirtualenv(runUtil, mVirtualenvPath);
-        String pythonBinary = runUtil.runTimedCmd(1000, "which", "python").getStdout();
-        assertEquals(pythonBinary, "/usr/bin/python");
-    }
-
-    @Test
-    public void testActivateVirtualEnvExist() {
-        IRunUtil runUtil = createMockRunUtil();
-        String binDirName = EnvUtil.isOnWindows() ? "Scripts" : "bin";
-        File envDir = new File(mVirtualenvPath);
-        File binDir = new File(mVirtualenvPath, binDirName);
-        try {
-            CLog.d("%s", envDir.mkdir());
-            CLog.d("%s", binDir.mkdir());
-            assertTrue(binDir.exists());
-            assertEquals(binDir.getAbsolutePath(),
-                    VtsPythonRunnerHelper.getPythonBinDir(mVirtualenvPath));
-            VtsPythonRunnerHelper.activateVirtualenv(runUtil, mVirtualenvPath);
-            String pythonBinary = runUtil.runTimedCmd(1000, "which", "python").getStdout();
-            assertEquals(pythonBinary, new File(binDir, "python").getAbsolutePath());
-        } finally {
-            FileUtil.recursiveDelete(envDir);
-            FileUtil.recursiveDelete(binDir);
-        }
-    }
-
-}
diff --git a/prebuilts/Android.bp b/prebuilts/Android.bp
index 07c7cbb..6b2fa36 100644
--- a/prebuilts/Android.bp
+++ b/prebuilts/Android.bp
@@ -12,6 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 filegroup {
     name: "libvtswidevine-arm-prebuilts",
     srcs: ["libvtswidevine/arm/*.so"],
@@ -30,4 +34,4 @@
 filegroup {
     name: "libvtswidevine-x86_64-prebuilts",
     srcs: ["libvtswidevine/x86_64/*.so"],
-}
\ No newline at end of file
+}
diff --git a/proto/Android.bp b/proto/Android.bp
index 8e4ea5b..dba8a24 100644
--- a/proto/Android.bp
+++ b/proto/Android.bp
@@ -14,6 +14,10 @@
 // limitations under the License.
 //
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 cc_library_shared {
 
     name: "libvts_multidevice_proto",
diff --git a/proto/VtsReportMessage.proto b/proto/VtsReportMessage.proto
index 2c7a742..25bf3eb 100644
--- a/proto/VtsReportMessage.proto
+++ b/proto/VtsReportMessage.proto
@@ -74,7 +74,7 @@
   // Android Build ID.
   optional bytes build_id = 12;
 
-  // branch name (e.g., master or nyc-dev).
+  // branch name (e.g., main or nyc-dev).
   optional bytes branch = 21;
 
   // build alias implies the branch name.
@@ -105,7 +105,7 @@
   // build type (e.g., userdebug)
   optional bytes build_type = 12;
 
-  // branch name (e.g., master or nyc-dev)
+  // branch name (e.g., main or nyc-dev)
   optional bytes branch = 13;
 
   // indicates the latest commit information of each branch (e.g., xml format).
diff --git a/runners/target/gtest/Android.bp b/runners/target/gtest/Android.bp
index d0efe2a..5f73425 100644
--- a/runners/target/gtest/Android.bp
+++ b/runners/target/gtest/Android.bp
@@ -14,6 +14,10 @@
 // limitations under the License.
 //
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 cc_library_static {
     name: "libVtsGtestMain",
     srcs: ["gtest_main.cpp"],
diff --git a/runners/target/vts_hal_hidl_target/Android.bp b/runners/target/vts_hal_hidl_target/Android.bp
index b58e858..363715a 100644
--- a/runners/target/vts_hal_hidl_target/Android.bp
+++ b/runners/target/vts_hal_hidl_target/Android.bp
@@ -14,6 +14,10 @@
 // limitations under the License.
 //
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 cc_library_static {
     name: "VtsHalHidlTestUtils",
     srcs : [
diff --git a/runners/target/vts_hal_hidl_target/VtsCoreUtil.cpp b/runners/target/vts_hal_hidl_target/VtsCoreUtil.cpp
index ce063fa..102aa5e 100644
--- a/runners/target/vts_hal_hidl_target/VtsCoreUtil.cpp
+++ b/runners/target/vts_hal_hidl_target/VtsCoreUtil.cpp
@@ -14,6 +14,8 @@
  * limitations under the License.
  */
 
+#include <unistd.h>
+
 #include <log/log.h>
 #include <iostream>
 
diff --git a/runners/target/vts_hal_hidl_target/VtsHalHidlTargetTestEnvBase.cpp b/runners/target/vts_hal_hidl_target/VtsHalHidlTargetTestEnvBase.cpp
index 37abe47..efc3e95 100644
--- a/runners/target/vts_hal_hidl_target/VtsHalHidlTargetTestEnvBase.cpp
+++ b/runners/target/vts_hal_hidl_target/VtsHalHidlTargetTestEnvBase.cpp
@@ -37,7 +37,7 @@
   }
   // Register services used in the test.
   registerTestServices();
-  // For a dummy run which just print the registered hal services.
+  // For a no-op run which just print the registered hal services.
   if (listService_) {
     listRegisteredServices();
     exit(0);
diff --git a/script/build-java.sh b/script/build-java.sh
deleted file mode 100755
index 2fd6378..0000000
--- a/script/build-java.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2016 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.
-
-pushd ${ANDROID_BUILD_TOP}/test
-protoc --proto_path=vts --java_out=vti/dashboard/src/main/java vts/proto/VtsReportMessage.proto
-popd
diff --git a/script/build-python.sh b/script/build-python.sh
deleted file mode 100755
index a9875d0..0000000
--- a/script/build-python.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2016 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.
-
-# Modifies any import statements (to remove subdir path)
-pushd ${ANDROID_BUILD_TOP}/test/vts
-
-## Modifies import statement in proto files.
-sed -i 's/import "test\/vts\/proto\/ComponentSpecificationMessage.proto";/import "ComponentSpecificationMessage.proto";/g' proto/AndroidSystemControlMessage.proto
-sed -i 's/import "test\/vts\/proto\/VtsResourceControllerMessage.proto";/import "VtsResourceControllerMessage.proto";/g' proto/AndroidSystemControlMessage.proto
-sed -i 's/import "test\/vts\/proto\/ComponentSpecificationMessage.proto";/import "ComponentSpecificationMessage.proto";/g' proto/VtsProfilingMessage.proto
-sed -i 's/import "test\/vts\/proto\/ComponentSpecificationMessage.proto";/import "ComponentSpecificationMessage.proto";/g' proto/VtsFuzzTaskMessage.proto
-sed -i 's/import "test\/vts\/proto\/VtsReportMessage.proto";/import "VtsReportMessage.proto";/g' proto/VtsFuzzTaskMessage.proto
-sed -i 's/import "test\/vts\/proto\/ComponentSpecificationMessage.proto";/import "ComponentSpecificationMessage.proto";/g' proto/VtsResourceControllerMessage.proto
-
-## Compiles modified proto files to .py files.
-protoc -I=proto --python_out=proto proto/AndroidSystemControlMessage.proto
-protoc -I=proto --python_out=proto proto/ComponentSpecificationMessage.proto
-protoc -I=proto --python_out=proto proto/VtsProfilingMessage.proto
-protoc -I=proto --python_out=proto proto/VtsFuzzTaskMessage.proto
-protoc -I=proto --python_out=proto proto/VtsResourceControllerMessage.proto
-
-## Restores import statement in proto files.
-sed -i 's/import "ComponentSpecificationMessage.proto";/import "test\/vts\/proto\/ComponentSpecificationMessage.proto";/g' proto/AndroidSystemControlMessage.proto
-sed -i 's/import "VtsResourceControllerMessage.proto";/import "test\/vts\/proto\/VtsResourceControllerMessage.proto";/g' proto/AndroidSystemControlMessage.proto
-sed -i 's/import "ComponentSpecificationMessage.proto";/import "test\/vts\/proto\/ComponentSpecificationMessage.proto";/g' proto/VtsProfilingMessage.proto
-sed -i 's/import "ComponentSpecificationMessage.proto";/import "test\/vts\/proto\/ComponentSpecificationMessage.proto";/g' proto/VtsFuzzTaskMessage.proto
-sed -i 's/import "VtsReportMessage.proto";/import "test\/vts\/proto\/VtsReportMessage.proto";/g' proto/VtsFuzzTaskMessage.proto
-sed -i 's/import "ComponentSpecificationMessage.proto";/import "test\/vts\/proto\/ComponentSpecificationMessage.proto";/g' proto/VtsResourceControllerMessage.proto
-
-protoc -I=proto --python_out=proto proto/ComponentSpecificationMessage.proto
-protoc -I=proto --python_out=proto proto/TestSchedulingPolicyMessage.proto
-protoc -I=proto --python_out=proto proto/VtsReportMessage.proto
-
-# Compiles all the python source codes.
-python -m compileall .
-
-popd
diff --git a/script/compare_vts_core_result.py b/script/compare_vts_core_result.py
deleted file mode 100755
index 1f07cb0..0000000
--- a/script/compare_vts_core_result.py
+++ /dev/null
@@ -1,121 +0,0 @@
-#
-# Copyright (C) 2020 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.
-#
-
-import logging
-import sys
-
-import xml.etree.ElementTree as ET
-
-VTS_TO_VTS_CORE_MAPPING = {
-    "VtsHalCameraProviderV2_5Target": ["VtsHalCameraProviderV2_4TargetTest"],
-    "VtsKernelLiblpTest": ["vts_core_liblp_test"],
-    "VtsFastbootVerification": ["FastbootVerifyUserspaceTest"],
-    "VtsKernelMemInfoTest": ["vts_core_meminfo_test"],
-    "VtsKernelQtaguidTest": ["vts_test_binary_qtaguid_module"],
-    "VtsTrebleFrameworkVintfTest": ["vts_treble_vintf_framework_test"],
-    "VtsKernelLibdmTest": ["vts_libdm_test"],
-    "VtsGsiBootTest": ["vts_gsi_boot_test"],
-    "VtsHalBaseV1_0TargetTest": ["vts_ibase_test"],
-    "VtsKernelLibcutilsTest": ["KernelLibcutilsTest"],
-    "VtsKernelNetBpfTest": ["bpf_module_test"],
-    "VtsSecurityAvb": ["vts_security_avb_test"],
-    "VtsKernelBinderTest": ["binderSafeInterfaceTest",
-                            "binderLibTest",
-                            "binderDriverInterfaceTest",
-                            "memunreachable_binder_test"],
-    "VtsKernelTunTest": ["vts_kernel_tun_test"],
-    "VtsTrebleVendorVintfTest": ["vts_treble_vintf_vendor_test"],
-}
-
-IGNORED_MODULES = ["VtsKernelHwBinder"]
-
-def usage():
-    """Prints usage and exits."""
-    print("Arguments Error: Please specify the test_result file of "
-          "vts and vts-core.")
-    print "Usage: <this script> <test_result_of_vts> <test_result_of_vts_core>"
-    print "       e.g. python compare_vts_core_result.py vts_test_result.xml vts_core_test_result.xml"
-    exit(-1)
-
-def _get_all_modules_name_from_xml(result_file):
-    """Get all modules name from a test_result file.
-
-    Args:
-        restul_file: The path of a test result file.
-
-    Returns:
-        A set of all test module names.
-    """
-    xml_tree = ET.parse(result_file)
-    xml_root = xml_tree.getroot()
-    all_modules = set()
-    for elem in xml_root.iter(tag="Module"):
-        all_modules.add(elem.attrib['name'])
-    return all_modules
-
-def _compare_vts_and_vts_core_module(vts_modules, vts_core_modules):
-    """Compare vts and vts-core module names.
-
-    Args:
-        vts_modules: All modules names of vts.
-        vts_core_modules: All modules name of vts-core.
-
-    Returns:
-        A set of the modules that in the vts but not in the vts-core.
-    """
-    module_name_convert_keys = VTS_TO_VTS_CORE_MAPPING.keys()
-    not_converted_modules = []
-    for vts_module_name in vts_modules:
-        vts_core_module_names = [vts_module_name]
-        if vts_module_name in module_name_convert_keys:
-            vts_core_module_names = VTS_TO_VTS_CORE_MAPPING[vts_module_name]
-        for necessary_module_name in vts_core_module_names:
-            if necessary_module_name not in vts_core_modules:
-                Hal_test_name = necessary_module_name + "Test"
-                if Hal_test_name not in vts_core_modules:
-                    if vts_module_name not in IGNORED_MODULES:
-                        not_converted_modules.append(vts_module_name)
-                        break
-    return sorted(not_converted_modules)
-
-def compare_vts_and_vts_core_result_file(vts_result_file, vts_core_result_file):
-    """Compare the test result file of vts and vts-core.
-
-    Args:
-        vts_result_file: The path of the test result file of vts.
-        vts_core_result_file: The path of the test result file of vts-core.
-
-    Returns:
-        A set of the modules that in the vts but not in the vts-core.
-    """
-    vts_modules = _get_all_modules_name_from_xml(vts_result_file)
-    vts_core_modules = _get_all_modules_name_from_xml(vts_core_result_file)
-    not_converted_modules = _compare_vts_and_vts_core_module(vts_modules, vts_core_modules)
-    for module in not_converted_modules:
-        print module
-
-def main(argv):
-    """Entry point of atest script.
-
-    Args:
-        argv: A list of arguments.
-    """
-    if len(argv) != 3:
-        usage()
-    compare_vts_and_vts_core_result_file(argv[1], argv[2])
-
-if __name__ == '__main__':
-    main(sys.argv)
diff --git a/script/create-image.sh b/script/create-image.sh
deleted file mode 100755
index 9f4d0f2..0000000
--- a/script/create-image.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2016 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.
-
-function vts_multidevice_create_image {
-  rm ${ANDROID_BUILD_TOP}/test/vts/testcases/hal/automotive/ -rf
-  rm ${ANDROID_BUILD_TOP}/test/vts/testcases/hal/camera/ -rf
-  rm ${ANDROID_BUILD_TOP}/test/vts/testcases/hal/gnss/ -rf
-  rm ${ANDROID_BUILD_TOP}/test/vts/testcases/hal/nfc/ -rf
-  rm ${ANDROID_BUILD_TOP}/test/vts/testcases/hal/sensors/ -rf
-  rm ${ANDROID_BUILD_TOP}/test/vts/testcases/hal/vibrator/ -rf
-  rm ${ANDROID_BUILD_TOP}/test/vts/testcases/hal/vr/ -rf
-  rm ${ANDROID_BUILD_TOP}/test/vts/testcases/hal/tv/ -rf
-  . ${ANDROID_BUILD_TOP}/build/make/envsetup.sh
-  cd ${ANDROID_BUILD_TOP}; lunch $1
-  cd ${ANDROID_BUILD_TOP}/test/vts; mma -j 32 && cd ${ANDROID_BUILD_TOP}; make vts adb -j 32
-  mkdir ${ANDROID_BUILD_TOP}/test/vts/testcases/hal -p
-  touch ${ANDROID_BUILD_TOP}/test/vts/testcases/hal/__init__.py
-  cp ${ANDROID_BUILD_TOP}/test/vts-testcase/hal/automotive ${ANDROID_BUILD_TOP}/test/vts/testcases/hal/ -rf
-  cp ${ANDROID_BUILD_TOP}/test/vts-testcase/hal/camera ${ANDROID_BUILD_TOP}/test/vts/testcases/hal/ -rf
-  cp ${ANDROID_BUILD_TOP}/test/vts-testcase/hal/gnss ${ANDROID_BUILD_TOP}/test/vts/testcases/hal/ -rf
-  cp ${ANDROID_BUILD_TOP}/test/vts-testcase/hal/nfc ${ANDROID_BUILD_TOP}/test/vts/testcases/hal/ -rf
-  cp ${ANDROID_BUILD_TOP}/test/vts-testcase/hal/sensors ${ANDROID_BUILD_TOP}/test/vts/testcases/hal/ -rf
-  cp ${ANDROID_BUILD_TOP}/test/vts-testcase/hal/vibrator ${ANDROID_BUILD_TOP}/test/vts/testcases/hal/ -rf
-  cp ${ANDROID_BUILD_TOP}/test/vts-testcase/hal/vr ${ANDROID_BUILD_TOP}/test/vts/testcases/hal/ -rf
-  cp ${ANDROID_BUILD_TOP}/test/vts-testcase/hal/tv ${ANDROID_BUILD_TOP}/test/vts/testcases/hal/ -rf
-}
-
-vts_multidevice_create_image $1
-
diff --git a/script/create-test-project.py b/script/create-test-project.py
deleted file mode 100755
index 7422262..0000000
--- a/script/create-test-project.py
+++ /dev/null
@@ -1,340 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2016 - 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.
-#
-
-# Initiate a test case directory.
-# This script copy a template which contains Android.mk, __init__.py files,
-# AndroidTest.xml and a test case python file into a given relative directory
-# under testcases/ using the given test name.
-
-import os
-import sys
-import datetime
-import re
-import shutil
-import argparse
-
-VTS_PATH = 'test/vts'
-VTS_TEST_CASE_PATH = os.path.join(VTS_PATH, 'testcases')
-PYTHON_INIT_FILE_NAME = '__init__.py'
-ANDROID_MK_FILE_NAME = 'Android.mk'
-ANDROID_TEST_XML_FILE_NAME = 'AndroidTest.xml'
-
-
-class TestCaseCreator(object):
-    '''Init a test case directory with helloworld test case.
-
-    Attributes:
-        test_name: string, test case name in UpperCamel
-        build_top: string, equal to environment variable ANDROID_BUILD_TOP
-        test_dir: string, test case absolute directory
-        test_name: string, test case name in UpperCamel
-        test_plan: string, the plan that the test belongs to
-        test_type: test type, such as HidlHalTest, HostDrivenTest, etc
-        current_year: current year
-        vts_test_case_dir: absolute dir of vts testcases directory
-    '''
-
-    def __init__(self, test_name, test_plan, test_dir_under_testcases,
-                 test_type):
-        '''Initialize class attributes.
-
-        Args:
-            test_name: string, test case name in UpperCamel
-            test_plan: string, the plan that the test belongs to
-            test_dir_under_testcases: string, test case relative directory under
-                                      test/vts/testcases.
-        '''
-        if not test_dir_under_testcases:
-            print 'Error: Empty test directory entered. Exiting'
-            sys.exit(3)
-        test_dir_under_testcases = os.path.normpath(
-            test_dir_under_testcases.strip())
-
-        if not self.IsUpperCamel(test_name):
-            print 'Error: Test name not in UpperCamel case. Exiting'
-            sys.exit(4)
-        self.test_name = test_name
-
-        if not test_plan:
-            self.test_plan = 'vts-misc'
-        else:
-            self.test_plan = test_plan
-
-        if not test_type:
-            self.test_type = 'HidlHalTest'
-        else:
-            self.test_type = test_type
-
-        self.build_top = os.getenv('ANDROID_BUILD_TOP')
-        if not self.build_top:
-            print('Error: Missing ANDROID_BUILD_TOP env variable. Please run '
-                  '\'. build/envsetup.sh; lunch <build target>\' Exiting...')
-            sys.exit(1)
-
-        self.vts_test_case_dir = os.path.abspath(
-            os.path.join(self.build_top, VTS_TEST_CASE_PATH))
-
-        self.test_dir = os.path.abspath(
-            os.path.join(self.vts_test_case_dir, test_dir_under_testcases))
-
-        self.current_year = datetime.datetime.now().year
-
-    def InitTestCaseDir(self):
-        '''Start init test case directory'''
-        if os.path.exists(self.test_dir):
-            print 'Error: Test directory already exists. Exiting...'
-            sys.exit(2)
-        try:
-            os.makedirs(self.test_dir)
-        except:
-            print('Error: Failed to create test directory at %s. '
-                  'Exiting...' % self.test_dir)
-            sys.exit(2)
-
-        self.CreatePythonInitFile()
-        self.CreateAndroidMk()
-        self.CreateAndroidTestXml()
-        self.CreateTestCasePy()
-
-    def UpperCamelToLowerUnderScore(self, name):
-        '''Convert UpperCamel name to lower_under_score name.
-
-        Args:
-            name: string in UpperCamel.
-
-        Returns:
-            a lower_under_score version of the given name
-        '''
-        return re.sub('(?!^)([A-Z]+)', r'_\1', name).lower()
-
-    def IsUpperCamel(self, name):
-        '''Check whether a given name is UpperCamel case.
-
-        Args:
-            name: string.
-
-        Returns:
-            True if name is in UpperCamel case, False otherwise
-        '''
-        regex = re.compile('((?:[A-Z][a-z]+)[0-9]*)+')
-        match = regex.match(name)
-        return match and (match.end() - match.start() == len(name))
-
-    def CreatePythonInitFile(self):
-        '''Populate test case directory and parent directories with __init__.py.
-        '''
-        if not self.test_dir.startswith(self.vts_test_case_dir):
-            print 'Error: Test case directory is not under VTS test case directory.'
-            sys.exit(4)
-
-        path = self.test_dir
-        while not path == self.vts_test_case_dir:
-            target = os.path.join(path, PYTHON_INIT_FILE_NAME)
-            if not os.path.exists(target):
-                print 'Creating %s' % target
-                with open(target, 'w') as f:
-                    pass
-            path = os.path.dirname(path)
-
-    def CreateAndroidMk(self):
-        '''Populate test case directory and parent directories with Android.mk
-        '''
-        vts_dir = os.path.join(self.build_top, VTS_PATH)
-
-        target = os.path.join(self.test_dir, ANDROID_MK_FILE_NAME)
-        with open(target, 'w') as f:
-            print 'Creating %s' % target
-            f.write(LICENSE_STATEMENT_POUND.format(year=self.current_year))
-            f.write('\n')
-            f.write(
-                ANDROID_MK_TEMPLATE.format(
-                    test_name=self.test_name,
-                    config_src_dir=self.test_dir[len(vts_dir) + 1:]))
-
-        path = self.test_dir
-        while not path == vts_dir:
-            target = os.path.join(path, ANDROID_MK_FILE_NAME)
-            if not os.path.exists(target):
-                print 'Creating %s' % target
-                with open(target, 'w') as f:
-                    f.write(
-                        LICENSE_STATEMENT_POUND.format(year=self.current_year))
-                    f.write(ANDROID_MK_CALL_SUB)
-            path = os.path.dirname(path)
-
-    def CreateAndroidTestXml(self):
-        '''Create AndroidTest.xml'''
-        target = os.path.join(self.test_dir, ANDROID_TEST_XML_FILE_NAME)
-        with open(target, 'w') as f:
-            print 'Creating %s' % target
-            f.write(XML_HEADER)
-            f.write(LICENSE_STATEMENT_XML.format(year=self.current_year))
-            f.write(
-                ANDROID_TEST_XML_TEMPLATE.format(
-                    test_name=self.test_name,
-                    test_plan=self.test_plan,
-                    test_type=self.test_type,
-                    test_path_under_vts=self.test_dir[
-                        len(os.path.join(self.build_top, VTS_PATH)) + 1:],
-                    test_case_file_without_extension=self.test_name))
-
-    def CreateTestCasePy(self):
-        '''Create <test_case_name>.py'''
-        target = os.path.join(self.test_dir, '%s.py' % self.test_name)
-        with open(target, 'w') as f:
-            print 'Creating %s' % target
-            f.write(PY_HEADER)
-            f.write(LICENSE_STATEMENT_POUND.format(year=self.current_year))
-            f.write('\n')
-            f.write(TEST_CASE_PY_TEMPLATE.format(test_name=self.test_name))
-
-
-def main():
-    parser = argparse.ArgumentParser(description='Initiate a test case.')
-    parser.add_argument(
-        '--name',
-        dest='test_name',
-        required=True,
-        help='Test case name in UpperCamel. Example: VtsKernelLtp')
-    parser.add_argument(
-        '--plan',
-        dest='test_plan',
-        required=False,
-        help='The plan that the test belongs to. Example: vts-kernel')
-    parser.add_argument(
-        '--dir',
-        dest='test_dir',
-        required=True,
-        help='Test case relative directory under test/vts/testcses.')
-    parser.add_argument(
-        '--type',
-        dest='test_type',
-        required=False,
-        help='Test type, such as HidlHalTest, HostDrivenTest, etc.')
-
-    args = parser.parse_args()
-    test_case_creater = TestCaseCreator(args.test_name, args.test_plan,
-                                        args.test_dir, args.test_type)
-    test_case_creater.InitTestCaseDir()
-
-
-LICENSE_STATEMENT_POUND = '''#
-# Copyright (C) {year} 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.
-#
-'''
-
-LICENSE_STATEMENT_XML = '''<!-- Copyright (C) {year} 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.
--->
-'''
-
-ANDROID_MK_TEMPLATE = '''LOCAL_PATH := $(call my-dir)
-
-include $(call all-subdir-makefiles)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := {test_name}
-include test/vts/tools/build/Android.host_config.mk
-'''
-
-ANDROID_MK_CALL_SUB = '''LOCAL_PATH := $(call my-dir)
-
-include $(call all-subdir-makefiles)
-'''
-
-XML_HEADER = '''<?xml version="1.0" encoding="utf-8"?>
-'''
-
-ANDROID_TEST_XML_TEMPLATE = '''<configuration description="Config for VTS {test_name} test cases">
-    <option name="config-descriptor:metadata" key="plan" value="{test_plan}" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="{test_type}.push" />
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="{test_name}" />
-        <option name="test-case-path" value="vts/{test_path_under_vts}/{test_case_file_without_extension}" />
-    </test>
-</configuration>
-'''
-
-PY_HEADER = '''#!/usr/bin/env python
-'''
-
-TEST_CASE_PY_TEMPLATE = '''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
-
-
-
-class {test_name}(base_test.BaseTestClass):
-    """Two hello world test cases which use the shell driver."""
-
-    def setUpClass(self):
-        self.dut = self.android_devices[0]
-        self.shell = self.dut.shell
-
-    def testEcho1(self):
-        """A simple testcase which sends a command."""
-        results = self.shell.Execute("echo hello_world")  # runs a shell command.
-        logging.info(str(results[const.STDOUT]))  # prints the stdout
-        asserts.assertEqual(results[const.STDOUT][0].strip(), "hello_world")  # checks the stdout
-        asserts.assertEqual(results[const.EXIT_CODE][0], 0)  # checks the exit code
-
-    def testEcho2(self):
-        """A simple testcase which sends two commands."""
-        results = self.shell.Execute(["echo hello", "echo world"])
-        logging.info(str(results[const.STDOUT]))
-        asserts.assertEqual(len(results[const.STDOUT]), 2)  # check the number of processed commands
-        asserts.assertEqual(results[const.STDOUT][0].strip(), "hello")
-        asserts.assertEqual(results[const.STDOUT][1].strip(), "world")
-        asserts.assertEqual(results[const.EXIT_CODE][0], 0)
-        asserts.assertEqual(results[const.EXIT_CODE][1], 0)
-
-
-if __name__ == "__main__":
-    test_runner.main()
-'''
-
-if __name__ == '__main__':
-    main()
diff --git a/script/cts_test_list.txt b/script/cts_test_list.txt
deleted file mode 100644
index f13bf9a..0000000
--- a/script/cts_test_list.txt
+++ /dev/null
@@ -1,170 +0,0 @@
-CtsAbiOverrideHostTestCases
-CtsAccelerationTestCases
-CtsAccessibilityServiceTestCases
-CtsAccessibilityTestCases
-CtsAccountManagerTestCases
-CtsAdminPackageInstallerTestCases
-CtsAdminTestCases
-CtsAndroidAppTestCases
-CtsAnimationTestCases
-CtsAppSecurityHostTestCases
-CtsAppTestCases
-CtsAppUsageHostTestCases
-CtsAppWidgetTestCases
-CtsAslrMallocTestCases
-CtsAssistTestCases
-CtsAtraceHostTestCases
-CtsAutoFillServiceTestCases
-CtsBackupHostTestCases
-CtsBackupTestCases
-CtsBionicTestCases
-CtsBluetoothTestCases
-CtsBootStatsTestCases
-CtsCalendarcommon2TestCases
-CtsCallLogTestCases
-CtsCameraTestCases
-CtsCarTestCases
-CtsCarrierApiTestCases
-CtsColorModeTestCases
-CtsCompilationTestCases
-CtsContactsProviderWipe
-CtsContentTestCases
-CtsCppToolsTestCases
-CtsDatabaseTestCases
-CtsDebugTestCases
-CtsDeqpTestCases
-CtsDeviceAdminUninstallerTestCases
-CtsDevicePolicyManagerTestCases
-CtsDisplayTestCases
-CtsDpiTestCases
-CtsDpiTestCases2
-CtsDreamsTestCases
-CtsDrmTestCases
-CtsDumpsysHostTestCases
-CtsEffectTestCases
-CtsExternalServiceTestCases
-CtsExternalSourcesTestCases
-CtsFileSystemTestCases
-CtsFragmentTestCases
-CtsGestureTestCases
-CtsGraphics2TestCases
-CtsGraphicsTestCases
-CtsHardwareTestCases
-CtsHostsideNetworkTests
-CtsHostsideNumberBlockingTestCases
-CtsHostsideTvTests
-CtsHostsideWebViewTests
-CtsIcuTestCases
-CtsIncidentHostTestCases
-CtsIncidentTestCases
-CtsInputMethodTestCases
-CtsJankDeviceTestCases
-CtsJdwpSecurityHostTestCases
-CtsJdwpTestCases
-CtsJniTestCases
-CtsJobSchedulerTestCases
-CtsKernelConfigTestCases
-CtsKeystoreTestCases
-CtsLeanbackJankTestCases
-CtsLibcoreFileIOTestCases
-CtsLibcoreJsr166TestCases
-CtsLibcoreLegacy22TestCases
-CtsLibcoreOjTestCases
-CtsLibcoreOkHttpTestCases
-CtsLibcoreTestCases
-CtsLiblogTestCases
-CtsLocation2TestCases
-CtsLocationTestCases
-CtsMediaStressTestCases
-CtsMediaTestCases
-CtsMidiTestCases
-CtsMonkeyTestCases
-CtsMultiUserHostTestCases
-CtsMultiUserTestCases
-CtsNativeHardwareTestCases
-CtsNativeMediaAAudioTestCases
-CtsNativeMediaSlTestCases
-CtsNativeMediaXaTestCases
-CtsNdefTestCases
-CtsNetSecConfigAttributeTestCases
-CtsNetSecConfigBasicDebugDisabledTestCases
-CtsNetSecConfigBasicDebugEnabledTestCases
-CtsNetSecConfigBasicDomainConfigTestCases
-CtsNetSecConfigCleartextTrafficTestCases
-CtsNetSecConfigDownloadManagerTestCases
-CtsNetSecConfigInvalidPinTestCases
-CtsNetSecConfigNestedDomainConfigTestCases
-CtsNetSecConfigResourcesSrcTestCases
-CtsNetSecPolicyUsesCleartextTrafficFalseTestCases
-CtsNetSecPolicyUsesCleartextTrafficTrueTestCases
-CtsNetSecPolicyUsesCleartextTrafficUnspecifiedTestCases
-CtsNetTestCases
-CtsNetTestCasesLegacyApi22
-CtsNetTestCasesLegacyPermission22
-CtsOpenGLTestCases
-CtsOpenGlPerf2TestCases
-CtsOpenGlPerfTestCases
-CtsOsHostTestCases
-CtsOsTestCases
-CtsPermission2TestCases
-CtsPermissionTestCases
-CtsPreference2TestCases
-CtsPreferenceTestCases
-CtsPrintTestCases
-CtsProtoTestCases
-CtsProviderTestCases
-CtsRenderscriptLegacyTestCases
-CtsRenderscriptTestCases
-CtsRsBlasTestCases
-CtsRsCppTestCases
-CtsSampleDeviceTestCases
-CtsSampleHostTestCases
-CtsSaxTestCases
-CtsSecurityHostTestCases
-CtsSecurityTestCases
-CtsSensorTestCases
-CtsShortcutHostTestCases
-CtsShortcutManagerTestCases
-CtsSignatureTestCases
-CtsSimpleCpuTestCases
-CtsSimpleperfTestCases
-CtsSpeechTestCases
-CtsSustainedPerformanceHostTestCases
-CtsSyncContentHostTestCases
-CtsSystemIntentTestCases
-CtsSystemUiHostTestCases
-CtsSystemUiTestCases
-CtsTelecomTestCases
-CtsTelecomTestCases2
-CtsTelephony2TestCases
-CtsTelephonyTestCases
-CtsTextTestCases
-CtsTextureViewTestCases
-CtsThemeDeviceTestCases
-CtsThemeHostTestCases
-CtsToastLegacyTestCases
-CtsToastTestCases
-CtsTransitionTestCases
-CtsTrustedVoiceHostTestCases
-CtsTvProviderTestCases
-CtsTvTestCases
-CtsUiAutomationTestCases
-CtsUiDeviceTestCases
-CtsUiHostTestCases
-CtsUiRenderingTestCases
-CtsUidIsolationTestCases
-CtsUsageStatsTestCases
-CtsUsbTests
-CtsUtilTestCases
-CtsVideoTestCases
-CtsViewTestCases
-CtsVmTestCases
-CtsVoiceInteractionTestCases
-CtsVoiceSettingsTestCases
-CtsVrTestCases
-CtsWebkitTestCases
-CtsWidgetTestCases
-CtsWindowManagerDeviceTestCases
-CtsWrapNoWrapTestCases
-CtsWrapWrapDebugTestCases
-CtsWrapWrapNoDebugTestCases
diff --git a/script/diagnose.py b/script/diagnose.py
deleted file mode 100755
index 479c987..0000000
--- a/script/diagnose.py
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2017 - 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.
-#
-
-import datetime
-import platform
-import subprocess
-import sys
-
-
-def runCommand(cmd, description):
-    """Runs given command, then prints output and error.
-
-    Args:
-        cmd: string, command to execute
-        description: string, noun that describes the output of the command
-    """
-    print '=====', description, '====='
-
-    returnCode = subprocess.call(cmd.split(' '))
-    if returnCode != 0:
-        print 'Error occured when executing following command:', cmd
-        print 'Error code:', returnCode
-
-def main():
-    # Get current date and time
-    now = datetime.datetime.now()
-    print '===== Current date and time =====\n', str(now)
-    print '===== OS version =====\n', platform.platform()
-    print '===== Python version =====\n', sys.version
-
-    # Get pip version
-    runCommand('pip --version', 'Pip version')
-
-    # Get virtualenv version
-    runCommand('virtualenv --version', 'Virtualenv version')
-
-    # Get target device info with adb
-    runCommand('adb shell getprop ro.build.fingerprint', 'Target device info [ro.build.fingerprint]')
-
-    runCommand('adb shell lshal --init-vintf', 'Read HAL Info')
-    runCommand('adb shell cat /vendor/manifest.xml', 'Read vendor/manifest.xml')
-
-
-if __name__ == "__main__":
-    main()
diff --git a/script/download-pypi-packages.sh b/script/download-pypi-packages.sh
deleted file mode 100644
index 8c3c938..0000000
--- a/script/download-pypi-packages.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2016 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.
-#
-
-if [ -z "$ANDROID_BUILD_TOP" ]; then
-  echo "Please run the lunch command first."
-elif [ -z "$VTS_PYPI_PATH" ]; then
-  echo "Please set environment variable VTS_PYPI_PATH as a new directory to host all PyPI packages."
-else
-  echo "Local PyPI packages directory is set to" $VTS_PYPI_PATH
-  echo "Making local dir" $VTS_PYPI_PATH
-
-  if [ -d "$VTS_PYPI_PATH" ]; then
-    echo $VTS_PYPI_PATH "already exists"
-  else
-    mkdir $VTS_PYPI_PATH -p
-  fi
-
-  echo "Downloading PyPI packages to" $VTS_PYPI_PATH
-  pip download -d $VTS_PYPI_PATH -r $ANDROID_BUILD_TOP/test/vts/script/pip_requirements.txt --no-binary protobuf,grpcio,numpy,Pillow,scipy
-  # The --no-binary option is necessary for packages that have a
-  # "-cp27-cp27mu-manylinux1_x86_64.whl" version that will be downloaded instead
-  # if --no-binary option is not specified. This version is not compatible with
-  # the python virtualenv set up by VtsPythonVirtualenvPreparer.
-
-  # TODO(jaeshin): b/38371975, fix matplotlib download error
-  pip download -d $VTS_PYPI_PATH matplotlib --no-binary matplotlib,numpy
-fi
diff --git a/script/host_controller_setup.sh b/script/host_controller_setup.sh
deleted file mode 100644
index 49e17bc..0000000
--- a/script/host_controller_setup.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2017 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.
-
-# TODO: could possibly auto-install google-chrome and chromedriver if not found
-# but currently gives helpful error message
-
-echo "Install Python SDK"
-sudo apt-get -y install python-dev
-
-echo "Install Python virtualenv and pip tools for VTS host controller"
-sudo apt-get -y install python-setuptools
-sudo apt-get -y install python-pip
-sudo apt-get -y install python-virtualenv
-
-echo "Downloading PyPI packages"
-sudo pip install selenium
\ No newline at end of file
diff --git a/script/pip_requirements.txt b/script/pip_requirements.txt
deleted file mode 100644
index 26b253c..0000000
--- a/script/pip_requirements.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-# Required packages for VTS Runner
-pip>=9.0.0
-enum
-future
-futures
-google-api-python-client
-google-auth>=1.4.2
-google-cloud-storage
-httplib2
-oauth2client
-protobuf
-pyserial
-requests
-setuptools
-
-# Required packages for Camera ITS tests
-# matplotlib # TODO(jaeshin): b/38371975, downloaded separately in download-pypi-packages.sh
-numpy
-Pillow
-scipy
-
-# Required packages for Kernel tests
-parse
-ply
-
-# Required packages for USB gadget tests
-libusb1
-
-# Required packages for unit tests
-mock
diff --git a/script/pypi-packages-local.sh b/script/pypi-packages-local.sh
deleted file mode 100644
index d9a112f..0000000
--- a/script/pypi-packages-local.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2017 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.
-
-if [ -z "$ANDROID_BUILD_TOP" ]; then
-  echo "Please run the lunch command first."
-else
-  echo "Downloading PyPI packages"
-  sudo pip install -r $ANDROID_BUILD_TOP/test/vts/script/pip_requirements.txt
-  sudo pip install matplotlib # TODO(jaeshin): b/38371975, downloaded separately in download-pypi-packages.sh
-fi
diff --git a/script/run-gce.sh b/script/run-gce.sh
deleted file mode 100755
index a52c59d..0000000
--- a/script/run-gce.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2016 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.
-
-./agent.sh 192.168.0.177 $1
-
-export TARGET_IP=127.0.0.1; export TARGET_PORT=$1; export PYTHONPATH=$PYTHONPATH:..; python -m vts.testcases.host.sample.SampleTestcase
diff --git a/script/run-local.sh b/script/run-local.sh
deleted file mode 100755
index 82cf475..0000000
--- a/script/run-local.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2016 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.
-
-PYTHONPATH=$PYTHONPATH:.. python -m vts.testcases.host.light.conventional.SampleLightTest
-# PYTHONPATH=$PYTHONPATH:.. python -m vts.testcases.host.bluetooth.conventional.SampleBluetoothTest
-# PYTHONPATH=$PYTHONPATH:.. python -m vts.testcases.fuzz.hal_light.conventional.LightFuzzTest $ANDROID_BUILD_TOP/test/vts/testcases/fuzz/hal_light/conventional/LightFuzzTest.config
-# PYTHONPATH=$PYTHONPATH:.. python -m vts.testcases.fuzz.hal_light.conventional_standalone.StandaloneLightFuzzTest $ANDROID_BUILD_TOP/test/vts/testcases/fuzz/hal_light/conventional_standalone/StandaloneLightFuzzTest.config
-# PYTHONPATH=$PYTHONPATH:.. python -m vts.testcases.host.camera.conventional.SampleCameraTest
-# PYTHONPATH=$PYTHONPATH:.. python -m vts.testcases.host.camera.conventional.2_1.SampleCameraV2Test
-# PYTHONPATH=$PYTHONPATH:.. python -m vts.testcases.host.camera.conventional.3_4.SampleCameraV3Test
-# PYTHONPATH=$PYTHONPATH:.. python -m vts.testcases.hal.nfc.V1_0.host.VtsHalNfcV1_0HostTest
-# PYTHONPATH=$PYTHONPATH:.. python -m vts.testcases.hal.camera.provider.V2_4.host.VtsHalCameraProviderV2_4HostTest
-# PYTHONPATH=$PYTHONPATH:.. python -m vts.testcases.hal.gnss.V1_0.host.VtsHalGnssV1_0HostTest
-# PYTHONPATH=$PYTHONPATH:.. python -m vts.testcases.hal.vibrator.V1_0.host.VtsHalVibratorV1_0HostTest
-# PYTHONPATH=$PYTHONPATH:.. python -m vts.testcases.hal.automotive.vehicle.V2_0.host.VtsHalAutomotiveVehicleV2_0HostTest
-# PYTHONPATH=$PYTHONPATH:.. python -m vts.testcases.hal.vr.V1_0.hidl.host.VtsHalVrV1_0HostTest
-# PYTHONPATH=$PYTHONPATH:.. python -m vts.testcases.hal.tv.cec.V1_0.host.VtsHalTvCecV1_0HostTest
-# PYTHONPATH=$PYTHONPATH:.. python -m vts.testcases.host.shell.SampleShellTest
-# PYTHONPATH=$PYTHONPATH:.. python -m vts.testcases.fuzz_test.lib_bionic.LibBionicLibmFuzzTest
-# PYTHONPATH=$PYTHONPATH:.. python -m vts.testcases.system.libc.LibcTest
diff --git a/script/run-unittest.sh b/script/run-unittest.sh
deleted file mode 100755
index d7e2b43..0000000
--- a/script/run-unittest.sh
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2016 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.
-
-if [ -z "$ANDROID_BUILD_TOP" ]; then
-  echo "Missing ANDROID_BUILD_TOP env variable. Run 'lunch' first."
-  exit 1
-fi
-
-avoid_list=(
-  "./testcases/template/host_binary_test/host_binary_test.py"
-  "./testcases/template/llvmfuzzer_test/llvmfuzzer_test.py"
-  "./testcases/template/hal_hidl_replay_test/hal_hidl_replay_test.py"
-  "./testcases/template/binary_test/binary_test.py"
-  "./testcases/template/gtest_binary_test/gtest_binary_test.py"
-  "./testcases/template/hal_hidl_host_test/hal_hidl_host_test.py"
-  "./testcases/template/mobly/mobly_test.py"
-  "./testcases/template/param_test/param_test.py"
-  "./testcases/template/cts_test/cts_test.py"
-  "./runners/host/base_test.py"
-  "./utils/python/controllers/android_device_test.py"
-  )
-
-#######################################
-# Checks if a given file is included in the list of files to avoid
-# Globals:
-# Arguments:
-#   $1: list of files to avoid
-#   $2: the given file
-# Returns:
-#   SUCCESS, if the given file exists in the list
-#   FAILURE, otherwise
-#######################################
-function contains_file() {
-  local -n arr=$1
-  for avoid in "${arr[@]}"; do
-    if [ "$2" = "$avoid" ]; then
-      return  # contains
-    fi
-  done
-  false  # not contains
-}
-
-# Runs all unit tests under test/vts.
-for t in $(find $VTS_FRAMEWORK_DIR -type f -name "*_test.py"); do
-  if contains_file avoid_list $t; then
-    continue
-  fi
-  echo "UNIT TEST", $t
-  PYTHONPATH=$ANDROID_BUILD_TOP/test:$ANDROID_BUILD_TOP/tools/test/connectivity/acts/framework python $t;
-done
diff --git a/script/run_cts_with_profiling.sh b/script/run_cts_with_profiling.sh
deleted file mode 100755
index 07cc8c7..0000000
--- a/script/run_cts_with_profiling.sh
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2016 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.
-
-serial_no=$1
-if [ -z "$serial_no" ]
-then
-  echo "Must provide serial number of the testing device."
-  exit
-fi
-
-local_trace_dir=$2
-if [ -z "$local_trace_dir" ]
-then
-  local_trace_dir=/usr/local/backup/cts-traces
-fi
-
-test_list=$3
-if [ -z "$test_list" ]
-then
-  test_list=${ANDROID_BUILD_TOP}/test/vts/script/cts_test_list.txt
-fi
-
-# allow write to /vendor partition
-adb -s $serial_no root
-adb -s $serial_no disable-verity
-adb -s $serial_no reboot
-adb -s $serial_no wait-for-device
-adb -s $serial_no root
-adb -s $serial_no remount
-adb -s $serial_no shell setenforce 0
-adb -s $serial_no shell chmod 777 -R data/local/tmp
-
-# push profiler libs
-adb -s $serial_no push ${ANDROID_BUILD_TOP}/out/host/linux-x86/vts/android-vts/testcases/DATA/lib64/*-vts.profiler.so vendor/lib64/
-adb -s $serial_no push ${ANDROID_BUILD_TOP}/out/host/linux-x86/vts/android-vts/testcases/DATA/lib/*-vts.profiler.so vendor/lib/
-adb -s $serial_no push ${ANDROID_BUILD_TOP}/out/host/linux-x86/vts/android-vts/testcases/DATA/lib64/libvts_* vendor/lib64/
-adb -s $serial_no push ${ANDROID_BUILD_TOP}/out/host/linux-x86/vts/android-vts/testcases/DATA/lib/libvts_* vendor/lib/
-
-# push vts_profiling_configure
-adb -s $serial_no push ${ANDROID_BUILD_TOP}/out/host/linux-x86/vts/android-vts/testcases/DATA/bin/vts_profiling_configure /data/local/tmp/
-
-# get cts testcases
-tests=()
-while read -r test
-do
-  tests+=($test)
-done < "$test_list"
-
-# run cts testcases
-for i in ${tests[@]}
-do
-  echo Running $i
-  adb -s $serial_no shell rm /data/local/tmp/*.vts.trace
-  adb -s $serial_no shell ./data/local/tmp/vts_profiling_configure enable /vendor/lib/ /vendor/lib64/
-  cts-tradefed run commandAndExit cts -s $serial_no --primary-abi-only --skip-device-info \
-  --skip-system-status-check com.android.compatibility.common.tradefed.targetprep.NetworkConnectivityChecker \
-  --skip-system-status-check com.android.tradefed.suite.checker.KeyguardStatusChecker -m $i
-  # In case device restart during the test run.
-  adb -s $serial_no root
-  adb -s $serial_no shell setenforce 0
-  adb -s $serial_no shell ls /data/local/tmp/*.vts.trace > temp
-  trace_path=$local_trace_dir/$i
-  rm -rf $trace_path
-  mkdir -p $trace_path
-  while read -r trace
-  do
-    adb -s $serial_no pull $trace $trace_path
-  done < "temp"
-done
-
-echo "done"
diff --git a/script/setup-gce.sh b/script/setup-gce.sh
deleted file mode 100755
index 8c64de2..0000000
--- a/script/setup-gce.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2016 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.
-
-adb root
-adb push ${ANDROID_BUILD_TOP}/out/target/product/gce_x86/system/bin/vts_hal_driver /data/local/tmp/vts_hal_driver
-adb push ${ANDROID_BUILD_TOP}/out/target/product/gce_x86/system/bin/vts_hal_agent /data/local/tmp/vts_hal_agent
-adb shell chmod 755 /data/local/tmp/vts_hal_driver
-adb shell chmod 755 /data/local/tmp/vts_hal_agent
-adb shell /data/local/tmp/vts_hal_agent
diff --git a/script/setup-local.sh b/script/setup-local.sh
deleted file mode 100755
index 60a4951..0000000
--- a/script/setup-local.sh
+++ /dev/null
@@ -1,106 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2016 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.
-
-function vts_multidevice_target_setup {
-  DEVICE=$1
-
-  pushd ${ANDROID_BUILD_TOP}
-  adb root
-  adb shell mkdir -p /data/local/tmp/32
-  adb shell mkdir -p /data/local/tmp/64
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/bin/vts_hal_driver32 /data/local/tmp/32/
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/bin/vts_hal_driver64 /data/local/tmp/64/
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/bin/vts_shell_driver32 /data/local/tmp/32/
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/bin/vts_shell_driver64 /data/local/tmp/64/
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/bin/vts_hal_agent32 /data/local/tmp/32/
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/bin/vts_hal_agent64 /data/local/tmp/64/
-
-  echo "install vts framework packages"
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/lib/libvts_common.so /data/local/tmp/32/
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/lib64/libvts_common.so /data/local/tmp/64/
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/lib/libvts_interfacespecification.so /data/local/tmp/32/
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/lib64/libvts_interfacespecification.so /data/local/tmp/64/
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/lib/libvts_drivercomm.so /data/local/tmp/32/
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/lib64/libvts_drivercomm.so /data/local/tmp/64/
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/lib/libvts_datatype.so /data/local/tmp/32/
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/lib64/libvts_datatype.so /data/local/tmp/64/
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/lib/libvts_measurement.so /data/local/tmp/32/
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/lib64/libvts_measurement.so /data/local/tmp/64/
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/lib/libvts_codecoverage.so /data/local/tmp/32/
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/lib64/libvts_codecoverage.so /data/local/tmp/64/
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/lib/libvts_multidevice_proto.so /data/local/tmp/32/
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/lib64/libvts_multidevice_proto.so /data/local/tmp/64/
-
-  echo "install system packages that are not always installed by default"
-  adb push ${ANDROID_BUILD_TOP}/out/host/linux-x86/vts/android-vts/testcases/DATA/lib/libprotobuf-cpp-full.so /data/local/tmp/32/
-  adb push ${ANDROID_BUILD_TOP}/out/host/linux-x86/vts/android-vts/testcases/DATA/lib64/libprotobuf-cpp-full.so /data/local/tmp/64/
-
-  echo "install vts drivers for hidl"
-  adb push ${ANDROID_BUILD_TOP}/out/host/linux-x86/vts/android-vts/testcases/DATA/lib/android.hardware.*@*-vts.driver.so /data/local/tmp/32/
-  adb push ${ANDROID_BUILD_TOP}/out/host/linux-x86/vts/android-vts/testcases/DATA/lib64/android.hardware.*@*-vts.driver.so /data/local/tmp/64/
-
-  echo "install hal packages"
-  adb shell mkdir -p /data/local/tmp/32/hw
-  adb shell mkdir -p /data/local/tmp/64/hw
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/lib/hw/lights.vts.so /data/local/tmp/32/hw/
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/lib64/hw/lights.vts.so /data/local/tmp/64/hw/
-
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/obj_arm/SHARED_LIBRARIES/android.hardware.tests.libhwbinder@1.0_intermediates/LINKED/android.hardware.tests.libhwbinder@1.0.so /data/local/tmp/32/
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/obj/SHARED_LIBRARIES/android.hardware.tests.libhwbinder@1.0_intermediates/LINKED/android.hardware.tests.libhwbinder@1.0.so /data/local/tmp/64/
-
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/obj_arm/NATIVE_TESTS/libhwbinder_benchmark_intermediates/LINKED/libhwbinder_benchmark /data/local/tmp/32/
-  adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/obj/NATIVE_TESTS/libhwbinder_benchmark_intermediates/LINKED/libhwbinder_benchmark /data/local/tmp/64/libhwbinder_benchmark64
-
-  # uncomment for hidl in non-treble devices
-  # adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/lib/android.hardware.nfc@1.0-vts.driver.so /data/local/tmp/32/hw/
-  # adb push ${ANDROID_BUILD_TOP}/out/target/product/${DEVICE}/system/lib64/android.hardware.nfc@1.0-vts.driver.so /data/local/tmp/64/hw/
-  # adb push images/${DEVICE}/32/libhwbinder.so /data/local/tmp/32/libhwbinder.so
-  # adb push images/${DEVICE}/64/libhwbinder.so /data/local/tmp/64/libhwbinder.so
-
-  adb shell mkdir -p /data/local/tmp/spec
-  adb push ${ANDROID_BUILD_TOP}/test/vts/specification/hal/conventional /data/local/tmp/spec/hal/conventional
-  adb push ${ANDROID_BUILD_TOP}/test/vts/specification/lib /data/local/tmp/spec/lib
-  hidl-gen -o ${ANDROID_BUILD_TOP}/output -L vts -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.camera.provider@2.4
-  hidl-gen -o ${ANDROID_BUILD_TOP}/output -L vts -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.camera.common@1.0
-  hidl-gen -o ${ANDROID_BUILD_TOP}/output -L vts -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.camera.device@1.0
-  hidl-gen -o ${ANDROID_BUILD_TOP}/output -L vts -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.camera.device@3.2
-  hidl-gen -o ${ANDROID_BUILD_TOP}/output -L vts -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.camera.metadata@3.2
-  hidl-gen -o ${ANDROID_BUILD_TOP}/output -L vts -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.gnss@1.0
-  hidl-gen -o ${ANDROID_BUILD_TOP}/output -L vts -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.nfc@1.0
-  hidl-gen -o ${ANDROID_BUILD_TOP}/output -L vts -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.vr@1.0
-  hidl-gen -o ${ANDROID_BUILD_TOP}/output -L vts -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.automotive.vehicle@2.0
-  hidl-gen -o ${ANDROID_BUILD_TOP}/output -L vts -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.automotive.vehicle@2.1
-  hidl-gen -o ${ANDROID_BUILD_TOP}/output -L vts -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.sensors@1.0
-  hidl-gen -o ${ANDROID_BUILD_TOP}/output -L vts -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.tv.cec@1.0
-  hidl-gen -o ${ANDROID_BUILD_TOP}/output -L vts -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.vibrator@1.0
-  hidl-gen -o ${ANDROID_BUILD_TOP}/output -L vts -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport android.hardware.contexthub@1.0
-  adb push ${ANDROID_BUILD_TOP}/output/android/hardware /data/local/tmp/spec/android/
-  adb push ${ANDROID_BUILD_TOP}/test/vts/specification/lib/ndk/bionic/1.0/libcV1.vts /data/local/tmp/spec/lib/ndk/bionic/1.0/libcV1.vts
-
-  echo "install asan packages"
-  # asan
-  adb push ${ANDROID_BUILD_TOP}/prebuilts/clang/host/linux-x86/clang-2812033/lib64/clang/3.8/lib/linux/libclang_rt.asan-aarch64-android.so /data/local/tmp/libclang_rt.asan-aarch64-android.so
-
-  adb shell chmod 755 /data/local/tmp/32/vts_hal_driver32
-  adb shell chmod 755 /data/local/tmp/64/vts_hal_driver64
-  adb shell chmod 755 /data/local/tmp/32/vts_shell_driver32
-  adb shell chmod 755 /data/local/tmp/64/vts_shell_driver64
-  adb shell chmod 755 /data/local/tmp/32/vts_hal_agent32
-  adb shell chmod 755 /data/local/tmp/64/vts_hal_agent64
-  popd
-}
-
-vts_multidevice_target_setup $1
diff --git a/script/setup.sh b/script/setup.sh
deleted file mode 100755
index 5b26f25..0000000
--- a/script/setup.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-#
-# Copyright 2016 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.
-
-# Only tested on linux so far
-echo "Install Python SDK"
-sudo apt-get -y install python-dev
-
-echo "Install Protocol Buffer packages"
-sudo apt-get -y install python-protobuf
-sudo apt-get -y install protobuf-compiler
-
-echo "Install Python virtualenv and pip tools for VTS TradeFed and Runner"
-sudo apt-get -y install python-setuptools
-sudo apt-get -y install python-pip
-sudo apt-get -y install python3-pip
-sudo apt-get -y install python-virtualenv
-sudo apt-get -y install build-essential
-
-echo "Install packages for Camera ITS tests"
-sudo apt-get -y install python-tk
-sudo apt-get -y install libjpeg-dev
-sudo apt-get -y install libtiff-dev
diff --git a/script/start-agent.sh b/script/start-agent.sh
deleted file mode 100755
index 306fcce..0000000
--- a/script/start-agent.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-adb shell chmod 755 /data/local/tmp/32/vts_shell_driver32
-adb shell chmod 755 /data/local/tmp/64/vts_shell_driver64
-adb shell killall vts_hal_driver32 > /dev/null 2&>1
-adb shell killall vts_hal_driver64 > /dev/null 2&>1
-adb shell killall vts_shell_driver32 > /dev/null 2&>1
-adb shell killall vts_shell_driver64 > /dev/null 2&>1
-adb shell rm -f /data/local/tmp/vts_driver_*
-adb shell rm -f /data/local/tmp/vts_agent_callback*
-adb shell LD_LIBRARY_PATH=/data/local/tmp/64 \
-/data/local/tmp/64/vts_hal_agent64 \
---hal_driver_path_32=/data/local/tmp/32/vts_hal_driver32 \
---hal_driver_path_64=/data/local/tmp/64/vts_hal_driver64 \
---spec_dir=/data/local/tmp/spec \
---shell_driver_path_32=/data/local/tmp/32/vts_shell_driver32 \
---shell_driver_path_64=/data/local/tmp/64/vts_shell_driver64
-# to run using nohup
-# adb shell LD_LIBRARY_PATH=/data/local/tmp nohup /data/local/tmp/vts_hal_agent
-# /data/local/tmp/vts_hal_driver32 /data/local/tmp/vts_hal_driver64 /data/local/tmp/spec
-# ASAN_OPTIONS=coverage=1 for ASAN
diff --git a/script/target/vts_adapter.sh b/script/target/vts_adapter.sh
deleted file mode 100755
index d22240d..0000000
--- a/script/target/vts_adapter.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/system/bin/sh
-echo "start $1 -p $2 $3 $4"
-nohup $1 -p $2 $3 $4 &>/dev/null &
-echo "done"
diff --git a/script/test_time_breakdown.py b/script/test_time_breakdown.py
deleted file mode 100755
index d2e2a40..0000000
--- a/script/test_time_breakdown.py
+++ /dev/null
@@ -1,218 +0,0 @@
-#!/usr/bin/python
-
-import copy
-import datetime
-import logging
-import os
-import pprint
-import sys
-import time
-
-THIS_YEAR = datetime.datetime.now().year
-
-
-def AnalyzeJavaLog(line):
-    """Analyzes a log line printed by VTS Java harness.
-
-    Args:
-        line: string for a log line.
-
-    Returns:
-        boolean (True if it's a Java log line, False otherwise)
-        string (module type)
-        string (phase name)
-        float (timestamp)
-    """
-    tokens = line.split()
-    timestamp = 0
-    if len(tokens) < 4:
-        return False, None, None, 0
-    # Example
-    # 05-12 07:51:45 I/VtsMultiDeviceTest:
-    date_time_str = "%s-%s %s" % (THIS_YEAR, tokens[0], tokens[1])
-    try:
-        timestamp = time.mktime(datetime.datetime.strptime(
-            date_time_str, "%Y-%m-%d %H:%M:%S").timetuple())
-    except ValueError as e:
-        timestamp = -1
-
-    if (len(tokens[2]) > 2 and tokens[2] == "D/ModuleDef:" and
-            tokens[3][-1] == ":"):
-        return True, tokens[3][:-1], tokens[4], timestamp
-    return False, None, None, timestamp
-
-
-def AnalyzePythonLog(line):
-    """Analyzes a log line printed by VTS Python runner.
-
-    Args:
-        line: string for a log line.
-
-    Returns:
-        boolean (True if it's a Python log line, False otherwise)
-        string (test module name)
-        string (test case name)
-        string ('begin' or 'end')
-        float (timestamp)
-    """
-    tokens = line.split()
-    timestamp = 0
-    test_module_name = None
-    if len(tokens) < 7:
-        return False, test_module_name, None, None, timestamp
-    # Example
-    # [VtsKernelSelinuxFileApi] 05-12 07:51:32.916 INFO ...
-    if len(tokens[0]) > 2 and tokens[0][0] == "[" and tokens[0][-1] == "]":
-        test_module_name = tokens[0][1:-1]
-
-        date_time_str = "%s-%s %s" % (THIS_YEAR, tokens[1], tokens[2])
-        try:
-            timestamp = time.mktime(datetime.datetime.strptime(
-                date_time_str, "%Y-%m-%d %H:%M:%S.%f").timetuple())
-        except ValueError as e:
-            timestamp = -1
-        if tokens[4] == "[Test" and tokens[5] == "Case]":
-            test_case_name = tokens[7]
-            if len(tokens) == 9 and tokens[8] in ["PASS", "FAIL", "SKIP", "ERROR"]:
-                return True, test_module_name, test_case_name, "end", timestamp
-            elif len(tokens) == 8:
-                return True, test_module_name, test_case_name, "begin", timestamp
-            else:
-                assert False, "Error at '%s'" % line
-        return True, test_module_name, None, None, timestamp
-    return False, test_module_name, None, None, timestamp
-
-# Java harness's execution stats.
-java_exec_stats = {}
-# Python runner's execution stats.
-python_exec_stats = {}
-flag_show_samples = False
-
-
-def ProcessEvent(module_type, module_name, timestamp):
-    """Processes a given Java log event."""
-    if module_type in java_exec_stats:
-        java_exec_stats[module_type]["sum"] += timestamp
-        java_exec_stats[module_type]["count"] += 1
-        if module_name in java_exec_stats[module_type]:
-            java_exec_stats[module_type][module_name]["sum"] += timestamp
-            java_exec_stats[module_type][module_name]["count"] += 1
-            if flag_show_samples:
-                java_exec_stats[module_type][module_name]["samples"].append(
-                    timestamp)
-        else:
-            java_exec_stats[module_type][module_name] = {}
-            java_exec_stats[module_type][module_name]["sum"] = timestamp
-            java_exec_stats[module_type][module_name]["count"] = 1
-            if flag_show_samples:
-                java_exec_stats[module_type][module_name]["samples"] = [
-                    timestamp
-                ]
-    else:
-        java_exec_stats[module_type] = {}
-        java_exec_stats[module_type]["sum"] = timestamp
-        java_exec_stats[module_type]["count"] = 1
-
-
-def FilterDict(input_dict, threashold):
-    """Filters items in input_dict whose values are greater than threshold."""
-    result_dict = {}
-    org_dict = copy.copy(input_dict)
-    for key, value in input_dict.iteritems():
-        if value["value"] > threashold and value["state"] == "end":
-            result_dict[key] = value["value"]
-            del org_dict[key]
-    return org_dict, result_dict
-
-
-def main(log_file_path):
-    """Analyzes the phases of an execution caught in the log.
-
-    Args:
-        log_file_path: string, log file path.
-    """
-    print "Log File:", log_file_path
-
-    prev_java_module_type = None
-    prev_java_module_name = None
-    prev_timestamp = 0
-    last_timestamp = 0
-    python_exec_stats = {}
-
-    with open(log_file_path, "r") as log_file:
-        for line in log_file:
-            (is_java_log, java_module_type, java_module_name,
-             timestamp) = AnalyzeJavaLog(line)
-            if is_java_log:
-                last_timestamp = timestamp
-                if prev_java_module_type:
-                    ProcessEvent(prev_java_module_type, prev_java_module_name,
-                                 timestamp - prev_timestamp)
-                prev_java_module_type = java_module_type
-                prev_java_module_name = java_module_name
-                prev_timestamp = timestamp
-            else:
-                (is_python_log, test_module_name, test_case_name, event_type,
-                 timestamp) = AnalyzePythonLog(line)
-                if is_python_log:
-                    last_timestamp = timestamp
-                    if test_case_name:
-                        if event_type == "begin":
-                            if test_case_name not in python_exec_stats:
-                                python_exec_stats[test_case_name] = {}
-                                python_exec_stats[test_case_name][
-                                    "value"] = timestamp
-                                python_exec_stats[test_case_name][
-                                    "state"] = "begin"
-                            else:
-                                for count in range(1, 1000):
-                                    new_test_case_name = "%s_%s" % (
-                                        test_case_name, str(count))
-                                    if new_test_case_name not in python_exec_stats:
-                                        python_exec_stats[
-                                            new_test_case_name] = {}
-                                        python_exec_stats[new_test_case_name][
-                                            "value"] = timestamp
-                                        python_exec_stats[new_test_case_name][
-                                            "state"] = "begin"
-                                        break
-                                python_exec_stats[test_case_name] = {}
-                                python_exec_stats[test_case_name][
-                                    "value"] = timestamp
-                                python_exec_stats[test_case_name][
-                                    "state"] = "begin"
-                        elif event_type == "end":
-                            assert python_exec_stats[test_case_name][
-                                "state"] == "begin"
-                            python_exec_stats[test_case_name]["state"] = "end"
-                            python_exec_stats[test_case_name]["value"] = (
-                                timestamp -
-                                python_exec_stats[test_case_name]["value"])
-                            assert python_exec_stats[test_case_name] >= 0, (
-                                "%s >= 0 ?" %
-                                python_exec_stats[test_case_name])
-
-    if prev_java_module_type:
-        ProcessEvent(prev_java_module_type, prev_java_module_name,
-                     last_timestamp - prev_timestamp)
-
-    for threshold in [600, 300, 180, 120, 60, 30]:
-        python_exec_stats, filtered_dict = FilterDict(python_exec_stats,
-                                                      threshold)
-        print "Python test cases took >%s seconds:" % threshold
-        print filtered_dict.keys()
-    print "Total Execution Time Breakdown:"
-    pprint.pprint(java_exec_stats, width=1)
-
-
-def usage():
-    """Prints usage and exits."""
-    print "Script to analyze the total execution of a VTS run."
-    print "Usage: <this script> <VTS host log file path>"
-    exit(-1)
-
-
-if __name__ == "__main__":
-    if len(sys.argv) != 2:
-        usage()
-    main(sys.argv[1])
diff --git a/script/update_hal_tests.py b/script/update_hal_tests.py
deleted file mode 100755
index 733254a..0000000
--- a/script/update_hal_tests.py
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright 2017 - 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.
-#
-
-import argparse
-import os
-import re
-import sys
-
-from configure.test_case_creator import TestCaseCreator
-from build.vts_spec_parser import VtsSpecParser
-"""Regenerate test configures for all existing tests.
-
-Usage:
-  python update_hal_tests.py
-"""
-
-
-def GetTimeOut(configure_path):
-    """Get the timeout settings from the original configure.
-
-    Args:
-      configure_path: path of the original configure file.
-
-    Returns:
-      timeout values.
-    """
-    time_out = "1m"
-    configure_file = open(configure_path, "r")
-    for line in configure_file.readlines():
-        if "test-timeout" in line:
-            temp = line[(line.find("value") + 7):]
-            time_out = temp[0:temp.find('"')]
-            break
-    return time_out
-
-
-def GetDisableRunTime(configure_path):
-    """Get the stop runtime settings from the original configure.
-
-    Args:
-      configure_path: path of the original configure file.
-
-    Returns:
-      Settings about whether to stop runtime before test.
-    """
-    disable_runtime = False
-    configure_file = open(configure_path, "r")
-    for line in configure_file.readlines():
-        if "binary-test-disable-framework" in line:
-            disable_runtime = True
-            break
-    return disable_runtime
-
-
-test_categories = {
-    'target': ('target/AndroidTest.xml', 'target', False),
-    'target_profiling': ('target_profiling/AndroidTest.xml', 'target', True),
-    'host': ('host/AndroidTest.xml', 'host', False),
-    'host_profiling': ('host_profiling/AndroidTest.xml', 'host', True),
-}
-
-
-def main():
-    build_top = os.getenv('ANDROID_BUILD_TOP')
-    if not build_top:
-        print('Error: Missing ANDROID_BUILD_TOP env variable. Please run '
-              '\'. build/envsetup.sh; lunch <build target>\' Exiting...')
-        sys.exit(1)
-
-    vts_spec_parser = VtsSpecParser()
-    hal_list = vts_spec_parser.HalNamesAndVersions()
-
-    for hal_name, hal_version in hal_list:
-        hal_package_name = 'android.hardware.' + hal_name + '@' + hal_version
-        test_case_creater = TestCaseCreator(vts_spec_parser, hal_package_name)
-        hal_path = hal_name.replace(".", "/")
-        hal_version_str = 'V' + hal_version.replace('.', '_')
-        hal_test_path = os.path.join(build_top, 'test/vts-testcase/hal',
-                                     hal_path, hal_version_str)
-
-        for test_categry, configure in test_categories.iteritems():
-            print test_categry
-            print configure
-            test_configure_path = os.path.join(hal_test_path, configure[0])
-            if os.path.exists(test_configure_path):
-                time_out = GetTimeOut(test_configure_path)
-                stop_runtime = GetDisableRunTime(test_configure_path)
-                test_case_creater.LaunchTestCase(
-                    configure[1],
-                    time_out=time_out,
-                    is_profiling=configure[2],
-                    stop_runtime=stop_runtime,
-                    update_only=True)
-
-
-if __name__ == '__main__':
-    main()
diff --git a/specification/Android.mk b/specification/Android.mk
index f3f1cc1..eb84bfc 100644
--- a/specification/Android.mk
+++ b/specification/Android.mk
@@ -61,6 +61,8 @@
 #   and so on.
 
 LOCAL_MODULE := libvts_interfacespecification
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
 LOCAL_MODULE_TAGS := optional
 
 LOCAL_SRC_FILES := \
@@ -68,7 +70,7 @@
 
 LOCAL_C_INCLUDES := \
   ${vtslib_interfacespec_includes} \
-  system/core/base/include \
+  system/libbase/include \
 
 LOCAL_SHARED_LIBRARIES := \
   ${vtslib_interfacespec_shared_libraries} \
diff --git a/testcases/codelab/__init__.py b/testcases/codelab/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/codelab/__init__.py
+++ /dev/null
diff --git a/testcases/codelab/fmq_test/Android.bp b/testcases/codelab/fmq_test/Android.bp
deleted file mode 100644
index 5d52f9b..0000000
--- a/testcases/codelab/fmq_test/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// 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.
-//
-
-vts_config {
-    name: "VtsCodelabFmqTest",
-}
diff --git a/testcases/codelab/fmq_test/AndroidTest.xml b/testcases/codelab/fmq_test/AndroidTest.xml
deleted file mode 100644
index 66cbe93..0000000
--- a/testcases/codelab/fmq_test/AndroidTest.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="Config for VTS FMQ host-side test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-codelab" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-        <option name="push" value="spec/hardware/interfaces/audio/4.0/vts/PrimaryDevice.vts->/data/local/tmp/spec/android/hardware/audio/4.0/PrimaryDevice.vts"/>
-        <option name="push" value="spec/hardware/interfaces/audio/4.0/vts/types.vts->/data/local/tmp/spec/android/hardware/audio/4.0/types.vts"/>
-        <option name="push" value="spec/hardware/interfaces/audio/4.0/vts/Stream.vts->/data/local/tmp/spec/android/hardware/audio/4.0/Stream.vts"/>
-        <option name="push" value="spec/hardware/interfaces/audio/4.0/vts/StreamOut.vts->/data/local/tmp/spec/android/hardware/audio/4.0/StreamOut.vts"/>
-        <option name="push" value="spec/hardware/interfaces/audio/4.0/vts/StreamIn.vts->/data/local/tmp/spec/android/hardware/audio/4.0/StreamIn.vts"/>
-        <option name="push" value="spec/hardware/interfaces/audio/4.0/vts/Device.vts->/data/local/tmp/spec/android/hardware/audio/4.0/Device.vts"/>
-        <option name="push" value="spec/hardware/interfaces/audio/4.0/vts/DevicesFactory.vts->/data/local/tmp/spec/android/hardware/audio/4.0/DevicesFactory.vts"/>
-        <option name="push" value="spec/hardware/interfaces/audio/4.0/vts/StreamOutCallback.vts->/data/local/tmp/spec/android/hardware/audio/4.0/StreamOutCallback.vts"/>
-        <option name="push" value="spec/hardware/interfaces/audio/common/4.0/vts/types.vts->/data/local/tmp/spec/android/hardware/audio/common/4.0/types.vts"/>
-        <option name="push" value="DATA/lib/android.hardware.audio@4.0-vts.driver.so->/data/local/tmp/32/android.hardware.audio@4.0-vts.driver.so"/>
-        <option name="push" value="DATA/lib64/android.hardware.audio@4.0-vts.driver.so->/data/local/tmp/64/android.hardware.audio@4.0-vts.driver.so"/>
-        <option name="push" value="DATA/lib/android.hardware.audio.common@4.0-vts.driver.so->/data/local/tmp/32/android.hardware.audio.common@4.0-vts.driver.so"/>
-        <option name="push" value="DATA/lib64/android.hardware.audio.common@4.0-vts.driver.so->/data/local/tmp/64/android.hardware.audio.common@4.0-vts.driver.so"/>
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsCodelabFmqTest" />
-        <option name="test-case-path" value="vts/testcases/codelab/fmq_test/VtsCodelabFmqTest" />
-        <option name="test-timeout" value="30s" />
-    </test>
-</configuration>
diff --git a/testcases/codelab/fmq_test/VtsCodelabFmqTest.py b/testcases/codelab/fmq_test/VtsCodelabFmqTest.py
deleted file mode 100644
index c158fec..0000000
--- a/testcases/codelab/fmq_test/VtsCodelabFmqTest.py
+++ /dev/null
@@ -1,415 +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.
-#
-
-import logging
-import random
-import time
-
-from vts.proto import ComponentSpecificationMessage_pb2 as CompSpecMsg
-from vts.runners.host import asserts
-from vts.runners.host import base_test
-from vts.runners.host import test_runner
-from vts.runners.host import const
-from vts.utils.python.mirror import py2pb
-
-
-class VtsCodelabFmqTest(base_test.BaseTestClass):
-    """Testcases for API calls on FMQ from host side.
-
-    Attributes:
-        _audio: HalMirror, audio HAL server instance.
-        _queue1_writer: ResourceFmqMirror, writer of queue 1.
-        _queue1_reader: ResourceFmqMirror, reader of queue 1.
-        _queue2_writer: ResourceFmqMirror, writer of queue 2.
-        _queue2_reader: ResourceFmqMirror, reader of queue 2.
-        _queue3_writer: ResourceFmqMirror, writer of queue 3.
-        _queue3_reader1: ResourceFmqMirror, reader 1 of queue 3.
-        _queue3_reader2: ResourceFmqMirror, reader 2 of queue 3.
-        _queue4_writer: ResourceFmqMirror, writer of queue 4.
-        _queue4_reader: ResourceFmqMirror, reader of queue 4.
-        _stream_in_types: HalMirror, contains interface in IStreamIn.hal.
-    """
-
-    def setUpClass(self):
-        """This class loads audio HAL in our target-side driver.
-
-        It also initializes four queues for testing:
-        Queue 1: synchronized queue (without blocking) between
-                 one writer and one reader, sending uint16_t type in the queue.
-        Queue 2: synchronized queue (with blocking feature) between
-                 one writer and one reader, sending uint32_t type in
-                 the queue.
-        Queue 3: unsynchronized queue (without blocking) between
-                 one writer and two readers, sending double_t type in
-                 the queue.
-        Queue 4: synchronized queue (without blocking) between
-                 one writer and one reader, sending predefined
-                 ReadParameters type in IStreamIn.hal interface.
-        """
-        self.dut = self.android_devices[0]
-        # Initialize an audio hal driver to start all managers
-        # on the target side.
-        # We use it to check sending FMQ with primitive types and
-        # other predefined types (e.g. ReadParameters) in audio HAL.
-        self.dut.hal.InitHidlHal(
-            target_type="audio",
-            target_basepaths=self.dut.libPaths,
-            target_version_major=4,
-            target_version_minor=0,
-            target_package="android.hardware.audio",
-            target_component_name="IDevicesFactory",
-            bits=int(self.abi_bitness))
-        # Create a shortcut for audio HAL server.
-        self._audio = self.dut.hal.audio
-
-        # Initialize a non-blocking, synchronized writer.
-        self._queue1_writer = self.dut.resource.InitFmq(
-            data_type="uint16_t",
-            sync=True,
-            queue_size=2048,
-            blocking=False,
-            client=self.dut.hal.GetTcpClient("audio"))
-        queue1_writer_id = self._queue1_writer.queueId
-        asserts.assertNotEqual(queue1_writer_id, -1)
-
-        # Initialize a non-blocking, synchronized reader.
-        # This reader shares the same queue as self._queue1_writer.
-        self._queue1_reader = self.dut.resource.InitFmq(
-            existing_queue=self._queue1_writer,
-            client=self.dut.hal.GetTcpClient("audio"))
-        queue1_reader_id = self._queue1_reader.queueId
-        asserts.assertNotEqual(queue1_reader_id, -1)
-
-        # Initialize a blocking, synchronized writer.
-        self._queue2_writer = self.dut.resource.InitFmq(
-            data_type="uint32_t",
-            sync=True,
-            queue_size=2048,
-            blocking=True,
-            client=self.dut.hal.GetTcpClient("audio"))
-        queue2_writer_id = self._queue2_writer.queueId
-        asserts.assertNotEqual(queue2_writer_id, -1)
-
-        # Initialize a blocking, synchronized reader.
-        # This reader shares the same queue as self._queue2_writer.
-        self._queue2_reader = self.dut.resource.InitFmq(
-            existing_queue=self._queue2_writer,
-            client=self.dut.hal.GetTcpClient("audio"))
-        queue2_reader_id = self._queue2_reader.queueId
-        asserts.assertNotEqual(queue2_reader_id, -1)
-
-        # Initialize a non-blocking, unsynchronized writer.
-        self._queue3_writer = self.dut.resource.InitFmq(
-            data_type="double_t",
-            sync=False,
-            queue_size=2048,
-            blocking=False,
-            client=self.dut.hal.GetTcpClient("audio"))
-        queue3_writer_id = self._queue3_writer.queueId
-        asserts.assertNotEqual(queue3_writer_id, -1)
-
-        # Initialize a non-blocking, unsynchronized reader 1.
-        # This reader shares the same queue as self._queue3_writer.
-        self._queue3_reader1 = self.dut.resource.InitFmq(
-            existing_queue=self._queue3_writer,
-            client=self.dut.hal.GetTcpClient("audio"))
-        queue3_reader1_id = self._queue3_reader1.queueId
-        asserts.assertNotEqual(queue3_reader1_id, -1)
-
-        # Initialize a non-blocking, unsynchronized reader 2.
-        # This reader shares the same queue as self._queue3_writer and self._queue3_reader1.
-        self._queue3_reader2 = self.dut.resource.InitFmq(
-            existing_queue=self._queue3_writer,
-            client=self.dut.hal.GetTcpClient("audio"))
-        queue3_reader2_id = self._queue3_reader2.queueId
-        asserts.assertNotEqual(queue3_reader2_id, -1)
-
-        # Find the user-defined type in IStreamIn.hal service.
-        self._stream_in_types = self._audio.GetHidlTypeInterface("IStreamIn")
-        read_param_type = self._stream_in_types.GetAttribute("ReadParameters")
-        # Initialize a non-blocking, synchronized writer.
-        self._queue4_writer = self.dut.resource.InitFmq(
-            # ::android::hardware::audio::V4_0::IStreamIn::ReadParameters
-            data_type=read_param_type.name,
-            sync=True,
-            queue_size=2048,
-            blocking=False,
-            client=self.dut.hal.GetTcpClient("audio"))
-        queue4_writer_id = self._queue4_writer.queueId
-        asserts.assertNotEqual(queue4_writer_id, -1)
-
-        # Initialize a non-blocking, synchronized reader.
-        # This reader shares the same queue as self._queue4_writer.
-        self._queue4_reader = self.dut.resource.InitFmq(
-            existing_queue=self._queue4_writer,
-            client=self.dut.hal.GetTcpClient("audio"))
-        queue4_reader_id = self._queue4_reader.queueId
-        asserts.assertNotEqual(queue4_reader_id, -1)
-
-    def testBasic(self):
-        """Tests correctness of basic util methods. """
-        # Check the correctness on queue 1, which uses primitive type uint32_t.
-        asserts.assertEqual(self._queue1_writer.getQuantumSize(), 2)
-        asserts.assertEqual(self._queue1_writer.getQuantumCount(), 2048)
-        asserts.assertEqual(self._queue1_writer.availableToWrite(), 2048)
-        asserts.assertEqual(self._queue1_reader.availableToRead(), 0)
-        asserts.assertTrue(self._queue1_writer.isValid(),
-                           "Queue 1 writer should be valid.")
-        asserts.assertTrue(self._queue1_reader.isValid(),
-                           "Queue 1 reader should be valid.")
-
-        # Also check the correctness on queue 4, which uses predefined type
-        # in audio HAL service.
-        asserts.assertEqual(self._queue4_writer.getQuantumCount(), 2048)
-        asserts.assertEqual(self._queue4_writer.availableToWrite(), 2048)
-        asserts.assertEqual(self._queue4_reader.availableToRead(), 0)
-        asserts.assertTrue(self._queue4_writer.isValid(),
-                           "Queue 4 writer should be valid.")
-        asserts.assertTrue(self._queue4_reader.isValid(),
-                           "Queue 4 reader should be valid.")
-
-    def testSimpleReadWrite(self):
-        """Test a simple interaction between a writer and a reader.
-
-        This test operates on queue 1, and tests basic read/write.
-        """
-        write_data = self.GetRandomIntegers(2048)
-        read_data = []
-        # Writer writes some data.
-        asserts.assertTrue(
-            self._queue1_writer.write(write_data, 2048), "Write queue failed.")
-        # Check reader reads them back correctly.
-        read_success = self._queue1_reader.read(read_data, 2048)
-        asserts.assertTrue(read_success, "Read queue failed.")
-        asserts.assertEqual(read_data, write_data)
-
-    def testReadEmpty(self):
-        """Test reading from an empty queue. """
-        read_data = []
-        read_success = self._queue1_reader.read(read_data, 5)
-        asserts.assertFalse(read_success,
-                            "Read should fail because queue is empty.")
-
-    def testWriteFull(self):
-        """Test writes fail when queue is full. """
-        write_data = self.GetRandomIntegers(2048)
-
-        # This write should succeed.
-        asserts.assertTrue(
-            self._queue1_writer.write(write_data, 2048),
-            "Writer should write successfully.")
-        # This write should fail because queue is full.
-        asserts.assertFalse(
-            self._queue1_writer.write(write_data, 2048),
-            "Writer should fail because queue is full.")
-
-    def testWriteTooLarge(self):
-        """Test writing more than queue capacity. """
-        write_data = self.GetRandomIntegers(2049)
-        # Write overflows the capacity of the queue.
-        asserts.assertFalse(
-            self._queue1_writer.write(write_data, 2049),
-            "Writer should fail since there are too many items to write.")
-
-    def testConsecutiveReadWrite(self):
-        """Test consecutive interactions between reader and writer.
-
-        This test operates on queue 1, and tests consecutive read/write.
-        """
-        for i in range(64):
-            write_data = self.GetRandomIntegers(2048)
-            asserts.assertTrue(
-                self._queue1_writer.write(write_data, 2048),
-                "Writer should write successfully.")
-            read_data = []
-            read_success = self._queue1_reader.read(read_data, 2048)
-            asserts.assertTrue(read_success,
-                               "Reader should read successfully.")
-            asserts.assertEqual(write_data, read_data)
-
-        # Reader should have no more available to read.
-        asserts.assertEqual(0, self._queue1_reader.availableToRead())
-
-    def testBlockingReadWrite(self):
-        """Test blocking read/write.
-
-        This test operates on queue 2, and tests blocking read/write.
-        Writer waits 0.05s and writes.
-        Reader blocks for at most 0.1s, and should read successfully.
-        TODO: support this when reader and writer operates in parallel.
-        """
-        write_data = self.GetRandomIntegers(2048)
-        read_data = []
-
-        # Writer waits for 0.05s and writes.
-        time.sleep(0.05)
-        asserts.assertTrue(
-            self._queue2_writer.writeBlocking(write_data, 2048, 1000000),
-            "Writer should write successfully.")
-
-        # Reader reads.
-        read_success = self._queue2_reader.readBlocking(
-            read_data, 2048, 1000 * 1000000)
-        asserts.assertTrue(read_success,
-                           "Reader should read successfully after blocking.")
-        asserts.assertEqual(write_data, read_data)
-
-    def testBlockingTimeout(self):
-        """Test blocking timeout.
-
-        This test operates on queue2, and tests that reader should time out
-        because there is not data available.
-        """
-        read_data = []
-        read_success = self._queue2_reader.readBlocking(
-            read_data, 5, 100 * 1000000)
-        asserts.assertFalse(
-            read_success,
-            "Reader blocking should time out because there is no data to read."
-        )
-
-    def testUnsynchronizedReadWrite(self):
-        """Test separate read from two readers.
-
-        This test operates on queue3, and tests that two readers can read back
-        what writer writes.
-        """
-        # Prepare write data.
-        write_data = self.GetRandomFloats(2048)
-        read_data1 = []
-        read_data2 = []
-        asserts.assertTrue(
-            self._queue3_writer.write(write_data, 2048),
-            "Writer should write successfully.")
-        read_success1 = self._queue3_reader1.read(read_data1, 2048)
-        read_success2 = self._queue3_reader2.read(read_data2, 2048)
-        asserts.assertTrue(read_success1, "Reader 1 should read successfully.")
-        asserts.assertTrue(read_success2, "Reader 2 should read successfully.")
-        asserts.assertEqual(write_data, read_data1)
-        asserts.assertEqual(write_data, read_data2)
-
-    def testIllegalBlocking(self):
-        """Test blocking is not allowed in unsynchronized queue.
-
-        This test operates on queue 3, and tests that blocking is not allowed
-        in unsynchronized queue.
-        """
-        write_data = self.GetRandomFloats(2048)
-        asserts.assertFalse(
-            self._queue3_writer.writeBlocking(write_data, 2048, 100 * 1000000),
-            "Blocking operation should fail in unsynchronized queue.")
-
-    def testSimpleReadWriteStructType(self):
-        """Test read/write on queue with predefined type in HAL service.
-
-        This test operates on queue 4, and tests reader and writer can interact
-        in a queue with predefined type ReadParameters defined in IStreamIn.hal.
-        """
-        write_data = [{
-            "command": self._stream_in_types.ReadCommand.READ,
-            "params": {
-                "read": 100
-            }
-        }, {
-            "command": self._stream_in_types.ReadCommand.READ,
-            "params": {
-                "read": 1000
-            }
-        }, {
-            "command":
-            self._stream_in_types.ReadCommand.GET_CAPTURE_POSITION,
-            "params": {}
-        }]
-
-        # Convert each item into a VariableSpecificationMessage using Py2Pb library.
-        read_param_type = self._stream_in_types.GetAttribute("ReadParameters")
-        converted_write_data = map(
-            lambda item: py2pb.Convert(read_param_type, item), write_data)
-        asserts.assertTrue(
-            self._queue4_writer.write(converted_write_data, 3),
-            "Writer should write successfully.")
-
-        # Reader reads the data back, result is a list of dict.
-        read_data = []
-        asserts.assertTrue(
-            self._queue4_reader.read(read_data, 3),
-            "Reader should read successfully.")
-        for i in range(len(write_data)):
-            asserts.assertTrue(
-                self.VerifyDict(write_data[i], read_data[i]),
-                "Dictionary item %d mismatch.", i)
-
-    @staticmethod
-    def GetRandomIntegers(data_size):
-        """Helper method to generate a list of random integers between 0 and 100.
-
-        Args:
-            data_size: int, length of result list.
-
-        Returns:
-            int list, list of integers.
-        """
-        return [random.randint(0, 100) for i in range(data_size)]
-
-    @staticmethod
-    def GetRandomFloats(data_size):
-        """Helper method to generate a list of random floats between 0.0 and 100.0.
-
-        Args:
-            data_size: int, length of result list.
-
-        Returns:
-            float list, list of floats.
-        """
-        return [random.random() * 100 for i in range(data_size)]
-
-    @staticmethod
-    def VerifyDict(correct_dict, return_dict):
-        """Check if two dictionary values are equal.
-
-        This method loops through keys in the dictionary. Two dictionaries can
-        differ in such cases:
-        1. A name exists in the correct dictionary, but not in the returned
-           dictionary.
-        2. The values differ for the same name. If the value is a primitive
-           type, such as integer, string, directly compare them.
-           If the value is a nested dict, recursively call this function to
-           verify the nested dict.
-
-        Args:
-            correct_dict: dict, correct dictionary.
-            return_dict: dict, dictionary that is actually returned to reader.
-
-        Returns:
-            bool, true if two dictionaries match, false otherwise.
-        """
-        for name in correct_dict:
-            if name not in return_dict:
-                return False
-            correct_val = correct_dict[name]
-            if type(correct_val) == dict:
-                if not VtsCodelabFmqTest.VerifyDict(correct_val,
-                                                    return_dict[name]):
-                    return False
-            else:
-                if correct_val != return_dict[name]:
-                    return False
-        return True
-
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/codelab/fmq_test/__init__.py b/testcases/codelab/fmq_test/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/codelab/fmq_test/__init__.py
+++ /dev/null
diff --git a/testcases/codelab/hello_world/Android.bp b/testcases/codelab/hello_world/Android.bp
deleted file mode 100644
index 2ed3181..0000000
--- a/testcases/codelab/hello_world/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Copyright (C) 2016 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.
-//
-
-vts_config {
-    name: "VtsCodelabHelloWorldTest",
-}
diff --git a/testcases/codelab/hello_world/AndroidTest.xml b/testcases/codelab/hello_world/AndroidTest.xml
deleted file mode 100644
index 31ea20d..0000000
--- a/testcases/codelab/hello_world/AndroidTest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="Config for VTS CodeLab HelloWorld test case">
-    <option name="config-descriptor:metadata" key="plan" value="vts-codelab" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsCodelabHelloWorldTest"/>
-        <option name="test-case-path" value="vts/testcases/codelab/hello_world/VtsCodelabHelloWorldTest" />
-    </test>
-</configuration>
diff --git a/testcases/codelab/hello_world/VtsCodelabHelloWorldTest.py b/testcases/codelab/hello_world/VtsCodelabHelloWorldTest.py
deleted file mode 100644
index 58dc0e5..0000000
--- a/testcases/codelab/hello_world/VtsCodelabHelloWorldTest.py
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2016 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.
-#
-
-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
-
-
-class VtsCodelabHelloWorldTest(base_test.BaseTestClass):
-    """Two hello world test cases which use the shell driver."""
-
-    def setUpClass(self):
-        self.dut = self.android_devices[0]
-        self.shell = self.dut.shell
-
-    def testEcho1(self):
-        """A simple testcase which sends a command."""
-        results = self.shell.Execute(
-            "echo hello_world")  # runs a shell command.
-        logging.info(str(results[const.STDOUT]))  # prints the stdout
-        asserts.assertEqual(results[const.STDOUT][0].strip(),
-                            "hello_world")  # checks the stdout
-        asserts.assertEqual(results[const.EXIT_CODE][0],
-                            0)  # checks the exit code
-
-    def testEcho2(self):
-        """A simple testcase which sends two commands."""
-        results = self.shell.Execute(["echo hello", "echo world"])
-        logging.info(str(results[const.STDOUT]))
-        asserts.assertEqual(len(results[const.STDOUT]),
-                            2)  # check the number of processed commands
-        asserts.assertEqual(results[const.STDOUT][0].strip(), "hello")
-        asserts.assertEqual(results[const.STDOUT][1].strip(), "world")
-        asserts.assertEqual(results[const.EXIT_CODE][0], 0)
-        asserts.assertEqual(results[const.EXIT_CODE][1], 0)
-
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/codelab/hello_world/__init__.py b/testcases/codelab/hello_world/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/codelab/hello_world/__init__.py
+++ /dev/null
diff --git a/testcases/codelab/hello_world_multi/Android.bp b/testcases/codelab/hello_world_multi/Android.bp
deleted file mode 100644
index ab989ca..0000000
--- a/testcases/codelab/hello_world_multi/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Copyright (C) 2017 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.
-//
-
-vts_config {
-    name: "VtsCodelabHelloWorldMultiDeviceTest",
-}
diff --git a/testcases/codelab/hello_world_multi/AndroidTest.xml b/testcases/codelab/hello_world_multi/AndroidTest.xml
deleted file mode 100644
index a2b4f3b..0000000
--- a/testcases/codelab/hello_world_multi/AndroidTest.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<configuration description="Config for VTS Codelab HelloWorld multi-device test case">
-    <option name="config-descriptor:metadata" key="plan" value="vts-p2p" />
-
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsCodelabHelloWorldMultiDeviceTest"/>
-        <option name="test-case-path" value="vts/testcases/codelab/hello_world_multi/VtsCodelabHelloWorldMultiDeviceTest" />
-    </test>
-
-</configuration>
diff --git a/testcases/codelab/hello_world_multi/VtsCodelabHelloWorldMultiDeviceTest.py b/testcases/codelab/hello_world_multi/VtsCodelabHelloWorldMultiDeviceTest.py
deleted file mode 100644
index 39c2434..0000000
--- a/testcases/codelab/hello_world_multi/VtsCodelabHelloWorldMultiDeviceTest.py
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2017 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.
-#
-
-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
-
-
-class VtsCodelabHelloWorldTest(base_test.BaseTestClass):
-    '''Two hello world test cases which use the shell driver.'''
-
-    def setUpClass(self):
-        logging.info('number of device: %s', self.android_devices)
-
-        asserts.assertEqual(
-            len(self.android_devices), 2, 'number of device is wrong.')
-
-        self.dut1 = self.android_devices[0]
-        self.dut2 = self.android_devices[1]
-        self.shell1 = self.dut1.shell
-        self.shell2 = self.dut2.shell
-
-    def testHelloWorld(self):
-        '''A simple testcase which sends a hello world command.'''
-        command = 'echo Hello World!'
-
-        res1 = self.shell1.Execute(command)
-        res2 = self.shell2.Execute(command)
-
-        asserts.assertFalse(
-            any(res1[const.EXIT_CODE]),
-            'command for device 1 failed: %s' % res1)  # checks the exit code
-        asserts.assertFalse(
-            any(res2[const.EXIT_CODE]),
-            'command for device 2 failed: %s' % res2)  # checks the exit code
-
-    def testSerialNotEqual(self):
-        '''Checks serial number from two device not being equal.'''
-        command = 'getprop | grep ro.serial'
-
-        res1 = self.shell1.Execute(command)
-        res2 = self.shell2.Execute(command)
-
-        asserts.assertFalse(
-            any(res1[const.EXIT_CODE]),
-            'command for device 1 failed: %s' % res1)  # checks the exit code
-        asserts.assertFalse(
-            any(res2[const.EXIT_CODE]),
-            'command for device 2 failed: %s' % res2)  # checks the exit code
-
-        def getSerial(output):
-            '''Get serial from getprop query'''
-            return output.strip().split(' ')[-1][1:-1]
-
-        serial1 = getSerial(res1[const.STDOUT][0])
-        serial2 = getSerial(res2[const.STDOUT][0])
-
-        logging.info('Serial number of device 1: %s', serial1)
-        logging.info('Serial number of device 2: %s', serial2)
-
-        asserts.assertNotEqual(
-            serial1, serial2,
-            'serials from two devices should not be the same')
-
-
-if __name__ == '__main__':
-    test_runner.main()
diff --git a/testcases/codelab/hello_world_multi/__init__.py b/testcases/codelab/hello_world_multi/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/codelab/hello_world_multi/__init__.py
+++ /dev/null
diff --git a/testcases/codelab/hello_world_staging/Android.bp b/testcases/codelab/hello_world_staging/Android.bp
deleted file mode 100644
index 8beafa7..0000000
--- a/testcases/codelab/hello_world_staging/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Copyright (C) 2016 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.
-//
-
-vts_config {
-    name: "VtsCodelabHelloWorldStagingTest",
-}
diff --git a/testcases/codelab/hello_world_staging/AndroidTest.xml b/testcases/codelab/hello_world_staging/AndroidTest.xml
deleted file mode 100644
index 39f536f..0000000
--- a/testcases/codelab/hello_world_staging/AndroidTest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="Config for VTS CodeLab HelloWorld Staging test case">
-    <option name="config-descriptor:metadata" key="plan" value="vts-codelab" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsCodelabHelloWorldStagingTest" />
-        <option name="test-case-path" value="vts/testcases/codelab/hello_world/VtsCodelabHelloWorldTest" />
-    </test>
-</configuration>
diff --git a/testcases/codelab/hidl_handle_test/Android.bp b/testcases/codelab/hidl_handle_test/Android.bp
deleted file mode 100644
index 41a81a2..0000000
--- a/testcases/codelab/hidl_handle_test/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// 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.
-//
-
-vts_config {
-    name: "VtsCodelabHidlHandleTest",
-}
diff --git a/testcases/codelab/hidl_handle_test/AndroidTest.xml b/testcases/codelab/hidl_handle_test/AndroidTest.xml
deleted file mode 100644
index 6755761..0000000
--- a/testcases/codelab/hidl_handle_test/AndroidTest.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="Config for VTS Codelab HidlHandle test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-codelab" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-        <option name="push" value="spec/hardware/interfaces/dumpstate/1.0/vts/DumpstateDevice.vts->/data/local/tmp/spec/android/hardware/dumpstate/1.0/DumpstateDevice.vts"/>
-        <option name="push" value="DATA/lib/android.hardware.dumpstate@1.0-vts.driver.so->/data/local/tmp/32/android.hardware.dumpstate@1.0-vts.driver.so" />
-        <option name="push" value="DATA/lib64/android.hardware.dumpstate@1.0-vts.driver.so->/data/local/tmp/64/android.hardware.dumpstate@1.0-vts.driver.so" />
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsCodelabHidlHandleTest" />
-        <option name="test-case-path" value="vts/testcases/codelab/hidl_handle_test/VtsCodelabHidlHandleTest" />
-        <option name="test-timeout" value="1m" />
-    </test>
-</configuration>
diff --git a/testcases/codelab/hidl_handle_test/VtsCodelabHidlHandleTest.py b/testcases/codelab/hidl_handle_test/VtsCodelabHidlHandleTest.py
deleted file mode 100644
index 3cd78da..0000000
--- a/testcases/codelab/hidl_handle_test/VtsCodelabHidlHandleTest.py
+++ /dev/null
@@ -1,242 +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.
-#
-
-import logging
-import time
-
-from vts.proto import ComponentSpecificationMessage_pb2 as CompSpecMsg
-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
-from vts.utils.python.file import target_file_utils
-
-
-class VtsCodelabHidlHandleTest(base_test.BaseTestClass):
-    """This class tests hidl_handle API calls from host side.
-
-    Attributes:
-        TEST_DIR_PATH: string, directory where the test file will be created.
-        TEST_FILE_PATH: string, path to the file that host side uses.
-        SERVICE_NAME: string, dumpstate HAL full service name.
-        START_COMMAND: string, command to start dumpstate HAL service
-                       since it is a lazy HAL.
-        CHECK_COMMAND: string, command to check if dumpstate HAL service
-                       is started.
-        MAX_RETRY: int, number of times to check if dumpstate HAL service
-                   is started.
-        _created: bool, whether we created TEST_DIR_PATH.
-        _writer: ResourceHidlHandleMirror, writer who writes to TEST_FILE_PATH.
-        _reader: ResourceHidlHandleMirror, reader who reads from TEST_FILE_PATH.
-        _dumpstate: dumpstate HAL server instance.
-        _permission: SELinux permission, either enforcing or permissive.
-                     This needs to set to permissive on the target side
-                     when HAL server writes to user-defined destination.
-                     This class will restore the permission level after
-                     the test finishes.
-    """
-
-    TEST_DIR_PATH = "/data/local/tmp/vts_codelab_tmp/"
-    TEST_FILE_PATH = TEST_DIR_PATH + "test.txt"
-    SERVICE_NAME = "android.hardware.dumpstate@1.0::IDumpstateDevice/default"
-    START_COMMAND = "setprop ctl.interface_start " + SERVICE_NAME
-    CHECK_COMMAND = "lshal --types=b | grep \"" + SERVICE_NAME + "\""
-    MAX_RETRY = 3
-
-    def setUpClass(self):
-        """Necessary setup for the test environment.
-
-        We need to start dumpstate HAL service manually because it is a lazy
-        HAL service, then load it in our target-side driver.
-        Create a tmp directory in /data to create test files in it if the tmp
-        directory doesn't exist.
-        We also need to set SELinux permission to permissive because
-        HAL server and host side are communicating via a file.
-        We will recover SELinux permission during tearDown of this class.
-        """
-        self.dut = self.android_devices[0]
-        # Execute shell command to start dumpstate HAL service because
-        # it is a lazy HAL service.
-        self.dut.shell.Execute(self.START_COMMAND)
-
-        start_hal_success = False
-        # Wait until service is started.
-        # Retry at most three times.
-        for _ in range(self.MAX_RETRY):
-            result = self.dut.shell.Execute(self.CHECK_COMMAND)
-            if result[const.STDOUT][0] != "":
-                start_hal_success = True  # setup successful
-                break
-            time.sleep(1)  # wait one second.
-        # Dumpstate HAL service is still not started after waiting for
-        # self.MAX_RETRY times, stop the testcase.
-        if not start_hal_success:
-            logging.error("Failed to start dumpstate HAL service.")
-            return False
-
-        # Initialize a hal driver to start all managers on the target side,
-        # not used for other purposes.
-        self.dut.hal.InitHidlHal(
-            target_type="dumpstate",
-            target_basepaths=self.dut.libPaths,
-            target_version_major=1,
-            target_version_minor=0,
-            target_package="android.hardware.dumpstate",
-            target_component_name="IDumpstateDevice",
-            bits=int(self.abi_bitness))
-        # Make a shortcut name for the dumpstate HAL server.
-        self._dumpstate = self.dut.hal.dumpstate
-
-        # In order for dumpstate service to write to file, need to set
-        # SELinux to permissive.
-        permission_result = self.dut.shell.Execute("getenforce")
-        self._permission = permission_result[const.STDOUT][0].strip()
-        if self._permission == "Enforcing":
-            self.dut.shell.Execute("setenforce permissive")
-
-        # Check if a tmp directory under /data exists.
-        self._created = False
-        if not target_file_utils.Exists(self.TEST_DIR_PATH, self.dut.shell):
-            # Create a tmp directory under /data.
-            self.dut.shell.Execute("mkdir " + self.TEST_DIR_PATH)
-            # Verify it succeeds. Stop test if it fails.
-            if not target_file_utils.Exists(self.TEST_DIR_PATH,
-                                            self.dut.shell):
-                logging.error("Failed to create " + self.TEST_DIR_PATH +
-                              " directory. Stopping test.")
-                return False
-            # Successfully created the directory.
-            logging.info("Manually created " + self.TEST_DIR_PATH +
-                         " for the test.")
-            self._created = True
-
-    def setUp(self):
-        """Initialize a writer and a reader for each test case.
-
-        We open the file with w+ in every test case, which will create the file
-        if it doesn't exist, or truncate the file if it exists, because some
-        test case won't fully read the content of the file, causing dependency
-        between test cases.
-        """
-        self._writer = self.dut.resource.InitHidlHandleForSingleFile(
-            self.TEST_FILE_PATH,
-            "w+",
-            client=self.dut.hal.GetTcpClient("dumpstate"))
-        self._reader = self.dut.resource.InitHidlHandleForSingleFile(
-            self.TEST_FILE_PATH,
-            "r",
-            client=self.dut.hal.GetTcpClient("dumpstate"))
-        asserts.assertTrue(self._writer is not None,
-                           "Writer should be initialized successfully.")
-        asserts.assertTrue(self._reader is not None,
-                           "Reader should be initialized successfully.")
-        asserts.assertNotEqual(self._writer.handleId, -1)
-        asserts.assertNotEqual(self._reader.handleId, -1)
-
-    def tearDown(self):
-        """Cleanup for each test case.
-
-        This method closes all open file descriptors on target side.
-        """
-        # Close all file descriptors by calling CleanUp().
-        self.dut.resource.CleanUp()
-
-    def tearDownClass(self):
-        """Cleanup after all tests.
-
-        Remove self.TEST_FILE_DIR directory if we created it at the beginning.
-        If SELinux permission level is changed, restore it here.
-        """
-        # Delete self.TEST_DIR_PATH if we created it.
-        if self._created:
-            logging.info("Deleting " + self.TEST_DIR_PATH +
-                         " directory created for this test.")
-            self.dut.shell.Execute("rm -rf " + self.TEST_DIR_PATH)
-
-        # Restore SELinux permission level.
-        if self._permission == "Enforcing":
-            self.dut.shell.Execute("setenforce enforcing")
-
-    def testInvalidWrite(self):
-        """Test writing to a file with no write permission should fail. """
-        read_data = self._reader.writeFile("abc", 3)
-        asserts.assertTrue(
-            read_data is None,
-            "Reader should fail because it doesn't have write permission to the file."
-        )
-
-    def testOpenNonexistingFile(self):
-        """Test opening a nonexisting file with read-only flag should fail.
-
-        This test case first checks if the file exists. If it exists, it skips
-        this test case. If it doesn't, it will try to open the non-existing file
-        with 'r' flag.
-        """
-        if not target_file_utils.Exists(self.TEST_DIR_PATH + "abc.txt",
-                                        self.dut.shell):
-            logging.info("Test opening a non-existing file with 'r' flag.")
-            failed_reader = self.dut.resource.InitHidlHandleForSingleFile(
-                self.TEST_DIR_PATH + "abc.txt",
-                "r",
-                client=self.dut.hal.GetTcpClient("dumpstate"))
-            asserts.assertTrue(
-                failed_reader is None,
-                "Open a non-existing file with 'r' flag should fail.")
-
-    def testSimpleReadWrite(self):
-        """Test a simple read/write interaction between reader and writer. """
-        write_data = "Hello World!"
-        asserts.assertEqual(
-            len(write_data), self._writer.writeFile(write_data,
-                                                    len(write_data)))
-        read_data = self._reader.readFile(len(write_data))
-        asserts.assertEqual(write_data, read_data)
-
-    def testLargeReadWrite(self):
-        """Test consecutive reads/writes between reader and writer. """
-        write_data = "Android VTS"
-
-        for i in range(10):
-            asserts.assertEqual(
-                len(write_data),
-                self._writer.writeFile(write_data, len(write_data)))
-            curr_read_data = self._reader.readFile(len(write_data))
-            asserts.assertEqual(curr_read_data, write_data)
-
-    def testHidlHandleArgument(self):
-        """Test calling APIs in dumpstate HAL server.
-
-        Host side specifies a handle object in resource_manager, ans pass
-        it to dumpstate HAL server to write debug message into it.
-        Host side then reads part of the debug message.
-        """
-        # Prepare a VariableSpecificationMessage to specify the handle object
-        # that will be passed into the HAL service.
-        var_msg = CompSpecMsg.VariableSpecificationMessage()
-        var_msg.type = CompSpecMsg.TYPE_HANDLE
-        var_msg.handle_value.handle_id = self._writer.handleId
-
-        self._dumpstate.dumpstateBoard(var_msg)
-        # Read 1000 bytes to retrieve part of debug message.
-        debug_msg = self._reader.readFile(1000)
-        logging.info("Below are part of result from dumpstate: ")
-        logging.info(debug_msg)
-        asserts.assertNotEqual(debug_msg, "")
-
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/codelab/hidl_handle_test/__init__.py b/testcases/codelab/hidl_handle_test/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/codelab/hidl_handle_test/__init__.py
+++ /dev/null
diff --git a/testcases/codelab/hidl_memory_test/Android.bp b/testcases/codelab/hidl_memory_test/Android.bp
deleted file mode 100644
index 6799c7c..0000000
--- a/testcases/codelab/hidl_memory_test/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// 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.
-//
-
-vts_config {
-    name: "VtsCodelabHidlMemoryTest",
-}
diff --git a/testcases/codelab/hidl_memory_test/AndroidTest.xml b/testcases/codelab/hidl_memory_test/AndroidTest.xml
deleted file mode 100644
index a5db6a8..0000000
--- a/testcases/codelab/hidl_memory_test/AndroidTest.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="Config for VTS VtsCodelabHidlMemory test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-codelab" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-        <option name="push" value="spec/hardware/interfaces/tests/memory/1.0/vts/MemoryTest.vts->/data/local/tmp/spec/android/hardware/tests/memory/1.0/MemoryTest.vts" />
-        <option name="push" value="DATA/lib/android.hardware.tests.memory@1.0-vts.driver.so->/data/local/tmp/32/android.hardware.tests.memory@1.0-vts.driver.so" />
-        <option name="push" value="DATA/lib64/android.hardware.tests.memory@1.0-vts.driver.so->/data/local/tmp/64/android.hardware.tests.memory@1.0-vts.driver.so" />
-        <option name="push" value="DATA/lib/android.hidl.memory.block@1.0-vts.driver.so->/data/local/tmp/32/android.hidl.memory.block@1.0-vts.driver.so" />
-        <option name="push" value="DATA/lib64/android.hidl.memory.block@1.0-vts.driver.so->/data/local/tmp/64/android.hidl.memory.block@1.0-vts.driver.so" />
-        <option name="push" value="DATA/lib/android.hidl.memory.token@1.0-vts.driver.so->/data/local/tmp/32/android.hidl.memory.token@1.0-vts.driver.so" />
-        <option name="push" value="DATA/lib64/android.hidl.memory.token@1.0-vts.driver.so->/data/local/tmp/64/android.hidl.memory.token@1.0-vts.driver.so" />
-        <option name="push" value="DATA/nativetest/hidl_test_servers/hidl_test_servers->/data/nativetest/hidl_test_servers/hidl_test_servers" />
-        <option name="push" value="DATA/nativetest64/hidl_test_servers/hidl_test_servers->/data/nativetest64/hidl_test_servers/hidl_test_servers" />
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsCodelabHidlMemoryTest" />
-        <option name="test-case-path" value="vts/testcases/codelab/hidl_memory_test/VtsCodelabHidlMemoryTest" />
-    </test>
-</configuration>
diff --git a/testcases/codelab/hidl_memory_test/VtsCodelabHidlMemoryTest.py b/testcases/codelab/hidl_memory_test/VtsCodelabHidlMemoryTest.py
deleted file mode 100644
index bc041a2..0000000
--- a/testcases/codelab/hidl_memory_test/VtsCodelabHidlMemoryTest.py
+++ /dev/null
@@ -1,275 +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.
-#
-
-import logging
-import random
-
-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
-from vts.proto import ComponentSpecificationMessage_pb2 as CompSpecMsg
-
-
-class VtsCodelabHidlMemoryTest(base_test.BaseTestClass):
-    """Test hidl_memory APIs from host side to target side and HAL server.
-
-    This class tests APIs to operate on memory object from host side.
-    It also tests sending memory objects (including argument and return values)
-    in HAL servers.
-    We use a test HAL service IMemoryTest.hal in this script.
-
-    Attributes:
-        MAX_RETRY: int, maximum times to check if HAL server has started.
-                   If server is still not started after MAX_RETRY times,
-                   stop the testcase.
-        SERVICE_NAME: string, script to start the memory test HAL server.
-        COMMAND_32: string, command to start the HAL server in a 32-bit device.
-        COMMAND_64: string, command to start the HAL server in a 64-bit device.
-        CHECK_COMMAND: string, command to check if memory HAL service
-                       has started.
-        MEM_VAL: int, data to fill the memory with.
-        MEM_SIZE: int, size of the memory region allocated on the target side.
-        _mem_obj: memory mirror object that users can use to read from or
-                  write into.
-        _tests_memory: HAL server instance that users can directly call API on.
-    """
-    # Some constants.
-    MAX_RETRY = 3
-    SERVICE_NAME = "hidl_test_servers"
-    COMMAND_32 = "/data/nativetest/" + SERVICE_NAME + "/" + SERVICE_NAME + " &"
-    COMMAND_64 = "/data/nativetest64/" + SERVICE_NAME + "/" + SERVICE_NAME + " &"
-    CHECK_COMMAND = "lshal --types=b | grep \"android.hardware.tests.memory@1.0\""
-    MEM_SIZE = 1024
-
-    def setUpClass(self):
-        """Do necessary setup including starting the HAL service.
-
-        This method starts the HAL service and loads it in the target-side
-        driver. It also initializes a memory object on the target side, and
-        users can use it for reading and writing.
-        """
-        self.dut = self.android_devices[0]
-        # Send command to start the HAL server.
-        if int(self.abi_bitness) == 64:
-            self.dut.shell.Execute(self.COMMAND_64)
-        else:
-            self.dut.shell.Execute(self.COMMAND_32)
-
-        # Wait until service is started.
-        # Retry at most three times.
-        start_hal_success = False
-        for _ in range(self.MAX_RETRY):
-            result = self.dut.shell.Execute(self.CHECK_COMMAND)
-            if result[const.STDOUT][0] != "":
-                start_hal_success = True  # setup successful
-                break
-            time.sleep(1)  # wait one second.
-        # memory HAL service is still not started after waiting for
-        # self.MAX_RETRY times, stop the testcase.
-        if not start_hal_success:
-            logging.error("Failed to start hidl_memory HAL service.")
-            return False
-
-        # Load a hidl_memory test hal driver.
-        self.dut.hal.InitHidlHal(
-            target_type="tests_memory",
-            target_basepaths=self.dut.libPaths,
-            target_version_major=1,
-            target_version_minor=0,
-            target_package="android.hardware.tests.memory",
-            target_component_name="IMemoryTest",
-            hw_binder_service_name="memory",
-            bits=int(self.abi_bitness),
-            is_test_hal=True)
-        # Create a shortcut for HAL server.
-        self._tests_memory = self.dut.hal.tests_memory
-
-        # Create a memory object on the client side.
-        self._mem_obj = self.dut.resource.InitHidlMemory(
-            mem_size=self.MEM_SIZE,
-            client=self.dut.hal.GetTcpClient("tests_memory"))
-
-        # Do necessary super class setup.
-        super(VtsCodelabHidlMemoryTest, self).setUpClass()
-
-    def testGetSize(self):
-        """Test getting memory size correctness. """
-        asserts.assertEqual(self.MEM_SIZE, self._mem_obj.getSize())
-
-    def testSimpleWriteRead(self):
-        """Test writing to the memory and reading the same data back. """
-        write_data = "abcdef"
-        # Write data into memory.
-        self._mem_obj.update()
-        self._mem_obj.updateBytes(write_data, len(write_data))
-        self._mem_obj.commit()
-
-        # Read data from memory.
-        self._mem_obj.read()
-        read_data = self._mem_obj.readBytes(len(write_data))
-        asserts.assertEqual(write_data, read_data)
-
-    def testLargeWriteRead(self):
-        """Test consecutive writes and reads using integers.
-
-        For each of the 5 iterations, write 5 integers into
-        different chunks of memory, and read them back.
-        """
-        for i in range(5):
-            # Writes five integers.
-            write_data = [random.randint(0, 100) for j in range(10)]
-            write_data_str = str(bytearray(write_data))
-            # Start writing at offset i * 5.
-            self._mem_obj.updateRange(i * 5, len(write_data_str))
-            self._mem_obj.updateBytes(write_data_str, len(write_data_str),
-                                      i * 5)
-            self._mem_obj.commit()
-
-            # Reads data back.
-            self._mem_obj.readRange(i * 5, len(write_data_str))
-            read_data_str = self._mem_obj.readBytes(len(write_data_str), i * 5)
-            read_data = list(bytearray(read_data_str))
-            # Check if read data is correct.
-            asserts.assertEqual(write_data, read_data)
-
-    def testWriteTwoRegionsInOneBuffer(self):
-        """Test writing into different regions in one memory buffer.
-
-        Writer requests the beginning of the first half and
-        the beginning of the second half of the buffer.
-        It writes to the second half, commits, and reads the data back.
-        Then it writes to the first half, commits, and reads the data back.
-        """
-        write_data1 = "abcdef"
-        write_data2 = "ghijklmno"
-
-        # Reserve both regions.
-        self._mem_obj.updateRange(0, len(write_data1))
-        self._mem_obj.updateRange(self.MEM_SIZE / 2, len(write_data2))
-        # Write to the second region.
-        self._mem_obj.updateBytes(write_data2, len(write_data2),
-                                  self.MEM_SIZE / 2)
-        self._mem_obj.commit()
-
-        # Read from the second region.
-        self._mem_obj.read()
-        read_data2 = self._mem_obj.readBytes(
-            len(write_data2), self.MEM_SIZE / 2)
-        self._mem_obj.commit()
-        # Check if read data is correct.
-        asserts.assertEqual(read_data2, write_data2)
-
-        # Write to the first region.
-        self._mem_obj.updateBytes(write_data1, len(write_data1))
-        self._mem_obj.commit()
-
-        # Read from the first region.
-        self._mem_obj.read()
-        read_data1 = self._mem_obj.readBytes(len(write_data1))
-        self._mem_obj.commit()
-        # Check if read data is correct.
-        asserts.assertEqual(write_data1, read_data1)
-
-    def testSharedMemory(self):
-        """Test HAL server API fillMemory(), which takes in hidl_memory.
-
-        The memory filled out by the HAL server should be seen by the client.
-        """
-        # Zero out memory.
-        self._mem_obj.update()
-        self._mem_obj.updateBytes("\0" * self.MEM_SIZE, self.MEM_SIZE)
-        self._mem_obj.commit()
-
-        # Tell HAL server to fill the memory, should be seen by the client,
-        # because they use shared memory.
-        var_msg = self.prepareHidlMemoryArgument(self._mem_obj.memId)
-        # Fill the memory with each byte be integer value 42.
-        self._tests_memory.fillMemory(var_msg, 42)
-        self._mem_obj.read()
-        read_data = self._mem_obj.readBytes(self.MEM_SIZE)
-        self._mem_obj.commit()
-
-        # Convert read_data to a list of chars, and convert them back to int8_t.
-        read_data = list(read_data)
-        read_data = map(lambda i: ord(i), read_data)
-
-        # Check read data.
-        asserts.assertEqual(read_data, [42] * self.MEM_SIZE)
-
-    def testSameMemoryDifferentId(self):
-        """Test HAL server API haveSomeMemory(), which returns hidl_memory.
-
-        haveSomeMemory() returns input memory directly.
-        We pass the client memory object to this API, and the return value
-        of this API should be registered in our target-side drivers as well.
-        The returned memory object is basically identical to the first memory
-        object held by the client.
-        They have different id, but they share the same memory region.
-        """
-        # Prepare a hidl_memory argument.
-        var_msg = self.prepareHidlMemoryArgument(self._mem_obj.memId)
-
-        # memory_client2 is identical to self._mem_obj because
-        # haveSomeMemory() API in the server just returns the input
-        # hidl_memory reference directly.
-        memory_client2 = self._tests_memory.haveSomeMemory(var_msg)
-        asserts.assertNotEqual(memory_client2, None)
-        asserts.assertNotEqual(memory_client2.memId, -1)
-        # Check these two clients are stored as different objects.
-        asserts.assertNotEqual(memory_client2.memId,
-                               self._mem_obj.memId)
-
-        # Fill the memory with each byte being integer value 50.
-        self._tests_memory.fillMemory(var_msg, 50)
-
-        # Both clients read.
-        self._mem_obj.read()
-        read_data1 = self._mem_obj.readBytes(self.MEM_SIZE)
-        self._mem_obj.commit()
-        memory_client2.read()
-        read_data2 = memory_client2.readBytes(self.MEM_SIZE)
-        memory_client2.commit()
-
-        # Convert read_data to a list of chars, and convert them back to int8_t.
-        read_data1 = list(read_data1)
-        read_data1 = map(lambda i: ord(i), read_data1)
-        read_data2 = list(read_data2)
-        read_data2 = map(lambda i: ord(i), read_data2)
-
-        # Check read data.
-        asserts.assertEqual(read_data1, [50] * self.MEM_SIZE)
-        asserts.assertEqual(read_data2, [50] * self.MEM_SIZE)
-
-    @staticmethod
-    def prepareHidlMemoryArgument(mem_id):
-        """Prepare VariableSpecificationMessage containing hidl_memory argument.
-
-        Args:
-            mem_id: int, identifies the memory object.
-
-        Returns:
-            VariableSpecificationMessage, specifies the memory id.
-        """
-        var_msg = CompSpecMsg.VariableSpecificationMessage()
-        var_msg.type = CompSpecMsg.TYPE_HIDL_MEMORY
-        var_msg.hidl_memory_value.mem_id = mem_id
-        return var_msg
-
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/codelab/hidl_memory_test/__init__.py b/testcases/codelab/hidl_memory_test/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/codelab/hidl_memory_test/__init__.py
+++ /dev/null
diff --git a/testcases/codelab/host_multi_hal/Android.bp b/testcases/codelab/host_multi_hal/Android.bp
deleted file mode 100644
index df9278b..0000000
--- a/testcases/codelab/host_multi_hal/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Copyright (C) 2016 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.
-//
-
-vts_config {
-    name: "VtsCodelabHostDrivenMultiHalTest",
-}
diff --git a/testcases/codelab/host_multi_hal/AndroidTest.xml b/testcases/codelab/host_multi_hal/AndroidTest.xml
deleted file mode 100644
index f8dba0b..0000000
--- a/testcases/codelab/host_multi_hal/AndroidTest.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="Config for VtsCodelabHostDrivenMultiHalTest test case">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-        <option name="push" value="spec/hardware/interfaces/thermal/1.0/vts/Thermal.vts->/data/local/tmp/spec/android/hardware/thermal/1.0/Theraml.vts"/>
-        <option name="push" value="spec/hardware/interfaces/thermal/1.0/vts/types.vts->/data/local/tmp/spec/android/hardware/thermal/1.0/types.vts"/>
-        <option name="push" value="spec/hardware/interfaces/light/2.0/vts/Light.vts->/data/local/tmp/spec/android/hardware/light/2.0/Light.vts"/>
-        <option name="push" value="spec/hardware/interfaces/light/2.0/vts/types.vts->/data/local/tmp/spec/android/hardware/light/2.0/types.vts"/>
-        <option name="push" value="DATA/lib/android.hardware.thermal@1.0-vts.driver.so->/data/local/tmp/32/android.hardware.thermal@1.0-vts.driver.so"/>
-        <option name="push" value="DATA/lib64/android.hardware.thermal@1.0-vts.driver.so->/data/local/tmp/64/android.hardware.thermal@1.0-vts.driver.so"/>
-        <option name="push" value="DATA/lib/android.hardware.light@2.0-vts.driver.so->/data/local/tmp/32/android.hardware.light@2.0-vts.driver.so"/>
-        <option name="push" value="DATA/lib64/android.hardware.light@2.0-vts.driver.so->/data/local/tmp/64/android.hardware.light@2.0-vts.driver.so"/>
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsCodelabHostDrivenMultiHalTest" />
-        <option name="test-case-path" value="vts/testcases/codelab/host_multi_hal/VtsCodelabHostMultiHalTest" />
-        <option name="test-timeout" value="2m"/>
-    </test>
-</configuration>
diff --git a/testcases/codelab/host_multi_hal/VtsCodelabHostMultiHalTest.py b/testcases/codelab/host_multi_hal/VtsCodelabHostMultiHalTest.py
deleted file mode 100644
index 0b6acb4..0000000
--- a/testcases/codelab/host_multi_hal/VtsCodelabHostMultiHalTest.py
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2017 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.
-#
-
-import logging
-import threading
-import time
-
-from vts.runners.host import asserts
-from vts.runners.host import base_test
-from vts.runners.host import test_runner
-
-
-class CodelabHostMultiHalTest(base_test.BaseTestClass):
-    """A simple testcase for testing multiple HALs."""
-
-    def setUpClass(self):
-        """Creates hal mirrors."""
-        self.dut = self.android_devices[0]
-
-        self.dut.hal.InitHidlHal(
-            target_type="light",
-            target_basepaths=self.dut.libPaths,
-            target_version=2.0,
-            target_package="android.hardware.light",
-            target_component_name="ILight",
-            bits=int(self.abi_bitness))
-
-        self.dut.hal.InitHidlHal(
-            target_type="thermal",
-            target_basepaths=self.dut.libPaths,
-            target_version=1.0,
-            target_package="android.hardware.thermal",
-            target_component_name="IThermal",
-            bits=int(self.abi_bitness))
-
-        self.light_types = self.dut.hal.light.GetHidlTypeInterface("types")
-        self.thermal_types = self.dut.hal.thermal.GetHidlTypeInterface("types")
-
-    def LightTest(self):
-        """A sample test for Light HAL."""
-        whiteState = {
-            "color": 0xFFFFFFFF,
-            "flashMode": self.light_types.Flash.TIMED,
-            "flashOnMs": 100,
-            "flashOffMs": 50,
-            "brightnessMode": self.light_types.Brightness.USER,
-        }
-        whiteState_pb = self.light_types.Py2Pb("LightState", whiteState)
-        status = self.dut.hal.light.setLight(self.light_types.Type.BACKLIGHT,
-                                             whiteState_pb)
-        asserts.assertEqual(status, self.light_types.Status.SUCCESS)
-
-    def ThermalTest(self):
-        """A sample test for Thermal HAL."""
-        status, cpuUsages = self.dut.hal.thermal.getCpuUsages()
-        asserts.assertEqual(status['code'],
-                            self.thermal_types.ThermalStatusCode.SUCCESS)
-
-    def testBase(self):
-        """A basic test case which tests APIs of two HALs."""
-        self.LightTest()
-        self.ThermalTest()
-
-    def testMutlThread(self):
-        """A basic test case which tests two HALs in parallel."""
-        def LightWorker():
-            for i in range(20):
-                logging.info("Light test round: %s", i)
-                self.LightTest()
-                time.sleep(1)
-            logging.info("Light test exiting.")
-
-        def ThermalWorker():
-            for i in range(10):
-                logging.info("Thermal test round: %s", i)
-                self.ThermalTest()
-                time.sleep(2)
-            logging.info("Thermal test exiting.")
-
-        t1 = threading.Thread(name='light_test', target=LightWorker)
-        t2 = threading.Thread(name='thermal_test', target=ThermalWorker)
-        t1.start()
-        t2.start()
-
-        t1.join()
-        t2.join()
-
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/codelab/host_multi_hal/__init__.py b/testcases/codelab/host_multi_hal/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/codelab/host_multi_hal/__init__.py
+++ /dev/null
diff --git a/testcases/codelab/target_binary/Android.bp b/testcases/codelab/target_binary/Android.bp
deleted file mode 100644
index 5b20c78..0000000
--- a/testcases/codelab/target_binary/Android.bp
+++ /dev/null
@@ -1,34 +0,0 @@
-//
-// Copyright (C) 2017 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.
-//
-
-cc_test {
-    name: "vts_codelab_target_binary",
-    srcs: ["vts_codelab_target_binary.c"],
-    shared_libs: [
-        "libutils",
-        "libcutils",
-        "liblog",
-    ],
-    include_dirs: ["bionic"],
-    cflags: [
-        "-Werror",
-        "-Wall",
-    ],
-}
-
-vts_config {
-    name: "VtsCodelabTargetBinary",
-}
diff --git a/testcases/codelab/target_binary/AndroidTest.xml b/testcases/codelab/target_binary/AndroidTest.xml
deleted file mode 100644
index bd5120f..0000000
--- a/testcases/codelab/target_binary/AndroidTest.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<configuration description="Config for VTS Target-Side Binary Codelab test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-codelab" />
-    <option name="config-descriptor:metadata" key="plan" value="vts-staging-selftest" />
-
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-        <option name="push" value="DATA/nativetest/vts_codelab_target_binary->/data/nativetest/vts_codelab_target_binary" />
-        <option name="push" value="DATA/nativetest64/vts_codelab_target_binary->/data/nativetest64/vts_codelab_target_binary" />
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsCodelabTargetBinary" />
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/vts_codelab_target_binary/vts_codelab_target_binary->/data/nativetest/vts_codelab_target_binary/vts_codelab_target_binary" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/vts_codelab_target_binary/vts_codelab_target_binary->/data/nativetest64/vts_codelab_target_binary/vts_codelab_target_binary" />
-        <option name="binary-test-type" value="binary" />
-    </test>
-</configuration>
diff --git a/testcases/codelab/target_binary/vts_codelab_target_binary.c b/testcases/codelab/target_binary/vts_codelab_target_binary.c
deleted file mode 100644
index 3b2038e..0000000
--- a/testcases/codelab/target_binary/vts_codelab_target_binary.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright 2017 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.
- */
-
-#include <stdio.h>
-
-#define LOG_TAG "VtsCodelabTargetBinary"
-#include <log/log.h>
-
-int main() {
-  printf("hello Android");
-  ALOGI("hello Android");
-  return 0;
-}
diff --git a/testcases/host/camera_its/Android.bp b/testcases/host/camera_its/Android.bp
deleted file mode 100644
index 33f1029..0000000
--- a/testcases/host/camera_its/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Copyright (C) 2016 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.
-//
-
-vts_config {
-    name: "CameraITSTest",
-}
diff --git a/testcases/host/camera_its/AndroidTest.xml b/testcases/host/camera_its/AndroidTest.xml
deleted file mode 100644
index 7b420aa..0000000
--- a/testcases/host/camera_its/AndroidTest.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="Config for VTS CameraITS test case">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
-    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer">
-        <option name="dep-module" value="numpy" />
-        <option name="dep-module" value="scipy" />
-        <option name="dep-module" value="matplotlib" />
-        <option name="dep-module" value="Pillow" />
-    </multi_target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="CameraITSTest" />
-        <option name="test-case-path" value="vts/testcases/host/camera_its/CameraITSTest" />
-    </test>
-</configuration>
diff --git a/testcases/host/camera_its/CameraITSTest.py b/testcases/host/camera_its/CameraITSTest.py
deleted file mode 100644
index 08aaad5..0000000
--- a/testcases/host/camera_its/CameraITSTest.py
+++ /dev/null
@@ -1,206 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2016 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.
-#
-
-import inspect
-import logging
-import os
-import re
-import subprocess
-import sys
-
-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 CameraITSTest(base_test.BaseTestClass):
-    """Running CameraITS tests in VTS.
-
-    Attributes:
-        _TABLET_TYPES: a list of strings, known tablet product types.
-        dut1: AndroidDevice instance, for 1st device whose front-facing camera
-              is tested.
-        dut2: AndroidDevice instance, for 2nd device whose back-facing camera
-              is tested.
-        display_device: AndroidDevice instance, for a tablet device used as
-                        a display screen.
-    """
-    _TABLET_TYPES = ["dragon"]
-
-    # TODO: use config file to pass in:
-    #          - serial for dut and screen
-    #          - camera id
-    #       so that we can run other test scenes with ITS-in-a-box
-    def setUpClass(self):
-        """Setup ITS running python environment and check for required python modules
-        """
-        # When VTS lab infra is used, the provided device order is:
-        #   DUT (front-facing camera),
-        #   DUT (back-facing camera),
-        #   Tablet (display).
-        # This order shall be preserved when a custom test serving infra is
-        # used.
-        self.dut1 = self.android_devices[0]
-        self.dut2 = self.android_devices[1]
-        self.display_device = self.android_devices[2]
-        # In a local run (e.g., using a VTS test harness), the device order
-        # can be arbitrary. So tablet is detected and chosen as a display
-        # device. Similarly, we need a mechanism to detect DUT which uses
-        # front-facing camera (that can be done here or inside another layer).
-
-        if self.dut1.product_type in self._TABLET_TYPES:
-            temp_device = self.dut1
-            self.dut1 = self.dut2
-            self.dut2 = self.dut3
-            self.display_device = temp_device
-        elif self.dut2.product_type in self._TABLET_TYPES:
-            temp_device = self.dut2
-            self.dut2 = self.display_device
-            self.display_device = temp_device
-
-        self.device_arg = "device=%s" % self.dut1.serial
-        self.display_device_arg = "chart=%s" % self.display_device.serial
-        self.its_path = str(
-            os.path.abspath(os.path.join(self.data_file_path, 'CameraITS')))
-        logging.info("cwd: %s", os.getcwd())
-        logging.info("its_path: %s", self.its_path)
-        self.out_path = logging.log_path
-        os.environ["CAMERA_ITS_TOP"] = self.its_path
-        # Below module check code assumes tradefed is running python 2.7
-        # If tradefed switches to python3, then we will be checking modules in python3 while ITS
-        # scripts should be ran in 2.7.
-        if sys.version_info[:2] != (2, 7):
-            logging.warning("Python version %s found; "
-                            "CameraITSTest only tested with Python 2.7." %
-                            (str(sys.version_info[:3])))
-        logging.info("===============================")
-        logging.info("Python path is: %s" % (sys.executable))
-        logging.info("PYTHONPATH env is: " + os.environ["PYTHONPATH"])
-        import PIL
-        if hasattr(PIL, "__version__"):
-            logging.info("PIL version is %s", PIL.__version__)
-        logging.info("PIL path is " + inspect.getfile(PIL))
-        from PIL import Image
-        logging.info("Image path is " + inspect.getfile(Image))
-        import numpy
-        logging.info("numpy version is " + numpy.__version__)
-        logging.info("numpy path is " + inspect.getfile(numpy))
-        import scipy
-        logging.info("scipy version is " + scipy.__version__)
-        logging.info("scipy path is " + inspect.getfile(scipy))
-        import matplotlib
-        logging.info("matplotlib version is " + matplotlib.__version__)
-        logging.info("matplotlib path is " + inspect.getfile(matplotlib))
-        from matplotlib import pylab
-        logging.info("pylab path is " + inspect.getfile(pylab))
-        logging.info("===============================")
-        modules = [
-            "numpy", "PIL", "Image", "matplotlib", "pylab", "scipy.stats",
-            "scipy.spatial"
-        ]
-        for m in modules:
-            try:
-                if m == "Image":
-                    # Image modules are now imported from PIL
-                    exec ("from PIL import Image")
-                elif m == "pylab":
-                    exec ("from matplotlib import pylab")
-                else:
-                    exec ("import " + m)
-            except ImportError as e:
-                asserts.fail("Cannot import python module %s: %s" % (m,
-                                                                     str(e)))
-
-        # Add ITS module path to path
-        its_path = os.path.join(self.its_path, "pymodules")
-        env_python_path = os.environ["PYTHONPATH"]
-        self.pythonpath = env_python_path if its_path in env_python_path else \
-                "%s:%s" % (its_path, env_python_path)
-        os.environ["PYTHONPATH"] = self.pythonpath
-        logging.info("new PYTHONPATH: %s", self.pythonpath)
-
-    def RunTestcase(self, testpath):
-        """Runs the given testcase and asserts the result.
-
-        Args:
-            testpath: string, format tests/[scenename]/[testname].py
-        """
-        testname = re.split("/|\.", testpath)[-2]
-        cmd = [
-            'python', os.path.join(self.its_path, testpath), self.device_arg,
-            self.display_device_arg
-        ]
-        outdir = self.out_path
-        outpath = os.path.join(outdir, testname + "_stdout.txt")
-        errpath = os.path.join(outdir, testname + "_stderr.txt")
-        logging.info("cwd: %s", os.getcwd())
-        logging.info("cmd: %s", cmd)
-        logging.info("outpath: %s", outpath)
-        logging.info("errpath: %s", errpath)
-        with open(outpath, "w") as fout, open(errpath, "w") as ferr:
-            retcode = subprocess.call(
-                cmd, stderr=ferr, stdout=fout, cwd=outdir)
-        if retcode != 0 and retcode != 101:
-            # Dump all logs to host log if the test failed
-            with open(outpath, "r") as fout, open(errpath, "r") as ferr:
-                logging.info(fout.read())
-                logging.error(ferr.read())
-
-        asserts.assertTrue(retcode == 0 or retcode == 101,
-                           "ITS %s retcode %d" % (testname, retcode))
-
-    def FetchTestPaths(self, scene):
-        """Returns a list of test paths for a given test scene.
-
-        Args:
-            scnee: one of ITS test scene name.
-        """
-        its_path = self.its_path
-        paths = [
-            os.path.join("tests", scene, s)
-            for s in os.listdir(os.path.join(its_path, "tests", scene))
-            if s[-3:] == ".py" and s[:4] == "test"
-        ]
-        paths.sort()
-        return paths
-
-    def generateAllTestCases(self):
-        # Unused packages:
-        # * No plan to support in the near future
-        #   - "dng_noise_model"
-        #   - "inprog"
-        #   - "rolling_shutter_skew"
-        # * Not for ITS box (but for diffuser plate)
-        #   - "scene5"
-        # * Not for ITS box (but for sensor_fusion rotation rig, high-end only)
-        #   - "sensor_fusion"
-        # * Add those scenes to the below list after scene swapping is ported:
-        #     "scene1"
-        #     "scene2"
-        #     "scene3"
-        #     "scene4"
-        for test_package_name in ["scene0"]:
-            testpaths = self.FetchTestPaths(test_package_name)
-            self.runGeneratedTests(
-                test_func=self.RunTestcase,
-                settings=testpaths,
-                name_func=lambda path: "%s_%s" % (re.split("/|\.", path)[-3], re.split("/|\.", path)[-2]))
-
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/host/camera_its/__init__.py b/testcases/host/camera_its/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/host/camera_its/__init__.py
+++ /dev/null
diff --git a/testcases/host/fastboot/Android.bp b/testcases/host/fastboot/Android.bp
deleted file mode 100644
index 960e0b5..0000000
--- a/testcases/host/fastboot/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// 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.
-//
-
-vts_config {
-    name: "VtsFastbootVerification",
-}
diff --git a/testcases/host/fastboot/AndroidTest.xml b/testcases/host/fastboot/AndroidTest.xml
deleted file mode 100644
index 16fcd15..0000000
--- a/testcases/host/fastboot/AndroidTest.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="Config for VTS Userspace Fastboot Verification Test">
-    <option name="config-descriptor:metadata" key="plan" value="vts-firmware" />
-    <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="VtsFastbootVerification"/>
-        <option name="test-case-path" value="vts/testcases/host/fastboot/VtsFastbootVerification" />
-        <option name="precondition-first-api-level" value="29" />
-    </test>
-</configuration>
diff --git a/testcases/host/fastboot/VtsFastbootVerification.py b/testcases/host/fastboot/VtsFastbootVerification.py
deleted file mode 100644
index e888c9f..0000000
--- a/testcases/host/fastboot/VtsFastbootVerification.py
+++ /dev/null
@@ -1,147 +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.
-#
-"""VTS test to verify userspace fastboot implementation."""
-
-import os
-import subprocess
-
-from vts.runners.host import asserts
-from vts.runners.host import base_test
-from vts.runners.host import test_runner
-from vts.utils.python.android import api
-from vts.utils.python.controllers import fastboot
-
-FASTBOOT_VAR_SUPER_PARTITION_NAME = "super-partition-name"
-
-class VtsFastbootVerificationTest(base_test.BaseTestClass):
-    """Verifies userspace fastboot implementation."""
-
-    def setUpClass(self):
-        """Initializes the DUT and places devices into fastboot mode.
-
-        Attributes:
-            gtest_bin_path: Path to the fuzzy_fastboot gtest binary
-        """
-        self.dut = self.android_devices[0]
-        # precondition_api_level only skips test cases, issuing the
-        # 'adb reboot fastboot' could cause undefined behavior in a
-        # pre-Q device and hence we need to skip the setup for those
-        # devices.
-        if self.dut.getLaunchApiLevel() <= api.PLATFORM_API_LEVEL_P:
-          return
-        #Skip for automotive with Android Q or lower
-        self.skipped = False
-        if self.dut.getLaunchApiLevel() <= api.PLATFORM_API_LEVEL_Q and \
-           self.dut.getProp("ro.hardware.type") == "automotive":
-          self.skipped = True
-          return
-        self.shell = self.dut.shell
-        self.gtest_bin_path = os.path.join("host", "nativetest64", "fuzzy_fastboot",
-                                           "fuzzy_fastboot")
-        self.dut.cleanUp()
-        self.dut.adb.reboot_fastboot()
-
-        # wait till the device is initialised in proper state.
-        # devices with ethernet in recovery takes sometime to communicate via fastboot.
-        # Insuch cases self diagnosis marks the testcases as failure, to accommodate such
-        # scenarios, we add this check here
-        while not self.dut.Heal():
-          pass
-        # The below command blocks until the device enters fastbootd mode to
-        # ensure that the device is in fastbootd mode when setUpClass exits.
-        # If this is not done, VTS self-diagnosis tries to recover the
-        # device as part of test case setup(currently the check returns
-        # immediately without a timeout).
-        self.dut.fastboot.getvar("is-userspace")
-
-    def testFastbootdSlotOperations(self):
-        if self.skipped:
-          return
-        """Runs fuzzy_fastboot gtest to verify slot operations in fastbootd implementation."""
-        # Test slot operations and getvar partition-type
-        fastboot_gtest_cmd_slot_operations = [
-            "%s" % self.gtest_bin_path, "--serial=%s" % fastboot.fastbootSerial(self.dut.serial),
-            "--gtest_filter=Conformance.Slots:Conformance.SetActive"
-        ]
-        # TODO(b/117181762): Add a serial number argument to fuzzy_fastboot.
-        retcode = subprocess.call(fastboot_gtest_cmd_slot_operations)
-        asserts.assertTrue(retcode == 0, "Incorrect slot operations")
-
-    def testLogicalPartitionCommands(self):
-        if self.skipped:
-          return
-        """Runs fuzzy_fastboot to verify getvar commands related to logical partitions."""
-        fastboot_gtest_cmd_logical_partition_compliance = [
-            "%s" % self.gtest_bin_path, "--serial=%s" % fastboot.fastbootSerial(self.dut.serial),
-            "--gtest_filter=LogicalPartitionCompliance.GetVarIsLogical:LogicalPartitionCompliance.SuperPartition"
-        ]
-        retcode = subprocess.call(fastboot_gtest_cmd_logical_partition_compliance)
-        asserts.assertTrue(retcode == 0, "Error in logical partition operations")
-
-    def testSuperPartitionName(self):
-        if self.skipped:
-          return
-        """Devices launching with DAP must have a super partition named 'super'"""
-        out = self.dut.fastboot.getvar("super-partition-name").strip()
-        asserts.assertTrue("%s: super" % FASTBOOT_VAR_SUPER_PARTITION_NAME in out,
-                           "Devices launching with DAP must have a 'super' partition")
-
-    def testFastbootReboot(self):
-        if self.skipped:
-          return
-        """Runs fuzzy_fastboot to verify the commands to reboot into fastbootd and bootloader."""
-        fastboot_gtest_cmd_reboot_test = [
-            "%s" % self.gtest_bin_path, "--serial=%s" % fastboot.fastbootSerial(self.dut.serial),
-            "--gtest_filter=LogicalPartitionCompliance.FastbootRebootTest"
-        ]
-        retcode = subprocess.call(fastboot_gtest_cmd_reboot_test)
-        asserts.assertTrue(retcode == 0, "Error in fastbootd reboot test")
-        # wait till the device is ready for next testcase after reboot. To prevent
-        # self diagnosis marking as failure
-        while not self.dut.Heal():
-            pass
-
-
-    def testLogicalPartitionFlashing(self):
-        if self.skipped:
-          return
-        """Runs fuzzy_fastboot to verify the commands to reboot into fastbootd and bootloader."""
-        fastboot_gtest_cmd_lp_flashing = [
-            "%s" % self.gtest_bin_path, "--serial=%s" % fastboot.fastbootSerial(self.dut.serial),
-            "--gtest_filter=LogicalPartitionCompliance.CreateResizeDeleteLP"
-        ]
-        retcode = subprocess.call(fastboot_gtest_cmd_lp_flashing)
-        asserts.assertTrue(retcode == 0, "Error in flashing logical partitions")
-
-    def testCpuAbiInfo(self):
-        """Devices launching with DAP must export cpu-abi."""
-        first_line = self.dut.fastboot.getvar("cpu-abi").splitlines()[0]
-        # Extracts the ABI from the first line, which is something like: 'cpu-abi: arm64-v8a'.
-        cpu_abi = first_line[len("cpu-abi: "):].strip()
-        asserts.assertTrue(cpu_abi in ['armeabi-v7a', 'arm64-v8a',
-                                       'mips', 'mips64',
-                                       'x86', 'x86_64'],
-                           "Unknown CPU ABI '%s' found in fastbootd" % cpu_abi)
-
-    def tearDownClass(self):
-        """Reboot to Android."""
-        if self.dut.isBootloaderMode or self.dut.fastboot.isFastbootOverTcp(self.dut.serial):
-            self.dut.reboot()
-            self.dut.waitForBootCompletion()
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/host/fastboot/__init__.py b/testcases/host/fastboot/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/host/fastboot/__init__.py
+++ /dev/null
diff --git a/testcases/host/fastboot_getvar/Android.bp b/testcases/host/fastboot_getvar/Android.bp
index ceef146..ffc90eb 100644
--- a/testcases/host/fastboot_getvar/Android.bp
+++ b/testcases/host/fastboot_getvar/Android.bp
@@ -12,12 +12,15 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 java_test_host {
     name: "FastbootGetvarUserspaceTest",
     libs: [
         "compatibility-tradefed",
         "tradefed",
-        "tradefed-common-util",
     ],
     srcs: ["src/**/*.java"],
     test_suites: [
diff --git a/testcases/host/fastboot_getvar/AndroidTest.xml b/testcases/host/fastboot_getvar/AndroidTest.xml
index c801191..69d0787 100644
--- a/testcases/host/fastboot_getvar/AndroidTest.xml
+++ b/testcases/host/fastboot_getvar/AndroidTest.xml
@@ -17,9 +17,8 @@
     <option name="test-suite-tag" value="apct" />
     <option name="test-suite-tag" value="apct-junit" />
 
-    <object type="module_controller" class="com.android.tradefed.testtype.suite.module.MinApiLevelModuleController">
-        <option name="min-api-level" value="30" />
-        <option name="api-level-prop" value="ro.product.first_api_level" />
+    <object type="module_controller" class="com.android.tradefed.testtype.suite.module.ShippingApiLevelModuleController">
+        <option name="vsr-min-api-level" value="31" />
     </object>
 
     <test class="com.android.tradefed.testtype.HostTest" >
diff --git a/testcases/host/fastboot_getvar/src/com/android/tests/FastbootGetvarUserspaceTest.java b/testcases/host/fastboot_getvar/src/com/android/tests/FastbootGetvarUserspaceTest.java
index f135372..24e541b 100644
--- a/testcases/host/fastboot_getvar/src/com/android/tests/FastbootGetvarUserspaceTest.java
+++ b/testcases/host/fastboot_getvar/src/com/android/tests/FastbootGetvarUserspaceTest.java
@@ -17,9 +17,12 @@
 package com.android.tests.fastboot_getvar;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import com.android.tradefed.device.DeviceProperties;
 import com.android.tradefed.device.ITestDevice;
 import com.android.tradefed.invoker.TestInformation;
 import com.android.tradefed.log.LogUtil.CLog;
@@ -31,6 +34,7 @@
 import java.text.SimpleDateFormat;
 import java.util.Arrays;
 import java.util.HashSet;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import org.junit.Assert;
@@ -45,44 +49,63 @@
     private static final int PLATFORM_API_LEVEL_R = 30;
     private static final int ANDROID_RELEASE_VERSION_R = 11;
 
-    private static ITestDevice sDevice;
     private static String executeShellKernelARM64 =
             "cat /proc/config.gz | gzip -d | grep CONFIG_ARM64=y";
-    private static boolean isGKI;
+
+    // IMPORTANT: Multiple instances of this class will be created while sharding
+    // the tests across multiple devices. So it needs to use ConcurrentHashMap to
+    // make these static variables thread-safe.
+    private static ConcurrentHashMap<ITestDevice, String> sDeviceCodeName =
+            new ConcurrentHashMap<>();
+    private static ConcurrentHashMap<ITestDevice, Boolean> sDeviceIsGKI10 =
+            new ConcurrentHashMap<>();
 
     @BeforeClassWithInfo
     public static void setUpClass(TestInformation testInfo) throws Exception {
-        sDevice = testInfo.getDevice();
-
-        boolean isKernelARM64 =
-                sDevice.executeShellCommand(executeShellKernelARM64).contains("CONFIG_ARM64");
-        isGKI = false;
+        // Collects information while adb is available, prior to rebooting into fastbootd.
+        boolean isKernelARM64 = testInfo.getDevice()
+                                        .executeShellCommand(executeShellKernelARM64)
+                                        .contains("CONFIG_ARM64");
+        boolean isGKI10 = false;
         if (isKernelARM64) {
-            String output = sDevice.executeShellCommand("uname -r");
+            String output = testInfo.getDevice().executeShellCommand("uname -r");
             Pattern p = Pattern.compile("^(\\d+)\\.(\\d+)");
             Matcher m1 = p.matcher(output);
-            Assert.assertTrue(m1.find());
-            isGKI = !(Integer.parseInt(m1.group(1)) < 5 ||
-                      (Integer.parseInt(m1.group(1)) == 5 &&
-                       Integer.parseInt(m1.group(2)) < 4));
+            assertTrue(m1.find());
+            isGKI10 = (Integer.parseInt(m1.group(1)) == 5 && Integer.parseInt(m1.group(2)) == 4);
         }
 
+        // Gets the code name via adb first. The following test cases might
+        // assert different values based on if the build is a final release build
+        // or not, where the value of the code name will be "REL" in this case.
+        String codeName = testInfo.getDevice().getProperty(DeviceProperties.BUILD_CODENAME);
+        assertNotNull(codeName);
+        codeName = codeName.trim();
+
+        // Saves the local variables to static variables for later use, because adb
+        // is not available in the following tests.
+        sDeviceIsGKI10.put(testInfo.getDevice(), isGKI10);
+        sDeviceCodeName.put(testInfo.getDevice(), codeName);
+
         // Transfers from adb to fastbootd.
-        if (!isGKI) {
-            sDevice.rebootIntoFastbootd();
+        if (!isGKI10) {
+            testInfo.getDevice().rebootIntoFastbootd();
         }
     }
 
     @Before
     public void setUp() throws Exception {
-        Assume.assumeTrue("Skipping test for fastbootd on GKI", !isGKI);
+        Assume.assumeFalse("Skipping test for fastbootd on GKI 1.0",
+                sDeviceIsGKI10.get(getTestInformation().getDevice()));
     }
 
     @AfterClassWithInfo
     public static void tearDownClass(TestInformation testInfo) throws Exception {
-        if (!isGKI) {
-            testInfo.getDevice().reboot(); // back to adb.
+        if (!sDeviceIsGKI10.get(testInfo.getDevice())) {
+            testInfo.getDevice().reboot(); // reboot from fastbootd to adb.
         }
+        sDeviceIsGKI10.remove(testInfo.getDevice());
+        sDeviceCodeName.remove(testInfo.getDevice());
     }
 
     /* Devices launching in R and after must export cpu-abi. */
@@ -90,7 +113,7 @@
     public void testCpuAbiInfo() throws Exception {
         final HashSet<String> allCpuAbis = new HashSet<String>(
                 Arrays.asList("armeabi-v7a", "arm64-v8a", "mips", "mips64", "x86", "x86_64"));
-        String cpuAbi = sDevice.getFastbootVariable("cpu-abi");
+        String cpuAbi = getTestInformation().getDevice().getFastbootVariable("cpu-abi");
         CLog.d("cpuAbi: '%s'", cpuAbi);
         assertTrue(allCpuAbis.contains(cpuAbi));
     }
@@ -98,7 +121,7 @@
     /* Devices launching in R and after must export version-os. */
     @Test
     public void testOsVersion() throws Exception {
-        String osVersion = sDevice.getFastbootVariable("version-os");
+        String osVersion = getTestInformation().getDevice().getFastbootVariable("version-os");
         CLog.d("os version: '%s'", osVersion);
         // The value of osVersion might be a letter on pre-release builds, e.g., R,
         // or is a number representing the Android release version, e.g., 11.
@@ -113,22 +136,29 @@
     /* Devices launching in R and after must export version-vndk. */
     @Test
     public void testVndkVersion() throws Exception {
-        String vndkVersion = sDevice.getFastbootVariable("version-vndk");
-        CLog.d("vndk version: '%s'", vndkVersion);
-        // The value of vndkVersion might be a letter on pre-release builds, e.g., R,
-        // or is a number representing the API level on final release builds, e.g., 30.
-        try {
-            int intVndkVersion = Integer.parseInt(vndkVersion);
-            assertTrue(intVndkVersion >= PLATFORM_API_LEVEL_R);
-        } catch (NumberFormatException nfe) {
-            assertTrue(vndkVersion.matches("[A-Z]+"));
+        String vndkVersion = getTestInformation().getDevice().getFastbootVariable("version-vndk");
+        String codeName = sDeviceCodeName.get(getTestInformation().getDevice());
+        CLog.d("vndk version: '%s', code name: '%s'", vndkVersion, codeName);
+        // The value of vndkVersion might be a letter or a string on pre-release builds,
+        // e.g., R or Tiramisu.
+        // And it is a number representing the API level on final release builds, e.g., 30.
+        if ("REL".equals(codeName)) {
+            try {
+                int intVndkVersion = Integer.parseInt(vndkVersion);
+                assertTrue(intVndkVersion >= PLATFORM_API_LEVEL_R);
+            } catch (NumberFormatException nfe) {
+                fail("ro.vndk.version should be a number. But the current value is " + vndkVersion);
+            }
+        } else {
+            assertNotNull(vndkVersion);
         }
     }
 
     /* Devices launching in R and after must export dynamic-partition. */
     @Test
     public void testDynamicPartition() throws Exception {
-        String dynamic_partition = sDevice.getFastbootVariable("dynamic-partition");
+        String dynamic_partition =
+                getTestInformation().getDevice().getFastbootVariable("dynamic-partition");
         CLog.d("dynamic_partition: '%s'", dynamic_partition);
         assertTrue(dynamic_partition.equals("true"));
     }
@@ -136,7 +166,8 @@
     /* Devices launching in R and after must export treble-enabled. */
     @Test
     public void testTrebleEnable() throws Exception {
-        String treble_enabled = sDevice.getFastbootVariable("treble-enabled");
+        String treble_enabled =
+                getTestInformation().getDevice().getFastbootVariable("treble-enabled");
         CLog.d("treble_enabled: '%s'", treble_enabled);
         assertTrue(treble_enabled.equals("true") || treble_enabled.equals("false"));
     }
@@ -144,7 +175,8 @@
     /* Devices launching in R and after must export first-api-level. */
     @Test
     public void testFirstApiLevel() throws Exception {
-        String first_api_level = sDevice.getFastbootVariable("first-api-level");
+        String first_api_level =
+                getTestInformation().getDevice().getFastbootVariable("first-api-level");
         CLog.d("first_api_level: '%s'", first_api_level);
         try {
             int api_level = Integer.parseInt(first_api_level);
@@ -157,7 +189,7 @@
     /* Devices launching in R and after must export security-patch-level. */
     @Test
     public void testSecurityPatchLevel() throws Exception {
-        String SPL = sDevice.getFastbootVariable("security-patch-level");
+        String SPL = getTestInformation().getDevice().getFastbootVariable("security-patch-level");
         CLog.d("SPL: '%s'", SPL);
         try {
             SimpleDateFormat template = new SimpleDateFormat("yyyy-MM-dd");
@@ -170,7 +202,8 @@
     /* Devices launching in R and after must export system-fingerprint. */
     @Test
     public void testSystemFingerprint() throws Exception {
-        String systemFingerprint = sDevice.getFastbootVariable("system-fingerprint");
+        String systemFingerprint =
+                getTestInformation().getDevice().getFastbootVariable("system-fingerprint");
         CLog.d("system fingerprint: '%s'", systemFingerprint);
         verifyFingerprint(systemFingerprint);
     }
@@ -178,7 +211,8 @@
     /* Devices launching in R and after must export vendor-fingerprint. */
     @Test
     public void testVendorFingerprint() throws Exception {
-        String vendorFingerprint = sDevice.getFastbootVariable("vendor-fingerprint");
+        String vendorFingerprint =
+                getTestInformation().getDevice().getFastbootVariable("vendor-fingerprint");
         CLog.d("vendor fingerprint: '%s'", vendorFingerprint);
         verifyFingerprint(vendorFingerprint);
     }
@@ -207,15 +241,6 @@
         assertEquals(2, devicePlatform.length);
         assertTrue(devicePlatform[0].matches("^[a-zA-Z0-9_-]+$")); // DEVICE
 
-        // Platform version is a letter on pre-release builds, e.g., R, or
-        // is a number on final release # builds, e.g., 11.
-        try {
-            int releaseVersion = Integer.parseInt(devicePlatform[1]); // VERSION.RELEASE
-            assertTrue(releaseVersion >= ANDROID_RELEASE_VERSION_R);
-        } catch (NumberFormatException nfe) {
-            assertTrue(devicePlatform[1].matches("[A-Z]+"));
-        }
-
         assertTrue(fingerprintSegs[3].matches("^[a-zA-Z0-9._-]+$")); // ID
 
         String[] buildNumberVariant = fingerprintSegs[4].split(":");
diff --git a/testcases/host/fastboot_test/Android.bp b/testcases/host/fastboot_test/Android.bp
index a83dc8e..6baec3c 100644
--- a/testcases/host/fastboot_test/Android.bp
+++ b/testcases/host/fastboot_test/Android.bp
@@ -12,13 +12,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 java_test_host {
     name: "FastbootVerifyUserspaceTest",
     required: ["fuzzy_fastboot"],
     libs: [
         "compatibility-tradefed",
         "tradefed",
-        "tradefed-common-util",
     ],
     srcs: ["src/**/*.java"],
     test_suites: [
diff --git a/testcases/host/fastboot_test/AndroidTest.xml b/testcases/host/fastboot_test/AndroidTest.xml
index ce30502..a6000bb 100644
--- a/testcases/host/fastboot_test/AndroidTest.xml
+++ b/testcases/host/fastboot_test/AndroidTest.xml
@@ -17,9 +17,8 @@
     <option name="test-suite-tag" value="apct" />
     <option name="test-suite-tag" value="apct-junit" />
 
-    <object type="module_controller" class="com.android.tradefed.testtype.suite.module.MinApiLevelModuleController">
-        <option name="min-api-level" value="29" />
-        <option name="api-level-prop" value="ro.product.first_api_level" />
+    <object type="module_controller" class="com.android.tradefed.testtype.suite.module.ShippingApiLevelModuleController">
+        <option name="vsr-min-api-level" value="31" />
         <!-- TODO(b/146645516): remove this config after the bug is fixed. -->
         <option name="logcat-on-failure" value="false" />
     </object>
diff --git a/testcases/host/fastboot_test/src/com/android/tests/FastbootVerifyUserspaceTest.java b/testcases/host/fastboot_test/src/com/android/tests/FastbootVerifyUserspaceTest.java
index 72008db..a6916c8 100644
--- a/testcases/host/fastboot_test/src/com/android/tests/FastbootVerifyUserspaceTest.java
+++ b/testcases/host/fastboot_test/src/com/android/tests/FastbootVerifyUserspaceTest.java
@@ -17,8 +17,8 @@
 package com.android.tests.fastboot;
 
 import com.android.compatibility.common.tradefed.build.CompatibilityBuildHelper;
-import com.android.tradefed.device.ITestDevice;
 import com.android.tradefed.device.IManagedTestDevice;
+import com.android.tradefed.device.ITestDevice;
 import com.android.tradefed.device.TestDeviceState;
 import com.android.tradefed.invoker.TestInformation;
 import com.android.tradefed.log.LogUtil.CLog;
@@ -34,6 +34,7 @@
 import java.lang.Thread;
 import java.util.Arrays;
 import java.util.HashSet;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import org.junit.Assert;
@@ -49,41 +50,47 @@
 public class FastbootVerifyUserspaceTest extends BaseHostJUnit4Test {
     // Default maximum command run time is set to 90 seconds.
     private static final long MAX_CMD_RUN_TIME = 90000L;
-
-    private static ITestDevice sDevice;
     private static String executeShellKernelARM64 =
             "cat /proc/config.gz | gzip -d | grep CONFIG_ARM64=y";
-    private static boolean isGKI;
 
     private IRunUtil mRunUtil = RunUtil.getDefault();
     private String mFuzzyFastbootPath;
 
+    // IMPORTANT: Multiple instances of this class will be created while sharding
+    // the tests across multiple devices. So it needs to use ConcurrentHashMap to
+    // make these static variables thread-safe.
+    private static ConcurrentHashMap<ITestDevice, Boolean> sDeviceIsGKI10 =
+            new ConcurrentHashMap<>();
+
     @BeforeClassWithInfo
     public static void setUpClass(TestInformation testInfo) throws Exception {
-        sDevice = testInfo.getDevice();
-
-        boolean isKernelARM64 =
-                sDevice.executeShellCommand(executeShellKernelARM64).contains("CONFIG_ARM64");
-        isGKI = false;
+        // Collects information while adb is available, prior to rebooting into fastbootd.
+        boolean isKernelARM64 = testInfo.getDevice()
+                                        .executeShellCommand(executeShellKernelARM64)
+                                        .contains("CONFIG_ARM64");
+        boolean isGKI10 = false;
         if (isKernelARM64) {
-            String output = sDevice.executeShellCommand("uname -r");
+            String output = testInfo.getDevice().executeShellCommand("uname -r");
             Pattern p = Pattern.compile("^(\\d+)\\.(\\d+)");
             Matcher m1 = p.matcher(output);
             Assert.assertTrue(m1.find());
-            isGKI = !(Integer.parseInt(m1.group(1)) < 5 ||
-                      (Integer.parseInt(m1.group(1)) == 5 &&
-                       Integer.parseInt(m1.group(2)) < 4));
+            isGKI10 = (Integer.parseInt(m1.group(1)) == 5 && Integer.parseInt(m1.group(2)) == 4);
         }
 
+        // Saves the local variable to the static variable for later use, because adb
+        // is not available in the following tests.
+        sDeviceIsGKI10.put(testInfo.getDevice(), isGKI10);
+
         // Transfers from adb to fastbootd.
-        if (!isGKI) {
-            sDevice.rebootIntoFastbootd();
+        if (!isGKI10) {
+            testInfo.getDevice().rebootIntoFastbootd();
         }
     }
 
     @Before
     public void setUp() throws Exception {
-        Assume.assumeTrue("Skipping test for fastbootd on GKI", !isGKI);
+        Assume.assumeFalse("Skipping test for fastbootd on GKI 1.0",
+                sDeviceIsGKI10.get(getTestInformation().getDevice()));
 
         CompatibilityBuildHelper buildHelper = new CompatibilityBuildHelper(getBuild());
         File file = buildHelper.getTestFile("fuzzy_fastboot", getAbi());
@@ -94,7 +101,7 @@
 
     @AfterClassWithInfo
     public static void tearDownClass(TestInformation testInfo) throws Exception {
-        if (!isGKI) {
+        if (!sDeviceIsGKI10.get(testInfo.getDevice())) {
             // Make sure the device state still is FASTBOOTD after the test class have
             // been executed, because fastboot commands in the tests will disrupt
             // device state
@@ -102,8 +109,9 @@
                 ((IManagedTestDevice) testInfo.getDevice())
                         .setDeviceState(TestDeviceState.FASTBOOTD);
             }
-            testInfo.getDevice().reboot(); // back to adb.
+            testInfo.getDevice().reboot(); // reboot from fastbootd to adb.
         }
+        sDeviceIsGKI10.remove(testInfo.getDevice());
     }
 
     /* Runs fuzzy_fastboot gtest to verify slot operations in fastbootd implementation. */
@@ -111,7 +119,8 @@
     @Test
     public void testFastbootdSlotOperations() throws Exception {
         CommandResult result = mRunUtil.runTimedCmd(MAX_CMD_RUN_TIME, mFuzzyFastbootPath,
-                String.format("--serial=%s", sDevice.getFastbootSerialNumber()),
+                String.format(
+                        "--serial=%s", getTestInformation().getDevice().getFastbootSerialNumber()),
                 "--gtest_filter=Conformance.Slots:Conformance.SetActive");
         Assert.assertEquals(CommandStatus.SUCCESS, result.getStatus());
     }
@@ -120,7 +129,8 @@
     @Test
     public void testLogicalPartitionCommands() throws Exception {
         CommandResult result = mRunUtil.runTimedCmd(MAX_CMD_RUN_TIME, mFuzzyFastbootPath,
-                String.format("--serial=%s", sDevice.getFastbootSerialNumber()),
+                String.format(
+                        "--serial=%s", getTestInformation().getDevice().getFastbootSerialNumber()),
                 "--gtest_filter=LogicalPartitionCompliance.GetVarIsLogical:LogicalPartitionCompliance.SuperPartition");
         Assert.assertEquals(CommandStatus.SUCCESS, result.getStatus());
     }
@@ -128,7 +138,8 @@
     /* Devices launching with DAP must have a super partition named "super". */
     @Test
     public void testSuperPartitionName() throws Exception {
-        String superPartitionName = sDevice.getFastbootVariable("super-partition-name");
+        String superPartitionName =
+                getTestInformation().getDevice().getFastbootVariable("super-partition-name");
         Assert.assertEquals("super", superPartitionName);
     }
 
@@ -136,7 +147,8 @@
     @Test
     public void testFastbootReboot() throws Exception {
         CommandResult result = mRunUtil.runTimedCmd(MAX_CMD_RUN_TIME, mFuzzyFastbootPath,
-                String.format("--serial=%s", sDevice.getFastbootSerialNumber()),
+                String.format(
+                        "--serial=%s", getTestInformation().getDevice().getFastbootSerialNumber()),
                 "--gtest_filter=LogicalPartitionCompliance.FastbootRebootTest");
         Assert.assertEquals(CommandStatus.SUCCESS, result.getStatus());
     }
@@ -145,7 +157,8 @@
     @Test
     public void testLogicalPartitionFlashing() throws Exception {
         CommandResult result = mRunUtil.runTimedCmd(MAX_CMD_RUN_TIME, mFuzzyFastbootPath,
-                String.format("--serial=%s", sDevice.getFastbootSerialNumber()),
+                String.format(
+                        "--serial=%s", getTestInformation().getDevice().getFastbootSerialNumber()),
                 "--gtest_filter=LogicalPartitionCompliance.CreateResizeDeleteLP");
         Assert.assertEquals(CommandStatus.SUCCESS, result.getStatus());
     }
diff --git a/testcases/host/firmware_dtbo_test/Android.bp b/testcases/host/firmware_dtbo_test/Android.bp
index 1965984..5a65226 100644
--- a/testcases/host/firmware_dtbo_test/Android.bp
+++ b/testcases/host/firmware_dtbo_test/Android.bp
@@ -12,12 +12,15 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 java_test_host {
     name: "FirmwareDtboVerification",
     libs: [
         "compatibility-tradefed",
         "tradefed",
-        "tradefed-common-util",
         "vts-core-tradefed-harness",
     ],
     srcs: ["src/**/*.java"],
@@ -25,10 +28,8 @@
         "general-tests",
         "vts",
     ],
-    // (b/153848038), Change to ":mkdtboimg.py" after resolving.
-    data: [
-        ":mkdtboimg",
+    data_native_bins: [
+        "mkdtboimg.py",
     ],
     target_required: ["ufdt_verify_overlay"],
-    required: ["mkdtboimg.py"],
 }
diff --git a/testcases/host/firmware_dtbo_test/AndroidTest.xml b/testcases/host/firmware_dtbo_test/AndroidTest.xml
index a264b32..86b2681 100644
--- a/testcases/host/firmware_dtbo_test/AndroidTest.xml
+++ b/testcases/host/firmware_dtbo_test/AndroidTest.xml
@@ -14,9 +14,8 @@
      limitations under the License.
 -->
 <configuration description="Runs FirmwareBootHeaderVerification">
-    <object type="module_controller" class="com.android.tradefed.testtype.suite.module.MinApiLevelModuleController">
+    <object type="module_controller" class="com.android.tradefed.testtype.suite.module.ShippingApiLevelModuleController">
         <option name="min-api-level" value="28" />
-        <option name="api-level-prop" value="ro.product.first_api_level" />
     </object>
 
     <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer" />
diff --git a/testcases/host/firmware_dtbo_test/src/com/android/tests/firmwaredtbo/FirmwareDtboVerification.java b/testcases/host/firmware_dtbo_test/src/com/android/tests/firmwaredtbo/FirmwareDtboVerification.java
index 62a805e..33acc78 100644
--- a/testcases/host/firmware_dtbo_test/src/com/android/tests/firmwaredtbo/FirmwareDtboVerification.java
+++ b/testcases/host/firmware_dtbo_test/src/com/android/tests/firmwaredtbo/FirmwareDtboVerification.java
@@ -204,16 +204,36 @@
         if (!hostDtboImage.exists()) {
             testCheckDTBOPartition();
         }
-        String cmd = "cat /proc/cmdline |"
-                + "grep -o \"'androidboot.dtbo_idx=[^ ]*'\" |"
-                + "cut -d \"=\" -f 2 ";
-        CommandResult cmdResult = mDevice.executeShellV2Command(cmd);
-        Assert.assertEquals(String.format("Checking kernel dtbo index: %s", cmdResult.getStderr()),
-                cmdResult.getExitCode().intValue(), 0);
-        String overlay_idx_string = cmdResult.getStdout().replace("\n", "");
-        CLog.d("overlay_idx_string=%s", overlay_idx_string);
-        Assert.assertNotEquals(
-                "Kernel command line missing androidboot.dtbo_idx", overlay_idx_string.length(), 0);
+
+        // look for dtbo_idx in bootconfig first, then fall back to cmdline
+        // /proc/bootconfig does not exist on older devices, so command may fail
+        String bootconfig_cmd = "cat /proc/bootconfig |"
+                + "grep \"'androidboot.dtbo_idx = .*$'\" |"
+                + "cut -d \"=\" -f 2 |"
+                + "sed \"'s/[ \\\"]//g'\"";
+        CLog.d("bootconfig_cmd = %s", bootconfig_cmd);
+        CommandResult cmdResult = mDevice.executeShellV2Command(bootconfig_cmd);
+        String bootconfig_overlay_idx_string = cmdResult.getStdout().replace("\n", "");
+        String overlay_idx_string;
+        if (cmdResult.getExitCode().intValue() == 0
+                && bootconfig_overlay_idx_string.length() != 0) {
+            CLog.d("overlay_idx_string=%s", bootconfig_overlay_idx_string);
+            overlay_idx_string = bootconfig_overlay_idx_string;
+        } else {
+            String cmdline_cmd = "cat /proc/cmdline |"
+                    + "grep -o \"'androidboot.dtbo_idx=[^ ]*'\" |"
+                    + "cut -d \"=\" -f 2 ";
+            cmdResult = mDevice.executeShellV2Command(cmdline_cmd);
+            Assert.assertEquals(
+                    String.format("Checking kernel dtbo index: %s", cmdResult.getStderr()),
+                    cmdResult.getExitCode().intValue(), 0);
+            overlay_idx_string = cmdResult.getStdout().replace("\n", "");
+            CLog.d("overlay_idx_string=%s", overlay_idx_string);
+            Assert.assertNotEquals(
+                    "Bootconfig and kernel command line missing androidboot.dtbo_idx",
+                    overlay_idx_string.length(), 0);
+        }
+
         String verificationTestPath = null;
         String ufdtVerifier = "ufdt_verify_overlay";
         ArrayList<String> matchedResults =
diff --git a/testcases/host/firmware_test/Android.bp b/testcases/host/firmware_test/Android.bp
index d063edf..0ee6e66 100644
--- a/testcases/host/firmware_test/Android.bp
+++ b/testcases/host/firmware_test/Android.bp
@@ -12,12 +12,15 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 java_test_host {
     name: "FirmwareBootHeaderVerification",
     libs: [
         "compatibility-tradefed",
         "tradefed",
-        "tradefed-common-util",
         "vts-core-tradefed-harness",
     ],
     srcs: ["src/**/*.java"],
diff --git a/testcases/host/firmware_test/AndroidTest.xml b/testcases/host/firmware_test/AndroidTest.xml
index 50202ff..46ae564 100644
--- a/testcases/host/firmware_test/AndroidTest.xml
+++ b/testcases/host/firmware_test/AndroidTest.xml
@@ -14,9 +14,8 @@
      limitations under the License.
 -->
 <configuration description="Runs FirmwareBootHeaderVerification">
-    <object type="module_controller" class="com.android.tradefed.testtype.suite.module.MinApiLevelModuleController">
+    <object type="module_controller" class="com.android.tradefed.testtype.suite.module.ShippingApiLevelModuleController">
         <option name="min-api-level" value="28" />
-        <option name="api-level-prop" value="ro.product.first_api_level" />
     </object>
 
     <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer" />
diff --git a/testcases/host/firmware_test/src/com/android/tests/firmware/BootImageInfo.java b/testcases/host/firmware_test/src/com/android/tests/firmware/BootImageInfo.java
index 0b10739..b1e2d7d 100644
--- a/testcases/host/firmware_test/src/com/android/tests/firmware/BootImageInfo.java
+++ b/testcases/host/firmware_test/src/com/android/tests/firmware/BootImageInfo.java
@@ -43,6 +43,9 @@
     static int V3_BOOT_HEADER_SIZE_OFFSET = 5 * 4;
     static int V3_BOOT_HEADER_SIZE = 1580;
 
+    // Definitions specific to boot header version 4.
+    static int V4_BOOT_HEADER_SIZE = 1584;
+
     private int mKernelSize = 0;
     private int mRamdiskSize = 0;
     private int mPageSize = 0;
@@ -213,6 +216,8 @@
                 return BOOT_HEADER_SIZE_OFFSET + 16;
             case 3:
                 return V3_BOOT_HEADER_SIZE;
+            case 4:
+                return V4_BOOT_HEADER_SIZE;
             default:
                 return -1;
         }
diff --git a/testcases/host/firmware_test/src/com/android/tests/firmware/FirmwareBootHeaderVerification.java b/testcases/host/firmware_test/src/com/android/tests/firmware/FirmwareBootHeaderVerification.java
index 1e30fe5..3105fbc 100644
--- a/testcases/host/firmware_test/src/com/android/tests/firmware/FirmwareBootHeaderVerification.java
+++ b/testcases/host/firmware_test/src/com/android/tests/firmware/FirmwareBootHeaderVerification.java
@@ -24,6 +24,7 @@
 import com.android.tradefed.util.CommandResult;
 import com.android.tradefed.util.FileUtil;
 import com.android.tradefed.util.TargetFileUtils;
+import com.google.common.base.Strings;
 import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.IOException;
@@ -46,6 +47,8 @@
     private static final String BLOCK_DEV_PATH = "/dev/block/platform";
     // Indicates current slot suffix for A/B devices.
     private static final String PROPERTY_SLOT_SUFFIX = "ro.boot.slot_suffix";
+    // Indicates the ACPIO index.
+    private static final String PROPERTY_ACPIO_IDX = "ro.boot.acpio_idx";
 
     private ITestDevice mDevice;
     private String mBlockDevPath = BLOCK_DEV_PATH;
@@ -75,14 +78,8 @@
     private boolean isFullfeelPrecondition() throws DeviceNotAvailableException {
         if (mSupportedAbis.contains("x86") || mSupportedAbis.contains("x86_64")) {
             mBlockDevPath = "/dev/block";
-            CommandResult cmdResult = mDevice.executeShellV2Command("cat /proc/cmdline |"
-                    + "grep -o \"'androidboot.acpio_idx=[^ ]*'\" |"
-                    + "cut -d \"=\" -f 2 ");
-            Assert.assertEquals(String.format("Checking if x86 device is NON-ACPI ABI: %s",
-                                        cmdResult.getStderr()),
-                    cmdResult.getExitCode().intValue(), 0);
-            String acpio_idx_string = cmdResult.getStdout().replace("\n", "");
-            if (acpio_idx_string.equals("")) {
+            String acpio_idx_string = mDevice.getProperty(PROPERTY_ACPIO_IDX);
+            if (Strings.isNullOrEmpty(acpio_idx_string)) {
                 return false;
             }
         }
diff --git a/testcases/host/fmq_hidl_test/Android.bp b/testcases/host/fmq_hidl_test/Android.bp
deleted file mode 100644
index d403923..0000000
--- a/testcases/host/fmq_hidl_test/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// 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.
-//
-
-vts_config {
-    name: "VtsHalTestsMsgqV1_0HostTest",
-}
diff --git a/testcases/host/fmq_hidl_test/AndroidTest.xml b/testcases/host/fmq_hidl_test/AndroidTest.xml
deleted file mode 100644
index fa1b3eb..0000000
--- a/testcases/host/fmq_hidl_test/AndroidTest.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="Config for VTS FMQ HIDL Test">
-    <option name="config-descriptor:metadata" key="plan" value="vts-hal-host" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="abort-on-push-failure" value="false"/>
-        <option name="push-group" value="HostDrivenTest.push"/>
-        <option name="cleanup" value="true" />
-        <option name="push" value="spec/hardware/interfaces/tests/msgq/1.0/vts/TestMsgQ.vts->/data/local/tmp/spec/android/hardware/tests/msgq/1.0/TestMsgQ.vts" />
-        <option name="push" value="DATA/lib/android.hardware.tests.msgq@1.0-vts.driver.so->/data/local/tmp/32/android.hardware.tests.msgq@1.0-vts.driver.so" />
-        <option name="push" value="DATA/lib64/android.hardware.tests.msgq@1.0-vts.driver.so->/data/local/tmp/64/android.hardware.tests.msgq@1.0-vts.driver.so" />
-        <option name="push" value="DATA/nativetest/android.hardware.tests.msgq@1.0-service-test/android.hardware.tests.msgq@1.0-service-test->/data/nativetest/android.hardware.tests.msgq@1.0-service-test/android.hardware.tests.msgq@1.0-service-test" />
-        <option name="push" value="DATA/nativetest64/android.hardware.tests.msgq@1.0-service-test/android.hardware.tests.msgq@1.0-service-test->/data/nativetest64/android.hardware.tests.msgq@1.0-service-test/android.hardware.tests.msgq@1.0-service-test" />
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalTestsMsgqV1_0Host"/>
-        <option name="test-case-path" value="vts/testcases/host/fmq_hidl_test/VtsHalTestsMsgqV1_0HostTest"/>
-        <option name="test-timeout" value="1m"/>
-    </test>
-</configuration>
-
diff --git a/testcases/host/fmq_hidl_test/VtsHalTestsMsgqV1_0HostTest.py b/testcases/host/fmq_hidl_test/VtsHalTestsMsgqV1_0HostTest.py
deleted file mode 100644
index d3856f4..0000000
--- a/testcases/host/fmq_hidl_test/VtsHalTestsMsgqV1_0HostTest.py
+++ /dev/null
@@ -1,647 +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.
-#
-
-import logging
-import time
-
-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
-from vts.proto import ComponentSpecificationMessage_pb2 as CompSpecMsg
-
-
-class VtsHalTestsMsgqV1_0HostTest(base_test.BaseTestClass):
-    """This testcase is converted from FMQ HAL service test on the target side
-       (system/libfmq/tests/msgq_test_client.cpp).
-       Since current host-side doesn't support long-form blocking or
-       zero copy operations, all testcases related to these two features are not
-       converted here.
-       UnsynchronizedWriteClientMultiProcess class is not converted here
-       because the testcase is similar to OverflowNotificationTest in
-       UnsynchronizedWriteClient class.
-    """
-    TEST_HAL_SERVICES = {"android.hardware.tests.msgq@1.0::ITestMsgQ"}
-    MAX_NUM_MSG = 1024
-    MAX_RETRY = 3
-    SERVICE_NAME = "android.hardware.tests.msgq@1.0-service-test"
-    COMMAND_32 = "TREBLE_TESTING_OVERRIDE=true /data/nativetest/" + SERVICE_NAME + "/" + SERVICE_NAME + " &"
-    COMMAND_64 = "TREBLE_TESTING_OVERRIDE=true /data/nativetest64/" + SERVICE_NAME + "/" + SERVICE_NAME + " &"
-    CHECK_COMMAND = "lshal --types=b | grep \"android.hardware.tests.msgq@1.0\""
-
-    def setUpClass(self):
-        self.dut = self.android_devices[0]
-        if (int(self.abi_bitness) == 64):
-            self.dut.shell.Execute(self.COMMAND_64)
-        else:
-            self.dut.shell.Execute(self.COMMAND_32)
-
-        start_hal_success = False
-        # Wait until service is started.
-        # Retry at most three times.
-        for i in range(self.MAX_RETRY):
-            result = self.dut.shell.Execute(self.CHECK_COMMAND)
-            if (result[const.STDOUT][0] != ""):
-                start_hal_success = True # setup successful
-                break
-            time.sleep(1)  # wait one second.
-
-        # msgq HAL service is still not started after waiting for
-        # self.MAX_RETRY times, stop the testcase.
-        if (not start_hal_success):
-            logging.error("Failed to start msgq HAL service.")
-            return False
-
-        super(VtsHalTestsMsgqV1_0HostTest, self).setUpClass()
-        # Load a msgq test hal driver.
-        self.dut.hal.InitHidlHal(
-            target_type="tests_msgq",
-            target_basepaths=self.dut.libPaths,
-            target_version_major=1,
-            target_version_minor=0,
-            target_package="android.hardware.tests.msgq",
-            target_component_name="ITestMsgQ",
-            bits=int(self.abi_bitness),
-            is_test_hal=True)
-
-        # create a shortcut.
-        self._tests_msgq = self.dut.hal.tests_msgq
-
-    def setUp(self):
-        # Initialize a FMQ on the target-side driver.
-        self._sync_client = self.dut.resource.InitFmq(
-            data_type="uint16_t",
-            sync=True,
-            queue_size=self.MAX_NUM_MSG,
-            blocking=True,
-            client=self.dut.hal.GetTcpClient("tests_msgq"))
-        asserts.assertNotEqual(self._sync_client.queueId, -1)
-
-        # Prepare a VariableSpecificationMessage to specify the FMQ that will be
-        # passed into the HAL service.
-        var_msg = CompSpecMsg.VariableSpecificationMessage()
-        var_msg.type = CompSpecMsg.TYPE_FMQ_SYNC
-        fmq_val = var_msg.fmq_value.add()
-        fmq_val.fmq_id = self._sync_client.queueId
-        fmq_val.scalar_type = "uint16_t"
-        fmq_val.type = CompSpecMsg.TYPE_SCALAR
-
-        # Call API in the HAL server.
-        sync_init_result = self._tests_msgq.configureFmqSyncReadWrite(var_msg)
-        asserts.assertTrue(
-            sync_init_result,
-            "Hal should configure a synchronized queue without error.")
-
-        # Initialize an unsynchronized queue on the server.
-        [success,
-         self._unsync_client1] = self._tests_msgq.getFmqUnsyncWrite(True)
-        asserts.assertTrue(
-            success,
-            "Hal should configure an unsynchronized queue without error.")
-        # An unsynchronized queue is registered successfully on the target driver.
-        asserts.assertNotEqual(self._unsync_client1, None)
-        asserts.assertNotEqual(self._unsync_client1.queueId, -1)
-        # Register another reader.
-        self._unsync_client2 = self.dut.resource.InitFmq(
-            existing_queue=self._unsync_client1,
-            client=self.dut.hal.GetTcpClient("tests_msgq"))
-        asserts.assertNotEqual(self._unsync_client2.queueId, -1)
-
-    def testSyncQueueBlockingReadWriteSuccess(self):
-        """This test operates on the synchronized queue.
-           Mirrors testcase: BlockingReadWrite2.
-           Server is blocked because there is no data to read.
-           Client writes once, which unblocks the server.
-           Another write from client will also succeed.
-        """
-        # Request a blocking read from the server.
-        # This call returns immediately.
-        self._tests_msgq.requestBlockingReadDefaultEventFlagBits(
-            self.MAX_NUM_MSG)
-
-        # Client writes, unblocks server.
-        write_data = generateSequentialData(self.MAX_NUM_MSG)
-        asserts.assertTrue(
-            self._sync_client.writeBlocking(write_data, self.MAX_NUM_MSG),
-            "Client should write successfully.")
-
-        # If blocking read was successful from the server, another write of
-        # size 1000 will succeed because there is space to write now.
-        asserts.assertTrue(
-            self._sync_client.writeBlocking(write_data, self.MAX_NUM_MSG,
-                                            5000000000),
-            "Client should write successfully if server blocking read is successful."
-        )
-        # Server reads it back again.
-        self._tests_msgq.requestBlockingReadDefaultEventFlagBits(
-            self.MAX_NUM_MSG)
-
-    def testSyncQueueSmallInputReaderTest1(self):
-        """This test operates on the synchronized queue.
-           Mirrors testcase: SynchronizedReadWriteClient, SmallInputReaderTest1.
-           Server writes a small number of messages and client reads it back.
-        """
-        data_len = 16
-
-        # Server writes.
-        asserts.assertTrue(
-            self._tests_msgq.requestWriteFmqSync(data_len),
-            "Server should write successfully.")
-        # Client reads.
-        read_data = []
-        asserts.assertTrue(
-            self._sync_client.read(read_data, data_len),
-            "Client should read successfully.")
-        asserts.assertEqual(read_data, generateSequentialData(data_len))
-
-    def testSyncQueueSmallInputWriterTest1(self):
-        """This test operates on the synchronized queue.
-           Mirrors testcase: SynchronizedReadWriteClient, SmallInputWriterTest1.
-           Client writes a small number of messages and server reads it back.
-        """
-        data_len = 16
-        write_data = generateSequentialData(data_len)
-
-        # Client writes.
-        asserts.assertTrue(
-            self._sync_client.write(write_data, data_len),
-            "Server should write successfully.")
-        # Server reads.
-        asserts.assertTrue(
-            self._tests_msgq.requestReadFmqSync(data_len),
-            "Client should read successfully.")
-
-    def testSyncQueueReadWhenEmpty(self):
-        """This test operates on the synchronized queue.
-           Mirrors testcase: SynchronizedReadWriteClient, ReadWhenEmpty.
-           Read should fail when queue is empty.
-        """
-        asserts.assertEqual(self._sync_client.availableToRead(), 0)
-        asserts.assertFalse(
-            self._sync_client.read([], 2),
-            "Client should fail to read because queue is empty.")
-
-    def testSyncQueueWriteWhenFull(self):
-        """This test operates on the synchronized queue.
-           Mirrors testcase: SynchronizedReadWriteClient, WriteWhenFull.
-           Write should fail when queue is full.
-        """
-        write_data = generateSequentialData(self.MAX_NUM_MSG)
-
-        # Client writes.
-        asserts.assertTrue(
-            self._sync_client.write(write_data, self.MAX_NUM_MSG),
-            "Client should write successfully.")
-        asserts.assertEqual(self._sync_client.availableToWrite(), 0)
-        # Client tries to write more, fails.
-        asserts.assertFalse(
-            self._sync_client.write([1], 1),
-            "Client should fail to write because queue is full.")
-        # Server should read data back correctly.
-        asserts.assertTrue(
-            self._tests_msgq.requestReadFmqSync(self.MAX_NUM_MSG),
-            "Server should read successfully")
-
-    def testSyncQueueLargeInputTest1(self):
-        """This test operates on the synchronized queue.
-           Mirrors testcase: SynchronizedReadWriteClient, LargeInputTest1.
-           Server writes to the queue and client reads the data back.
-        """
-        # Server writes.
-        asserts.assertTrue(
-            self._tests_msgq.requestWriteFmqSync(self.MAX_NUM_MSG),
-            "Server should write successfully.")
-
-        write_data = generateSequentialData(self.MAX_NUM_MSG)
-        read_data = []
-        # Client reads.
-        asserts.assertEqual(self._sync_client.availableToRead(),
-                            self.MAX_NUM_MSG)
-        self._sync_client.read(read_data, self.MAX_NUM_MSG)
-        asserts.assertEqual(write_data, read_data)
-
-    def testSyncQueueLargeInputTest2(self):
-        """This test operates on the synchronized queue.
-           Mirrors testcase: SynchronizedReadWriteClient, LargeInputTest2.
-           Server attempts to write more than the queue capacity and fails.
-        """
-        asserts.assertEqual(0, self._sync_client.availableToRead())
-        # Server attempts to write more than the queue capacity.
-        asserts.assertFalse(
-            self._tests_msgq.requestWriteFmqSync(self.MAX_NUM_MSG * 2),
-            "Server should fail because it writes more than queue capacity.")
-        # Check there is still no data for client.
-        asserts.assertEqual(0, self._sync_client.availableToRead())
-        asserts.assertFalse(
-            self._sync_client.read([], 1),
-            "Client should fail to read because queue is empty.")
-
-    def testSyncQueueLargeInputTest3(self):
-        """This test operates on the synchronized queue.
-           Mirrors testcase: SynchronizedReadWriteClient, LargeInputTest3.
-           Client writes until the queue is full, attempts to write one more,
-           and fails.
-        """
-        write_data = generateSequentialData(self.MAX_NUM_MSG)
-
-        # Client fills up the queue.
-        asserts.assertTrue(
-            self._sync_client.write(write_data, self.MAX_NUM_MSG),
-            "Client should write successfully.")
-        asserts.assertEqual(0, self._sync_client.availableToWrite())
-        # Client attempts to write one more, fails.
-        asserts.assertFalse(
-            self._sync_client.write([1], 1),
-            "Client should fail to write because queue is full.")
-        # Server reads back data from client.
-        asserts.assertTrue(
-            self._tests_msgq.requestReadFmqSync(self.MAX_NUM_MSG),
-            "Server should read successfully.")
-
-    def testSyncQueueClientMultipleRead(self):
-        """This test operates on the synchronized queue.
-           Mirrors testcase: SynchronizedReadWriteClient, MultipleRead.
-           Server acts as a writer, and client reads the data back in batches.
-        """
-        chunk_size = 100
-        chunk_num = 5
-        num_messages = chunk_num * chunk_size
-        write_data = generateSequentialData(num_messages)
-
-        # Client has no data to read yet.
-        asserts.assertEqual(self._sync_client.availableToRead(), 0)
-        # Server writes.
-        asserts.assertTrue(
-            self._tests_msgq.requestWriteFmqSync(num_messages),
-            "Server should write successfully.")
-
-        # Client reads it back continuously.
-        total_read_data = []
-        for i in range(chunk_num):
-            read_data = []
-            asserts.assertTrue(
-                self._sync_client.read(read_data, chunk_size),
-                "Client should read successfully.")
-            total_read_data.extend(read_data)
-
-        # Check read_data and write_data are equal.
-        asserts.assertEqual(write_data, total_read_data)
-
-    def testSyncQueueClientMultipleWrite(self):
-        """This test operates on the synchronized queue.
-           Mirrors testcase: SynchronizedReadWriteClient, MultipleWrite.
-           Client writes the data in batches, and server reads it back together.
-        """
-        chunk_size = 100
-        chunk_num = 5
-        num_messages = chunk_num * chunk_size
-        write_data = generateSequentialData(num_messages)
-
-        # Client should see an empty queue.
-        asserts.assertEqual(self._sync_client.availableToWrite(),
-                            self.MAX_NUM_MSG)
-        for i in range(chunk_num):  # Client keeps writing.
-            curr_write_data = write_data[i * chunk_size:(i + 1) * chunk_size]
-            asserts.assertTrue(
-                self._sync_client.write(curr_write_data, chunk_size),
-                "Client should write successfully.")
-
-        # Server reads data back correctly.
-        asserts.assertTrue(
-            self._tests_msgq.requestReadFmqSync(num_messages),
-            "Server should read successfully.")
-
-    def testSyncQueueReadWriteWrapAround(self):
-        """This test operates on the synchronized queue.
-           Mirrors testcase: SynchronizedReadWriteClient, ReadWriteWrapAround1.
-           Client writes half of the queue and server reads back.
-           Client writes the max capacity, which will cause a wrap
-           around in the queue, server should still read back correctly.
-        """
-        num_messages = self.MAX_NUM_MSG / 2
-        write_data = generateSequentialData(self.MAX_NUM_MSG)
-
-        # Client writes half of the queue capacity, and server reads it.
-        asserts.assertTrue(
-            self._sync_client.write(write_data, num_messages),
-            "Client should write successfully.")
-        asserts.assertTrue(
-            self._tests_msgq.requestReadFmqSync(num_messages),
-            "Server should read successfully.")
-        # Client writes the max queue capacity, causes a wrap around
-        asserts.assertTrue(
-            self._sync_client.write(write_data, self.MAX_NUM_MSG),
-            "Client should write successfully.")
-        # Server reads back data correctly
-        asserts.assertTrue(
-            self._tests_msgq.requestReadFmqSync(self.MAX_NUM_MSG),
-            "Server should read successfully.")
-
-    def testUnsyncQueueSmallInputReaderTest1(self):
-        """This test operates on the unsynchronized queue.
-           Mirrors testcase: UnsynchronizedWriteClient, SmallInputReaderTest1.
-           Server writes a small number of messages and client reads it back.
-        """
-        data_len = 16
-
-        # Server writes.
-        asserts.assertTrue(
-            self._tests_msgq.requestWriteFmqUnsync(data_len),
-            "Server should write successfully.")
-        # Client reads.
-        read_data = []
-        asserts.assertTrue(
-            self._unsync_client1.read(read_data, data_len),
-            "Client should read successfully.")
-        asserts.assertEqual(read_data, generateSequentialData(16))
-
-    def testUnsyncQueueSmallInputWriterTest1(self):
-        """This test operates on the unsynchronized queue.
-           Mirrors testcase: UnsynchronizedWriteClient, SmallInputWriterTest1.
-           Client writes a small number of messages and server reads it back.
-        """
-        data_len = 16
-        write_data = generateSequentialData(16)
-
-        # Client writes.
-        asserts.assertTrue(
-            self._unsync_client1.write(write_data, data_len),
-            "Server should write successfully.")
-        # Server reads.
-        asserts.assertTrue(
-            self._tests_msgq.requestReadFmqUnsync(data_len),
-            "Client should read successfully.")
-
-    def testUnsyncQueueReadWhenEmpty(self):
-        """This test operates on the unsynchronized queue.
-           Mirrors testcase: UnsynchronizedWriteClient, ReadWhenEmpty.
-           Read should fail when queue is empty.
-        """
-        asserts.assertEqual(self._unsync_client1.availableToRead(), 0)
-        asserts.assertFalse(
-            self._unsync_client1.read([], 2),
-            "Client should fail to read because queue is empty.")
-
-    def testUnsyncQueueWriteWhenFull(self):
-        """This test operates on the unsynchronized queue.
-           Mirrors testcase: UnsynchronizedWriteClient, WriteWhenFull.
-           Write should still succeed because unsynchronized queue
-           allows overflow. Subsequent read should fail.
-        """
-        write_data = generateSequentialData(self.MAX_NUM_MSG)
-
-        # Client writes.
-        asserts.assertTrue(
-            self._unsync_client1.write(write_data, self.MAX_NUM_MSG),
-            "Client should write successfully.")
-        asserts.assertEqual(self._unsync_client1.availableToWrite(), 0)
-        # Client tries to write more, still succeeds.
-        asserts.assertTrue(
-            self._unsync_client1.write([1], 1),
-            "Client should write successfully "
-            + "even if queue is full for unsynchronized queue.")
-        # Server should fail because queue overflows.
-        asserts.assertFalse(
-            self._tests_msgq.requestReadFmqUnsync(self.MAX_NUM_MSG),
-            "Server should fail to read because queue overflows.")
-
-    def testUnsyncQueueLargeInputTest1(self):
-        """This test operates on the unsynchronized queue.
-           Mirrors testcase: UnsynchronizedWriteClient, LargeInputTest1.
-           Server writes to the queue and client reads the data back.
-        """
-        # Server writes.
-        asserts.assertTrue(
-            self._tests_msgq.requestWriteFmqUnsync(self.MAX_NUM_MSG),
-            "Server should write successfully.")
-
-        write_data = generateSequentialData(self.MAX_NUM_MSG)
-        read_data = []
-        # Client reads.
-        asserts.assertEqual(self._unsync_client1.availableToRead(),
-                            self.MAX_NUM_MSG)
-        asserts.assertTrue(
-            self._unsync_client1.read(read_data, self.MAX_NUM_MSG),
-            "Client should read successfully.")
-        asserts.assertEqual(write_data, read_data)
-
-    def testUnsyncQueueLargeInputTest2(self):
-        """This test operates on the unsynchronized queue.
-           Mirrors testcase: UnsynchronizedWriteClient, LargeInputTest2.
-           Server attempts to write more than the queue capacity and fails.
-        """
-        asserts.assertEqual(0, self._unsync_client1.availableToRead())
-        # Server attempts to write more than the queue capacity.
-        asserts.assertFalse(
-            self._tests_msgq.requestWriteFmqUnsync(self.MAX_NUM_MSG + 1),
-            "Server should fail because it writes more than queue capacity.")
-        # Check there is still no data for client.
-        asserts.assertEqual(0, self._unsync_client1.availableToRead())
-        asserts.assertFalse(
-            self._unsync_client1.read([], 1),
-            "Client should fail to read because queue is empty.")
-
-    def testUnsyncQueueLargeInputTest3(self):
-        """This test operates on the unsynchronized queue.
-           Mirrors testcase: UnsynchronizedWriteClient, LargeInputTest3.
-           Client writes until the queue is full, and writes one more,
-           which overflows the queue. Read should fail after that.
-           Client writes again, and server should be able to read again.
-        """
-        write_data = generateSequentialData(self.MAX_NUM_MSG)
-
-        # Client fills up the queue.
-        asserts.assertTrue(
-            self._unsync_client1.write(write_data, self.MAX_NUM_MSG),
-            "Client should write successfully.")
-        asserts.assertEqual(0, self._unsync_client1.availableToWrite())
-        # Client attempts to write one more, still succeeds.
-        asserts.assertTrue(
-            self._unsync_client1.write([1], 1),
-            "Client should write successfully "
-            + "even if queue is full for unsynchronized queue.")
-        # Server fails to read because queue overflows.
-        asserts.assertFalse(
-            self._tests_msgq.requestReadFmqUnsync(self.MAX_NUM_MSG),
-            "Server should fail to read because queue overflows.")
-
-        # Do another interaction, and both should succeed.
-        asserts.assertTrue(
-            self._unsync_client1.write(write_data, self.MAX_NUM_MSG),
-            "Client should write successfully.")
-        asserts.assertTrue(
-            self._tests_msgq.requestReadFmqUnsync(self.MAX_NUM_MSG),
-            "Server should read successfully.")
-
-    def testUnsyncQueueClientMultipleRead(self):
-        """This test operates on the unsynchronized queue.
-           Mirrors testcase: UnsynchronizedWriteClient, MultipleRead.
-           Server acts as a writer, and client reads the data back in batches.
-        """
-        chunk_size = 100
-        chunk_num = 5
-        num_messages = chunk_num * chunk_size
-        write_data = generateSequentialData(num_messages)
-
-        # Client has no data to read yet.
-        asserts.assertEqual(self._unsync_client1.availableToRead(), 0)
-        # Server writes.
-        asserts.assertTrue(
-            self._tests_msgq.requestWriteFmqUnsync(num_messages),
-            "Server should write successfully.")
-
-        # Client reads it back continuously.
-        total_read_data = []
-        for i in range(chunk_num):
-            read_data = []
-            asserts.assertTrue(
-                self._unsync_client1.read(read_data, chunk_size),
-                "Client should read successfully.")
-            total_read_data.extend(read_data)
-
-        # Check read_data and write_data are equal.
-        asserts.assertEqual(write_data, total_read_data)
-
-    def testUnsyncQueueClientMultipleWrite(self):
-        """This test operates on the unsynchronized queue.
-           Mirrors testcase: UnsynchronizedWriteClient, MultipleWrite.
-           Client writes the data in batches, and server reads it back together.
-        """
-        chunk_size = 100
-        chunk_num = 5
-        num_messages = chunk_num * chunk_size
-        write_data = generateSequentialData(num_messages)
-
-        # Client should see an empty queue.
-        asserts.assertEqual(self._unsync_client1.availableToWrite(),
-                            self.MAX_NUM_MSG)
-        for i in range(chunk_num):  # Client keeps writing.
-            curr_write_data = write_data[i * chunk_size:(i + 1) * chunk_size]
-            asserts.assertTrue(
-                self._unsync_client1.write(curr_write_data, chunk_size),
-                "Client should write successfully.")
-
-        # Server reads data back correctly.
-        asserts.assertTrue(
-            self._tests_msgq.requestReadFmqUnsync(num_messages),
-            "Server should read successfully.")
-
-    def testUnsyncQueueReadWriteWrapAround(self):
-        """This test operates on the unsynchronized queue.
-           Mirrors testcase: UnsynchronizedWriteClient, ReadWriteWrapAround.
-           Client writes half of the queue and server reads back.
-           Client writes the max capacity, which will cause a wrap
-           around in the queue, server should still read back correctly.
-        """
-        num_messages = self.MAX_NUM_MSG / 2
-        write_data = generateSequentialData(self.MAX_NUM_MSG)
-
-        # Client writes half of the queue capacity, and server reads it.
-        asserts.assertTrue(
-            self._unsync_client1.write(write_data, num_messages),
-            "Client should write successfully.")
-        asserts.assertTrue(
-            self._tests_msgq.requestReadFmqUnsync(num_messages),
-            "Server should read successfully.")
-        # Client writes the max queue capacity, causes a wrap around
-        asserts.assertTrue(
-            self._unsync_client1.write(write_data, self.MAX_NUM_MSG),
-            "Client should write successfully.")
-        # Server reads back data correctly
-        asserts.assertTrue(
-            self._tests_msgq.requestReadFmqUnsync(self.MAX_NUM_MSG),
-            "Server should read successfully.")
-
-    def testUnsyncQueueSmallInputMultipleReaderTest(self):
-        """This test operates on the unsynchronized queue.
-           Mirrors testcase: UnsynchronizedWriteClient,
-                             SmallInputMultipleReaderTest.
-           Server writes once, and two readers read the data back separately.
-        """
-        data_len = 16
-        # Server writes.
-        asserts.assertTrue(
-            self._tests_msgq.requestWriteFmqUnsync(data_len),
-            "Server should write successfully.")
-        write_data = generateSequentialData(data_len)
-
-        # Client 1 reads back data correctly.
-        read_data1 = []
-        asserts.assertTrue(
-            self._unsync_client1.read(read_data1, data_len),
-            "Client 1 should read successfully.")
-        asserts.assertEqual(write_data, read_data1)
-        # Client 2 reads back data correctly.
-        read_data2 = []
-        asserts.assertTrue(
-            self._unsync_client2.read(read_data2, data_len),
-            "Client 2 should read successfully.")
-        asserts.assertEqual(write_data, read_data2)
-
-    def testUnsyncQueueOverflowNotificationTest(self):
-        """This test operates on the unsynchronized queue.
-           Mirror testcase: UnsynchronizedWriteClient, OverflowNotificationTest.
-           For unsynchronized queue, multiple readers can recover from
-           a write overflow condition.
-        """
-        # Server writes twice, overflows the queue.
-        asserts.assertTrue(
-            self._tests_msgq.requestWriteFmqUnsync(self.MAX_NUM_MSG),
-            "Server should write successfully.")
-        asserts.assertTrue(
-            self._tests_msgq.requestWriteFmqUnsync(self.MAX_NUM_MSG),
-            "Server should write successfully even if queue overflows.")
-
-        # Both clients fail to read.
-        read_data1 = []
-        read_data2 = []
-        asserts.assertFalse(
-            self._unsync_client1.read(read_data1, self.MAX_NUM_MSG),
-            "Client 1 should fail to read because queue overflows.")
-        asserts.assertFalse(
-            self._unsync_client2.read(read_data2, self.MAX_NUM_MSG),
-            "Client 2 should fail to read because queue overflows.")
-
-        # Server writes the data again.
-        asserts.assertTrue(
-            self._tests_msgq.requestWriteFmqUnsync(self.MAX_NUM_MSG),
-            "Server should write successfully.")
-        # Both clients should be able to read.
-        asserts.assertTrue(
-            self._unsync_client1.read(read_data1, self.MAX_NUM_MSG),
-            "Client 1 should read successfully.")
-        asserts.assertTrue(
-            self._unsync_client2.read(read_data2, self.MAX_NUM_MSG),
-            "Client 2 should read successfully.")
-
-
-def generateSequentialData(data_size):
-    """Util method to generate sequential data from 0 up to MAX_NUM_MSG.
-       We use this method because in ITestMsgQ hal server, it always assumes
-       writing and reading sequential data from 0 up to MAX_NUM_MSG.
-
-    Args:
-        MAX_NUM_MSG: int, length of the result list.
-
-    Returns:
-        int list, list of integers.
-    """
-    return [i for i in range(data_size)]
-
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/host/fmq_hidl_test/__init__.py b/testcases/host/fmq_hidl_test/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/host/fmq_hidl_test/__init__.py
+++ /dev/null
diff --git a/testcases/host/kernel_proc_file_api_test/Android.bp b/testcases/host/kernel_proc_file_api_test/Android.bp
index 53e69f4..ff7d121 100644
--- a/testcases/host/kernel_proc_file_api_test/Android.bp
+++ b/testcases/host/kernel_proc_file_api_test/Android.bp
@@ -15,6 +15,10 @@
 //
 
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 python_test_host {
     name: "vts_kernel_proc_file_api_test",
     main: "vts_kernel_proc_file_api_test.py",
@@ -41,4 +45,7 @@
         "vts",
     ],
     test_config: "kernel_proc_file_api_test.xml",
+    test_options: {
+        unit_test: false,
+    },
 }
diff --git a/testcases/host/kernel_proc_file_api_test/proc_tests/ProcMemInfoTest.py b/testcases/host/kernel_proc_file_api_test/proc_tests/ProcMemInfoTest.py
index 935f36b..febb4ac 100644
--- a/testcases/host/kernel_proc_file_api_test/proc_tests/ProcMemInfoTest.py
+++ b/testcases/host/kernel_proc_file_api_test/proc_tests/ProcMemInfoTest.py
@@ -28,7 +28,7 @@
 def token_lu(text):
     return int(text)
 
-@with_pattern(r'(kB)?')
+@with_pattern(r'[ ]*(kB)?')
 def token_kb(text):
     return text
 
@@ -79,7 +79,7 @@
         lines = contents.split('\n')
         if lines[-1] != '':
             raise SyntaxError("missing final newline")
-        return [self.parse_line("{:name}: {:lu}{:^kb}", line,
+        return [self.parse_line("{:name}: {:lu}{:kb}", line,
             dict(name=token_name, lu=token_lu, kb=token_kb)) for line in lines[:-1]]
 
     def result_correct(self, parse_result):
diff --git a/testcases/host/kernel_proc_file_api_test/proc_tests/ProcSimpleFileTests.py b/testcases/host/kernel_proc_file_api_test/proc_tests/ProcSimpleFileTests.py
index 12016f8..2118262 100644
--- a/testcases/host/kernel_proc_file_api_test/proc_tests/ProcSimpleFileTests.py
+++ b/testcases/host/kernel_proc_file_api_test/proc_tests/ProcSimpleFileTests.py
@@ -223,7 +223,7 @@
     '''/proc/sys/kernel/random/boot_id generates a random ID each boot.'''
 
     def parse_contents(self, contents):
-        return self.parse_line("{:uuid}", contents, dict(uuid=token_uuid))[0]
+        return self.parse_line("{:uuid}\n", contents, dict(uuid=token_uuid))[0]
 
     def get_path(self):
         return "/proc/sys/kernel/random/boot_id"
diff --git a/testcases/host/kernel_proc_file_api_test/proc_tests/ProcZoneInfoTest.py b/testcases/host/kernel_proc_file_api_test/proc_tests/ProcZoneInfoTest.py
index cedda5c..b0c374a 100644
--- a/testcases/host/kernel_proc_file_api_test/proc_tests/ProcZoneInfoTest.py
+++ b/testcases/host/kernel_proc_file_api_test/proc_tests/ProcZoneInfoTest.py
@@ -65,8 +65,9 @@
         p[0] = [] if len(p) == 2 else [p[1], p[4]]
 
     def p_protection(self, p):
-        'protection : PROTECTION COLON LPAREN numcommas NUMBER RPAREN NEWLINE'
-        p[0] = p[4] + [p[5]]
+        '''protection : PROTECTION COLON LPAREN numcommas NUMBER RPAREN NEWLINE
+                | empty'''
+        p[0] = [] if len(p) == 2 else p[4] + [p[5]]
 
     def p_numcomma(self, p):
         'numcomma : NUMBER COMMA'
diff --git a/testcases/host/reboot/RebootRootRemountTest/Android.bp b/testcases/host/reboot/RebootRootRemountTest/Android.bp
deleted file mode 100644
index 83faf2e..0000000
--- a/testcases/host/reboot/RebootRootRemountTest/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Copyright (C) 2016 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.
-//
-
-vts_config {
-    name: "RebootRootRemountTest",
-}
diff --git a/testcases/host/reboot/RebootRootRemountTest/AndroidTest.xml b/testcases/host/reboot/RebootRootRemountTest/AndroidTest.xml
deleted file mode 100644
index 08dfe24..0000000
--- a/testcases/host/reboot/RebootRootRemountTest/AndroidTest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="Config for VTS HAL shell test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="RebootRootRemountTest" />
-        <option name="test-case-path" value="vts/testcases/host/reboot/RebootRootRemountTest/RebootRootRemountTest" />
-    </test>
-</configuration>
diff --git a/testcases/host/reboot/RebootRootRemountTest/RebootRootRemountTest.py b/testcases/host/reboot/RebootRootRemountTest/RebootRootRemountTest.py
deleted file mode 100644
index 99c27aa..0000000
--- a/testcases/host/reboot/RebootRootRemountTest/RebootRootRemountTest.py
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2016 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.
-#
-
-import logging
-
-from vts.runners.host import asserts
-from vts.runners.host import base_test
-from vts.runners.host import test_runner
-from vts.runners.host import utils
-from vts.utils.python.controllers import adb
-
-
-class RebootRootRemountTest(base_test.BaseTestClass):
-    """Tests if device can root and remount /system partition after reboot.
-
-    Attributes:
-        dut: AndroidDevice, the device under test as config.
-        verity: boolean, True if verity was enabled before test,
-            False otherwise.
-    """
-
-    def setUpClass(self):
-        self.dut = self.android_devices[0]
-        self.verity = self.dut.verityEnabled
-
-    def testRebootRootRemount(self):
-        """Tests if /system partition can be remounted as r/w after reboot."""
-        # Disable verity if it's enabled.
-        if self.verity:
-            logging.info("Disable verity.")
-            self.dut.adb.disable_verity()
-
-        try:
-            self.dut.reboot()
-            self.dut.waitForBootCompletion()
-        except utils.TimeoutError:
-            asserts.fail("Reboot failed.")
-
-        try:
-            self.dut.adb.root()
-            self.dut.adb.wait_for_device()
-            # Remount /system partition as r/w.
-            self.dut.adb.remount()
-            self.dut.adb.wait_for_device()
-        except adb.AdbError():
-            asserts.fail("Root/remount failed.")
-
-        # Restore verity to its original state.
-        if self.verity:
-            logging.info("Enable verity.")
-            self.dut.adb.enable_verity()
-            try:
-                self.dut.reboot()
-                self.dut.waitForBootCompletion()
-            except utils.TimeoutError:
-                asserts.fail("Reboot failed after re-enabling verity.")
-
-        asserts.assertEqual(self.verity, self.dut.verityEnabled,
-                            "Verity state was successfully restored.")
-
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/host/reboot/RebootRootRemountTest/__init__.py b/testcases/host/reboot/RebootRootRemountTest/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/host/reboot/RebootRootRemountTest/__init__.py
+++ /dev/null
diff --git a/testcases/host/reboot/RebootTest/Android.bp b/testcases/host/reboot/RebootTest/Android.bp
deleted file mode 100644
index 4484265..0000000
--- a/testcases/host/reboot/RebootTest/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Copyright (C) 2016 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.
-//
-
-vts_config {
-    name: "RebootTest",
-}
diff --git a/testcases/host/reboot/RebootTest/AndroidTest.xml b/testcases/host/reboot/RebootTest/AndroidTest.xml
deleted file mode 100644
index 33606e1..0000000
--- a/testcases/host/reboot/RebootTest/AndroidTest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="Config for VTS HAL shell test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="RebootTest" />
-        <option name="test-case-path" value="vts/testcases/host/reboot/RebootTest/RebootTest" />
-    </test>
-</configuration>
diff --git a/testcases/host/reboot/RebootTest/RebootTest.py b/testcases/host/reboot/RebootTest/RebootTest.py
deleted file mode 100644
index 9b36918..0000000
--- a/testcases/host/reboot/RebootTest/RebootTest.py
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2016 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 test_runner
-from vts.runners.host import utils
-
-
-class RebootTest(base_test.BaseTestClass):
-    """Tests if device survives reboot.
-
-    Attributes:
-        dut: AndroidDevice, the device under test as config
-    """
-
-    def setUpClass(self):
-        self.dut = self.android_devices[0]
-
-    def testReboot(self):
-        """Tests if device is still responsive after reboot."""
-        try:
-            self.dut.reboot()
-            # If waitForBootCompletion() returns, the device must have
-            # responded to an adb shell command.
-            self.dut.waitForBootCompletion()
-        except utils.TimeoutError:
-            asserts.fail("Reboot failed.")
-
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/host/reboot/RebootTest/__init__.py b/testcases/host/reboot/RebootTest/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/host/reboot/RebootTest/__init__.py
+++ /dev/null
diff --git a/testcases/host/reboot/__init__.py b/testcases/host/reboot/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/host/reboot/__init__.py
+++ /dev/null
diff --git a/testcases/host/selinux_test/Android.bp b/testcases/host/selinux_test/Android.bp
index a517b14..69eaa52 100644
--- a/testcases/host/selinux_test/Android.bp
+++ b/testcases/host/selinux_test/Android.bp
@@ -12,12 +12,15 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 java_test_host {
     name: "KernelSelinuxFileApiTest",
     libs: [
         "compatibility-tradefed",
         "tradefed",
-        "tradefed-common-util",
         "vts-core-tradefed-harness"
     ],
     srcs: ["src/**/*.java"],
diff --git a/testcases/host/shell/Android.bp b/testcases/host/shell/Android.bp
deleted file mode 100644
index 955076c..0000000
--- a/testcases/host/shell/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Copyright (C) 2016 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.
-//
-
-vts_config {
-    name: "SampleShellTest",
-}
diff --git a/testcases/host/shell/AndroidTest.xml b/testcases/host/shell/AndroidTest.xml
deleted file mode 100644
index 859a795..0000000
--- a/testcases/host/shell/AndroidTest.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="Config for VTS HAL shell test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-host" />
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="SampleShellTest" />
-        <option name="test-case-path" value="vts/testcases/host/shell/SampleShellTest" />
-    </test>
-</configuration>
diff --git a/testcases/host/shell/SampleShellTest.py b/testcases/host/shell/SampleShellTest.py
deleted file mode 100644
index 32bfca2..0000000
--- a/testcases/host/shell/SampleShellTest.py
+++ /dev/null
@@ -1,117 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2016 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.
-#
-
-import logging
-
-from vts.runners.host import asserts
-from vts.runners.host import base_test
-from vts.runners.host import test_runner
-from vts.utils.python.controllers import android_device
-from vts.runners.host import const
-
-
-class SampleShellTest(base_test.BaseTestClass):
-    """A sample testcase for the shell driver."""
-
-    REPEAT_COUNT = 10
-
-    def setUpClass(self):
-        self.dut = self.android_devices[0]
-
-    def testOneCommand(self):
-        """A simple testcase which just emulates a normal usage pattern."""
-        self.dut.shell.InvokeTerminal("my_shell1")
-        results = self.dut.shell.Execute("which ls")
-        logging.info(str(results[const.STDOUT]))
-        asserts.assertEqual(len(results[const.STDOUT]), 1)
-        asserts.assertEqual(results[const.STDOUT][0].strip(), "/system/bin/ls")
-        asserts.assertEqual(results[const.EXIT_CODE][0], 0)
-
-    def testCommandList(self):
-        """A simple testcase which just emulates a normal usage pattern."""
-        self.dut.shell.InvokeTerminal("my_shell2")
-        results = self.dut.shell.my_shell2.Execute(["which ls"] *
-                                                   self.REPEAT_COUNT)
-        logging.info(str(results[const.STDOUT]))
-        asserts.assertEqual(len(results[const.STDOUT]), self.REPEAT_COUNT)
-        for index in range(self.REPEAT_COUNT):
-            asserts.assertEqual(results[const.STDOUT][index].strip(),
-                                "/system/bin/ls")
-            asserts.assertEqual(results[const.EXIT_CODE][index], 0)
-
-    def testMultipleCommands(self):
-        """A simple testcase which just emulates a normal usage pattern."""
-        self.dut.shell.InvokeTerminal("my_shell3")
-        for _ in range(self.REPEAT_COUNT):
-            results = self.dut.shell.my_shell3.Execute("which ls")
-            logging.info(str(results[const.STDOUT]))
-            asserts.assertEqual(len(results[const.STDOUT]), 1)
-            asserts.assertEqual(results[const.STDOUT][0].strip(),
-                                "/system/bin/ls")
-            asserts.assertEqual(results[const.EXIT_CODE][0], 0)
-
-    def testCommandSequenceCd(self):
-        """A simple test case that emulates using cd bash command sequence
-           connected by '&&' under normal usage pattern.
-        """
-        self.dut.shell.InvokeTerminal("command_sequence_cd")
-        directory = "/data/local"
-        commands = ["cd %s && pwd" % directory, "'cd' '%s' && 'pwd'" %
-                    directory, "\"cd\" \"%s\" && \"pwd\"" % directory]
-        for cmd in commands:
-            results = self.dut.shell.command_sequence_cd.Execute(cmd)
-            asserts.assertEqual(results[const.EXIT_CODE][0], 0)
-            asserts.assertEqual(results[const.STDOUT][0].strip(), directory)
-
-    def testCommandSequenceExport(self):
-        """A simple test case that emulates using export bash command sequence
-           connected by '&&' under normal usage pattern.
-        """
-        self.dut.shell.InvokeTerminal("command_sequence_export")
-        var_value = "helloworld"
-        results = self.dut.shell.command_sequence_export.Execute(
-            "export {var_name}={var_value} && echo ${var_name}".format(
-                var_name="TESTTMPVAR", var_value=var_value))
-        asserts.assertEqual(results[const.EXIT_CODE][0], 0)
-        asserts.assertEqual(results[const.STDOUT][0].strip(), var_value)
-
-    def testCommandSequenceMktemp(self):
-        """A simple test case that emulates using mktemp bash command sequence
-           connected by '&&' under normal usage pattern.
-        """
-        self.dut.shell.InvokeTerminal("command_sequence_mktemp")
-        results = self.dut.shell.command_sequence_mktemp.Execute(
-            "TMPFILE=`mktemp /data/local/tmp/test.XXXXXXXXXXXX` "
-            "&& ls $TMPFILE")
-        asserts.assertEqual(results[const.EXIT_CODE][0], 0)
-
-    def testMultipleShells(self):
-        """A simple testcase which just emulates a normal usage pattern."""
-        for index in range(self.REPEAT_COUNT):
-            current_shell_name = "shell%s" % index
-            self.dut.shell.InvokeTerminal(current_shell_name)
-            current_shell = getattr(self.dut.shell, current_shell_name)
-            results = current_shell.Execute("which ls")
-            logging.info(str(results[const.STDOUT]))
-            asserts.assertEqual(len(results[const.STDOUT]), 1)
-            asserts.assertEqual(results[const.STDOUT][0].strip(),
-                                "/system/bin/ls")
-            asserts.assertEqual(results[const.EXIT_CODE][0], 0)
-
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/host/shell/__init__.py b/testcases/host/shell/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/host/shell/__init__.py
+++ /dev/null
diff --git a/testcases/host/shell_binary_crash_test/Android.bp b/testcases/host/shell_binary_crash_test/Android.bp
deleted file mode 100644
index c1f9f21..0000000
--- a/testcases/host/shell_binary_crash_test/Android.bp
+++ /dev/null
@@ -1,49 +0,0 @@
-//
-// Copyright (C) 2016 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.
-//
-
-cc_binary {
-    name: "vts_test_binary_crash_app",
-    srcs: ["crash_app.c"],
-    shared_libs: [
-        "libutils",
-        "libcutils",
-        "liblog",
-    ],
-    include_dirs: ["bionic"],
-    cflags: [
-        "-Werror",
-        "-Wall",
-    ],
-}
-
-cc_binary {
-    name: "vts_test_binary_seg_fault",
-    srcs: ["seg_fault.c"],
-    shared_libs: [
-        "libutils",
-        "libcutils",
-        "liblog",
-    ],
-    include_dirs: ["bionic"],
-    cflags: [
-        "-Werror",
-        "-Wall",
-    ],
-}
-
-vts_config {
-    name: "ShellBinaryCrashTest",
-}
diff --git a/testcases/host/shell_binary_crash_test/AndroidTest.xml b/testcases/host/shell_binary_crash_test/AndroidTest.xml
deleted file mode 100644
index d7540e8..0000000
--- a/testcases/host/shell_binary_crash_test/AndroidTest.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="Config for VTS HAL shell binary crash test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-host" />
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-        <option name="cleanup" value="true" />
-        <option name="push" value="DATA/bin/vts_test_binary_crash_app->/data/local/tmp/vts_test_binary_crash_app" />
-        <option name="push" value="DATA/bin/vts_test_binary_seg_fault->/data/local/tmp/vts_test_binary_seg_fault" />
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="ShellBinaryCrashTest" />
-        <option name="test-case-path" value="vts/testcases/host/shell_binary_crash_test/ShellBinaryCrashTest" />
-    </test>
-</configuration>
diff --git a/testcases/host/shell_binary_crash_test/ShellBinaryCrashTest.py b/testcases/host/shell_binary_crash_test/ShellBinaryCrashTest.py
deleted file mode 100644
index 28b5880..0000000
--- a/testcases/host/shell_binary_crash_test/ShellBinaryCrashTest.py
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2016 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.
-#
-
-import logging
-
-from vts.runners.host import asserts
-from vts.runners.host import base_test
-from vts.runners.host import test_runner
-from vts.utils.python.controllers import android_device
-from vts.runners.host import const
-
-
-class ShellBinaryCrashTest(base_test.BaseTestClass):
-    """A binary crash test case for the shell driver."""
-
-    EXIT_CODE_CRASH = 133
-    EXIT_CODE_SEGFAULT = 139
-
-    def setUpClass(self):
-        self.run_as_vts_self_test = False
-        self.dut = self.android_devices[0]
-
-    def testCrashBinary(self):
-        """Tests whether the agent survives when a called binary crashes."""
-        self.dut.shell.InvokeTerminal("my_shell1")
-        target = "/data/local/tmp/vts_test_binary_crash_app"
-        results = self.dut.shell.my_shell1.Execute(
-            ["chmod 755 %s" % target, target])
-        logging.info(str(results[const.STDOUT]))
-        asserts.assertEqual(len(results[const.STDOUT]), 2)
-        asserts.assertEqual(results[const.STDOUT][1].strip(), "")
-        # "crash_app: start" is also valid output.
-        asserts.assertEqual(results[const.EXIT_CODE][1], self.EXIT_CODE_CRASH)
-
-        self.CheckShellDriver("my_shell1")
-        self.CheckShellDriver("my_shell2")
-
-    def testSegmentFaultBinary(self):
-        """Tests whether the agent survives when a binary leads to segfault."""
-        self.dut.shell.InvokeTerminal("my_shell1")
-        target = "/data/local/tmp/vts_test_binary_seg_fault"
-        results = self.dut.shell.my_shell1.Execute(
-            ["chmod 755 %s" % target, target])
-        logging.info(str(results[const.STDOUT]))
-        asserts.assertEqual(len(results[const.STDOUT]), 2)
-        asserts.assertEqual(results[const.STDOUT][1].strip(), "")
-        # TODO: currently the agent doesn't return the stdout log emitted
-        # before a failure.
-        asserts.assertEqual(results[const.EXIT_CODE][1],
-                            self.EXIT_CODE_SEGFAULT)
-
-        self.CheckShellDriver("my_shell1")
-        self.CheckShellDriver("my_shell2")
-
-    def CheckShellDriver(self, shell_name):
-        """Checks whether the shell driver sevice is available.
-
-        Args:
-            shell_name: string, the name of a shell service to create.
-        """
-        self.dut.shell.InvokeTerminal(shell_name)
-        results = getattr(self.dut.shell, shell_name).Execute("which ls")
-        logging.info(str(results[const.STDOUT]))
-        asserts.assertEqual(len(results[const.STDOUT]), 1)
-        asserts.assertEqual(results[const.STDOUT][0].strip(),
-                            "/system/bin/ls")
-        asserts.assertEqual(results[const.EXIT_CODE][0], 0)
-
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/host/shell_binary_crash_test/__init__.py b/testcases/host/shell_binary_crash_test/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/host/shell_binary_crash_test/__init__.py
+++ /dev/null
diff --git a/testcases/host/shell_binary_crash_test/crash_app.c b/testcases/host/shell_binary_crash_test/crash_app.c
deleted file mode 100644
index 32e827c..0000000
--- a/testcases/host/shell_binary_crash_test/crash_app.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright 2016 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.
- */
-#include <stdio.h>
-
-#define LOG_TAG "VtsTestBinary"
-#include <log/log.h>
-
-int main() {
-  char* pt = 0;
-
-  printf("crash_app: start");
-  ALOGI("crash_app: start");
-  *pt = 0xab;  // causes a null pointer exception.
-  printf("crash_app: end");
-  ALOGI("crash_app: end");
-  return 0;
-}
diff --git a/testcases/host/shell_binary_crash_test/seg_fault.c b/testcases/host/shell_binary_crash_test/seg_fault.c
deleted file mode 100644
index 6f84efb..0000000
--- a/testcases/host/shell_binary_crash_test/seg_fault.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 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.
- */
-#include <signal.h>
-#include <stdio.h>
-
-#define LOG_TAG "VtsSegFaultTestBinary"
-#include <log/log.h>
-
-int main() {
-  printf("seg_fault_bin: start");
-  ALOGI("seg_fault_bin: start");
-  raise(SIGSEGV);  // causes a segmentation fault
-  printf("seg_fault_bin: end");
-  ALOGI("seg_fault_bin: end");
-  return 0;
-}
diff --git a/testcases/host/verify_acpio/Android.bp b/testcases/host/verify_acpio/Android.bp
deleted file mode 100644
index 5be6db7..0000000
--- a/testcases/host/verify_acpio/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// 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.
-//
-
-vts_config {
-    name: "VtsFirmwareAcpioVerification",
-}
diff --git a/testcases/host/verify_boot_header/Android.bp b/testcases/host/verify_boot_header/Android.bp
deleted file mode 100644
index 7b97c89..0000000
--- a/testcases/host/verify_boot_header/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// 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.
-//
-
-vts_config {
-    name: "VtsFirmwareBootHeaderVerification",
-}
diff --git a/testcases/host/verify_boot_header/AndroidTest.xml b/testcases/host/verify_boot_header/AndroidTest.xml
deleted file mode 100644
index a29a5fa..0000000
--- a/testcases/host/verify_boot_header/AndroidTest.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="Config for VTS Boot Header Verification Test">
-    <option name="config-descriptor:metadata" key="plan" value="vts-firmware" />
-    <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="VtsFirmwareBootHeaderVerification"/>
-        <option name="test-case-path" value="vts/testcases/host/verify_boot_header/VtsFirmwareBootHeaderVerification" />
-        <option name="precondition-first-api-level" value="28" />
-    </test>
-</configuration>
diff --git a/testcases/host/verify_boot_header/VtsFirmwareBootHeaderVerification.py b/testcases/host/verify_boot_header/VtsFirmwareBootHeaderVerification.py
deleted file mode 100644
index 84c46ee..0000000
--- a/testcases/host/verify_boot_header/VtsFirmwareBootHeaderVerification.py
+++ /dev/null
@@ -1,181 +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.
-#
-"""VTS tests to verify boot/recovery image header versions."""
-
-import logging
-import os
-import shutil
-from struct import unpack
-import tempfile
-import zlib
-
-from vts.runners.host import asserts
-from vts.runners.host import base_test
-from vts.runners.host import test_runner
-from vts.utils.python.android import api
-from vts.utils.python.file import target_file_utils
-
-block_dev_path = "/dev/block/platform"  # path to platform block devices
-PROPERTY_SLOT_SUFFIX = "ro.boot.slot_suffix"  # indicates current slot suffix for A/B devices
-BOOT_HEADER_DTBO_SIZE_OFFSET = 1632  # offset of recovery dtbo size in boot header of version 1.
-
-
-class VtsFirmwareBootHeaderVerificationTest(base_test.BaseTestClass):
-    """Verifies boot/recovery image header.
-
-    Attributes:
-        temp_dir: The temporary directory on host.
-        slot_suffix: The current slot suffix for A/B devices.
-    """
-
-    def setUpClass(self):
-        """Initializes the DUT and creates temporary directories."""
-        self.dut = self.android_devices[0]
-        self.shell = self.dut.shell
-        self.adb = self.dut.adb
-        self.temp_dir = tempfile.mkdtemp()
-        self.launch_api_level = self.dut.getLaunchApiLevel()
-        logging.info("Create %s", self.temp_dir)
-        self.slot_suffix = self.dut.getProp(PROPERTY_SLOT_SUFFIX)
-        if self.slot_suffix is None:
-            self.slot_suffix = ""
-        logging.info("current slot suffix: %s", self.slot_suffix)
-
-    def setUp(self):
-        """Checks if the the preconditions to run the test are met."""
-        if "x86" in self.dut.cpu_abi:
-            global block_dev_path
-            block_dev_path = "/dev/block"
-            acpio_idx_string = self.adb.shell(
-                "cat /proc/cmdline | "
-                "grep -o \"androidboot.acpio_idx=[^ ]*\" |"
-                "cut -d \"=\" -f 2 ").replace('\n','')
-            asserts.skipIf((len(acpio_idx_string) == 0), "Skipping test for x86 NON-ACPI ABI")
-
-    def get_number_of_pages(self, image_size, page_size):
-        """Calculates the number of pages required for the image.
-
-        Args:
-            image_size: size of the image.
-            page_size : size of page.
-
-        Returns:
-            Number of pages required for the image
-        """
-        return (image_size + page_size - 1) / page_size
-
-    def checkValidRamdisk(self, ramdisk_image):
-        """Verifies that the ramdisk extracted from boot.img is a valid gzipped cpio archive.
-
-        Args:
-            ramdisk_image: ramdisk extracted from boot.img.
-        """
-        # Set wbits parameter to zlib.MAX_WBITS|16 to expect a gzip header and
-        # trailer.
-        unzipped_ramdisk = zlib.decompress(ramdisk_image, zlib.MAX_WBITS|16)
-        # The CPIO header magic can be "070701" or "070702" as per kernel
-        # documentation: Documentation/early-userspace/buffer-format.txt
-        cpio_header_magic = unzipped_ramdisk[0:6]
-        asserts.assertTrue(cpio_header_magic == "070701" or cpio_header_magic == "070702",
-                           "cpio archive header magic not found in ramdisk")
-
-    def CheckImageHeader(self, boot_image, is_recovery=False):
-        """Verifies the boot image format.
-
-        Args:
-            boot_image: Path to the boot image.
-            is_recovery: Indicates that the image is recovery if true.
-        """
-        try:
-            with open(boot_image, "rb") as image_file:
-                image_file.read(8)  # read boot magic
-                (kernel_size, _, ramdisk_size, _, _, _, _, page_size,
-                 host_image_header_version) = unpack("9I", image_file.read(9 * 4))
-
-                asserts.assertNotEqual(kernel_size, 0, "boot.img/recovery.img must contain kernel")
-
-                if self.launch_api_level > api.PLATFORM_API_LEVEL_P:
-                    asserts.assertTrue(
-                        host_image_header_version >= 2,
-                        "Device must atleast have a boot image of version 2")
-
-                    asserts.assertNotEqual(ramdisk_size, 0, "boot.img must contain ramdisk")
-
-                    # ramdisk comes after the header and kernel pages
-                    num_kernel_pages = self.get_number_of_pages(kernel_size, page_size)
-                    ramdisk_offset = page_size * (1 + num_kernel_pages)
-                    image_file.seek(ramdisk_offset)
-                    ramdisk_buf = image_file.read(ramdisk_size)
-                    self.checkValidRamdisk(ramdisk_buf)
-                else:
-                    asserts.assertTrue(
-                        host_image_header_version >= 1,
-                        "Device must atleast have a boot image of version 1")
-                image_file.seek(BOOT_HEADER_DTBO_SIZE_OFFSET)
-                recovery_dtbo_size = unpack("I", image_file.read(4))[0]
-                image_file.read(8)  # ignore recovery dtbo load address
-                if is_recovery:
-                    asserts.assertNotEqual(
-                        recovery_dtbo_size, 0,
-                        "recovery partition for non-A/B devices must contain the recovery DTBO"
-                    )
-                boot_header_size = unpack("I", image_file.read(4))[0]
-                if host_image_header_version > 1:
-                    dtb_size = unpack("I", image_file.read(4))[0]
-                    asserts.assertNotEqual(dtb_size, 0, "Boot/recovery image must contain DTB")
-                    image_file.read(8)  # ignore DTB physical load address
-                expected_header_size = image_file.tell()
-                asserts.assertEqual(
-                    boot_header_size, expected_header_size,
-                    "Test failure due to boot header size mismatch. Expected %s Actual %s"
-                    % (expected_header_size, boot_header_size))
-        except IOError as e:
-            logging.exception(e)
-            asserts.fail("Unable to open boot image file")
-
-    def testBootImageHeader(self):
-        """Validates boot image header."""
-        current_boot_partition = "boot" + str(self.slot_suffix)
-        boot_path = target_file_utils.FindFiles(
-            self.shell, block_dev_path, current_boot_partition, "-type l")
-        logging.info("Boot path %s", boot_path)
-        if not boot_path:
-            asserts.fail("Unable to find path to boot image on device.")
-        host_boot_path = os.path.join(self.temp_dir, "boot.img")
-        self.adb.pull("%s %s" % (boot_path[0], host_boot_path))
-        self.CheckImageHeader(host_boot_path)
-
-    def testRecoveryImageHeader(self):
-        """Validates recovery image header."""
-        asserts.skipIf(self.slot_suffix,
-                       "A/B devices do not have a separate recovery partition")
-        recovery_path = target_file_utils.FindFiles(self.shell, block_dev_path,
-                                                    "recovery", "-type l")
-        logging.info("recovery path %s", recovery_path)
-        if not recovery_path:
-            asserts.fail("Unable to find path to recovery image on device.")
-        host_recovery_path = os.path.join(self.temp_dir, "recovery.img")
-        self.adb.pull("%s %s" % (recovery_path[0], host_recovery_path))
-        self.CheckImageHeader(host_recovery_path, True)
-
-    def tearDownClass(self):
-        """Deletes temporary directories."""
-        shutil.rmtree(self.temp_dir)
-
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/host/verify_boot_header/__init__.py b/testcases/host/verify_boot_header/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/host/verify_boot_header/__init__.py
+++ /dev/null
diff --git a/testcases/host/verify_dtbo/Android.bp b/testcases/host/verify_dtbo/Android.bp
deleted file mode 100644
index 3c26c2b..0000000
--- a/testcases/host/verify_dtbo/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// 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.
-//
-
-vts_config {
-    name: "VtsFirmwareDtboVerification",
-}
diff --git a/testcases/host/verify_dtbo/AndroidTest.xml b/testcases/host/verify_dtbo/AndroidTest.xml
deleted file mode 100644
index f0ee1cd..0000000
--- a/testcases/host/verify_dtbo/AndroidTest.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="Config for VTS DTBO Verification Test">
-    <option name="config-descriptor:metadata" key="plan" value="vts-firmware" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-      <option name="push-group" value="HostDrivenTest.push" />
-      <option name="cleanup" value="true" />
-      <option name="push" value="DATA/nativetest64/ufdt_verify_overlay/ufdt_verify_overlay->/data/local/tmp/64/ufdt_verify_overlay" />
-      <option name="push" value="DATA/nativetest/ufdt_verify_overlay/ufdt_verify_overlay->/data/local/tmp/32/ufdt_verify_overlay" />
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsFirmwareDtboVerification"/>
-        <option name="test-case-path" value="vts/testcases/host/verify_dtbo/VtsFirmwareDtboVerification" />
-        <option name="precondition-first-api-level" value="28" />
-    </test>
-</configuration>
diff --git a/testcases/host/verify_dtbo/VtsFirmwareDtboVerification.py b/testcases/host/verify_dtbo/VtsFirmwareDtboVerification.py
deleted file mode 100644
index 74a2b68..0000000
--- a/testcases/host/verify_dtbo/VtsFirmwareDtboVerification.py
+++ /dev/null
@@ -1,183 +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.
-#
-"""VTS tests to verify DTBO partition/DT overlay application."""
-
-import logging
-import os
-import shutil
-import struct
-import subprocess
-import tempfile
-import zlib
-
-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
-from vts.utils.python.android import api
-from vts.utils.python.file import target_file_utils
-from vts.utils.python.os import path_utils
-
-BLOCK_DEV_PATH = "/dev/block/platform"  # path to platform block devices
-DEVICE_TEMP_DIR = "/data/local/tmp/"  # temporary dir in device.
-FDT_PATH = "/sys/firmware/fdt"  # path to device tree.
-PROPERTY_SLOT_SUFFIX = "ro.boot.slot_suffix"  # indicates current slot suffix for A/B devices
-DTBO_HEADER_SIZE = 32  # size of dtbo header
-DT_HEADER_FLAGS_OFFSET = 16  # offset in DT header to read compression info
-COMPRESSION_FLAGS_BIT_MASK = 0x0f  # Bit mask to get compression format from flags field of DT
-                                   # header for version 1 DTBO header.
-DECOMPRESS_WBIT_ARG = 47  # Automatically accepts either the zlib or gzip format.
-FDT_MAGIC = 0xd00dfeed  # FDT Magic
-
-
-class CompressionFormat(object):
-    """Enum representing DT compression format for a DT entry.
-    """
-    NO_COMPRESSION = 0x00
-    ZLIB_COMPRESSION = 0x01
-    GZIP_COMPRESSION = 0x02
-
-
-class VtsFirmwareDtboVerification(base_test.BaseTestClass):
-    """Validates DTBO partition and DT overlay application.
-
-    Attributes:
-        temp_dir: The temporary directory on host.
-        device_path: The temporary directory on device.
-    """
-
-    def setUpClass(self):
-        """Initializes the DUT and creates temporary directories."""
-        self.dut = self.android_devices[0]
-        self.shell = self.dut.shell
-        self.adb = self.dut.adb
-        self.temp_dir = tempfile.mkdtemp()
-        logging.info("Create %s", self.temp_dir)
-        self.device_path = str(
-            path_utils.JoinTargetPath(DEVICE_TEMP_DIR, self.abi_bitness))
-        self.shell.Execute("mkdir %s -p" % self.device_path)
-
-    def setUp(self):
-        """Checks if the the preconditions to run the test are met."""
-        asserts.skipIf("x86" in self.dut.cpu_abi, "Skipping test for x86 ABI")
-
-    def DecompressDTEntries(self, host_dtbo_image, unpacked_dtbo_path):
-        """Decompresses DT entries based on the flag field in the DT Entry header.
-
-        Args:
-            host_dtbo_image: Path to the DTBO image on host.
-            unpacked_dtbo_path: Path where DTBO was unpacked.
-        """
-
-        with open(host_dtbo_image, "rb") as file_in:
-            buf = file_in.read(DTBO_HEADER_SIZE)
-            (magic, total_size, header_size, dt_entry_size, dt_entry_count,
-             dt_entries_offset, page_size, version) = struct.unpack_from(">8I", buf, 0)
-            if version > 0:
-                for dt_entry_idx in range(dt_entry_count):
-                    file_in.seek(dt_entries_offset +
-                                 DT_HEADER_FLAGS_OFFSET)
-                    dt_entries_offset += dt_entry_size
-                    flags = struct.unpack(">I", file_in.read(1 * 4))[0]
-                    compression_format = flags & COMPRESSION_FLAGS_BIT_MASK
-                    if (compression_format not in [CompressionFormat.ZLIB_COMPRESSION,
-                                                   CompressionFormat.GZIP_COMPRESSION]):
-                        asserts.assertEqual(compression_format, CompressionFormat.NO_COMPRESSION,
-                                            "Unknown compression format %d" % compression_format)
-                        continue
-                    dt_entry_path = "%s.%s" % (unpacked_dtbo_path, dt_entry_idx)
-                    logging.info("decompressing %s", dt_entry_path)
-                    with open(dt_entry_path, "rb") as f:
-                        unzipped_dtbo_file = zlib.decompress(f.read(), DECOMPRESS_WBIT_ARG)
-                    with open(dt_entry_path, "r+b") as f:
-                        f.write(unzipped_dtbo_file)
-                        f.seek(0)
-                        fdt_magic = struct.unpack(">I", f.read(1 * 4))[0]
-                        asserts.assertEqual(fdt_magic, FDT_MAGIC,
-                                            "Bad FDT(Flattened Device Tree) Format")
-
-    def testCheckDTBOPartition(self):
-        """Validates DTBO partition using mkdtboimg.py."""
-        try:
-            slot_suffix = str(self.dut.getProp(PROPERTY_SLOT_SUFFIX))
-        except ValueError as e:
-            logging.exception(e)
-            slot_suffix = ""
-        current_dtbo_partition = "dtbo" + slot_suffix
-        dtbo_path = target_file_utils.FindFiles(
-            self.shell, BLOCK_DEV_PATH, current_dtbo_partition, "-type l")
-        logging.info("DTBO path %s", dtbo_path)
-        if not dtbo_path:
-            asserts.fail("Unable to find path to dtbo image on device.")
-        host_dtbo_image = os.path.join(self.temp_dir, "dtbo")
-        self.adb.pull("%s %s" % (dtbo_path[0], host_dtbo_image))
-        mkdtboimg_bin_path = os.path.join("host", "bin", "mkdtboimg.py")
-        unpacked_dtbo_path = os.path.join(self.temp_dir, "dumped_dtbo")
-        dtbo_dump_cmd = [
-            "%s" % mkdtboimg_bin_path, "dump",
-            "%s" % host_dtbo_image, "-b",
-            "%s" % unpacked_dtbo_path
-        ]
-        try:
-            subprocess.check_call(dtbo_dump_cmd)
-        except Exception as e:
-            logging.exception(e)
-            logging.error('dtbo_dump_cmd is: %s', dtbo_dump_cmd)
-            asserts.fail("Invalid DTBO Image")
-        # TODO(b/109892148) Delete code below once decompress option is enabled for mkdtboimg.py
-        self.DecompressDTEntries(host_dtbo_image, unpacked_dtbo_path)
-
-    def testVerifyOverlay(self):
-        """Verifies application of DT overlays."""
-        overlay_idx_string = self.adb.shell(
-            "cat /proc/cmdline | "
-            "grep -o \"androidboot.dtbo_idx=[^ ]*\" |"
-            "cut -d \"=\" -f 2")
-        asserts.assertNotEqual(
-            len(overlay_idx_string), 0,
-            "Kernel command line missing androidboot.dtbo_idx")
-        overlay_idx_list = overlay_idx_string.split(",")
-        overlay_arg = []
-        for idx in overlay_idx_list:
-            overlay_file = "dumped_dtbo." + idx.rstrip()
-            overlay_path = os.path.join(self.temp_dir, overlay_file)
-            self.adb.push(overlay_path, self.device_path)
-            overlay_arg.append(overlay_file)
-        final_dt_path = path_utils.JoinTargetPath(self.device_path, "final_dt")
-        self.shell.Execute("cp %s %s" % (FDT_PATH, final_dt_path))
-        verification_test_path = path_utils.JoinTargetPath(
-            self.device_path, "ufdt_verify_overlay")
-        chmod_cmd = "chmod 755 %s" % verification_test_path
-        results = self.shell.Execute(chmod_cmd)
-        asserts.assertEqual(results[const.EXIT_CODE][0], 0, "Unable to chmod")
-        cd_cmd = "cd %s" % (self.device_path)
-        verify_cmd = "./ufdt_verify_overlay final_dt %s" % (
-            " ".join(overlay_arg))
-        cmd = str("%s && %s" % (cd_cmd, verify_cmd))
-        logging.info(cmd)
-        results = self.shell.Execute(cmd)
-        asserts.assertEqual(results[const.EXIT_CODE][0], 0,
-                            "Incorrect Overlay Application")
-
-    def tearDownClass(self):
-        """Deletes temporary directories."""
-        shutil.rmtree(self.temp_dir)
-        self.shell.Execute("rm -rf %s" % self.device_path)
-
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/host/verify_dtbo/__init__.py b/testcases/host/verify_dtbo/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/host/verify_dtbo/__init__.py
+++ /dev/null
diff --git a/testcases/system/__init__.py b/testcases/system/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/system/__init__.py
+++ /dev/null
diff --git a/testcases/system/device_health/Android.bp b/testcases/system/device_health/Android.bp
deleted file mode 100644
index 37a7efa..0000000
--- a/testcases/system/device_health/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// 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.
-//
-
-vts_config {
-    name: "VtsDeviceHealth",
-}
diff --git a/testcases/system/device_health/AndroidTest.xml b/testcases/system/device_health/AndroidTest.xml
deleted file mode 100644
index fdea26a..0000000
--- a/testcases/system/device_health/AndroidTest.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="Config for VTS VtsDeviceHalth test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-device-health" />
-
-    <target_preparer class="com.android.tradefed.targetprep.TestAppInstallSetup">
-        <option name="test-file-name" value="DeviceHealthTests.apk" />
-        <option name="cleanup-apks" value="true" />
-    </target_preparer>
-
-    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
-        <option name="package" value="com.android.devicehealth.tests" />
-        <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
-    </test>
-</configuration>
diff --git a/testcases/system/libc/Android.bp b/testcases/system/libc/Android.bp
deleted file mode 100644
index c401b2c..0000000
--- a/testcases/system/libc/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Copyright (C) 2016 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.
-//
-
-vts_config {
-    name: "LibcTest",
-}
diff --git a/testcases/system/libc/AndroidTest.xml b/testcases/system/libc/AndroidTest.xml
deleted file mode 100644
index 6eb6a78..0000000
--- a/testcases/system/libc/AndroidTest.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="Config for VTS libc basic file and socket IO testing">
-    <option name="config-descriptor:metadata" key="plan" value="vts-library" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-        <option name="cleanup" value="true" />
-        <option name="push" value="spec/test/vts/specification/lib/ndk/bionic/1.0/libcV1.vts->/data/local/tmp/spec/lib/ndk/bionic/1.0/libcV1.vts" />
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="LibcTest" />
-        <option name="test-case-path" value="vts/testcases/system/libc/LibcTest" />
-    </test>
-</configuration>
diff --git a/testcases/system/libc/LibcTest.py b/testcases/system/libc/LibcTest.py
deleted file mode 100644
index 5316238..0000000
--- a/testcases/system/libc/LibcTest.py
+++ /dev/null
@@ -1,133 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2016 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.
-#
-
-import logging
-
-from vts.runners.host import asserts
-from vts.runners.host import base_test
-from vts.runners.host import test_runner
-
-from vts.runners.host import const
-
-
-class LibcTest(base_test.BaseTestClass):
-    """A basic test of the libc API."""
-
-    def setUpClass(self):
-        self.dut = self.android_devices[0]
-        self.dut.lib.InitSharedLib(
-            target_type="bionic_libc",
-            target_basepaths=["/system/lib64"],
-            target_version=1.0,
-            target_filename="libc.so",
-            bits=64,
-            handler_name="libc",
-            target_package="lib.ndk.bionic")
-
-    def testOpenCloseLocalSocketStream(self):
-        """Tests open and close socket operations for local communication.
-
-        Uses local addresses and a streaming socket.
-        """
-        result = self.dut.lib.libc.socket(self.dut.lib.libc.PF_UNIX,
-                                          self.dut.lib.libc.SOCK_STREAM, 0)
-        asserts.assertNotEqual(result.return_type.scalar_value.int32_t, -1,
-                               "libc.socket: could not create socket.")
-
-        result = self.dut.lib.libc.close(
-            result.return_type.scalar_value.int32_t)
-        asserts.assertNotEqual(result.return_type.scalar_value.int32_t, -1,
-                               "libc.close: unable to close socket.")
-
-    def testOpenCloseLocalSocketDatagram(self):
-        """Tests open and close socket operations for local communication.
-
-        Uses local addresses and a datagram socket.
-        """
-        result = self.dut.lib.libc.socket(self.dut.lib.libc.PF_UNIX,
-                                          self.dut.lib.libc.SOCK_DGRAM, 0)
-        asserts.assertNotEqual(result.return_type.scalar_value.int32_t, -1,
-                               "libc.socket: could not create socket.")
-
-        result = self.dut.lib.libc.close(
-            result.return_type.scalar_value.int32_t)
-        asserts.assertNotEqual(result.return_type.scalar_value.int32_t, -1,
-                               "libc.close: unable to close socket.")
-
-    def testOpenCloseLocalSocketRaw(self):
-        """Tests open and close socket operations for local communication.
-
-        Uses local addresses and a raw socket.
-        """
-        result = self.dut.lib.libc.socket(self.dut.lib.libc.PF_UNIX,
-                                          self.dut.lib.libc.SOCK_RAW, 0)
-        asserts.assertNotEqual(result.return_type.scalar_value.int32_t, -1,
-                               "libc.socket: could not create socket.")
-
-        result = self.dut.lib.libc.close(
-            result.return_type.scalar_value.int32_t)
-        asserts.assertNotEqual(result.return_type.scalar_value.int32_t, -1,
-                               "libc.close: unable to close socket.")
-
-    def testOpenCloseLocalSocketSequential(self):
-        """Tests open and close socket operations for local communication.
-
-        Uses local addresses and a sequential socket.
-        """
-        result = self.dut.lib.libc.socket(self.dut.lib.libc.PF_UNIX,
-                                          self.dut.lib.libc.SOCK_SEQPACKET, 0)
-        asserts.assertNotEqual(result.return_type.scalar_value.int32_t, -1,
-                               "libc.socket: could not create socket.")
-
-        result = self.dut.lib.libc.close(
-            result.return_type.scalar_value.int32_t)
-        asserts.assertNotEqual(result.return_type.scalar_value.int32_t, -1,
-                               "libc.close: unable to close socket.")
-
-    def testOpenCloseINETSocketStream(self):
-        """Tests open and close socket operations for INET communication.
-
-        Uses IP addresses and a streaming socket.
-        """
-        result = self.dut.lib.libc.socket(self.dut.lib.libc.PF_INET,
-                                          self.dut.lib.libc.SOCK_STREAM, 0)
-        asserts.assertNotEqual(result.return_type.scalar_value.int32_t, -1,
-                               "libc.socket: could not create socket.")
-
-        result = self.dut.lib.libc.close(
-            result.return_type.scalar_value.int32_t)
-        asserts.assertNotEqual(result.return_type.scalar_value.int32_t, -1,
-                               "libc.close: unable to close socket.")
-
-    def testOpenCloseINETSocketDatagram(self):
-        """Tests open and close socket operations for INET communication.
-
-        Uses IP addresses and a datagram socket.
-        """
-        result = self.dut.lib.libc.socket(self.dut.lib.libc.PF_INET,
-                                          self.dut.lib.libc.SOCK_DGRAM, 0)
-        asserts.assertNotEqual(result.return_type.scalar_value.int32_t, -1,
-                               "libc.socket: could not create socket.")
-
-        result = self.dut.lib.libc.close(
-            result.return_type.scalar_value.int32_t)
-        asserts.assertNotEqual(result.return_type.scalar_value.int32_t, -1,
-                               "libc.close: unable to close socket.")
-
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/system/libc/__init__.py b/testcases/system/libc/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/system/libc/__init__.py
+++ /dev/null
diff --git a/testcases/target/hal_lights/Android.bp b/testcases/target/hal_lights/Android.bp
index 1340b66..4d34b0a 100644
--- a/testcases/target/hal_lights/Android.bp
+++ b/testcases/target/hal_lights/Android.bp
@@ -14,6 +14,10 @@
 // limitations under the License.
 //
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 cc_test {
     name: "VtsHalLightsTestCases",
     multilib: {
diff --git a/testcases/target/hal_power/Android.bp b/testcases/target/hal_power/Android.bp
index cb1b5fb..02dd16e 100644
--- a/testcases/target/hal_power/Android.bp
+++ b/testcases/target/hal_power/Android.bp
@@ -14,6 +14,10 @@
 // limitations under the License.
 //
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 cc_test {
     name: "VtsHalPowerTestCases",
     multilib: {
diff --git a/testcases/template/gtest_binary_test/gtest_binary_test.py b/testcases/template/gtest_binary_test/gtest_binary_test.py
index dfbe100..ea47011 100644
--- a/testcases/template/gtest_binary_test/gtest_binary_test.py
+++ b/testcases/template/gtest_binary_test/gtest_binary_test.py
@@ -29,7 +29,7 @@
 from vts.testcases.template.binary_test import binary_test_case
 from vts.testcases.template.gtest_binary_test import gtest_test_case
 
-_GTEST_RESULT_ATTRIBUTE_WHITE_LIST = ('properties',)
+_GTEST_RESULT_ATTRIBUTE_ALLOW_LIST = ('properties',)
 
 
 class GtestBinaryTest(binary_test.BinaryTest):
@@ -256,7 +256,7 @@
                         failure_message = sub.get('message')
 
                 test_case_filtered = filter(
-                    lambda sub: sub.tag not in _GTEST_RESULT_ATTRIBUTE_WHITE_LIST, test_case)
+                    lambda sub: sub.tag not in _GTEST_RESULT_ATTRIBUTE_ALLOW_LIST, test_case)
                 if len(test_case_filtered) and not failure_message:
                     failure_message = 'Error: %s\n' % test_case.attrib
                     for sub in test_case_filtered:
diff --git a/testcases/vts_selftest/__init__.py b/testcases/vts_selftest/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/vts_selftest/__init__.py
+++ /dev/null
diff --git a/testcases/vts_selftest/manual_tests/README.txt b/testcases/vts_selftest/manual_tests/README.txt
deleted file mode 100644
index 5aff089..0000000
--- a/testcases/vts_selftest/manual_tests/README.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-This directory contains test cases that require to be manually run.
-
-Test cases in this directory could be designed to:
-  crash device
-  crash test framework
-  have inconsistent test result
-  etc.
-
-It is up to the user's understanding and precaution before running tests
-from this directory.
\ No newline at end of file
diff --git a/testcases/vts_selftest/manual_tests/__init__.py b/testcases/vts_selftest/manual_tests/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/vts_selftest/manual_tests/__init__.py
+++ /dev/null
diff --git a/testcases/vts_selftest/manual_tests/flaky_hidl_test/Android.bp b/testcases/vts_selftest/manual_tests/flaky_hidl_test/Android.bp
deleted file mode 100644
index 968ac69..0000000
--- a/testcases/vts_selftest/manual_tests/flaky_hidl_test/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// 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.
-//
-
-vts_config {
-    name: "VtsSelfTestFlakyHidlTest",
-}
diff --git a/testcases/vts_selftest/manual_tests/flaky_hidl_test/AndroidTest.xml b/testcases/vts_selftest/manual_tests/flaky_hidl_test/AndroidTest.xml
deleted file mode 100644
index ff65df5..0000000
--- a/testcases/vts_selftest/manual_tests/flaky_hidl_test/AndroidTest.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="Config for VTS Self Test Flaky HIDL Test Case(s)">
-    <option name="config-descriptor:metadata" key="plan" value="vts-staging-selftest" />
-
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="abort-on-push-failure" value="false"/>
-        <option name="push-group" value="HalHidlTargetTest.push"/>
-    </target_preparer>
-
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsSelfTestFlakyHidlTest" />
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/vts_selftest_flaky_test/vts_selftest_flaky_test" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/vts_selftest_flaky_test/vts_selftest_flaky_test" />
-        <option name="binary-test-type" value="hal_hidl_gtest"/>
-        <option name="binary-test-disable-framework" value="true"/>
-        <option name="binary-test-stop-native-servers" value="true"/>
-        <option name="precondition-lshal" value="android.hardware.nfc@1.0"/>
-        <option name="test-timeout" value="30s"/>
-    </test>
-</configuration>
diff --git a/testcases/vts_selftest/manual_tests/flaky_test/Android.bp b/testcases/vts_selftest/manual_tests/flaky_test/Android.bp
deleted file mode 100644
index 48abb29..0000000
--- a/testcases/vts_selftest/manual_tests/flaky_test/Android.bp
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// 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.
-//
-
-cc_test {
-    name: "vts_selftest_flaky_test",
-    srcs: ["vts_selftest_flaky_test.cpp"],
-    cflags: [
-        "-Wall",
-        "-Werror",
-        "-O0",
-        "-g",
-    ],
-}
-
-vts_config {
-    name: "VtsSelfTestFlakyTest",
-}
diff --git a/testcases/vts_selftest/manual_tests/flaky_test/AndroidTest.xml b/testcases/vts_selftest/manual_tests/flaky_test/AndroidTest.xml
deleted file mode 100644
index 53200a2..0000000
--- a/testcases/vts_selftest/manual_tests/flaky_test/AndroidTest.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="Config for VTS Self Test Flaky Test Case(s)">
-    <option name="config-descriptor:metadata" key="plan" value="vts-staging-selftest" />
-
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsSelfTestFlakyTest" />
-        <option name="binary-test-working-directory" value="_32bit::/data/nativetest/" />
-        <option name="binary-test-working-directory" value="_64bit::/data/nativetest64/" />
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/vts_selftest_flaky_test/vts_selftest_flaky_test" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/vts_selftest_flaky_test/vts_selftest_flaky_test" />
-        <option name="binary-test-type" value="gtest" />
-        <option name="test-timeout" value="30s"/>
-    </test>
-</configuration>
diff --git a/testcases/vts_selftest/manual_tests/flaky_test/vts_selftest_flaky_test.cpp b/testcases/vts_selftest/manual_tests/flaky_test/vts_selftest_flaky_test.cpp
deleted file mode 100644
index b63adfe..0000000
--- a/testcases/vts_selftest/manual_tests/flaky_test/vts_selftest_flaky_test.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright 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.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <unistd.h>
-
-#include <gtest/gtest.h>
-#define LOG_TAG "VtsSelfTestFlakyTest"
-#include <log/log.h>
-
-class VtsSelfTestFlakyTest : public ::testing::Test {
- public:
-  virtual void SetUp() override {
-    struct timeval time;
-    gettimeofday(&time, NULL);
-
-    srand((time.tv_sec * 1000) + (time.tv_usec / 1000));
-  }
-
-  virtual void TearDown() override {}
-};
-
-/**
- * Always passing.
- */
-TEST_F(VtsSelfTestFlakyTest, TestAlwaysPassing1) {
-  printf("PASS (with 100%% chance)\n");
-}
-
-TEST_F(VtsSelfTestFlakyTest, TestAlwaysPassing2) {
-  printf("PASS (with 100%% chance)\n");
-}
-
-/**
- * Fails with 50% of chance.
- */
-TEST_F(VtsSelfTestFlakyTest, TestFlaky1) {
-  int number = abs(rand());
-  printf("number: %d\n", number);
-  ASSERT_TRUE((number % 2) == 0);
-}
-
-TEST_F(VtsSelfTestFlakyTest, TestFlaky2) {
-  int number = abs(rand());
-  printf("number: %d\n", number);
-  ASSERT_TRUE((number % 2) == 0);
-}
-
-TEST_F(VtsSelfTestFlakyTest, TestFlaky3) {
-  int number = abs(rand());
-  printf("number: %d\n", number);
-  ASSERT_TRUE((number % 2) == 0);
-}
-
-TEST_F(VtsSelfTestFlakyTest, TestFlaky4) {
-  int number = abs(rand());
-  printf("number: %d\n", number);
-  ASSERT_TRUE((number % 2) == 0);
-}
-
-TEST_F(VtsSelfTestFlakyTest, TestFlaky5) {
-  int number = abs(rand());
-  printf("number: %d\n", number);
-  ASSERT_TRUE((number % 2) == 0);
-}
-
-int main(int argc, char **argv) {
-  ::testing::InitGoogleTest(&argc, argv);
-  return RUN_ALL_TESTS();
-}
diff --git a/testcases/vts_selftest/manual_tests/shell_performance/Android.bp b/testcases/vts_selftest/manual_tests/shell_performance/Android.bp
deleted file mode 100644
index 53e881c..0000000
--- a/testcases/vts_selftest/manual_tests/shell_performance/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// 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.
-//
-
-vts_config {
-    name: "VtsSelfTestShellPerformance",
-}
diff --git a/testcases/vts_selftest/manual_tests/shell_performance/AndroidTest.xml b/testcases/vts_selftest/manual_tests/shell_performance/AndroidTest.xml
deleted file mode 100644
index d21d5cc..0000000
--- a/testcases/vts_selftest/manual_tests/shell_performance/AndroidTest.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="Config for VTS Self Test Shell Performance Banchmark">
-    <option name="config-descriptor:metadata" key="plan" value="vts-staging-selftest" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-        <option name="push" value="DATA/nativetest64/vts_selftest_zero_testcase_binary_test/vts_selftest_zero_testcase_binary_test->/data/local/tmp/zero_testcase"/>
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsSelfTestShellPerformance" />
-        <option name="test-case-path" value="vts/testcases/vts_selftest/manual_tests/shell_performance/VtsSelfTestShellPerformance" />
-    </test>
-</configuration>
diff --git a/testcases/vts_selftest/manual_tests/shell_performance/VtsSelfTestShellPerformance.py b/testcases/vts_selftest/manual_tests/shell_performance/VtsSelfTestShellPerformance.py
deleted file mode 100644
index 1c091d1..0000000
--- a/testcases/vts_selftest/manual_tests/shell_performance/VtsSelfTestShellPerformance.py
+++ /dev/null
@@ -1,113 +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.
-#
-
-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
-import time
-
-
-class VtsSelfTestShellPerformance(base_test.BaseTestClass):
-    '''A simple performance test to compare adb shell and VTS shell.'''
-
-    def setUpClass(self):
-        # Since we are running the actual test cases, run_as_vts_self_test
-        # must be set to False.
-        self.run_as_vts_self_test = False
-
-        self.dut = self.android_devices[0]
-        self.shell = self.dut.shell
-
-    def VtsShell(self, cmd, n):
-        '''Execute a command for n times via VTS shell.
-
-        Args:
-            cmd: string, command to execute
-            n: int, number of repeated calls
-        '''
-        for i in range(n):
-            self.shell.Execute(cmd)
-
-    def AdbShell(self, cmd, n):
-        '''Execute a command for n times via ADB shell.
-
-        Args:
-            cmd: string, command to execute
-            n: int, number of repeated calls
-        '''
-        for i in range(n):
-            self.dut.adb.shell(cmd)
-
-    def VtsShellList(self, cmd, n):
-        '''Execute a command for n times via VTS shell as a list.
-
-        Args:
-            cmd: string, command to execute
-            n: int, number of repeated calls
-        '''
-        self.shell.Execute([cmd] * n)
-
-    def Measure(self, func, *args):
-        '''Measure time lapsed when executing a function.
-
-        Args:
-            func: function, function to execute
-            *args: list of arguments for the functions
-        '''
-        start = time.time()
-        func(*args)
-        return time.time() - start
-
-    def testPerformance(self):
-        '''Run an empty gtest on device for 100 times and log the times.'''
-
-        cmd = "/data/local/tmp/zero_testcase"
-
-        # First call to eliminate caching effects
-        self.AdbShell(cmd, 1)
-        self.VtsShell(cmd, 1)
-
-        repeats = 100
-
-        adb_time = self.Measure(self.AdbShell, cmd, repeats)
-        vts_time = self.Measure(self.VtsShell, cmd, repeats)
-        vts_list_time = self.Measure(self.VtsShellList, cmd, repeats)
-
-        logging.info("adb shell for 100 times = %s", adb_time)
-        logging.info("vts shell for 100 times = %s", vts_time)
-        logging.info("vts shell with for 100 times = %s", vts_list_time)
-
-        # vts_list_time = repeats * x + y
-        # vts_time = repeats * (x + y)
-        # adb_time = repeats * (x + z)
-
-        # y = vts_list_time - repeats * x
-        # vts_time = repeats * (x + (vts_list_time - repeats * x))
-        x = (vts_list_time * repeats - vts_time) / ((repeats - 1) * repeats)
-        y = vts_list_time - repeats * x
-        z = adb_time / repeats - x
-
-        logging.info("estimated execution time for vts = %s", x)
-        logging.info("estimated communication latency for vts = %s", y)
-        logging.info("estimated communication latency for adb "
-                     "(only apply to non-nohup tests) = %s", z)
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/vts_selftest/manual_tests/shell_performance/__init__.py b/testcases/vts_selftest/manual_tests/shell_performance/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/vts_selftest/manual_tests/shell_performance/__init__.py
+++ /dev/null
diff --git a/testcases/vts_selftest/manual_tests/zero_testcase_binary_test/Android.bp b/testcases/vts_selftest/manual_tests/zero_testcase_binary_test/Android.bp
deleted file mode 100644
index ad66940..0000000
--- a/testcases/vts_selftest/manual_tests/zero_testcase_binary_test/Android.bp
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// 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.
-//
-
-cc_test {
-    name: "vts_selftest_zero_testcase_binary_test",
-    srcs: ["vts_selftest_zero_testcase_binary_test.cpp"],
-    cflags: [
-        "-Wall",
-        "-Werror",
-        "-O0",
-        "-g",
-    ],
-}
-
-vts_config {
-    name: "VtsSelfTestZeroTestCaseBinaryTest",
-}
diff --git a/testcases/vts_selftest/manual_tests/zero_testcase_binary_test/AndroidTest.xml b/testcases/vts_selftest/manual_tests/zero_testcase_binary_test/AndroidTest.xml
deleted file mode 100644
index dab87b0..0000000
--- a/testcases/vts_selftest/manual_tests/zero_testcase_binary_test/AndroidTest.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="Config for VTS Self Test Zero Test Case Binary Test Case(s)">
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsSelfTestZeroTestCaseBinaryTest" />
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/vts_selftest_zero_testcase_binary_test/vts_selftest_zero_testcase_binary_test" />
-        <option name="binary-test-type" value="gtest" />
-        <option name="skip-on-32bit-abi" value="true" />
-        <option name="test-timeout" value="10s"/>
-    </test>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsSelfTestZeroTestCaseBinaryTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/vts_selftest_zero_testcase_binary_test/vts_selftest_zero_testcase_binary_test" />
-        <option name="binary-test-type" value="gtest" />
-        <option name="skip-on-64bit-abi" value="true" />
-        <option name="test-timeout" value="10s"/>
-    </test>
-</configuration>
diff --git a/testcases/vts_selftest/manual_tests/zero_testcase_binary_test/vts_selftest_zero_testcase_binary_test.cpp b/testcases/vts_selftest/manual_tests/zero_testcase_binary_test/vts_selftest_zero_testcase_binary_test.cpp
deleted file mode 100644
index 510204a..0000000
--- a/testcases/vts_selftest/manual_tests/zero_testcase_binary_test/vts_selftest_zero_testcase_binary_test.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright 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.
- */
-
-#include <gtest/gtest.h>
-#define LOG_TAG "VtsSelfTestZeroTestCaseBinaryTest"
-#include <log/log.h>
-
-class VtsSelfTestFlakyTest : public ::testing::Test {
- public:
-  virtual void SetUp() override {}
-
-  virtual void TearDown() override {}
-};
-
-/**
- * Always passing.
- */
-TEST_F(VtsSelfTestFlakyTest, EmptyTest) {}
diff --git a/testcases/vts_selftest/test_framework/__init__.py b/testcases/vts_selftest/test_framework/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/vts_selftest/test_framework/__init__.py
+++ /dev/null
diff --git a/testcases/vts_selftest/test_framework/base_test/Android.bp b/testcases/vts_selftest/test_framework/base_test/Android.bp
deleted file mode 100644
index 3d8d05a..0000000
--- a/testcases/vts_selftest/test_framework/base_test/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// Copyright (C) 2017 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.
-//
-
-vts_config {
-    name: "VtsSelfTestBaseTest",
-}
diff --git a/testcases/vts_selftest/test_framework/base_test/AndroidTest.xml b/testcases/vts_selftest/test_framework/base_test/AndroidTest.xml
deleted file mode 100644
index 60353f1..0000000
--- a/testcases/vts_selftest/test_framework/base_test/AndroidTest.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<configuration description="Config for VTS Framework Integration Test Case">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsSelfTestBaseTest"/>
-        <option name="test-case-path" value="vts/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTest" />
-        <option name="config-str" key="a" value="a"/>
-        <option name="config-str" key="b" value="b"/>
-        <option name="config-int" key="a" value="1"/>
-        <option name="config-int" key="b" value="2"/>
-        <option name="config-bool" key="a" value="true"/>
-        <option name="config-bool" key="b" value="false"/>
-    </test>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsSelfTestBaseTestFilterInclude"/>
-        <option name="test-case-path" value="vts/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTestFilterInclude" />
-        <option name="include-filter" value="suite1.test1"/>
-        <option name="include-filter" value="suite1.test2_32bit"/>
-        <option name="include-filter" value="r(suite2\..*)"/>
-        <option name="include-filter" value="VtsSelfTestBaseTestFilterInclude.suite3.test1"/>
-    </test>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsSelfTestBaseTestFilterExclude"/>
-        <option name="test-case-path" value="vts/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTestFilterExclude" />
-        <option name="exclude-filter" value="suite1.test1"/>
-        <option name="exclude-filter" value="suite1.test2_32bit"/>
-        <option name="exclude-filter" value="r(suite2\..*2_.*)"/>
-        <option name="exclude-filter" value="r(*)"/>
-        <option name="include-filter" value="-suite3.test1"/>
-        <option name="include-filter" value="-r(suite3\..*_32bit)"/>
-    </test>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsSelfTestBaseTestFilterIncludeExclude"/>
-        <option name="test-case-path" value="vts/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTestFilterIncludeExclude" />
-        <option name="include-filter" value="r(.*_32bit)"/>
-        <option name="include-filter" value="\r(fake.regex)"/>
-        <option name="exclude-filter" value="suite1.test1"/>
-    </test>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsSelfTestBaseTestFilterExcludeInclude"/>
-        <option name="test-case-path" value="vts/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTestFilterExcludeInclude" />
-        <option name="include-filter" value="r(.*_32bit)"/>
-        <option name="include-filter" value="suite1.test1_64bit"/>
-        <option name="exclude-filter" value="suite1.test1"/>
-        <option name="exclude-over-include" value="true"/>
-    </test>
-</configuration>
diff --git a/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTest.py b/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTest.py
deleted file mode 100644
index 84d6d02..0000000
--- a/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTest.py
+++ /dev/null
@@ -1,162 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2017 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.
-#
-
-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
-
-
-def AssertShellCommandSuccess(command_results, num_of_commands):
-    '''Check shell command result with assertions.
-
-    Given a shell command output, this command checks several things:
-    1. result is not None
-    2. result is not empty
-    3. number of results is consistant with number of commands
-    4. there is no error message on STDERR
-    5. return code of commands are all 0
-
-    Args:
-        command_results: dict, shell command results
-        num_of_commands: int, number of commands
-    '''
-    asserts.assertTrue(command_results is not None,
-                       'command result cannot be None')
-    asserts.assertEqual(len(command_results), 3, 'command result is empty')
-    for item in command_results:
-        asserts.assertEqual(
-            len(command_results[item]), num_of_commands,
-            'number of command result is not %s: %s' % (num_of_commands,
-                                                        command_results))
-    asserts.assertFalse(
-        any(command_results[const.STDERR]),
-        'received error message from stderr: %s' % command_results)
-    asserts.assertFalse(
-        any(command_results[const.EXIT_CODE]),
-        'received non zero return code: %s' % command_results)
-
-
-class VtsSelfTestBaseTest(base_test.BaseTestClass):
-    '''Two hello world test cases which use the shell driver.
-
-    Attributes:
-        is_first_run: bool, whether this test run is the first run with retry attempts.
-    '''
-    run_count = 0
-
-    def setUpClass(self):
-        # Since we are running the actual test cases, run_as_vts_self_test
-        # must be set to False.
-        self.run_as_vts_self_test = False
-
-        self.dut = self.android_devices[0]
-        self.shell = self.dut.shell
-
-    def tearDownClass(self):
-        self.run_count += 1
-
-    def testShellEcho1(self):
-        '''A simple testcase which sends a command.'''
-        results = self.shell.Execute(
-            "echo hello_world")  # runs a shell command.
-        AssertShellCommandSuccess(results, 1)
-        logging.info(str(results[const.STDOUT]))  # prints the stdout
-        asserts.assertEqual(results[const.STDOUT][0].strip(),
-                            "hello_world")  # checks the stdout
-
-    def testShellEcho2(self):
-        '''A simple testcase which sends two commands.'''
-        results = self.shell.Execute(['echo hello', 'echo world'])
-        AssertShellCommandSuccess(results, 2)
-        logging.info(str(results[const.STDOUT]))
-        asserts.assertEqual(results[const.STDOUT][0].strip(), 'hello')
-        asserts.assertEqual(results[const.STDOUT][1].strip(), 'world')
-
-    def testDeviceTotalMem(self):
-        '''Test AndroidDevice class total_memory getter function'''
-        asserts.assertTrue(self.dut.total_memory > 0,
-                           'Failed to get device memory info.')
-
-    def test_getUserConfigStr1(self):
-        '''Test getUserConfigStr.'''
-        asserts.assertEqual(self.getUserConfigStr('a'), 'a')
-
-    def test_getUserConfigStr2(self):
-        '''Test getUserConfigStr.'''
-        asserts.assertEqual(self.getUserConfigStr('b'), 'b')
-
-    def test_getUserConfigStr3(self):
-        '''Test getUserConfigStr.'''
-        asserts.assertEqual(self.getUserConfigStr('c'), None)
-
-    def test_getUserConfigStr4(self):
-        '''Test getUserConfigStr.'''
-        asserts.assertEqual(self.getUserConfigStr('c', to_str=True), None)
-
-    def test_getUserConfigInt1(self):
-        '''Test getUserConfigInt.'''
-        asserts.assertEqual(self.getUserConfigInt('a'), 1)
-
-    def test_getUserConfigInt2(self):
-        '''Test getUserConfigInt.'''
-        asserts.assertEqual(self.getUserConfigInt('b'), 2)
-
-    def test_getUserConfigInt3(self):
-        '''Test getUserConfigInt.'''
-        asserts.assertEqual(self.getUserConfigInt('b', to_str=True), '2')
-
-    def test_getUserConfigInt4(self):
-        '''Test getUserConfigInt.'''
-        asserts.assertEqual(self.getUserConfigInt('c'), None)
-
-    def test_getUserConfigInt5(self):
-        '''Test getUserConfigInt.'''
-        asserts.assertEqual(self.getUserConfigInt('c', to_str=True), None)
-
-    def test_getUserConfigBool1(self):
-        '''Test getUserConfigBool.'''
-        asserts.assertEqual(self.getUserConfigBool('a'), True)
-
-    def test_getUserConfigBool2(self):
-        '''Test getUserConfigBool.'''
-        asserts.assertEqual(self.getUserConfigBool('b'), False)
-
-    def test_getUserConfigBool3(self):
-        '''Test getUserConfigBool.'''
-        asserts.assertEqual(self.getUserConfigBool('b', to_str=True), 'False')
-
-    def test_getUserConfigBool4(self):
-        '''Test getUserConfigBool.'''
-        asserts.assertEqual(self.getUserConfigBool('c'), None)
-
-    def test_getUserConfigBool5(self):
-        '''Test getUserConfigBool.'''
-        asserts.assertEqual(self.getUserConfigBool('c', to_str=True), None)
-
-    def test_retry_run_pass_on_2nd(self):
-        """Tests retry feature."""
-        asserts.assertEqual(self.run_count, 1)
-
-    def test_retry_run_pass_on_3rd(self):
-        """Tests retry feature."""
-        asserts.assertEqual(self.run_count, 2)
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTestFilter.py b/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTestFilter.py
deleted file mode 100644
index 6cf15da..0000000
--- a/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTestFilter.py
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2017 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.
-#
-
-import logging
-
-from vts.runners.host import asserts
-from vts.runners.host import base_test
-from vts.runners.host import signals
-from vts.utils.python.common import filter_utils
-
-
-class VtsSelfTestBaseTestFilter(base_test.BaseTestClass):
-    '''Base class for filter tests.
-
-    Attributes:
-        SHOULD_PASS_FILTER: list of string, test names that should pass
-                            the internal test filter configured by user
-        SHOULD_NOT_PASS_FILTER: list of string, test names that should not pass
-                                the internal test filter configured by user
-    '''
-    SHOULD_PASS_FILTER = []
-    SHOULD_NOT_PASS_FILTER = []
-
-    # Override
-    def setUpClass(self):
-        # Since we are running the actual test cases, run_as_vts_self_test
-        # must be set to False.
-        self.run_as_vts_self_test = False
-
-        self.dut = self.android_devices[0]
-        self.shell = self.dut.shell
-
-    # Override
-    def filterOneTest(self, test_name, test_filter=None):
-        '''Filter a test case using the give test name.'''
-        pass
-
-    def CheckPassFilter(self, name):
-        '''Check whether test filter accept a give name.
-
-        Args:
-            name: string, test name
-
-        Returns:
-            bool, True if accept, False otherwise
-        '''
-        try:
-            super(VtsSelfTestBaseTestFilter,
-                  self)._filterOneTestThroughTestFilter(name)
-        except signals.TestSilent:
-            return False
-        else:
-            return True
-
-    def generatePassFilterTests(self):
-        '''Generate test cases for filter passing test names.'''
-        logging.info('generating tests for SHOULD_PASS_FILTER: %s',
-                     self.SHOULD_PASS_FILTER)
-        self.runGeneratedTests(
-            test_func=lambda x: asserts.assertTrue(self.CheckPassFilter(x), 'Filter should accept test name: %s' % x),
-            settings=self.SHOULD_PASS_FILTER,
-            name_func=lambda x: 'filter_accept_%s' % x)
-
-    def generateNonPassFilterTests(self):
-        '''Generate test cases for filter non passing test names.'''
-        logging.info('generating tests for SHOULD_NOT_PASS_FILTER: %s',
-                     self.SHOULD_NOT_PASS_FILTER)
-        self.runGeneratedTests(
-            test_func=lambda x: asserts.assertFalse(self.CheckPassFilter(x), 'Filter should not accept test name: %s' % x),
-            settings=self.SHOULD_NOT_PASS_FILTER,
-            name_func=lambda x: 'filter_not_accept_%s' % x)
diff --git a/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTestFilterExclude.py b/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTestFilterExclude.py
deleted file mode 100644
index c57fbe0..0000000
--- a/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTestFilterExclude.py
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2017 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.
-#
-
-import logging
-
-from vts.runners.host import test_runner
-from vts.testcases.vts_selftest.test_framework.base_test import VtsSelfTestBaseTestFilter
-
-
-class VtsSelfTestBaseTestFilterExclude(
-        VtsSelfTestBaseTestFilter.VtsSelfTestBaseTestFilter):
-    '''Filter test class for exclude filter.
-
-    Attributes:
-        SHOULD_PASS_FILTER: list of string, test names that should pass
-                            the internal test filter configured by user
-        SHOULD_NOT_PASS_FILTER: list of string, test names that should pass
-                                the internal test filter configured by user
-    '''
-
-    SHOULD_PASS_FILTER = [
-        'suite1.test1_16bit',
-        'suite1.test2',
-        'suite1.test2_64bit',
-        'suite2.test1_32bit',
-        'suite2.test1_64bit',
-        'suite3.test2_64bit',
-        # Since include_filter is empty, any pattern not matching the ones in
-        # exclude filter should pass
-        'other.test_names',
-    ]
-
-    SHOULD_NOT_PASS_FILTER = [
-        'suite1.test1',
-        'suite1.test2_32bit',
-        'suite2.test2_32bit',
-        'suite2.test2_64bit',
-        'suite3.test1',
-        'suite3.test1_32bit',
-        'suite3.test1_64bit',
-        'suite3.test2_32bit',
-        # The following test is added to exclude filter through
-        # filter's add_to_exclude_filter method when expand_bitness is True
-        'added.test1_32bit',
-        # The following test is added to include filter with negative pattern by
-        # filter's add_to_exclude_filter method when expand_bitness is True
-        'added.test2_64bit',
-    ]
-
-    # Override
-    def setUpClass(self):
-        super(VtsSelfTestBaseTestFilterExclude, self).setUpClass()
-        self.test_filter.add_to_exclude_filter('added.test1')
-        self.test_filter.add_to_include_filter('-added.test2')
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTestFilterExcludeInclude.py b/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTestFilterExcludeInclude.py
deleted file mode 100644
index 301e498..0000000
--- a/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTestFilterExcludeInclude.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2017 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.
-#
-
-import logging
-
-from vts.runners.host import test_runner
-from vts.testcases.vts_selftest.test_framework.base_test import VtsSelfTestBaseTestFilter
-
-
-class VtsSelfTestBaseTestFilterExcludeInclude(
-        VtsSelfTestBaseTestFilter.VtsSelfTestBaseTestFilter):
-    '''Filter test class for include and exclude filter overlapping.
-
-    Attributes:
-        SHOULD_PASS_FILTER: list of string, test names that should pass
-                            the internal test filter configured by user
-        SHOULD_NOT_PASS_FILTER: list of string, test names that should pass
-                                the internal test filter configured by user
-    '''
-
-    SHOULD_PASS_FILTER = [
-        'any_except_suite1.test1_32bit',
-    ]
-
-    SHOULD_NOT_PASS_FILTER = [
-        'suite1.test1',
-        'suite1.test1_32bit',
-        'suite1.test1_64bit',
-        'any_64bit',
-        'any.other',
-    ]
-
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTestFilterInclude.py b/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTestFilterInclude.py
deleted file mode 100644
index 4817c0f..0000000
--- a/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTestFilterInclude.py
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2017 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.
-#
-
-import logging
-
-from vts.runners.host import test_runner
-from vts.testcases.vts_selftest.test_framework.base_test import VtsSelfTestBaseTestFilter
-
-
-class VtsSelfTestBaseTestFilterInclude(
-        VtsSelfTestBaseTestFilter.VtsSelfTestBaseTestFilter):
-    '''Filter test class for include filter.
-
-    Attributes:
-        SHOULD_PASS_FILTER: list of string, test names that should pass
-                            the internal test filter configured by user
-        SHOULD_NOT_PASS_FILTER: list of string, test names that should pass
-                                the internal test filter configured by user
-    '''
-
-    SHOULD_PASS_FILTER = [
-        'suite1.test1',
-        'suite1.test1_32bit',
-        'suite1.test1_64bit',
-        'suite1.test2_32bit',
-        'suite2.any_matching_regex',
-        'suite3.test1',
-        'added.test1_64bit',
-    ]
-
-    SHOULD_NOT_PASS_FILTER = [
-        'suite1.test2',
-        'suite2_any',
-        'any.other',
-        'suite3.test2',
-    ]
-
-    # Override
-    def setUpClass(self):
-        super(VtsSelfTestBaseTestFilterInclude, self).setUpClass()
-        self.test_filter.add_to_include_filter('added.test1')
-
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTestFilterIncludeExclude.py b/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTestFilterIncludeExclude.py
deleted file mode 100644
index 4b5354a..0000000
--- a/testcases/vts_selftest/test_framework/base_test/VtsSelfTestBaseTestFilterIncludeExclude.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2017 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.
-#
-
-import logging
-
-from vts.runners.host import test_runner
-from vts.testcases.vts_selftest.test_framework.base_test import VtsSelfTestBaseTestFilter
-
-
-class VtsSelfTestBaseTestFilterIncludeExclude(
-        VtsSelfTestBaseTestFilter.VtsSelfTestBaseTestFilter):
-    '''Filter test class for include and exclude filter overlapping.
-
-    Attributes:
-        SHOULD_PASS_FILTER: list of string, test names that should pass
-                            the internal test filter configured by user
-        SHOULD_NOT_PASS_FILTER: list of string, test names that should pass
-                                the internal test filter configured by user
-    '''
-
-    SHOULD_PASS_FILTER = [
-        'suite1.test1_32bit',
-        'any_32bit',
-        'r(fake.regex)',
-    ]
-
-    SHOULD_NOT_PASS_FILTER = [
-        'suite1.test1',
-        'suite1.test1_64bit',
-        'any.other',
-    ]
-
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/vts_selftest/test_framework/base_test/__init__.py b/testcases/vts_selftest/test_framework/base_test/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/vts_selftest/test_framework/base_test/__init__.py
+++ /dev/null
diff --git a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/README.md b/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/README.md
deleted file mode 100644
index 5288514..0000000
--- a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# PythonVirtualenvPreparerTest
-
-This directory tests the functionality of VtsPythonVirtualenvPreparer.
-
-
-Two modules are included in this project:
-
-* VtsSelfTestPythonVirtualenvPreparerTestPart0: to verify the python module (numpy) that's going to be tested has not been installed by default.
-* VtsSelfTestPythonVirtualenvPreparerTestPart1: test duplicated module preparer to install a new module and empty module preparer.
-* VtsSelfTestPythonVirtualenvPreparerTestPart2: test whether a python module installed in previous tests is still available through plan level virtual environment
-
-The naming of `Part0`, `Part1` and `Part2` is to ensure the order of execution.
diff --git a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/__init__.py b/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/__init__.py
+++ /dev/null
diff --git a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part0/Android.bp b/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part0/Android.bp
deleted file mode 100644
index 142ee22..0000000
--- a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part0/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// 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.
-//
-
-vts_config {
-    name: "VtsSelfTestPythonVirtualenvPreparerTestPart0",
-}
diff --git a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part0/AndroidTest.xml b/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part0/AndroidTest.xml
deleted file mode 100644
index 1ad1e46..0000000
--- a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part0/AndroidTest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="Config for VtsSelfTestPythonVirtualenvPreparerTestPart0 Test Case">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsSelfTestPythonVirtualenvPreparerTestPart0"/>
-        <option name="test-case-path" value="vts/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part0/VtsSelfTestPythonVirtualenvPreparerTestPart0" />
-    </test>
-</configuration>
diff --git a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part0/VtsSelfTestPythonVirtualenvPreparerTestPart0.py b/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part0/VtsSelfTestPythonVirtualenvPreparerTestPart0.py
deleted file mode 100644
index d534362..0000000
--- a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part0/VtsSelfTestPythonVirtualenvPreparerTestPart0.py
+++ /dev/null
@@ -1,48 +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.
-#
-
-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
-
-
-class VtsSelfTestPythonVirtualenvPreparerTestPart0(base_test.BaseTestClass):
-    '''Tests plan and module level VirtualenvPreparer.'''
-
-    def setUpClass(self):
-        # Since we are running the actual test cases, run_as_vts_self_test
-        # must be set to False.
-        self.run_as_vts_self_test = False
-
-    def testNonExistingModule(self):
-        '''Test whether numpy is not installed from default packages.
-
-        This test assumes numpy is not in default package install list.
-        If this turned otherwise, test logic here should be updated.
-        '''
-        try:
-            import numpy
-            asserts.fail('numpy should not have been not installed yet.')
-        except ImportError:
-            pass
-
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part0/__init__.py b/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part0/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part0/__init__.py
+++ /dev/null
diff --git a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part1/Android.bp b/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part1/Android.bp
deleted file mode 100644
index 6abd516..0000000
--- a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part1/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// 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.
-//
-
-vts_config {
-    name: "VtsSelfTestPythonVirtualenvPreparerTestPart1",
-}
diff --git a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part1/AndroidTest.xml b/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part1/AndroidTest.xml
deleted file mode 100644
index 119b565..0000000
--- a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part1/AndroidTest.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<configuration description="Config for VtsSelfTestPythonVirtualenvPreparerTestPart1 Test Case">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-    </target_preparer>
-    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer">
-        <option name="dep-module" value="numpy" />
-    </multi_target_preparer>
-    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer">
-        <option name="dep-module" value="numpy" />
-    </multi_target_preparer>
-    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer">
-    </multi_target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsSelfTestPythonVirtualenvPreparerTestPart1"/>
-        <option name="test-case-path" value="vts/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part1/VtsSelfTestPythonVirtualenvPreparerTestPart1" />
-    </test>
-</configuration>
diff --git a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part1/VtsSelfTestPythonVirtualenvPreparerTestPart1.py b/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part1/VtsSelfTestPythonVirtualenvPreparerTestPart1.py
deleted file mode 100644
index 6c3fdbc..0000000
--- a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part1/VtsSelfTestPythonVirtualenvPreparerTestPart1.py
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2017 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.
-#
-
-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
-
-
-class VtsSelfTestPythonVirtualenvPreparerTestPart1(base_test.BaseTestClass):
-    '''Tests plan and module level VirtualenvPreparer.'''
-
-    def setUpClass(self):
-        # Since we are running the actual test cases, run_as_vts_self_test
-        # must be set to False.
-        self.run_as_vts_self_test = False
-
-    def testInstalledModule(self):
-        '''Test a module installed in this test.'''
-        try:
-            import numpy
-        except ImportError:
-            asserts.fail('numpy should have been installed.')
-
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part1/__init__.py b/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part1/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part1/__init__.py
+++ /dev/null
diff --git a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part2/Android.bp b/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part2/Android.bp
deleted file mode 100644
index a651255..0000000
--- a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part2/Android.bp
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// 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.
-//
-
-vts_config {
-    name: "VtsSelfTestPythonVirtualenvPreparerTestPart2",
-}
diff --git a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part2/AndroidTest.xml b/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part2/AndroidTest.xml
deleted file mode 100644
index 678e891..0000000
--- a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part2/AndroidTest.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="Config for VtsSelfTestPythonVirtualenvPreparerTestPart2 Test Case">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsSelfTestPythonVirtualenvPreparerTestPart2"/>
-        <option name="test-case-path" value="vts/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part2/VtsSelfTestPythonVirtualenvPreparerTestPart2" />
-    </test>
-</configuration>
diff --git a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part2/VtsSelfTestPythonVirtualenvPreparerTestPart2.py b/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part2/VtsSelfTestPythonVirtualenvPreparerTestPart2.py
deleted file mode 100644
index 0e43289..0000000
--- a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part2/VtsSelfTestPythonVirtualenvPreparerTestPart2.py
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2017 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.
-#
-
-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
-
-
-class VtsSelfTestPythonVirtualenvPreparerTestPart2(base_test.BaseTestClass):
-    '''Tests plan and module level VirtualenvPreparer.'''
-
-    def setUpClass(self):
-        # Since we are running the actual test cases, run_as_vts_self_test
-        # must be set to False.
-        self.run_as_vts_self_test = False
-
-    def testExistingModule(self):
-        '''Test previously installed module's availability.'''
-        try:
-            import numpy
-        except ImportError:
-            asserts.fail('numpy should have been installed in Part1.')
-
-
-if __name__ == "__main__":
-    test_runner.main()
diff --git a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part2/__init__.py b/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part2/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/testcases/vts_selftest/test_framework/python_virtualenv_preparer_test/part2/__init__.py
+++ /dev/null
diff --git a/tools/build/Android.bp b/tools/build/Android.bp
deleted file mode 100644
index 6d3ca2c..0000000
--- a/tools/build/Android.bp
+++ /dev/null
@@ -1,8 +0,0 @@
-// Common build rules for VTS tests
-
-// VTS target-side test binaries must use the following for proper packaging:
-cc_defaults {
-    name: "vts_target_tests_defaults",
-    // TODO(b/120486052): Temporalily removed due to a unit test.
-    // test_suites: ["general-tests"],
-}
diff --git a/tools/build/Android.host_config.mk b/tools/build/Android.host_config.mk
deleted file mode 100644
index 3a71464..0000000
--- a/tools/build/Android.host_config.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# Copyright (C) 2016 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.
-#
-
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts10
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
-	@echo "VTS10 host-driven test target: $(PRIVATE_MODULE)"
-	$(hide) touch $@
-
diff --git a/tools/build/Android.host_config_vts_only.mk b/tools/build/Android.host_config_vts_only.mk
deleted file mode 100644
index 3a2a8f6..0000000
--- a/tools/build/Android.host_config_vts_only.mk
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# 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.
-#
-
-# Please use this when your VTS10 module can't be part of general-tests.
-LOCAL_MODULE_CLASS := FAKE
-LOCAL_IS_HOST_MODULE := true
-LOCAL_COMPATIBILITY_SUITE := vts10
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE):
-	@echo "VTS10 host-driven test target: $(PRIVATE_MODULE)"
-	$(hide) touch $@
-
diff --git a/tools/build/tasks/framework/vtf_package.mk b/tools/build/tasks/framework/vtf_package.mk
deleted file mode 100644
index 990df08..0000000
--- a/tools/build/tasks/framework/vtf_package.mk
+++ /dev/null
@@ -1,124 +0,0 @@
-#
-# 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.
-#
-
-# Build rules for VTF (Vendor Test Framework).
-#
-# It is designed as a customizable build rule where its callers can provide
-# specifications. Before including it, please set the following variables:
-#
-# - VTF_OUT_ROOT for the base path of a local output directory base.
-# - VTF_TESTCASES_OUT for the testcases sub directory of its output zip file.
-# - VTF_TOOLS_OUT for tools sub directory of its output zip file.
-# - VTF_EXTRA_SCRIPTS for the file name of any extra script to include.
-
-build_list_dir := test/vts/tools/build/tasks/list
-build_utils_dir := test/vts/tools/build/utils
-
-include $(build_list_dir)/vts_apk_package_list.mk
-include $(build_list_dir)/vts_bin_package_list.mk
-include $(build_list_dir)/vts_lib_package_list.mk
-include $(build_utils_dir)/vts_package_utils.mk
-
-# Packaging rule for android-vts10.zip's testcases dir (DATA subdir).
-vtf_target_native_modules := \
-    $(vts_apk_packages) \
-    $(vts_bin_packages) \
-    $(vts_lib_packages) \
-
-vtf_target_native_copy_pairs := \
-  $(call target-native-copy-pairs,$(vtf_target_native_modules),$(VTF_TESTCASES_OUT))
-
-# Packaging rule for host-side test native packages
-
-target_hostdriven_modules := \
-  $(vts_test_host_lib_packages) \
-  $(vts_test_host_bin_packages) \
-
-target_hostdriven_copy_pairs := \
-  $(call host-native-copy-pairs,$(target_hostdriven_modules),$(VTF_TESTCASES_OUT))
-
-host_additional_deps_copy_pairs := \
-  test/vts/tools/vts-tradefed/etc/vts10-tradefed_win.bat:$(VTF_TOOLS_OUT)/vts10-tradefed_win.bat \
-  test/vts/tools/vts-tradefed/DynamicConfig.xml:$(VTF_TESTCASES_OUT)/cts.dynamic
-
-# Packaging rule for host-side Python logic, configs, and data files
-
-host_framework_files := \
-  $(call find-files-in-subdirs,test/vts,"*.py" -and -type f,.) \
-  $(call find-files-in-subdirs,test/vts,"*.runner_conf" -and -type f,.) \
-  $(call find-files-in-subdirs,test/vts,"*.push" -and -type f,.)
-
-host_framework_copy_pairs := \
-  $(foreach f,$(host_framework_files),\
-    test/vts/$(f):$(VTF_TESTCASES_OUT)/vts/$(f))
-
-host_testcase_files := \
-  $(call find-files-in-subdirs,test/vts-testcase,"*.py" -and -type f,.) \
-  $(call find-files-in-subdirs,test/vts-testcase,"*.runner_conf" -and -type f,.) \
-  $(call find-files-in-subdirs,test/vts-testcase,"*.push" -and -type f,.) \
-  $(call find-files-in-subdirs,test/vts-testcase,"*.dump" -and -type f,.)
-
-host_testcase_copy_pairs := \
-  $(foreach f,$(host_testcase_files),\
-    test/vts-testcase/$(f):$(VTF_TESTCASES_OUT)/vts/testcases/$(f))
-
-vts_test_core_copy_pairs := \
-  $(call copy-many-files,$(host_testcase_copy_pairs)) \
-
-ifneq ($(TARGET_BUILD_PDK),true)
-
-host_camera_its_files := \
-  $(call find-files-in-subdirs,cts/apps/CameraITS,"*.py" -and -type f,.) \
-  $(call find-files-in-subdirs,cts/apps/CameraITS,"*.pdf" -and -type f,.) \
-  $(call find-files-in-subdirs,cts/apps/CameraITS,"*.png" -and -type f,.)
-
-host_camera_its_copy_pairs := \
-  $(foreach f,$(host_camera_its_files),\
-    cts/apps/CameraITS/$(f):$(VTF_TESTCASES_OUT)/CameraITS/$(f))
-
-else
-
-host_camera_its_copy_pairs :=
-
-endif  # ifneq ($(TARGET_BUILD_PDK),true)
-
-host_systrace_files := \
-  $(filter-out .git/%, \
-    $(call find-files-in-subdirs,external/chromium-trace,"*" -and -type f,.))
-
-host_systrace_copy_pairs := \
-  $(foreach f,$(host_systrace_files),\
-    external/chromium-trace/$(f):$(VTF_TOOLS_OUT)/external/chromium-trace/$(f))
-
-target_script_files := \
-  $(call find-files-in-subdirs,test/vts/script/target,"*.sh" -and -type f,.)
-
-target_script_copy_pairs := \
-  $(foreach f,$(target_script_files),\
-    test/vts/script/target/$(f):$(VTF_TESTCASES_OUT)/script/target/$(f))
-
-vtf_copy_pairs := \
-  $(call copy-many-files,$(host_framework_copy_pairs)) \
-  $(call copy-many-files,$(host_additional_deps_copy_pairs)) \
-  $(call copy-many-files,$(host_systrace_copy_pairs)) \
-  $(call copy-many-files,$(host_camera_its_copy_pairs)) \
-  $(call copy-many-files,$(vtf_target_native_copy_pairs)) \
-  $(call copy-many-files,$(target_hostdriven_copy_pairs)) \
-  $(call copy-many-files,$(target_hal_hash_copy_pairs)) \
-  $(call copy-many-files,$(target_script_copy_pairs)) \
-
-.PHONY: vts-test-core
-vts-test-core: $(vts_test_core_copy_pairs) $(vtf_copy_pairs)
diff --git a/tools/build/tasks/list/update-lists.sh b/tools/build/tasks/list/update-lists.sh
deleted file mode 100755
index 8e5bc18..0000000
--- a/tools/build/tasks/list/update-lists.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/bash
-
-#
-# Copyright (C) 2017 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.
-
-function all-targets() {
-    local target_device=$(echo $TARGET_PRODUCT | sed "s/^aosp_//")
-    $ANDROID_BUILD_TOP/build/soong/soong_ui.bash --make-mode -j "out/target/product/$target_device/module-info.json"
-
-    python3 -c "import json; print('\n'.join(sorted(json.load(open('$ANDROID_PRODUCT_OUT/module-info.json')).keys())))" \
-        | grep -vP "_32$"
-}
-
-function update_file() {
-    local file_inception="$1"
-    local variable_name="$2"
-    local pattern="$3"
-
-    local filename="$ANDROID_BUILD_TOP/test/vts/tools/build/tasks/list/$variable_name"
-
-    echo "#
-# Copyright (C) $file_inception 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.
-
-$variable_name := \\
-$(all-targets | grep -P "$pattern" | awk '{print "  " $0 " \\"}')" > "$filename".mk
-}
-
-# note, must come up with pattern to weed out vendor-specific files
-update_file 2017 vts_adapter_package_list '@.*-adapter'
\ No newline at end of file
diff --git a/tools/build/tasks/list/vts_adapter_package_list.mk b/tools/build/tasks/list/vts_adapter_package_list.mk
deleted file mode 100644
index 5509016..0000000
--- a/tools/build/tasks/list/vts_adapter_package_list.mk
+++ /dev/null
@@ -1,266 +0,0 @@
-#
-# Copyright (C) 2017 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.
-
-vts_adapter_package_list := \
-  android.frameworks.displayservice@1.0-adapter \
-  android.frameworks.displayservice@1.0-adapter-helper \
-  android.frameworks.schedulerservice@1.0-adapter \
-  android.frameworks.schedulerservice@1.0-adapter-helper \
-  android.frameworks.sensorservice@1.0-adapter \
-  android.frameworks.sensorservice@1.0-adapter-helper \
-  android.frameworks.vr.composer@1.0-adapter \
-  android.frameworks.vr.composer@1.0-adapter-helper \
-  android.hardware.audio@2.0-adapter \
-  android.hardware.audio@2.0-adapter-helper \
-  android.hardware.audio@4.0-adapter \
-  android.hardware.audio@4.0-adapter-helper \
-  android.hardware.audio.common@2.0-adapter \
-  android.hardware.audio.common@2.0-adapter-helper \
-  android.hardware.audio.common@4.0-adapter \
-  android.hardware.audio.common@4.0-adapter-helper \
-  android.hardware.audio.effect@2.0-adapter \
-  android.hardware.audio.effect@2.0-adapter-helper \
-  android.hardware.audio.effect@4.0-adapter \
-  android.hardware.audio.effect@4.0-adapter-helper \
-  android.hardware.authsecret@1.0-adapter \
-  android.hardware.authsecret@1.0-adapter-helper \
-  android.hardware.automotive.audiocontrol@1.0-adapter \
-  android.hardware.automotive.audiocontrol@1.0-adapter-helper \
-  android.hardware.automotive.evs@1.0-adapter \
-  android.hardware.automotive.evs@1.0-adapter-helper \
-  android.hardware.automotive.vehicle@2.0-adapter \
-  android.hardware.automotive.vehicle@2.0-adapter-helper \
-  android.hardware.biometrics.fingerprint@2.1-adapter \
-  android.hardware.biometrics.fingerprint@2.1-adapter-helper \
-  android.hardware.bluetooth@1.0-adapter \
-  android.hardware.bluetooth@1.0-adapter-helper \
-  android.hardware.bluetooth.a2dp@1.0-adapter \
-  android.hardware.bluetooth.a2dp@1.0-adapter-helper \
-  android.hardware.boot@1.0-adapter \
-  android.hardware.boot@1.0-adapter-helper \
-  android.hardware.broadcastradio@1.0-adapter \
-  android.hardware.broadcastradio@1.0-adapter-helper \
-  android.hardware.broadcastradio@1.1-adapter \
-  android.hardware.broadcastradio@1.1-adapter-helper \
-  android.hardware.broadcastradio@2.0-adapter \
-  android.hardware.broadcastradio@2.0-adapter-helper \
-  android.hardware.camera.common@1.0-adapter \
-  android.hardware.camera.common@1.0-adapter-helper \
-  android.hardware.camera.device@1.0-adapter \
-  android.hardware.camera.device@1.0-adapter-helper \
-  android.hardware.camera.device@3.2-adapter \
-  android.hardware.camera.device@3.2-adapter-helper \
-  android.hardware.camera.device@3.3-adapter \
-  android.hardware.camera.device@3.3-adapter-helper \
-  android.hardware.camera.device@3.4-adapter \
-  android.hardware.camera.device@3.4-adapter-helper \
-  android.hardware.camera.metadata@3.2-adapter \
-  android.hardware.camera.metadata@3.2-adapter-helper \
-  android.hardware.camera.metadata@3.3-adapter \
-  android.hardware.camera.metadata@3.3-adapter-helper \
-  android.hardware.camera.provider@2.4-adapter \
-  android.hardware.camera.provider@2.4-adapter-helper \
-  android.hardware.cas@1.0-adapter \
-  android.hardware.cas@1.0-adapter-helper \
-  android.hardware.cas.native@1.0-adapter \
-  android.hardware.cas.native@1.0-adapter-helper \
-  android.hardware.configstore@1.0-adapter \
-  android.hardware.configstore@1.0-adapter-helper \
-  android.hardware.confirmationui@1.0-adapter \
-  android.hardware.confirmationui@1.0-adapter-helper \
-  android.hardware.contexthub@1.0-adapter \
-  android.hardware.contexthub@1.0-adapter-helper \
-  android.hardware.drm@1.0-adapter \
-  android.hardware.drm@1.0-adapter-helper \
-  android.hardware.drm@1.1-adapter \
-  android.hardware.drm@1.1-adapter-helper \
-  android.hardware.dumpstate@1.0-adapter \
-  android.hardware.dumpstate@1.0-adapter-helper \
-  android.hardware.gatekeeper@1.0-adapter \
-  android.hardware.gatekeeper@1.0-adapter-helper \
-  android.hardware.gnss@1.0-adapter \
-  android.hardware.gnss@1.0-adapter-helper \
-  android.hardware.gnss@1.1-adapter \
-  android.hardware.gnss@1.1-adapter-helper \
-  android.hardware.graphics.allocator@2.0-adapter \
-  android.hardware.graphics.allocator@2.0-adapter-helper \
-  android.hardware.graphics.bufferqueue@1.0-adapter \
-  android.hardware.graphics.bufferqueue@1.0-adapter-helper \
-  android.hardware.graphics.common@1.0-adapter \
-  android.hardware.graphics.common@1.0-adapter-helper \
-  android.hardware.graphics.common@1.1-adapter \
-  android.hardware.graphics.common@1.1-adapter-helper \
-  android.hardware.graphics.composer@2.1-adapter \
-  android.hardware.graphics.composer@2.1-adapter-helper \
-  android.hardware.graphics.composer@2.2-adapter \
-  android.hardware.graphics.composer@2.2-adapter-helper \
-  android.hardware.graphics.mapper@2.0-adapter \
-  android.hardware.graphics.mapper@2.0-adapter-helper \
-  android.hardware.graphics.mapper@2.1-adapter \
-  android.hardware.graphics.mapper@2.1-adapter-helper \
-  android.hardware.health@1.0-adapter \
-  android.hardware.health@1.0-adapter-helper \
-  android.hardware.health@2.0-adapter \
-  android.hardware.health@2.0-adapter-helper \
-  android.hardware.ir@1.0-adapter \
-  android.hardware.ir@1.0-adapter-helper \
-  android.hardware.keymaster@3.0-adapter \
-  android.hardware.keymaster@3.0-adapter-helper \
-  android.hardware.keymaster@4.0-adapter \
-  android.hardware.keymaster@4.0-adapter-helper \
-  android.hardware.light@2.0-adapter \
-  android.hardware.light@2.0-adapter-helper \
-  android.hardware.media@1.0-adapter \
-  android.hardware.media@1.0-adapter-helper \
-  android.hardware.media.bufferpool@1.0-adapter \
-  android.hardware.media.bufferpool@1.0-adapter-helper \
-  android.hardware.media.omx@1.0-adapter \
-  android.hardware.media.omx@1.0-adapter-helper \
-  android.hardware.memtrack@1.0-adapter \
-  android.hardware.memtrack@1.0-adapter-helper \
-  android.hardware.neuralnetworks@1.0-adapter \
-  android.hardware.neuralnetworks@1.0-adapter-helper \
-  android.hardware.neuralnetworks@1.1-adapter \
-  android.hardware.neuralnetworks@1.1-adapter-helper \
-  android.hardware.neuralnetworks@1.2-adapter \
-  android.hardware.neuralnetworks@1.2-adapter-helper \
-  android.hardware.nfc@1.0-adapter \
-  android.hardware.nfc@1.0-adapter-helper \
-  android.hardware.nfc@1.1-adapter \
-  android.hardware.nfc@1.1-adapter-helper \
-  android.hardware.oemlock@1.0-adapter \
-  android.hardware.oemlock@1.0-adapter-helper \
-  android.hardware.power@1.0-adapter \
-  android.hardware.power@1.0-adapter-helper \
-  android.hardware.power@1.1-adapter \
-  android.hardware.power@1.1-adapter-helper \
-  android.hardware.power@1.2-adapter \
-  android.hardware.power@1.2-adapter-helper \
-  android.hardware.radio@1.0-adapter \
-  android.hardware.radio@1.0-adapter-helper \
-  android.hardware.radio@1.1-adapter \
-  android.hardware.radio@1.1-adapter-helper \
-  android.hardware.radio@1.2-adapter \
-  android.hardware.radio@1.2-adapter-helper \
-  android.hardware.radio.config@1.0-adapter \
-  android.hardware.radio.config@1.0-adapter-helper \
-  android.hardware.radio.deprecated@1.0-adapter \
-  android.hardware.radio.deprecated@1.0-adapter-helper \
-  android.hardware.renderscript@1.0-adapter \
-  android.hardware.renderscript@1.0-adapter-helper \
-  android.hardware.secure_element@1.0-adapter \
-  android.hardware.secure_element@1.0-adapter-helper \
-  android.hardware.sensors@1.0-adapter \
-  android.hardware.sensors@1.0-adapter-helper \
-  android.hardware.soundtrigger@2.0-adapter \
-  android.hardware.soundtrigger@2.0-adapter-helper \
-  android.hardware.soundtrigger@2.1-adapter \
-  android.hardware.soundtrigger@2.1-adapter-helper \
-  android.hardware.soundtrigger@2.2-adapter \
-  android.hardware.soundtrigger@2.2-adapter-helper \
-  android.hardware.soundtrigger@2.3-adapter \
-  android.hardware.soundtrigger@2.3-adapter-helper \
-  android.hardware.tests.bar@1.0-adapter \
-  android.hardware.tests.bar@1.0-adapter-helper \
-  android.hardware.tests.baz@1.0-adapter \
-  android.hardware.tests.baz@1.0-adapter-helper \
-  android.hardware.tests.expression@1.0-adapter \
-  android.hardware.tests.expression@1.0-adapter-helper \
-  android.hardware.tests.extension.light@2.0-adapter \
-  android.hardware.tests.extension.light@2.0-adapter-helper \
-  android.hardware.tests.foo@1.0-adapter \
-  android.hardware.tests.foo@1.0-adapter-helper \
-  android.hardware.tests.hash@1.0-adapter \
-  android.hardware.tests.hash@1.0-adapter-helper \
-  android.hardware.tests.inheritance@1.0-adapter \
-  android.hardware.tests.inheritance@1.0-adapter-helper \
-  android.hardware.tests.libhwbinder@1.0-adapter \
-  android.hardware.tests.libhwbinder@1.0-adapter-helper \
-  android.hardware.tests.memory@1.0-adapter \
-  android.hardware.tests.memory@1.0-adapter-helper \
-  android.hardware.tests.msgq@1.0-adapter \
-  android.hardware.tests.msgq@1.0-adapter-helper \
-  android.hardware.tests.multithread@1.0-adapter \
-  android.hardware.tests.multithread@1.0-adapter-helper \
-  android.hardware.tests.pointer@1.0-adapter \
-  android.hardware.tests.pointer@1.0-adapter-helper \
-  android.hardware.tests.trie@1.0-adapter \
-  android.hardware.tests.trie@1.0-adapter-helper \
-  android.hardware.tetheroffload.config@1.0-adapter \
-  android.hardware.tetheroffload.config@1.0-adapter-helper \
-  android.hardware.tetheroffload.control@1.0-adapter \
-  android.hardware.tetheroffload.control@1.0-adapter-helper \
-  android.hardware.thermal@1.0-adapter \
-  android.hardware.thermal@1.0-adapter-helper \
-  android.hardware.thermal@1.1-adapter \
-  android.hardware.thermal@1.1-adapter-helper \
-  android.hardware.tv.cec@1.0-adapter \
-  android.hardware.tv.cec@1.0-adapter-helper \
-  android.hardware.tv.input@1.0-adapter \
-  android.hardware.tv.input@1.0-adapter-helper \
-  android.hardware.usb@1.0-adapter \
-  android.hardware.usb@1.0-adapter-helper \
-  android.hardware.usb@1.1-adapter \
-  android.hardware.usb@1.1-adapter-helper \
-  android.hardware.usb.gadget@1.0-adapter \
-  android.hardware.usb.gadget@1.0-adapter-helper \
-  android.hardware.vibrator@1.0-adapter \
-  android.hardware.vibrator@1.0-adapter-helper \
-  android.hardware.vibrator@1.1-adapter \
-  android.hardware.vibrator@1.1-adapter-helper \
-  android.hardware.vibrator@1.2-adapter \
-  android.hardware.vibrator@1.2-adapter-helper \
-  android.hardware.vibrator@1.3-adapter \
-  android.hardware.vibrator@1.3-adapter-helper \
-  android.hardware.vr@1.0-adapter \
-  android.hardware.vr@1.0-adapter-helper \
-  android.hardware.weaver@1.0-adapter \
-  android.hardware.weaver@1.0-adapter-helper \
-  android.hardware.wifi@1.0-adapter \
-  android.hardware.wifi@1.0-adapter-helper \
-  android.hardware.wifi@1.1-adapter \
-  android.hardware.wifi@1.1-adapter-helper \
-  android.hardware.wifi@1.2-adapter \
-  android.hardware.wifi@1.2-adapter-helper \
-  android.hardware.wifi.hostapd@1.0-adapter \
-  android.hardware.wifi.hostapd@1.0-adapter-helper \
-  android.hardware.wifi.offload@1.0-adapter \
-  android.hardware.wifi.offload@1.0-adapter-helper \
-  android.hardware.wifi.supplicant@1.0-adapter \
-  android.hardware.wifi.supplicant@1.0-adapter-helper \
-  android.hardware.wifi.supplicant@1.1-adapter \
-  android.hardware.wifi.supplicant@1.1-adapter-helper \
-  android.hardware.wifi.supplicant@1.2-adapter \
-  android.hardware.wifi.supplicant@1.2-adapter-helper \
-  android.hardware.wifi.supplicant@1.3-adapter \
-  android.hardware.wifi.supplicant@1.3-adapter-helper \
-  android.hidl.allocator@1.0-adapter \
-  android.hidl.allocator@1.0-adapter-helper \
-  android.hidl.base@1.0-adapter \
-  android.hidl.base@1.0-adapter-helper \
-  android.hidl.manager@1.0-adapter \
-  android.hidl.manager@1.0-adapter-helper \
-  android.hidl.manager@1.1-adapter \
-  android.hidl.manager@1.1-adapter-helper \
-  android.hidl.memory@1.0-adapter \
-  android.hidl.memory@1.0-adapter-helper \
-  android.hidl.token@1.0-adapter \
-  android.hidl.token@1.0-adapter-helper \
-  android.system.wifi.keystore@1.0-adapter \
-  android.system.wifi.keystore@1.0-adapter-helper \
-  tests.vendor@1.0-adapter \
-  tests.vendor@1.0-adapter-helper \
-  tests.vendor@1.1-adapter \
-  tests.vendor@1.1-adapter-helper \
diff --git a/tools/build/tasks/list/vts_apk_package_list.mk b/tools/build/tasks/list/vts_apk_package_list.mk
deleted file mode 100644
index 460e031..0000000
--- a/tools/build/tasks/list/vts_apk_package_list.mk
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# Copyright (C) 2016 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.
-
-# APKs used by VTS10 framework.
-vts_apk_packages := \
-  VtsAgentApp \
-  CtsVerifier \
-  sl4a \
-
-# Other tests APKs included as part of VTS10.
-vts_apk_packages += \
-  DeviceHealthTests
-
-vts_prebuilt_apk_packages := \
-
diff --git a/tools/build/tasks/list/vts_bin_package_list.mk b/tools/build/tasks/list/vts_bin_package_list.mk
deleted file mode 100644
index b99b600..0000000
--- a/tools/build/tasks/list/vts_bin_package_list.mk
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# Copyright (C) 2016 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.
-
-vts_bin_packages := \
-  vts_hal_agent \
-  vts_hal_driver \
-  vts_hal_replayer \
-  vts_shell_driver \
-  vts_profiling_configure \
-  vts_coverage_configure \
-  vts_testability_checker \
-
-# Extra apk utils for VTS10 framework.
-vts_bin_packages += \
-    WifiUtil \
diff --git a/tools/build/tasks/list/vts_func_fuzzer_package_list.mk b/tools/build/tasks/list/vts_func_fuzzer_package_list.mk
deleted file mode 100644
index 28c91f4..0000000
--- a/tools/build/tasks/list/vts_func_fuzzer_package_list.mk
+++ /dev/null
@@ -1,127 +0,0 @@
-#
-# Copyright (C) 2017 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.
-#
-
-vts_func_fuzzer_packages := \
-  android.hardware.audio@2.0-vts.func_fuzzer.Device \
-  android.hardware.audio@2.0-vts.func_fuzzer.DevicesFactory \
-  android.hardware.audio@2.0-vts.func_fuzzer.PrimaryDevice \
-  android.hardware.audio@2.0-vts.func_fuzzer.Stream \
-  android.hardware.audio@2.0-vts.func_fuzzer.StreamIn \
-  android.hardware.audio@2.0-vts.func_fuzzer.StreamOut \
-  android.hardware.audio.effect@2.0-vts.func_fuzzer.AcousticEchoCancelerEffect \
-  android.hardware.audio.effect@2.0-vts.func_fuzzer.AutomaticGainControlEffect \
-  android.hardware.audio.effect@2.0-vts.func_fuzzer.BassBoostEffect \
-  android.hardware.audio.effect@2.0-vts.func_fuzzer.DownmixEffect \
-  android.hardware.audio.effect@2.0-vts.func_fuzzer.Effect \
-  android.hardware.audio.effect@2.0-vts.func_fuzzer.EffectsFactory \
-  android.hardware.audio.effect@2.0-vts.func_fuzzer.EnvironmentalReverbEffect \
-  android.hardware.audio.effect@2.0-vts.func_fuzzer.EqualizerEffect \
-  android.hardware.audio.effect@2.0-vts.func_fuzzer.LoudnessEnhancerEffect \
-  android.hardware.audio.effect@2.0-vts.func_fuzzer.NoiseSuppressionEffect \
-  android.hardware.audio.effect@2.0-vts.func_fuzzer.PresetReverbEffect \
-  android.hardware.audio.effect@2.0-vts.func_fuzzer.VirtualizerEffect \
-  android.hardware.audio.effect@2.0-vts.func_fuzzer.VisualizerEffect \
-  android.hardware.automotive.evs@1.0-vts.func_fuzzer.EvsCamera \
-  android.hardware.automotive.evs@1.0-vts.func_fuzzer.EvsCameraStream \
-  android.hardware.automotive.evs@1.0-vts.func_fuzzer.EvsDisplay \
-  android.hardware.automotive.evs@1.0-vts.func_fuzzer.EvsEnumerator \
-  android.hardware.automotive.vehicle@2.0-vts.func_fuzzer.Vehicle \
-  android.hardware.benchmarks.msgq@1.0-vts.func_fuzzer.BenchmarkMsgQ \
-  android.hardware.biometrics.fingerprint@2.1-vts.func_fuzzer.BiometricsFingerprint \
-  android.hardware.bluetooth@1.0-vts.func_fuzzer.BluetoothHci \
-  android.hardware.bluetooth@1.0-vts.func_fuzzer.BluetoothHciCallbacks \
-  android.hardware.boot@1.0-vts.func_fuzzer.BootControl \
-  android.hardware.broadcastradio@1.0-vts.func_fuzzer.BroadcastRadio \
-  android.hardware.broadcastradio@1.0-vts.func_fuzzer.BroadcastRadioFactory \
-  android.hardware.broadcastradio@1.0-vts.func_fuzzer.Tuner \
-  android.hardware.broadcastradio@1.1-vts.func_fuzzer.BroadcastRadioFactory \
-  android.hardware.broadcastradio@1.1-vts.func_fuzzer.Tuner \
-  android.hardware.camera.device@1.0-vts.func_fuzzer.CameraDevice \
-  android.hardware.camera.device@3.2-vts.func_fuzzer.CameraDevice \
-  android.hardware.camera.device@3.2-vts.func_fuzzer.CameraDeviceSession \
-  android.hardware.camera.provider@2.4-vts.func_fuzzer.CameraProvider \
-  android.hardware.configstore@1.0-vts.func_fuzzer.SurfaceFlingerConfigs \
-  android.hardware.contexthub@1.0-vts.func_fuzzer.Contexthub \
-  android.hardware.drm@1.0-vts.func_fuzzer.CryptoFactory \
-  android.hardware.drm@1.0-vts.func_fuzzer.CryptoPlugin \
-  android.hardware.drm@1.0-vts.func_fuzzer.DrmFactory \
-  android.hardware.drm@1.0-vts.func_fuzzer.DrmPlugin \
-  android.hardware.drm@1.0-vts.func_fuzzer.DrmPluginListener \
-  android.hardware.dumpstate@1.0-vts.func_fuzzer.DumpstateDevice \
-  android.hardware.gatekeeper@1.0-vts.func_fuzzer.Gatekeeper \
-  android.hardware.gnss@1.0-vts.func_fuzzer.AGnss \
-  android.hardware.gnss@1.0-vts.func_fuzzer.AGnssRil \
-  android.hardware.gnss@1.0-vts.func_fuzzer.Gnss \
-  android.hardware.gnss@1.0-vts.func_fuzzer.GnssBatching \
-  android.hardware.gnss@1.0-vts.func_fuzzer.GnssConfiguration \
-  android.hardware.gnss@1.0-vts.func_fuzzer.GnssDebug \
-  android.hardware.gnss@1.0-vts.func_fuzzer.GnssGeofencing \
-  android.hardware.gnss@1.0-vts.func_fuzzer.GnssMeasurement \
-  android.hardware.gnss@1.0-vts.func_fuzzer.GnssNavigationMessage \
-  android.hardware.gnss@1.0-vts.func_fuzzer.GnssNi \
-  android.hardware.gnss@1.0-vts.func_fuzzer.GnssXtra \
-  android.hardware.graphics.allocator@2.0-vts.func_fuzzer.Allocator \
-  android.hardware.graphics.allocator@2.0-vts.func_fuzzer.AllocatorClient \
-  android.hardware.graphics.composer@2.1-vts.func_fuzzer.Composer \
-  android.hardware.graphics.composer@2.1-vts.func_fuzzer.ComposerClient \
-  android.hardware.graphics.mapper@2.0-vts.func_fuzzer.Mapper \
-  android.hardware.health@1.0-vts.func_fuzzer.Health \
-  android.hardware.ir@1.0-vts.func_fuzzer.ConsumerIr \
-  android.hardware.keymaster@3.0-vts.func_fuzzer.KeymasterDevice \
-  android.hardware.light@2.0-vts.func_fuzzer.Light \
-  android.hardware.media.omx@1.0-vts.func_fuzzer.GraphicBufferSource \
-  android.hardware.media.omx@1.0-vts.func_fuzzer.Omx \
-  android.hardware.media.omx@1.0-vts.func_fuzzer.OmxBufferProducer \
-  android.hardware.media.omx@1.0-vts.func_fuzzer.OmxBufferSource \
-  android.hardware.media.omx@1.0-vts.func_fuzzer.OmxNode \
-  android.hardware.media.omx@1.0-vts.func_fuzzer.OmxObserver \
-  android.hardware.media.omx@1.0-vts.func_fuzzer.OmxProducerListener \
-  android.hardware.memtrack@1.0-vts.func_fuzzer.Memtrack \
-  android.hardware.nfc@1.0-vts.func_fuzzer.Nfc \
-  android.hardware.power@1.0-vts.func_fuzzer.Power \
-  android.hardware.radio@1.0-vts.func_fuzzer.Radio \
-  android.hardware.radio@1.0-vts.func_fuzzer.RadioIndication \
-  android.hardware.radio@1.0-vts.func_fuzzer.RadioResponse \
-  android.hardware.radio@1.0-vts.func_fuzzer.Sap \
-  android.hardware.radio.deprecated@1.0-vts.func_fuzzer.OemHook \
-  android.hardware.radio.deprecated@1.0-vts.func_fuzzer.OemHookIndication \
-  android.hardware.radio.deprecated@1.0-vts.func_fuzzer.OemHookResponse \
-  android.hardware.renderscript@1.0-vts.func_fuzzer.Context \
-  android.hardware.renderscript@1.0-vts.func_fuzzer.Device \
-  android.hardware.sensors@1.0-vts.func_fuzzer.Sensors \
-  android.hardware.soundtrigger@2.0-vts.func_fuzzer.SoundTriggerHw \
-  android.hardware.thermal@1.0-vts.func_fuzzer.Thermal \
-  android.hardware.tv.cec@1.0-vts.func_fuzzer.HdmiCec \
-  android.hardware.tv.input@1.0-vts.func_fuzzer.TvInput \
-  android.hardware.usb@1.0-vts.func_fuzzer.Usb \
-  android.hardware.vibrator@1.0-vts.func_fuzzer.Vibrator \
-  android.hardware.vr@1.0-vts.func_fuzzer.Vr \
-  android.hardware.wifi@1.0-vts.func_fuzzer.Wifi \
-  android.hardware.wifi@1.0-vts.func_fuzzer.WifiApIface \
-  android.hardware.wifi@1.0-vts.func_fuzzer.WifiChip \
-  android.hardware.wifi@1.0-vts.func_fuzzer.WifiIface \
-  android.hardware.wifi@1.0-vts.func_fuzzer.WifiNanIface \
-  android.hardware.wifi@1.0-vts.func_fuzzer.WifiP2pIface \
-  android.hardware.wifi@1.0-vts.func_fuzzer.WifiRttController \
-  android.hardware.wifi@1.0-vts.func_fuzzer.WifiStaIface \
-  android.hardware.wifi.supplicant@1.0-vts.func_fuzzer.Supplicant \
-  android.hardware.wifi.supplicant@1.0-vts.func_fuzzer.SupplicantIface \
-  android.hardware.wifi.supplicant@1.0-vts.func_fuzzer.SupplicantNetwork \
-  android.hardware.wifi.supplicant@1.0-vts.func_fuzzer.SupplicantP2pIface \
-  android.hardware.wifi.supplicant@1.0-vts.func_fuzzer.SupplicantP2pNetwork \
-  android.hardware.wifi.supplicant@1.0-vts.func_fuzzer.SupplicantStaIface \
-  android.hardware.wifi.supplicant@1.0-vts.func_fuzzer.SupplicantStaNetwork \
-
diff --git a/tools/build/tasks/list/vts_lib_package_list.mk b/tools/build/tasks/list/vts_lib_package_list.mk
deleted file mode 100644
index 5fc2994..0000000
--- a/tools/build/tasks/list/vts_lib_package_list.mk
+++ /dev/null
@@ -1,28 +0,0 @@
-#
-# Copyright (C) 2016 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.
-
-vts_lib_packages := \
-  libvts_codecoverage \
-  libvts_common \
-  libvts_datatype \
-  libvts_drivercomm \
-  libvts_interfacespecification \
-  libvts_measurement \
-  libvts_multidevice_proto \
-  libvts_profiling \
-  libvts_profiling_utils \
-  libvts_resource_driver \
-  libvts_resource_manager \
-  libprotobuf-cpp-full \
diff --git a/tools/build/tasks/list/vts_spec_file_list.mk b/tools/build/tasks/list/vts_spec_file_list.mk
deleted file mode 100644
index 4a4fa37..0000000
--- a/tools/build/tasks/list/vts_spec_file_list.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# Copyright (C) 2016 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.
-
-vts_spec_file_list := \
-  test/vts/specification/hal/conventional/bluetooth/1.0/BluetoothHalV1bt_interface_t.vts \
-  test/vts/specification/hal/conventional/bluetooth/1.0/BluetoothHalV1.vts \
-  test/vts/specification/hal/conventional/light/1.0/LightHalV1.vts \
-  test/vts/specification/hal/conventional/camera/3.4/CameraHalV3.vts \
-  test/vts/specification/hal/conventional/camera/3.4/CameraHalV3camera3_device_ops_t.vts \
-  test/vts/specification/hal/conventional/camera/2.1/CameraHalV2hw_device_t.vts \
-  test/vts/specification/hal/conventional/camera/2.1/CameraHalV2.vts \
-  test/vts/specification/hal/conventional/wifi/1.0/WifiHalV1.vts \
-  test/vts/specification/hal/conventional/gps/1.0/GpsHalV1GpsInterface.vts \
-  test/vts/specification/hal/conventional/gps/1.0/GpsHalV1.vts \
-  test/vts/specification/kernel/syscalls-arm64.vts \
-  test/vts/specification/lib/ndk/bionic/1.0/libmV1.vts \
-  test/vts/specification/lib/ndk/bionic/1.0/libcutilsV1.vts \
-  test/vts/specification/lib/ndk/bionic/1.0/libcV1.vts \
-
diff --git a/tools/build/tasks/list/vts_test_bin_package_list.mk b/tools/build/tasks/list/vts_test_bin_package_list.mk
deleted file mode 100644
index dbb2b49..0000000
--- a/tools/build/tasks/list/vts_test_bin_package_list.mk
+++ /dev/null
@@ -1,121 +0,0 @@
-#
-# Copyright (C) 2016 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.
-
-vts_test_bin_packages := \
-    android.hardware.tests.msgq@1.0-service-benchmark \
-    android.hardware.tests.msgq@1.0-service-test \
-    ashmemd_test \
-    fiemap_writer_test \
-    fmq_test \
-    gsi_boot_test \
-    hidl_test \
-    hidl_test_client \
-    hidl_test_helper \
-    hidl_test_servers \
-    mq_benchmark_client \
-    mq_test_client \
-    libhwbinder_benchmark \
-    libhwbinder_latency \
-    libbinder_benchmark \
-    libdm_test \
-    vts_codelab_target_binary \
-    vts_kernel_liblp_test \
-    vts_selftest_flaky_test \
-    vts_selftest_zero_testcase_binary_test \
-    vts_test_binary_crash_app \
-    vts_test_binary_seg_fault \
-    vts_test_binary_syscall_exists \
-    simpleperf_cpu_hotplug_test \
-    binderThroughputTest \
-    hwbinderThroughputTest \
-    stressapptest \
-    libcutils_test_static \
-    vts_test_binary_qtaguid_module \
-    vts_test_binary_bpf_module \
-    ion-unit-tests \
-
-# Proto fuzzer executable
-vts_test_bin_packages += \
-    vts_proto_fuzzer \
-
-# VTS Treble VINTF Test
-vts_test_bin_packages += \
-    vts_ibase_test \
-    vts_treble_vintf_framework_test \
-    vts_treble_vintf_vendor_test  \
-
-# Netd tests
-vts_test_bin_packages += \
-    netd_integration_test \
-
-# Kernel tests.
-vts_test_bin_packages += \
-    dt_early_mount_test \
-    kernel_net_tests \
-    vts_kernel_encryption_test \
-    vts_kernel_loopconfig_test \
-    vts_kernel_tun_test \
-    vts_kernel_toolchain \
-    vts_libsnapshot_test \
-    vts_meminfo_test \
-    vts_virtual_ab_test \
-
-# Binder tests.
-vts_test_bin_packages += \
-    binderDriverInterfaceTest \
-    binderDriverInterfaceTest_IPC_32 \
-    binderValueTypeTest \
-    binderLibTest \
-    binderLibTest_IPC_32 \
-    binderTextOutputTest \
-    binderSafeInterfaceTest \
-    memunreachable_binder_test \
-
-# VTS security PoC tests
-vts_test_bin_packages += \
-    30149612 \
-    28838221 \
-    32219453 \
-    31707909 \
-    32402310 \
-
-# VTS DTBO verification tests
-vts_test_bin_packages += \
-    ufdt_verify_overlay
-
-# System suspend unit tests.
-vts_test_bin_packages += \
-    SystemSuspendV1_0UnitTest
-
-# libpower tests
-vts_test_bin_packages += \
-    libpower_test
-
-# libprocessgroup JSON schema tests
-vts_test_bin_packages += \
-    vts_processgroup_validate_test \
-
-# configfile as API tests
-vts_test_bin_packages += \
-    vts_compatibilityMatrix_validate_test \
-    vts_halManifest_validate_test \
-    vts_mediaCodecs_validate_test \
-    vts_mediaProfiles_validate_test \
-    vts_defaultPermissions_validate_test \
-    vts_permission_validate_test \
-
-# AVB tests
-vts_test_bin_packages += \
-    VtsSecurityAvbTest
diff --git a/tools/build/tasks/list/vts_test_hidl_hal_hash_list.mk b/tools/build/tasks/list/vts_test_hidl_hal_hash_list.mk
deleted file mode 100644
index 734c991..0000000
--- a/tools/build/tasks/list/vts_test_hidl_hal_hash_list.mk
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# Copyright (C) 2017 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.
-#
-
-
-# List of files containing HIDL HAL hashes.
-vts_test_hidl_hal_hash_list := \
-  frameworks/hardware/interfaces/current.txt \
-  hardware/interfaces/current.txt \
-  system/hardware/interfaces/current.txt \
-  system/libhidl/transport/current.txt \
diff --git a/tools/build/tasks/list/vts_test_host_bin_package_list.mk b/tools/build/tasks/list/vts_test_host_bin_package_list.mk
deleted file mode 100644
index 931e281..0000000
--- a/tools/build/tasks/list/vts_test_host_bin_package_list.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-vts_test_host_bin_packages := \
-    trace_processor \
-    img2simg \
-    simg2img \
-    mkuserimg_mke2fs
-
-# Need to package mkdtboimg.py since the tool is not just used by the VTS10 test.
-vts_test_host_bin_packages += \
-    mkdtboimg.py \
-    fuzzy_fastboot \
-    fastboot \
diff --git a/tools/build/tasks/list/vts_test_host_lib_package_list.mk b/tools/build/tasks/list/vts_test_host_lib_package_list.mk
deleted file mode 100644
index d9006ba..0000000
--- a/tools/build/tasks/list/vts_test_host_lib_package_list.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-vts_test_host_lib_packages := \
-    libbase \
-    libc++ \
-    libcutils \
-    liblog \
-    libprotobuf-cpp-full \
-    libvts_multidevice_proto \
-    libvts_profiling_utils \
-    libvts_traceprocessor \
-    libz \
diff --git a/tools/build/tasks/list/vts_test_lib_hal_package_list.mk b/tools/build/tasks/list/vts_test_lib_hal_package_list.mk
deleted file mode 100644
index 551be34..0000000
--- a/tools/build/tasks/list/vts_test_lib_hal_package_list.mk
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# Copyright (C) 2016 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.
-
-vts_test_lib_hal_packages := \
-  android.hardware.tests.libbinder \
-  android.hardware.tests.libhwbinder@1.0 \
-  android.hardware.tests.libhwbinder@1.0-impl \
-  android.hardware.tests.bar@1.0 \
-  android.hardware.tests.bar@1.0-impl \
-  android.hardware.tests.baz@1.0 \
-  android.hardware.tests.baz@1.0-impl \
-  android.hardware.tests.expression@1.0 \
-  android.hardware.tests.foo@1.0 \
-  android.hardware.tests.foo@1.0-impl \
-  android.hardware.tests.hash@1.0 \
-  android.hardware.tests.hash@1.0-impl \
-  android.hardware.tests.inheritance@1.0 \
-  android.hardware.tests.inheritance@1.0-impl \
-  android.hardware.tests.memory@1.0 \
-  android.hardware.tests.memory@1.0-impl \
-  android.hardware.tests.msgq@1.0 \
-  android.hardware.tests.msgq@1.0-impl \
-  android.hardware.tests.multithread@1.0 \
-  android.hardware.tests.multithread@1.0-impl \
-  android.hardware.tests.pointer@1.0 \
-  android.hardware.tests.pointer@1.0-impl \
-  android.hardware.tests.trie@1.0 \
-  android.hardware.tests.trie@1.0-impl \
-  libfootest \
-  libpointertest \
-  lights.vts \
diff --git a/tools/build/tasks/list/vts_test_lib_hidl_package_list.mk b/tools/build/tasks/list/vts_test_lib_hidl_package_list.mk
deleted file mode 100644
index ace5d1a..0000000
--- a/tools/build/tasks/list/vts_test_lib_hidl_package_list.mk
+++ /dev/null
@@ -1,451 +0,0 @@
-#
-# Copyright (C) 2016 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.
-
-vts_hal_driver_libs := \
-  android.hardware.atrace@1.0-vts.driver \
-  android.hardware.audio@2.0-vts.driver \
-  android.hardware.audio.common@2.0-vts.driver \
-  android.hardware.audio.effect@2.0-vts.driver \
-  android.hardware.audio@4.0-vts.driver \
-  android.hardware.audio.common@4.0-vts.driver \
-  android.hardware.audio.effect@4.0-vts.driver \
-  android.hardware.audio@5.0-vts.driver \
-  android.hardware.audio.common@5.0-vts.driver \
-  android.hardware.audio.effect@5.0-vts.driver \
-  android.hardware.audio@6.0-vts.driver \
-  android.hardware.audio.common@6.0-vts.driver \
-  android.hardware.audio.effect@6.0-vts.driver \
-  android.hardware.authsecret@1.0-vts.driver \
-  android.hardware.automotive.audiocontrol@1.0-vts.driver \
-  android.hardware.automotive.can@1.0-vts.driver \
-  android.hardware.automotive.evs@1.0-vts.driver \
-  android.hardware.automotive.evs@1.1-vts.driver \
-  android.hardware.automotive.occupant_awareness@1.0-vts.driver \
-  android.hardware.automotive.vehicle@2.0-vts.driver \
-  android.hardware.biometrics.face@1.0-vts.driver \
-  android.hardware.biometrics.fingerprint@2.1-vts.driver \
-  android.hardware.biometrics.fingerprint@2.2-vts.driver \
-  android.hardware.bluetooth@1.0-vts.driver \
-  android.hardware.boot@1.0-vts.driver \
-  android.hardware.broadcastradio@1.0-vts.driver \
-  android.hardware.broadcastradio@1.1-vts.driver \
-  android.hardware.broadcastradio@2.0-vts.driver \
-  android.hardware.camera.common@1.0-vts.driver \
-  android.hardware.camera.device@1.0-vts.driver \
-  android.hardware.camera.device@3.2-vts.driver \
-  android.hardware.camera.device@3.3-vts.driver \
-  android.hardware.camera.device@3.4-vts.driver \
-  android.hardware.camera.metadata@3.2-vts.driver \
-  android.hardware.camera.metadata@3.3-vts.driver \
-  android.hardware.camera.provider@2.4-vts.driver \
-  android.hardware.cas@1.0-vts.driver \
-  android.hardware.cas@1.1-vts.driver \
-  android.hardware.cas@1.2-vts.driver \
-  android.hardware.cas.native@1.0-vts.driver \
-  android.hardware.configstore@1.0-vts.driver \
-  android.hardware.configstore@1.2-vts.driver \
-  android.hardware.confirmationui@1.0-vts.driver \
-  android.hardware.contexthub@1.0-vts.driver \
-  android.hardware.contexthub@1.1-vts.driver \
-  android.hardware.drm@1.0-vts.driver \
-  android.hardware.drm@1.1-vts.driver \
-  android.hardware.drm@1.2-vts.driver \
-  android.hardware.drm@1.3-vts.driver \
-  android.hardware.dumpstate@1.0-vts.driver \
-  android.hardware.gatekeeper@1.0-vts.driver \
-  android.hardware.gnss@1.0-vts.driver \
-  android.hardware.gnss@1.1-vts.driver \
-  android.hardware.graphics.allocator@2.0-vts.driver \
-  android.hardware.graphics.allocator@3.0-vts.driver \
-  android.hardware.graphics.bufferqueue@1.0-vts.driver \
-  android.hardware.graphics.bufferqueue@2.0-vts.driver \
-  android.hardware.graphics.common@1.0-vts.driver \
-  android.hardware.graphics.common@1.1-vts.driver \
-  android.hardware.graphics.common@1.2-vts.driver \
-  android.hardware.graphics.composer@2.1-vts.driver \
-  android.hardware.graphics.composer@2.2-vts.driver \
-  android.hardware.graphics.mapper@2.0-vts.driver \
-  android.hardware.graphics.mapper@2.1-vts.driver \
-  android.hardware.graphics.mapper@3.0-vts.driver \
-  android.hardware.graphics.mapper@4.0-vts.driver \
-  android.hardware.health.storage@1.0-vts.driver \
-  android.hardware.health@1.0-vts.driver \
-  android.hardware.health@2.0-vts.driver \
-  android.hardware.ir@1.0-vts.driver \
-  android.hardware.keymaster@3.0-vts.driver \
-  android.hardware.keymaster@4.0-vts.driver \
-  android.hardware.light@2.0-vts.driver \
-  android.hardware.media@1.0-vts.driver \
-  android.hardware.media.bufferpool@1.0-vts.driver \
-  android.hardware.media.bufferpool@2.0-vts.driver \
-  android.hardware.media.c2@1.0-vts.driver \
-  android.hardware.media.omx@1.0-vts.driver \
-  android.hardware.memtrack@1.0-vts.driver \
-  android.hardware.neuralnetworks@1.0-vts.driver \
-  android.hardware.neuralnetworks@1.1-vts.driver \
-  android.hardware.neuralnetworks@1.2-vts.driver \
-  android.hardware.nfc@1.0-vts.driver \
-  android.hardware.nfc@1.1-vts.driver \
-  android.hardware.nfc@1.2-vts.driver \
-  android.hardware.oemlock@1.0-vts.driver \
-  android.hardware.power@1.0-vts.driver \
-  android.hardware.power@1.1-vts.driver \
-  android.hardware.power@1.2-vts.driver \
-  android.hardware.power@1.3-vts.driver \
-  android.hardware.power.stats@1.0-vts.driver \
-  android.hardware.radio@1.0-vts.driver \
-  android.hardware.radio@1.1-vts.driver \
-  android.hardware.radio@1.2-vts.driver \
-  android.hardware.radio.config@1.0-vts.driver \
-  android.hardware.radio.deprecated@1.0-vts.driver \
-  android.hardware.renderscript@1.0-vts.driver \
-  android.hardware.secure_element@1.0-vts.driver \
-  android.hardware.sensors@1.0-vts.driver \
-  android.hardware.sensors@2.0-vts.driver \
-  android.hardware.sensors@2.1-vts.driver \
-  android.hardware.soundtrigger@2.0-vts.driver \
-  android.hardware.soundtrigger@2.1-vts.driver \
-  android.hardware.soundtrigger@2.2-vts.driver \
-  android.hardware.soundtrigger@2.3-vts.driver \
-  android.hardware.tests.memory@1.0-vts.driver \
-  android.hardware.tests.msgq@1.0-vts.driver \
-  android.hardware.tetheroffload.config@1.0-vts.driver \
-  android.hardware.tetheroffload.control@1.0-vts.driver \
-  android.hardware.thermal@1.0-vts.driver \
-  android.hardware.thermal@1.1-vts.driver \
-  android.hardware.thermal@2.0-vts.driver \
-  android.hardware.tv.cec@1.0-vts.driver \
-  android.hardware.tv.input@1.0-vts.driver \
-  android.hardware.tv.tuner@1.0-vts.driver \
-  android.hardware.usb@1.0-vts.driver \
-  android.hardware.usb@1.1-vts.driver \
-  android.hardware.usb.gadget@1.0-vts.driver \
-  android.hardware.vibrator@1.0-vts.driver \
-  android.hardware.vibrator@1.1-vts.driver \
-  android.hardware.vibrator@1.2-vts.driver \
-  android.hardware.vibrator@1.3-vts.driver \
-  android.hardware.vr@1.0-vts.driver \
-  android.hardware.weaver@1.0-vts.driver \
-  android.hardware.wifi@1.0-vts.driver \
-  android.hardware.wifi@1.1-vts.driver \
-  android.hardware.wifi@1.2-vts.driver \
-  android.hardware.wifi@1.4-vts.driver \
-  android.hardware.wifi.hostapd@1.0-vts.driver \
-  android.hardware.wifi.offload@1.0-vts.driver \
-  android.hardware.wifi.supplicant@1.0-vts.driver \
-  android.hardware.wifi.supplicant@1.1-vts.driver \
-  android.hardware.wifi.supplicant@1.2-vts.driver \
-  android.hardware.wifi.supplicant@1.3-vts.driver \
-  android.hidl.memory.block@1.0-vts.driver \
-  android.hidl.memory.token@1.0-vts.driver \
-  android.hidl.safe_union@1.0-vts.driver \
-  android.system.net.netd@1.0-vts.driver \
-  android.system.net.netd@1.1-vts.driver \
-
-vts_hal_profiler_libs := \
-  android.hardware.atrace@1.0-vts.profiler \
-  android.hardware.audio@2.0-vts.profiler \
-  android.hardware.audio.common@2.0-vts.profiler \
-  android.hardware.audio.effect@2.0-vts.profiler \
-  android.hardware.audio@4.0-vts.profiler \
-  android.hardware.audio.common@4.0-vts.profiler \
-  android.hardware.audio.effect@4.0-vts.profiler \
-  android.hardware.audio@5.0-vts.profiler \
-  android.hardware.audio.common@5.0-vts.profiler \
-  android.hardware.audio.effect@5.0-vts.profiler \
-  android.hardware.audio@6.0-vts.profiler \
-  android.hardware.audio.common@6.0-vts.profiler \
-  android.hardware.audio.effect@6.0-vts.profiler \
-  android.hardware.authsecret@1.0-vts.profiler \
-  android.hardware.automotive.audiocontrol@1.0-vts.profiler \
-  android.hardware.automotive.can@1.0-vts.profiler \
-  android.hardware.automotive.evs@1.0-vts.profiler \
-  android.hardware.automotive.evs@1.1-vts.profiler \
-  android.hardware.automotive.occupant_awareness@1.0-vts.profiler \
-  android.hardware.automotive.vehicle@2.0-vts.profiler \
-  android.hardware.biometrics.face@1.0-vts.profiler \
-  android.hardware.biometrics.fingerprint@2.1-vts.profiler \
-  android.hardware.biometrics.fingerprint@2.2-vts.profiler \
-  android.hardware.bluetooth@1.0-vts.profiler \
-  android.hardware.boot@1.0-vts.profiler \
-  android.hardware.broadcastradio@1.0-vts.profiler \
-  android.hardware.broadcastradio@1.1-vts.profiler \
-  android.hardware.broadcastradio@2.0-vts.profiler \
-  android.hardware.camera.common@1.0-vts.profiler \
-  android.hardware.camera.device@1.0-vts.profiler \
-  android.hardware.camera.device@3.2-vts.profiler \
-  android.hardware.camera.device@3.3-vts.profiler \
-  android.hardware.camera.device@3.4-vts.profiler \
-  android.hardware.camera.metadata@3.2-vts.profiler \
-  android.hardware.camera.metadata@3.3-vts.profiler \
-  android.hardware.camera.provider@2.4-vts.profiler \
-  android.hardware.cas@1.0-vts.profiler \
-  android.hardware.cas@1.1-vts.profiler \
-  android.hardware.cas@1.2-vts.profiler \
-  android.hardware.cas.native@1.0-vts.profiler \
-  android.hardware.configstore@1.0-vts.profiler \
-  android.hardware.configstore@1.2-vts.profiler \
-  android.hardware.confirmationui@1.0-vts.profiler \
-  android.hardware.contexthub@1.0-vts.profiler \
-  android.hardware.contexthub@1.1-vts.profiler \
-  android.hardware.drm@1.0-vts.profiler \
-  android.hardware.drm@1.1-vts.profiler \
-  android.hardware.drm@1.2-vts.profiler \
-  android.hardware.drm@1.3-vts.profiler \
-  android.hardware.dumpstate@1.0-vts.profiler \
-  android.hardware.gatekeeper@1.0-vts.profiler \
-  android.hardware.gnss@1.0-vts.profiler \
-  android.hardware.gnss@1.1-vts.profiler \
-  android.hardware.graphics.allocator@2.0-vts.profiler \
-  android.hardware.graphics.bufferqueue@1.0-vts.profiler \
-  android.hardware.graphics.common@1.0-vts.profiler \
-  android.hardware.graphics.common@1.1-vts.profiler \
-  android.hardware.graphics.composer@2.1-vts.profiler \
-  android.hardware.graphics.composer@2.2-vts.profiler \
-  android.hardware.graphics.mapper@2.0-vts.profiler \
-  android.hardware.graphics.mapper@2.1-vts.profiler \
-  android.hardware.graphics.mapper@3.0-vts.profiler \
-  android.hardware.graphics.mapper@4.0-vts.profiler \
-  android.hardware.health.storage@1.0-vts.profiler \
-  android.hardware.health@1.0-vts.profiler \
-  android.hardware.health@2.0-vts.profiler \
-  android.hardware.ir@1.0-vts.profiler \
-  android.hardware.keymaster@3.0-vts.profiler \
-  android.hardware.keymaster@4.0-vts.profiler \
-  android.hardware.light@2.0-vts.profiler \
-  android.hardware.media@1.0-vts.profiler \
-  android.hardware.media.omx@1.0-vts.profiler \
-  android.hardware.media.bufferpool@1.0-vts.profiler \
-  android.hardware.memtrack@1.0-vts.profiler \
-  android.hardware.neuralnetworks@1.0-vts.profiler \
-  android.hardware.neuralnetworks@1.1-vts.profiler \
-  android.hardware.neuralnetworks@1.2-vts.profiler \
-  android.hardware.nfc@1.0-vts.profiler \
-  android.hardware.nfc@1.1-vts.profiler \
-  android.hardware.oemlock@1.0-vts.profiler \
-  android.hardware.power@1.0-vts.profiler \
-  android.hardware.power@1.1-vts.profiler \
-  android.hardware.power@1.2-vts.profiler \
-  android.hardware.power@1.3-vts.profiler \
-  android.hardware.power.stats@1.0-vts.profiler \
-  android.hardware.radio@1.0-vts.profiler \
-  android.hardware.radio@1.1-vts.profiler \
-  android.hardware.radio@1.2-vts.profiler \
-  android.hardware.radio.config@1.0-vts.profiler \
-  android.hardware.radio.deprecated@1.0-vts.profiler \
-  android.hardware.renderscript@1.0-vts.profiler \
-  android.hardware.secure_element@1.0-vts.profiler \
-  android.hardware.sensors@1.0-vts.profiler \
-  android.hardware.sensors@2.0-vts.profiler \
-  android.hardware.sensors@2.1-vts.profiler \
-  android.hardware.soundtrigger@2.0-vts.profiler \
-  android.hardware.soundtrigger@2.1-vts.profiler \
-  android.hardware.soundtrigger@2.2-vts.profiler \
-  android.hardware.soundtrigger@2.3-vts.profiler \
-  android.hardware.tests.memory@1.0-vts.profiler \
-  android.hardware.tests.msgq@1.0-vts.profiler \
-  android.hardware.tetheroffload.config@1.0-vts.profiler \
-  android.hardware.tetheroffload.control@1.0-vts.profiler \
-  android.hardware.thermal@1.0-vts.profiler \
-  android.hardware.thermal@1.1-vts.profiler \
-  android.hardware.thermal@2.0-vts.profiler \
-  android.hardware.tv.cec@1.0-vts.profiler \
-  android.hardware.tv.input@1.0-vts.profiler \
-  android.hardware.tv.tuner@1.0-vts.profiler \
-  android.hardware.usb@1.0-vts.profiler \
-  android.hardware.usb@1.1-vts.profiler \
-  android.hardware.usb.gadget@1.0-vts.profiler \
-  android.hardware.vibrator@1.0-vts.profiler \
-  android.hardware.vibrator@1.1-vts.profiler \
-  android.hardware.vibrator@1.2-vts.profiler \
-  android.hardware.vibrator@1.3-vts.profiler \
-  android.hardware.vibrator@1.4-vts.profiler \
-  android.hardware.vr@1.0-vts.profiler \
-  android.hardware.weaver@1.0-vts.profiler \
-  android.hardware.wifi@1.0-vts.profiler \
-  android.hardware.wifi@1.1-vts.profiler \
-  android.hardware.wifi@1.2-vts.profiler \
-  android.hardware.wifi@1.4-vts.profiler \
-  android.hardware.wifi.hostapd@1.0-vts.profiler \
-  android.hardware.wifi.offload@1.0-vts.profiler \
-  android.hardware.wifi.supplicant@1.0-vts.profiler \
-  android.hardware.wifi.supplicant@1.1-vts.profiler \
-  android.hardware.wifi.supplicant@1.2-vts.profiler \
-  android.hardware.wifi.supplicant@1.3-vts.profiler \
-  android.hidl.memory.block@1.0-vts.profiler \
-  android.hidl.memory.token@1.0-vts.profiler \
-  android.system.net.netd@1.0-vts.profiler \
-  android.system.net.netd@1.1-vts.profiler \
-
-vts_hal_test_bins := \
-  VtsHalAtraceV1_0TargetTest \
-  VtsHalAudioV2_0TargetTest \
-  VtsHalAudioV4_0TargetTest \
-  VtsHalAudioV5_0TargetTest \
-  VtsHalAudioV6_0TargetTest \
-  VtsHalAudioEffectV2_0TargetTest \
-  VtsHalAudioEffectV4_0TargetTest \
-  VtsHalAudioEffectV5_0TargetTest \
-  VtsHalAudioEffectV6_0TargetTest \
-  VtsHalAudioPolicyV1_0TargetTest \
-  VtsHalAuthSecretV1_0TargetTest \
-  VtsHalAutomotiveDisplayV1_0TargetTest \
-  VtsHalBiometricsFaceV1_0TargetTest \
-  VtsHalBiometricsFingerprintV2_1TargetTest \
-  VtsHalBiometricsFingerprintV2_2TargetTest \
-  VtsHalBluetoothV1_0TargetTest \
-  VtsHalBootV1_0TargetTest \
-  VtsHalBroadcastradioV1_0TargetTest \
-  VtsHalBroadcastradioV1_1TargetTest \
-  VtsHalBroadcastradioV2_0TargetTest \
-  VtsHalCameraProviderV2_4TargetTest \
-  VtsHalCameraServiceV2_0TargetTest \
-  VtsHalCanBusV1_0TargetTest \
-  VtsHalCanBusVirtualV1_0TargetTest \
-  VtsHalCanControllerV1_0TargetTest \
-  VtsHalCasV1_0TargetTest \
-  VtsHalCasV1_1TargetTest \
-  VtsHalCasV1_2TargetTest \
-  VtsHalConfigstoreV1_0TargetTest \
-  VtsHalContexthubV1_0TargetTest \
-  VtsHalContexthubV1_1TargetTest \
-  VtsHalDrmV1_0TargetTest \
-  VtsHalDrmV1_1TargetTest \
-  VtsHalDrmV1_2TargetTest \
-  VtsHalDrmV1_3TargetTest \
-  VtsHalDumpstateV1_0TargetTest \
-  VtsHalEvsV1_0TargetTest \
-  VtsHalEvsV1_1TargetTest \
-  VtsHalGatekeeperV1_0TargetTest \
-  VtsHalGnssV1_0TargetTest \
-  VtsHalGnssV1_1TargetTest \
-  VtsHalGnssV2_0TargetTest \
-  VtsHalGnssV2_1TargetTest \
-  VtsHalGraphicsComposerV2_1TargetTest \
-  VtsHalGraphicsComposerV2_2TargetTest \
-  VtsHalGraphicsComposerV2_3TargetTest \
-  VtsHalGraphicsMapperV2_0TargetTest \
-  VtsHalGraphicsMapperV2_1TargetTest \
-  VtsHalGraphicsMapperV3_0TargetTest \
-  VtsHalGraphicsMapperV4_0TargetTest \
-  VtsHalHealthStorageV1_0TargetTest \
-  VtsHalHealthV1_0TargetTest \
-  VtsHalHealthV2_0TargetTest \
-  VtsHalInputClassifierV1_0TargetTest \
-  VtsHalIrV1_0TargetTest \
-  VtsHalKeymasterV3_0TargetTest \
-  VtsHalKeymasterV4_0TargetTest \
-  VtsHalLightV2_0TargetTest \
-  VtsHalMediaC2V1_0TargetComponentTest \
-  VtsHalMediaC2V1_0TargetAudioEncTest \
-  VtsHalMediaC2V1_0TargetAudioDecTest \
-  VtsHalMediaC2V1_0TargetVideoEncTest \
-  VtsHalMediaC2V1_0TargetVideoDecTest \
-  VtsHalMediaOmxV1_0TargetComponentTest \
-  VtsHalMediaOmxV1_0TargetAudioEncTest \
-  VtsHalMediaOmxV1_0TargetAudioDecTest \
-  VtsHalMediaOmxV1_0TargetVideoEncTest \
-  VtsHalMediaOmxV1_0TargetVideoDecTest \
-  VtsHalMemtrackV1_0TargetTest \
-  VtsHalNetNetdV1_0TargetTest \
-  VtsHalNetNetdV1_1TargetTest \
-  VtsHalNeuralnetworksV1_0TargetTest \
-  VtsHalNeuralnetworksV1_1TargetTest \
-  VtsHalNeuralnetworksV1_2BenchmarkTestCases \
-  VtsHalNeuralnetworksV1_2TargetTest \
-  VtsHalNeuralnetworksV1_3BenchmarkTestCases \
-  VtsHalNeuralnetworksV1_3TargetTest \
-  VtsHalNfcV1_0TargetTest \
-  VtsHalNfcV1_1TargetTest \
-  VtsHalNfcV1_2TargetTest \
-  VtsHalOccupantAwarenessV1_0TargetTest \
-  VtsHalOemLockV1_0TargetTest \
-  VtsHalPowerV1_0TargetTest \
-  VtsHalPowerV1_1TargetTest \
-  VtsHalPowerV1_2TargetTest \
-  VtsHalPowerV1_3TargetTest \
-  VtsHalPowerStatsV1_0TargetTest \
-  VtsHalRadioV1_0TargetTest \
-  VtsHalRadioV1_1TargetTest \
-  VtsHalRadioV1_2TargetTest \
-  VtsHalRadioV1_3TargetTest \
-  VtsHalRadioV1_4TargetTest \
-  VtsHalRadioV1_5TargetTest \
-  VtsHalRadioConfigV1_0TargetTest \
-  VtsHalRadioConfigV1_1TargetTest \
-  VtsHalRadioConfigV1_2TargetTest \
-  VtsHalRenderscriptV1_0TargetTest \
-  VtsHalSapV1_0TargetTest \
-  VtsHalSecureElementV1_0TargetTest \
-  VtsHalSensorsV1_0TargetTest \
-  VtsHalSensorsV2_0TargetTest \
-  VtsHalSensorsV2_1TargetTest \
-  VtsHalSoundtriggerV2_0TargetTest \
-  VtsHalSoundtriggerV2_1TargetTest \
-  VtsHalSoundtriggerV2_2TargetTest \
-  VtsHalSoundtriggerV2_3TargetTest \
-  VtsHalStatsV1_0TargetTest \
-  VtsHalTetheroffloadConfigV1_0TargetTest \
-  VtsHalTetheroffloadControlV1_0TargetTest \
-  VtsHalThermalV1_0TargetTest \
-  VtsHalThermalV1_1TargetTest \
-  VtsHalThermalV2_0TargetTest \
-  thermal_hidl_stress_test \
-  VtsHalBufferHubV1_0TargetTest \
-  VtsHalTvInputV1_0TargetTest \
-  VtsHalTvTunerV1_0TargetTest \
-  VtsHalUsbV1_0TargetTest \
-  VtsHalUsbV1_1TargetTest \
-  VtsHalVibratorV1_0TargetTest \
-  VtsHalVibratorV1_1TargetTest \
-  VtsHalVibratorV1_2TargetTest \
-  VtsHalVibratorV1_3TargetTest \
-  VtsHalVibratorV1_4TargetTest \
-  VtsHalVrV1_0TargetTest \
-  VtsHalWeaverV1_0TargetTest \
-  VtsHalWifiHostapdV1_0TargetTest \
-  VtsHalWifiHostapdV1_1TargetTest \
-  VtsHalWifiHostapdV1_2TargetTest \
-  VtsHalWifiKeystoreV1_0TargetTest \
-  VtsHalWifiV1_0TargetTest \
-  VtsHalWifiV1_1TargetTest \
-  VtsHalWifiV1_2TargetTest \
-  VtsHalWifiV1_3TargetTest \
-  VtsHalWifiApV1_0TargetTest \
-  VtsHalWifiApV1_4TargetTest \
-  VtsHalWifiNanV1_0TargetTest \
-  VtsHalWifiNanV1_2TargetTest \
-  VtsHalWifiOffloadV1_0TargetTest \
-  VtsHalWifiSupplicantV1_0TargetTest \
-  VtsHalWifiSupplicantV1_1TargetTest \
-  VtsHalWifiSupplicantV1_2TargetTest \
-  VtsHalWifiSupplicantV1_3TargetTest \
-  VtsHalWifiSupplicantP2pV1_0TargetTest \
-  VtsHalWifiSupplicantP2pV1_2TargetTest \
-  VtsHidlAllocatorV1_0TargetTest \
-
-# Binaries which are part of VNDK but in the form of HIDL.
-vts_hal_test_bins += \
-  VtsVndkHidlBufferpoolV1_0TargetSingleTest \
-  VtsVndkHidlBufferpoolV1_0TargetMultiTest \
-  VtsVndkHidlBufferpoolV2_0TargetSingleTest \
-  VtsVndkHidlBufferpoolV2_0TargetMultiTest \
-
-vts_test_lib_hidl_packages := \
-  $(vts_hal_driver_libs) \
-  $(vts_hal_profiler_libs) \
-  $(vts_hal_test_bins) \
-  libhidlbase \
-  libvtswidevine_prebuilt \
diff --git a/tools/build/tasks/list/vts_test_lib_package_list.mk b/tools/build/tasks/list/vts_test_lib_package_list.mk
deleted file mode 100644
index 5691b5d..0000000
--- a/tools/build/tasks/list/vts_test_lib_package_list.mk
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# Copyright (C) 2016 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.
-
-# for drm tests
-vts_test_lib_packages += \
-    libvtswidevine \
-
-# for fuzz tests
-vts_test_lib_packages += \
-    libclang_rt.asan-arm-android \
-    libclang_rt.asan-aarch64-android \
-    libclang_rt.asan-i686-android \
-    libclang_rt.asan-x86_64-android \
-    libvts_func_fuzzer_utils \
-    libvts_proto_fuzzer \
-    libvts_proto_fuzzer_proto \
-
-# for HAL interface hash test
-vts_test_lib_packages += \
-    libhidl-gen-hash \
diff --git a/tools/build/tasks/list/vts_vndk_abi_dump_package_list.mk b/tools/build/tasks/list/vts_vndk_abi_dump_package_list.mk
deleted file mode 100644
index f6f695b..0000000
--- a/tools/build/tasks/list/vts_vndk_abi_dump_package_list.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# 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.
-
-# Target tuple format:
-# primary_arch:arch:arch_variant:binder_bitness
-vts_vndk_abi_dump_target_tuple_list := \
-  arm:arm:armv7-a-neon:32 \
-  arm:arm:armv7-a-neon:64 \
-  arm64:arm64:armv8-a:64 \
-  arm64:arm:armv8-a:64 \
-  x86:x86:x86:32 \
-  x86:x86:x86:64 \
-  x86_64:x86_64:x86_64:64 \
-  x86_64:x86:x86_64:64 \
diff --git a/tools/build/tasks/vts_package.mk b/tools/build/tasks/vts_package.mk
deleted file mode 100644
index cb90044..0000000
--- a/tools/build/tasks/vts_package.mk
+++ /dev/null
@@ -1,228 +0,0 @@
-#
-# Copyright (C) 2017 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.
-#
-
-# Build rules for VTS10 (Vendor Test Suite) that includes VTF and tests.
-
-LOCAL_PATH := $(call my-dir)
-
-#include $(LOCAL_PATH)/vtf_package.mk
-
-build_utils_dir := $(LOCAL_PATH)/../utils
-
-include $(LOCAL_PATH)/list/vts_adapter_package_list.mk
-include $(LOCAL_PATH)/list/vts_spec_file_list.mk
-include $(LOCAL_PATH)/list/vts_test_bin_package_list.mk
-include $(LOCAL_PATH)/list/vts_test_lib_package_list.mk
-include $(LOCAL_PATH)/list/vts_test_lib_hal_package_list.mk
-include $(LOCAL_PATH)/list/vts_test_lib_hidl_package_list.mk
-include $(LOCAL_PATH)/list/vts_func_fuzzer_package_list.mk
-include $(LOCAL_PATH)/list/vts_test_host_lib_package_list.mk
-include $(LOCAL_PATH)/list/vts_test_host_bin_package_list.mk
-include $(LOCAL_PATH)/list/vts_test_hidl_hal_hash_list.mk
-include $(LOCAL_PATH)/list/vts_vndk_abi_dump_package_list.mk
-include $(build_utils_dir)/vts_package_utils.mk
--include external/linux-kselftest/android/kselftest_test_list.mk
--include external/ltp/android/ltp_package_list.mk
-
-VTS10_OUT_ROOT := $(HOST_OUT)/vts10
-VTS10_TESTCASES_OUT := $(VTS10_OUT_ROOT)/android-vts10/testcases
-# TODO(b/151896491): Remove these 2 variable after internal master is updated.
-VTS_OUT_ROOT := $(VTS10_OUT_ROOT)
-VTS_TESTCASES_OUT := $(VTS10_TESTCASES_OUT)
-
-# Packaging rule for android-vts10.zip
-test_suite_name := vts10
-test_suite_tradefed := vts10-tradefed
-test_suite_readme := test/vts/README.md
-# Package vts-core libraries.
-test_suite_tools += $(HOST_OUT_JAVA_LIBRARIES)/vts-core-tradefed-harness.jar \
-    $(HOST_OUT_JAVA_LIBRARIES)/vts-tradefed-tests.jar
-
-include $(BUILD_SYSTEM)/tasks/tools/compatibility.mk
-
-.PHONY: vts10
-vts10: $(compatibility_zip) vtslab adb
-$(call dist-for-goals, vts10, $(compatibility_zip))
-
-# Packaging rule for android-vts10.zip's testcases dir (DATA subdir).
-target_native_modules := \
-    $(kselftest_modules) \
-    ltp \
-    $(ltp_packages) \
-    $(vts_adapter_package_list) \
-    $(vts_test_bin_packages) \
-    $(vts_test_lib_hal_packages) \
-    $(vts_test_lib_hidl_packages) \
-    $(vts_func_fuzzer_packages) \
-
-target_native_copy_pairs := \
-  $(call target-native-copy-pairs,$(target_native_modules),$(VTS10_TESTCASES_OUT))
-
-# Packaging rule for android-vts10.zip's testcases dir (spec subdir).
-
-target_spec_modules := \
-  $(VTS_SPEC_FILE_LIST)
-
-target_spec_copy_pairs :=
-$(foreach m,$(target_spec_modules),\
-  $(eval my_spec_copy_dir :=\
-    spec/$(word 2,$(subst android/frameworks/, frameworks/hardware/interfaces/,\
-                    $(subst android/hardware/, hardware/interfaces/,\
-                      $(subst android/hidl/, system/libhidl/transport/,\
-                        $(subst android/system/, system/hardware/interfaces/,$(dir $(m)))))))/vts)\
-  $(eval my_spec_copy_file := $(notdir $(m)))\
-  $(eval my_spec_copy_dest := $(my_spec_copy_dir)/$(my_spec_copy_file))\
-  $(eval target_spec_copy_pairs += $(m):$(VTS10_TESTCASES_OUT)/$(my_spec_copy_dest)))
-
-$(foreach m,$(vts_spec_file_list),\
-  $(if $(wildcard $(m)),\
-    $(eval target_spec_copy_pairs += $(m):$(VTS10_TESTCASES_OUT)/spec/$(m))))
-
-target_trace_files := \
-  $(call find-files-in-subdirs,test/vts-testcase/hal-trace,"*.vts.trace" -and -type f,.) \
-
-target_trace_copy_pairs := \
-$(foreach f,$(target_trace_files),\
-    test/vts-testcase/hal-trace/$(f):$(VTS10_TESTCASES_OUT)/hal-hidl-trace/test/vts-testcase/hal-trace/$(f))
-
-target_hal_hash_modules := \
-    $(vts_test_hidl_hal_hash_list) \
-
-target_hal_hash_copy_pairs :=
-$(foreach m,$(target_hal_hash_modules),\
-  $(if $(wildcard $(m)),\
-    $(eval target_hal_hash_copy_pairs += $(m):$(VTS10_TESTCASES_OUT)/hal-hidl-hash/$(m))))
-
-host_vndk_abi_dumps := \
-  $(foreach target,$(vts_vndk_abi_dump_target_tuple_list),\
-    $(call create-vndk-abi-dump-from-target,$(target),$(VTS10_TESTCASES_OUT)/vts/testcases/vndk/golden))
-
-media_test_res_files := \
-  $(call find-files-in-subdirs,hardware/interfaces/media/res,"*.*" -and -type f,.) \
-
-media_test_res_copy_pairs := \
-  $(foreach f,$(media_test_res_files),\
-    hardware/interfaces/media/res/$(f):$(VTS10_TESTCASES_OUT)/DATA/media/res/$(f))
-
-media_c2_test_res_files := \
-  $(call find-files-in-subdirs,frameworks/av/media/codec2/hidl/1.0/vts/functional/res,"*.*" -and -type f,.) \
-
-media_c2_test_res_copy_pairs := \
-  $(foreach f,$(media_c2_test_res_files),\
-    frameworks/av/media/codec2/hidl/1.0/vts/functional/res/$(f):$(VTS10_TESTCASES_OUT)/DATA/media/c2/res/$(f))
-
-nbu_p2p_apk_files := \
-  $(call find-files-in-subdirs,test/vts-testcase/nbu/src,"*.apk" -and -type f,.)
-
-nbu_p2p_apk_copy_pairs := \
-  $(foreach f,$(nbu_p2p_apk_files),\
-      test/vts-testcase/nbu/src/$(f):$(VTS10_TESTCASES_OUT)/DATA/app/nbu/$(f))
-
-performance_test_res_files := \
-  $(call find-files-in-subdirs,test/vts-testcase/performance/res/,"*.*" -and -type f,.) \
-
-performance_test_res_copy_pairs := \
-  $(foreach f,$(performance_test_res_files),\
-    test/vts-testcase/performance/res/$(f):$(VTS10_TESTCASES_OUT)/DATA/performance/res/$(f))
-
-audio_test_res_files := \
-  $(call find-files-in-subdirs,hardware/interfaces/audio,"*.xsd" -and -type f,.) \
-
-audio_test_res_copy_pairs := \
-  $(foreach f,$(audio_test_res_files),\
-    hardware/interfaces/audio/$(f):$(VTS10_TESTCASES_OUT)/DATA/hardware/interfaces/audio/$(f))
-
-ifeq (REL,$(PLATFORM_VERSION_CODENAME))
-LATEST_VNDK_LIB_EXTRA_LIST := development/vndk/tools/definition-tool/datasets/vndk-lib-extra-list-$(PLATFORM_VNDK_VERSION).txt
-else
-LATEST_VNDK_LIB_EXTRA_LIST := development/vndk/tools/definition-tool/datasets/vndk-lib-extra-list-current.txt
-endif
-
-vndk_test_res_copy_pairs := \
-  $(LATEST_VNDK_LIB_LIST):$(VTS10_TESTCASES_OUT)/vts/testcases/vndk/golden/$(PLATFORM_VNDK_VERSION)/vndk-lib-list.txt \
-  $(LATEST_VNDK_LIB_EXTRA_LIST):$(VTS10_TESTCASES_OUT)/vts/testcases/vndk/golden/$(PLATFORM_VNDK_VERSION)/vndk-lib-extra-list.txt \
-  $(foreach vndk_ver,$(PRODUCT_EXTRA_VNDK_VERSIONS),build/make/target/product/gsi/$(vndk_ver).txt:$(VTS10_TESTCASES_OUT)/vts/testcases/vndk/golden/$(vndk_ver)/vndk-lib-list.txt) \
-  $(foreach vndk_ver,$(PRODUCT_EXTRA_VNDK_VERSIONS),development/vndk/tools/definition-tool/datasets/vndk-lib-extra-list-$(vndk_ver).txt:$(VTS10_TESTCASES_OUT)/vts/testcases/vndk/golden/$(vndk_ver)/vndk-lib-extra-list.txt) \
-
-system_property_compatibility_test_res_copy_pairs := \
-  system/sepolicy/public/property_contexts:$(VTS10_TESTCASES_OUT)/vts/testcases/security/system_property/data/property_contexts
-
-# For VtsSecurityAvb
-gsi_key_copy_pairs := \
-  system/core/rootdir/avb/q-gsi.avbpubkey:$(VTS10_TESTCASES_OUT)/DATA/avb/q-gsi.avbpubkey \
-  system/core/rootdir/avb/r-gsi.avbpubkey:$(VTS10_TESTCASES_OUT)/DATA/avb/r-gsi.avbpubkey \
-  system/core/rootdir/avb/s-gsi.avbpubkey:$(VTS10_TESTCASES_OUT)/DATA/avb/s-gsi.avbpubkey \
-
-$(VTS10_TESTCASES_OUT)/vts/testcases/vndk/golden/platform_vndk_version.txt:
-	@echo -n $(PLATFORM_VNDK_VERSION) > $@
-
-# Package roots that contains /prebuilt_hashes, and thus can be analyzed.
-vts_hidl_hals_package_roots := \
-    android.hardware:hardware/interfaces \
-
-vts_hidl_hals := \
-    $(call find-files-in-subdirs, ., "*.hal" -and -type f, \
-        $(foreach pair,$(vts_hidl_hals_package_roots),$(call word-colon,2,$(pair))))
-
-vts_hidl_hashes := \
-    $(foreach pair,$(vts_hidl_hals_package_roots),$(call word-colon,2,$(pair))/current.txt) \
-    $(call find-files-in-subdirs, ., "*.txt" -and -type f, \
-        $(foreach pair,$(vts_hidl_hals_package_roots),$(call word-colon,2,$(pair))/prebuilt_hashes))
-
-vts_hidl_hals_dump := $(VTS_TESTCASES_OUT)/DATA/etc/hidl_hals_for_release.json
-$(vts_hidl_hals_dump): $(HOST_OUT)/bin/dump_hals_for_release $(vts_hidl_hals) $(vts_hidl_hashes)
-	$< --pretty --package-root $(vts_hidl_hals_package_roots) \
-	    --filter-out '::types$$' '^android[.]hardware[.]tests[.]' \
-	    -- $(vts_hidl_hashes) > $@
-
-# for VTF (Vendor Test Framework) packages
-VTF_OUT_ROOT := $(HOST_OUT)/vts10
-VTF_TESTCASES_OUT := $(VTF_OUT_ROOT)/android-vts10/testcases
-VTF_TOOLS_OUT := $(VTF_OUT_ROOT)/android-vts10/tools
-VTF_EXTRA_SCRIPTS :=
-
-xsd_config_files := \
-  system/libvintf/xsd/compatibilityMatrix/compatibility_matrix.xsd:$(VTS10_TESTCASES_OUT)/DATA/etc/compatibility_matrix.xsd \
-  system/libvintf/xsd/halManifest/hal_manifest.xsd:$(VTS10_TESTCASES_OUT)/DATA/etc/hal_manifest.xsd \
-  frameworks/av/media/libstagefright/xmlparser/media_codecs.xsd:$(VTS10_TESTCASES_OUT)/DATA/etc/media_codecs.xsd \
-  frameworks/av/media/libmedia/xsd/media_profiles.xsd:$(VTS10_TESTCASES_OUT)/DATA/etc/media_profiles.xsd \
-  frameworks/base/services/core/xsd/default-permissions.xsd:$(VTS10_TESTCASES_OUT)/DATA/etc/default-permissions.xsd \
-  frameworks/base/core/xsd/permission.xsd:$(VTS10_TESTCASES_OUT)/DATA/etc/permission.xsd
-
-include $(LOCAL_PATH)/framework/vtf_package.mk
-
-# finally back to the rules for VTS10 (Vendor Test Suite) packages
-vts_copy_pairs := \
-  $(vtf_copy_pairs) \
-  $(vts_test_core_copy_pairs) \
-  $(call copy-many-files,$(target_native_copy_pairs)) \
-  $(call copy-many-files,$(target_spec_copy_pairs)) \
-  $(call copy-many-files,$(target_trace_copy_pairs)) \
-  $(call copy-many-files,$(media_test_res_copy_pairs)) \
-  $(call copy-many-files,$(media_c2_test_res_copy_pairs)) \
-  $(call copy-many-files,$(nbu_p2p_apk_copy_pairs)) \
-  $(call copy-many-files,$(performance_test_res_copy_pairs)) \
-  $(call copy-many-files,$(audio_test_res_copy_pairs)) \
-  $(call copy-many-files,$(vndk_test_res_copy_pairs)) \
-  $(call copy-many-files,$(system_property_compatibility_test_res_copy_pairs)) \
-  $(call copy-many-files,$(xsd_config_files)) \
-  $(call copy-many-files,$(gsi_key_copy_pairs)) \
-  $(VTS10_TESTCASES_OUT)/vts/testcases/vndk/golden/platform_vndk_version.txt \
-  $(vts_hidl_hals_dump) \
-
-$(compatibility_zip): $(vts_copy_pairs) $(host_vndk_abi_dumps)
-
--include vendor/google_vts/tools/build/vts_package_vendor.mk
diff --git a/tools/build/utils/vts_package_utils.mk b/tools/build/utils/vts_package_utils.mk
deleted file mode 100644
index 8b77bcb..0000000
--- a/tools/build/utils/vts_package_utils.mk
+++ /dev/null
@@ -1,94 +0,0 @@
-#
-# Copyright (C) 2017 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.
-#
-
-# $(1): List of target native files to copy.
-# $(2): Copy destination directory.
-# Evaluates to a list of ":"-separated pairs src:dst.
-define target-native-copy-pairs
-$(foreach m,$(1),\
-  $(eval _built_files := $(strip $(ALL_MODULES.$(m).BUILT_INSTALLED)\
-    $(ALL_MODULES.$(m)$(TARGET_2ND_ARCH_MODULE_SUFFIX).BUILT_INSTALLED)))\
-  $(eval _module_class_folder := $($(strip MODULE_CLASS_$(word 1, $(strip $(ALL_MODULES.$(m).CLASS)\
-    $(ALL_MODULES.$(m)$(TARGET_2ND_ARCH_MODULE_SUFFIX).CLASS))))))\
-  $(foreach i, $(_built_files),\
-    $(eval bui_ins := $(subst :,$(space),$(i)))\
-    $(eval ins := $(word 2,$(bui_ins)))\
-    $(if $(filter $(TARGET_OUT_ROOT)/%,$(ins)),\
-      $(eval bui := $(word 1,$(bui_ins)))\
-      $(if $(filter $(_module_class_folder), nativetest benchmarktest),\
-        $(eval module_class_folder_stem := $(_module_class_folder)$(findstring 64, $(patsubst $(PRODUCT_OUT)/%,%,$(ins)))),\
-        $(eval module_class_folder_stem := $(_module_class_folder)))\
-      $(eval my_copy_dest := $(patsubst data/%,DATA/%,\
-                               $(patsubst testcases/%,DATA/$(module_class_folder_stem)/%,\
-                                 $(patsubst testcases/$(m)/$(TARGET_ARCH)/%,DATA/$(module_class_folder_stem)/$(m)/%,\
-                                   $(patsubst testcases/$(m)/$(TARGET_2ND_ARCH)/%,DATA/$(module_class_folder_stem)/$(m)/%,\
-                                     $(patsubst system/%,DATA/%,\
-                                       $(patsubst $(PRODUCT_OUT)/%,%,$(ins))))))))\
-      $(bui):$(2)/$(my_copy_dest))))
-endef
-
-# $(1): List of host native files to copy.
-# $(2): Copy destination directory.
-# Evaluates to a list of ":"-separated pairs src:dst.
-define host-native-copy-pairs
-$(foreach m,$(1),\
-  $(eval _built_files := $(strip $(ALL_MODULES.$(m).BUILT_INSTALLED)\
-  $(ALL_MODULES.$(m)$(HOST_2ND_ARCH_MODULE_SUFFIX).BUILT_INSTALLED)))\
-  $(foreach i, $(_built_files),\
-    $(eval bui_ins := $(subst :,$(space),$(i)))\
-    $(eval ins := $(word 2,$(bui_ins)))\
-    $(if $(filter $(HOST_OUT)/% $(HOST_CROSS_OUT)/%,$(ins)),\
-      $(eval bui := $(word 1,$(bui_ins)))\
-      $(eval my_copy_dest := $(patsubst $(HOST_OUT)/%,%,\
-                               $(patsubst $(HOST_CROSS_OUT)/%,%,$(ins))))\
-      $(bui):$(2)/host/$(my_copy_dest))))
-endef
-
-# $(1): The path to the lsdump.
-# $(2): The path to the output dump.
-define lsdump-to-dump
-$(2) : $(1) $(HOST_OUT_EXECUTABLES)/extract_lsdump
-	@echo "Generate:" $(notdir $(2))
-	@mkdir -p $(dir $(2))
-	@rm -f $(2)
-	$(HOST_OUT_EXECUTABLES)/extract_lsdump $(1) $(2)
-endef
-
-# $(1): The target tuple. e.g., arm:arm:armv7-a-neon:32
-# $(2): The output directory. e.g., $(VTS10_TESTCASES_OUT)/vts/testcases/vndk/golden.
-# Evaluates to a list of destination files. (i.e. suitable for dependency list)
-define create-vndk-abi-dump-from-target
-$(strip \
-  $(eval target_tuple := $(subst :, ,$(1))) \
-  $(eval primary_arch := $(word 1, $(target_tuple))) \
-  $(eval arch := $(word 2, $(target_tuple))) \
-  $(eval arch_variant := $(word 3, $(target_tuple))) \
-  $(eval binder_bitness := $(word 4, $(target_tuple))) \
-  $(eval target_arch_variant := \
-    $(arch)$(if $(filter $(arch_variant),$(arch)),,_$(arch_variant))) \
-  $(eval lsdump_dir := \
-    prebuilts/abi-dumps/vndk/$(PLATFORM_VNDK_VERSION)/$(binder_bitness)/$(target_arch_variant)/source-based) \
-  $(if $(wildcard $(lsdump_dir)),\
-    $(eval lsdump_names := \
-      $(call find-files-in-subdirs,$(lsdump_dir),"*.lsdump" -and -type f,.)) \
-    $(eval abi_dump_dir := \
-      $(2)/$(PLATFORM_VNDK_VERSION)/binder$(binder_bitness)/$(primary_arch)/$(if $(findstring 64,$(arch)),lib64,lib)) \
-    $(foreach f,$(lsdump_names),\
-      $(eval copy_src := $(lsdump_dir)/$(f)) \
-      $(eval copy_dst := $(abi_dump_dir)/$(f:%.lsdump=%.dump)) \
-      $(eval $(call lsdump-to-dump,$(copy_src),$(copy_dst))) \
-      $(copy_dst))))
-endef
diff --git a/tools/vts-core-tradefed/Android.bp b/tools/vts-core-tradefed/Android.bp
index 81d50df..a7e0f75 100644
--- a/tools/vts-core-tradefed/Android.bp
+++ b/tools/vts-core-tradefed/Android.bp
@@ -12,6 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 java_library_host {
     name: "vts-core-tradefed-harness",
     srcs: ["src/**/*.java"],
@@ -30,7 +34,7 @@
     wrapper: "etc/vts-tradefed",
     short_name: "VTS",
     full_name: "Vendor Test Suite",
-    version: "11_r16",
+    version: "12_r12",
     static_libs: [
         "cts-tradefed-harness",
         "vts-core-tradefed-harness",
diff --git a/tools/vts-core-tradefed/etc/vts-tradefed b/tools/vts-core-tradefed/etc/vts-tradefed
index 61aba03..de511f2 100755
--- a/tools/vts-core-tradefed/etc/vts-tradefed
+++ b/tools/vts-core-tradefed/etc/vts-tradefed
@@ -61,6 +61,8 @@
     OS="linux-x86"
 elif [ "$HOST" == "Darwin" ]; then
     OS="darwin-x86"
+    # Bundled java is for linux so use host JDK on Darwin
+    JAVA_BINARY=java
 else
     echo "Unrecognized OS"
     exit
@@ -84,21 +86,18 @@
     VTS_ROOT="$(dirname $(realpath $0))/../.."
 fi;
 
-JAR_DIR=${VTS_ROOT}/android-vts/tools
-# TODO(b/149249068): Remove vts10-tradefed* after all VTS tests are converted
-JARS="tradefed
-  loganalysis
-  hosttestlib
-  compatibility-host-util
-  compatibility-host-util-tests
-  vts-tradefed
-  vts-tradefed-tests
-  compatibility-common-util-tests
-  compatibility-tradefed-tests"
+if [ -z ${JAVA_BINARY} ]; then
+      JAVA_BINARY=${VTS_ROOT}/android-vts/jdk/bin/java
+fi;
 
-for JAR in $JARS; do
-    checkFile ${JAR_DIR}/${JAR}.jar
-    JAR_PATH=${JAR_PATH}:${JAR_DIR}/${JAR}.jar
+if [ ! -f "${JAVA_BINARY}" ]; then
+      JAVA_BINARY=java
+fi
+
+JAR_DIR=${VTS_ROOT}/android-vts/tools
+
+for JAR in ${JAR_DIR}/*.jar; do
+    JAR_PATH=${JAR_PATH}:${JAR}
 done
 JAR_PATH=${JAR_PATH:1} # Strip off leading ':'
 
@@ -132,4 +131,4 @@
 done
 
 VTS_TESTCASES=${VTS_ROOT}/android-vts/testcases/
-VTS_TESTCASES=${VTS_TESTCASES} java $RDBG_FLAG -Xmx4096m -XX:+HeapDumpOnOutOfMemoryError -cp ${JAR_PATH} -DVTS_ROOT=${VTS_ROOT} com.android.compatibility.common.tradefed.command.CompatibilityConsole "$@"
+VTS_TESTCASES=${VTS_TESTCASES} ${JAVA_BINARY} $RDBG_FLAG -Xmx4096m -XX:+HeapDumpOnOutOfMemoryError -cp ${JAR_PATH} -DVTS_ROOT=${VTS_ROOT} com.android.compatibility.common.tradefed.command.CompatibilityConsole "$@"
diff --git a/tools/vts-core-tradefed/res/config/vts-kernel.xml b/tools/vts-core-tradefed/res/config/vts-kernel.xml
index 76baf59..6b6dc9b 100644
--- a/tools/vts-core-tradefed/res/config/vts-kernel.xml
+++ b/tools/vts-core-tradefed/res/config/vts-kernel.xml
@@ -29,8 +29,8 @@
     <option name="compatibility:include-filter" value="KernelLibcutilsTest" />
     <option name="compatibility:include-filter" value="KernelSelinuxFileApiTest" />
     <option name="compatibility:include-filter" value="memunreachable_binder_test" />
+    <option name="compatibility:include-filter" value="VtsBootconfigTest" />
     <option name="compatibility:include-filter" value="vts_core_liblp_test  " />
-    <option name="compatibility:include-filter" value="vts_core_test_binary_qtaguid_module" />
     <option name="compatibility:include-filter" value="vts_kernel_encryption_test" />
     <option name="compatibility:include-filter" value="vts_kernel_net_tests" />
     <option name="compatibility:include-filter" value="vts_kernel_proc_file_api_test" />
diff --git a/tools/vts-core-tradefed/res/config/vts-presubmit.xml b/tools/vts-core-tradefed/res/config/vts-presubmit.xml
index c4bb588..0d670c5 100644
--- a/tools/vts-core-tradefed/res/config/vts-presubmit.xml
+++ b/tools/vts-core-tradefed/res/config/vts-presubmit.xml
@@ -37,4 +37,6 @@
   <option name="compatibility:include-filter" value="VtsHalMediaC2V1_0TargetVideoEncTest" />
   <option name="compatibility:include-filter" value="vts_treble_vintf_vendor_test" />
 
-</configuration>
\ No newline at end of file
+  <!-- Tests used to gate gtest changes  -->
+  <option name="compatibility:include-filter" value="VtsHalPowerStatsV1_0TargetTest" />
+</configuration>
diff --git a/tools/vts-core-tradefed/res/config/vts-validation-exclude.xml b/tools/vts-core-tradefed/res/config/vts-validation-exclude.xml
new file mode 100644
index 0000000..27c3698
--- /dev/null
+++ b/tools/vts-core-tradefed/res/config/vts-validation-exclude.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2021 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.
+-->
+
+<configuration description="Excluded tests from vts-validation">
+
+    <!-- Exclude selected test modules -->
+    <option name="compatibility:exclude-filter" value="ApkVerityTest" />
+    <option name="compatibility:exclude-filter" value="CtsIkeTestCases" />
+    <option name="compatibility:exclude-filter" value="CtsInstantAppTests" />
+    <option name="compatibility:exclude-filter" value="CtsPackageWatchdogTestCases" />
+    <option name="compatibility:exclude-filter" value="CtsResourcesLoaderTests" />
+    <option name="compatibility:exclude-filter" value="CtsWindowManagerJetpackTestCases" />
+    <option name="compatibility:exclude-filter" value="KernelDynamicPartitionsTest" />
+    <option name="compatibility:exclude-filter" value="VtsHalBluetoothV1_0TargetTest" />
+    <option name="compatibility:exclude-filter" value="vts_compatibilityMatrix_validate_test" />
+    <option name="compatibility:exclude-filter" value="vts_core_liblp_test" />
+    <option name="compatibility:exclude-filter" value="vts_defaultPermissions_validate_test" />
+    <option name="compatibility:exclude-filter" value="vts_gsi_boot_test" />
+    <option name="compatibility:exclude-filter" value="vts_ibase_test" />
+    <option name="compatibility:exclude-filter" value="vts_kernel_checkpoint_test" />
+    <option name="compatibility:exclude-filter" value="vts_kernel_encryption_test" />
+    <option name="compatibility:exclude-filter" value="vts_kernel_loopconfig_test" />
+    <option name="compatibility:exclude-filter" value="vts_kernel_net_tests" />
+    <option name="compatibility:exclude-filter" value="vts_kernel_toolchain" />
+    <option name="compatibility:exclude-filter" value="vts_kernel_tun_test" />
+    <option name="compatibility:exclude-filter" value="vts_libdm_test" />
+    <option name="compatibility:exclude-filter" value="vts_libsnapshot_test" />
+    <option name="compatibility:exclude-filter" value="vts_linux_kselftest_arm_32" />
+    <option name="compatibility:exclude-filter" value="vts_permission_validate_test" />
+    <option name="compatibility:exclude-filter" value="vts_ltp_test_arm_64" />
+    <option name="compatibility:exclude-filter" value="vts_ltp_test" />
+    <option name="compatibility:exclude-filter" value="vts_security_avb_test AvbTest#SystemHashtree" />
+    <option name="compatibility:exclude-filter" value="vts_security_avb_test AvbTest#SystemDescriptor" />
+    <option name="compatibility:exclude-filter" value="vts_test_binary_bow_module" />
+    <option name="compatibility:exclude-filter" value="vts_treble_platform_version_test" />
+    <option name="compatibility:exclude-filter" value="vts_treble_sys_prop_test" />
+    <option name="compatibility:exclude-filter" value="vts_treble_vintf_framework_test" />
+    <option name="compatibility:exclude-filter" value="vts_treble_vintf_vendor_test "/>
+    <option name="compatibility:exclude-filter" value="vts_vndk_abi_test" />
+    <option name="compatibility:exclude-filter" value="vts_vndk_dependency_test" />
+    <option name="compatibility:exclude-filter" value="vts_vndk_files_test" />
+
+</configuration>
\ No newline at end of file
diff --git a/tools/vts-tradefed/res/config/vts-remote-manager.xml b/tools/vts-core-tradefed/res/config/vts-validation.xml
similarity index 65%
rename from tools/vts-tradefed/res/config/vts-remote-manager.xml
rename to tools/vts-core-tradefed/res/config/vts-validation.xml
index 6ee28ef..92a87de 100644
--- a/tools/vts-tradefed/res/config/vts-remote-manager.xml
+++ b/tools/vts-core-tradefed/res/config/vts-validation.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The Android Open Source Project
+<!-- Copyright (C) 2021 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.
@@ -13,8 +13,9 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="VTS Remote Manager Configuration">
-  <object type="vts-remote-manager" class="com.android.tradefed.command.remote.RemoteManager">
-    <option name="start-remote-mgr" value="true" />
-  </object>
+<configuration description="Runs a subset of VTS tests using a general kernel image (GKI)">
+    <option name="result-attribute" key="GKI" value="1" />
+    <include name="vts" />
+    <include name="vts-validation-exclude" />
+    <option name="plan" value="vts-validation" />
 </configuration>
diff --git a/tools/vts-core-tradefed/src/com/android/tradefed/testtype/binary/KernelTargetTest.java b/tools/vts-core-tradefed/src/com/android/tradefed/testtype/binary/KernelTargetTest.java
index 3ebdf16..c8101cf 100644
--- a/tools/vts-core-tradefed/src/com/android/tradefed/testtype/binary/KernelTargetTest.java
+++ b/tools/vts-core-tradefed/src/com/android/tradefed/testtype/binary/KernelTargetTest.java
@@ -34,6 +34,8 @@
 public class KernelTargetTest extends ExecutableTargetTest {
     @Option(name = "ignore-binary-check", description = "Ignore the binary check in findBinary().")
     private boolean mIgnoreBinaryCheck = false;
+    @Option(name = "exit-code-skip", description = "Exit code for skipped tests.")
+    private int mExitCodeSkip = 32;
 
     @Override
     public String findBinary(String binary) throws DeviceNotAvailableException {
@@ -51,8 +53,7 @@
      */
     protected void checkCommandResult(
             CommandResult result, ITestInvocationListener listener, TestDescription description) {
-        int exitCodeTCONF = 32;
-        if (result.getExitCode() == exitCodeTCONF) {
+        if (result.getExitCode() == mExitCodeSkip) {
             listener.testIgnored(description);
         } else {
             super.checkCommandResult(result, listener, description);
diff --git a/tools/vts-core-tradefed/tests/Android.bp b/tools/vts-core-tradefed/tests/Android.bp
index c968e5c..a4bda3d 100644
--- a/tools/vts-core-tradefed/tests/Android.bp
+++ b/tools/vts-core-tradefed/tests/Android.bp
@@ -12,6 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 java_library_host {
     name: "vts-tradefed-tests",
 
diff --git a/tools/vts-tradefed/Android.bp b/tools/vts-tradefed/Android.bp
deleted file mode 100644
index 114ec19..0000000
--- a/tools/vts-tradefed/Android.bp
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2016 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.
-
-tradefed_binary_host {
-    name: "vts10-tradefed",
-    wrapper: "etc/vts10-tradefed",
-    short_name: "VTS10",
-    full_name: "Vendor Test Suite V10",
-    version: "10_r1",
-    static_libs: [
-        "libvts_protos_host",
-        "gson-prebuilt-jar",
-        "google-api-java-client-min-repackaged",
-        "cts-tradefed-harness",
-        "vts10-tradefed-harness",
-    ],
-    libs: ["vts-core-tradefed-harness"],
-    manifest: "MANIFEST.mf",
-    java_resource_dirs: ["res"],
-}
diff --git a/tools/vts-tradefed/DynamicConfig.xml b/tools/vts-tradefed/DynamicConfig.xml
deleted file mode 100644
index 009e2aa..0000000
--- a/tools/vts-tradefed/DynamicConfig.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<!-- Copyright (C) 2015 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.
--->
-
-<dynamicConfig>
-    <entry key="media_files_url">
-         <value>https://dl.google.com/dl/android/cts/android-cts-media-1.4.zip</value>
-    </entry>
-</dynamicConfig>
diff --git a/tools/vts-tradefed/MANIFEST.mf b/tools/vts-tradefed/MANIFEST.mf
deleted file mode 100644
index 4bd2094..0000000
--- a/tools/vts-tradefed/MANIFEST.mf
+++ /dev/null
@@ -1,2 +0,0 @@
-Manifest-Version: 1.0
-Implementation-Version: %BUILD_NUMBER%
diff --git a/tools/vts-tradefed/build/config.mk b/tools/vts-tradefed/build/config.mk
deleted file mode 100644
index 312eda9..0000000
--- a/tools/vts-tradefed/build/config.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright (C) 2016 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.
-
-COMPATIBILITY_TESTCASES_OUT_vts10 := $(HOST_OUT)/vts10/android-vts10/testcases
diff --git a/tools/vts-tradefed/etc/Android.bp b/tools/vts-tradefed/etc/Android.bp
deleted file mode 100644
index 859b28e..0000000
--- a/tools/vts-tradefed/etc/Android.bp
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2016 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.
-
-sh_binary_host {
-    name: "vtf",
-    src: "vtf",
-}
-
-sh_binary_host {
-    name: "vts10-tradefed_win",
-    src: "vts10-tradefed_win.bat",
-    filename_from_src: true,
-
-    target: {
-        not_windows: {
-            enabled: false,
-        },
-        windows: {
-            enabled: true,
-        },
-    },
-}
diff --git a/tools/vts-tradefed/etc/Android.mk b/tools/vts-tradefed/etc/Android.mk
deleted file mode 100644
index 69e85e8..0000000
--- a/tools/vts-tradefed/etc/Android.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# Copyright (C) 2016 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.
-
-.PHONY: vts10-tradefed-standalone
-vts10-tradefed-standalone: vts10-tradefed vts10-tradefed-tests loganalysis hosttestlib compatibility-host-util tradefed vts-tradefed
diff --git a/tools/vts-tradefed/etc/vtf b/tools/vts-tradefed/etc/vtf
deleted file mode 100755
index c4555f8..0000000
--- a/tools/vts-tradefed/etc/vtf
+++ /dev/null
@@ -1,2 +0,0 @@
-
-VTF_BUILD_TARGET_NAME=vtf vts10-tradefed
diff --git a/tools/vts-tradefed/etc/vts10-gce-tradefed b/tools/vts-tradefed/etc/vts10-gce-tradefed
deleted file mode 100755
index 197ab38..0000000
--- a/tools/vts-tradefed/etc/vts10-gce-tradefed
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-
-# Copyright (C) 2016 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.
-
-# launcher script for vts-tradefed harness
-# can be used from an Android build environment, or a standalone vts zip
-
-TF_GLOBAL_CONFIG=google/continuous/gce-global-config vts10-tradefed
diff --git a/tools/vts-tradefed/etc/vts10-tradefed b/tools/vts-tradefed/etc/vts10-tradefed
deleted file mode 100755
index c5ec8bf..0000000
--- a/tools/vts-tradefed/etc/vts10-tradefed
+++ /dev/null
@@ -1,188 +0,0 @@
-#!/bin/bash
-
-# Copyright (C) 2016 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.
-
-# launcher script for vts10-tradefed harness
-# can be used from an Android build environment, or a standalone vts zip
-#
-# Usage:
-#   # to test a device with system.img = v9.0 and vendor.img = v9.0
-#       $ vts10-tradefed
-#
-#   # to test a device with system.img = v9.0 and vendor.img = v8.1
-#       $ vts10-tradefed -v=8.1
-#
-#   # all other cases are unsupported
-#
-
-checkFile() {
-    if [ ! -f "$1" ]; then
-        echo "Unable to locate $1"
-        exit
-    fi;
-}
-
-checkPath() {
-    if ! type -P $1 &> /dev/null; then
-        echo "Unable to find $1 in path."
-        exit
-    fi;
-}
-
-checkPath adb
-checkPath java
-
-# check java version
-JAVA_VERSION=$(java -version 2>&1 | grep 'version [ "]\(1\.8\|9\|11\).*[ "]' | head -n 1)
-if [ "${JAVA_VERSION}" == "" ]; then
-    echo "Wrong java version. 1.8, 9, or 11 is required."
-    exit
-fi
-
-# check debug flag and set up remote debugging
-if [ -n "${TF_DEBUG}" ]; then
-  if [ -z "${TF_DEBUG_PORT}" ]; then
-    TF_DEBUG_PORT=10088
-  fi
-  RDBG_FLAG=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=${TF_DEBUG_PORT}
-fi
-
-# get OS
-HOST=`uname`
-if [ "$HOST" == "Linux" ]; then
-    OS="linux-x86"
-elif [ "$HOST" == "Darwin" ]; then
-    OS="darwin-x86"
-else
-    echo "Unrecognized OS"
-    exit
-fi
-
-if [ "$VTF_BUILD_TARGET_NAME" != "vtf" ]; then
-    VTF_BUILD_TARGET_NAME="vts10"
-fi
-
-# check if in Android build env
-if [ ! -z "${ANDROID_BUILD_TOP}" ]; then
-    if [ ! -z "${ANDROID_HOST_OUT}" ]; then
-      VTS10_ROOT=${ANDROID_HOST_OUT}/${VTF_BUILD_TARGET_NAME}
-    else
-      VTS10_ROOT=${ANDROID_BUILD_TOP}/${OUT_DIR:-out}/host/${OS}/${VTF_BUILD_TARGET_NAME}
-    fi
-    if [ ! -d ${VTS10_ROOT} ]; then
-        echo "Could not find $VTS10_ROOT in Android build environment. Try 'make ${VTF_BUILD_TARGET_NAME}'"
-        exit
-    fi;
-fi;
-
-if [ -z ${VTS10_ROOT} ]; then
-    # assume we're in an extracted vts install
-    VTS10_ROOT="$(dirname $(readlink -e $0))/../.."
-fi;
-
-VTS10_JAR_DIR=${VTS10_ROOT}/android-${VTF_BUILD_TARGET_NAME}/tools
-STANDALONE_JAR_DIR=${ANDROID_HOST_OUT}/framework
-JAR_DIRS="$VTS10_JAR_DIR
-  $STANDALONE_JAR_DIR"
-
-JAR_DIR=""
-# Wherever we find the tradefed jar is where we expect the other jars to be.
-TRADEFED_JAR="tradefed"
-for CHECK_JAR_DIR in $JAR_DIRS; do
-  if [ -f ${CHECK_JAR_DIR}/${TRADEFED_JAR}.jar ]; then
-    JAR_DIR=$CHECK_JAR_DIR
-    break
-  fi;
-done
-
-# If we didn't find the TF jar, resort to tf prebuilt in VTS_JAR_DIR.
-if [ -z $JAR_DIR ]; then
-  JAR_DIR=$VTS10_JAR_DIR
-  TRADEFED_JAR="tradefed-prebuilt"
-fi
-
-JARS="${TRADEFED_JAR}
-  loganalysis
-  hosttestlib
-  vts10-tradefed
-  vts10-tradefed-tests
-  compatibility-host-util
-  vts-core-tradefed-harness"
-
-for JAR in $JARS; do
-    checkFile ${JAR_DIR}/${JAR}.jar
-    JAR_PATH=${JAR_PATH}:${JAR_DIR}/${JAR}.jar
-done
-
-# to run in the lab.
-OPTIONAL_JARS="
-  android-${VTF_BUILD_TARGET_NAME}/tools/google-tradefed-vts-prebuilt
-  google-tradefed-prebuilt
-  google-tradefed-tests
-  google-tf-prod-tests
-  google-tradefed"
-
-for JAR in $OPTIONAL_JARS; do
-    for OPT_JAR_DIR in $VTS10_ROOT $JAR_DIR; do
-        if [ -f "${OPT_JAR_DIR}/${JAR}.jar" ]; then
-            echo "Including optional JAR: ${OPT_JAR_DIR}/${JAR}.jar"
-            JAR_PATH=${JAR_PATH}:${OPT_JAR_DIR}/${JAR}.jar
-            break
-        fi;
-    done
-done
-
-# load any shared libraries for host-side executables
-LIB_DIR=${VTS10_ROOT}/android-${VTF_BUILD_TARGET_NAME}/lib
-if [ "$HOST" == "Linux" ]; then
-    LD_LIBRARY_PATH=${LIB_DIR}:${LIB_DIR}64:${LD_LIBRARY_PATH}
-    export LD_LIBRARY_PATH
-elif [ "$HOST" == "Darwin" ]; then
-    DYLD_LIBRARY_PATH=${LIB_DIR}:${LIB_DIR}64:${DYLD_LIBRARY_PATH}
-    export DYLD_LIBRARY_PATH
-fi
-
-# include any host-side test jars
-for j in ${VTS10_ROOT}/android-${VTF_BUILD_TARGET_NAME}/testcases/*.jar; do
-    JAR_PATH=${JAR_PATH}:$j
-done
-
-ARGS=()
-for var in "$@"
-do
-case $var in
-    -v=*|--vendor-image=*)
-    VENDOR="${var#*=}"
-    if [ "${VENDOR}" == "9.0" ]; then
-        VENDOR=""
-    elif [ "${VENDOR}" != "8.1" ]; then
-        echo "Supports only --vendor-image=8.1."
-        echo "By default, 9.0 is the supported vendor.img version."
-        exit 1
-    fi
-    ;;
-    *)
-    ARGS+=("$var")
-    ;;
-esac
-done
-
-if [ -z "${VENDOR}" ]; then
-    VTS10_TESTCASES=${VTS10_ROOT}/android-${VTF_BUILD_TARGET_NAME}/testcases/
-else
-    VTS10_TESTCASES=${VTS10_ROOT}/android-${VTF_BUILD_TARGET_NAME}/${VENDOR}/testcases/
-fi
-
-cd ${VTS10_TESTCASES}; VTS10_TESTCASES=${VTS10_TESTCASES} java -Xmx4096m $RDBG_FLAG -cp ${JAR_PATH} -DVTS10_ROOT=${VTS10_ROOT} com.android.compatibility.common.tradefed.command.CompatibilityConsole "${ARGS[@]}"
diff --git a/tools/vts-tradefed/etc/vts10-tradefed_win.bat b/tools/vts-tradefed/etc/vts10-tradefed_win.bat
deleted file mode 100644
index 9e77b52..0000000
--- a/tools/vts-tradefed/etc/vts10-tradefed_win.bat
+++ /dev/null
@@ -1,107 +0,0 @@
-:: Copyright (C) 2017 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.

-

-:: Launcher script for vts10-tradefed harness

-:: Can be used from an Android build environment, or a standalone VTS zip

-:: Caution: Although this script can be used to run VTS on Windows,

-:: Windows host is not yet officially supported.

-

-@echo off

-setlocal ENABLEDELAYEDEXPANSION

-

-set ADB=adb.exe

-set JAVA=java.exe

-where %ADB% || (echo Unable to find %ADB% && goto:eof)

-where %JAVA% || (echo Unable to find %JAVA% && goto:eof)

-

-:: check java version

-%JAVA% -version 2>&1 | findstr /R "version\ \"1*\.*[89].*\"$" || (

-    echo Wrong java version. 1.8 or 9 is required.

-    goto:eof

-)

-

-:: check debug flag and set up remote debugging

-if not [%TF_DEBUG%] == [] (

-    if [%TF_DEBUG_PORT%] == [] (

-        set TF_DEBUG_PORT=10088

-    )

-    set RDBG_FLAG=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=!TF_DEBUG_PORT!

-)

-

-:: assume built on Linux; running on Windows.

-:: find VTS_ROOT directory by location of this script

-echo %~dp0 | findstr /R \\out\\host\\windows-x86\\bin && (

-    set VTS_ROOT=%~dp0\..\..\linux-x86\vts

-)

-

-if [%VTS_ROOT%] == [] (

-    :: assume in an extracted VTS installation package

-    set VTS_ROOT=%~dp0\..\..

-)

-echo VTS_ROOT=%VTS_ROOT%

-

-:: java classpath

-set JAR_DIR=%VTS_ROOT%\android-vts\tools

-

-:: tradefed.jar

-set TRADEFED_JAR=%JAR_DIR%\tradefed.jar

-if not exist "%TRADEFED_JAR%" (

-    echo Unable to locate %TRADEFED_JAR%. Try prebuilt jar.

-    set TRADEFED_JAR=%JAR_DIR%\tradefed-prebuilt.jar

-)

-if not exist "%TRADEFED_JAR%" (

-    echo Unable to locate %TRADEFED_JAR%

-    goto:eof

-)

-set JAR_PATH=%TRADEFED_JAR%

-

-:: other required jars

-set JARS=^

-  loganalysis^

-  hosttestlib^

-  vts10-tradefed^

-  vts10-tradefed-tests^

-  compatibility-host-util

-for %%J in (%JARS%) do (

-    set JAR=%JAR_DIR%\%%J.jar

-    if not exist "!JAR!" ( echo Unable to locate !JAR! && goto:eof )

-    set JAR_PATH=!JAR_PATH!;!JAR!

-)

-

-:: to run in the lab.

-set OPTIONAL_JARS=^

-  android-vts\tools\google-tradefed-vts-prebuilt^

-  google-tradefed-prebuilt^

-  google-tradefed-tests^

-  google-tf-prod-tests

-

-for %%J in (%OPTIONAL_JARS%) do (

-    set JAR=%VTS_ROOT%\%%J.jar

-    if exist "!JAR!" (

-        echo Including optional JAR: !JAR!

-        set JAR_PATH=!JAR_PATH!;!JAR!

-    ) else (

-        echo Optional JAR not found: !JAR!

-    )

-)

-

-:: skip loading shared libraries for host-side executables

-

-:: include any host-side test jars

-set JAR_PATH=%JAR_PATH%;%VTS_ROOT%\android-vts\testcases\*

-echo JAR_PATH=%JAR_PATH%

-

-cd %VTS_ROOT%/android-vts/testcases

-%JAVA% %RDBG_FLAG% -cp "%JAR_PATH%" "-DVTS_ROOT=%VTS_ROOT%" com.android.compatibility.common.tradefed.command.CompatibilityConsole %*

-

diff --git a/tools/vts-tradefed/res/config/common-preparers.xml b/tools/vts-tradefed/res/config/common-preparers.xml
deleted file mode 100644
index a7f4741..0000000
--- a/tools/vts-tradefed/res/config/common-preparers.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="Common preparer for both vts and cts-on-gsi">
-  <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer">
-        <option name="dep-module" value="pip>=9.0.0" />
-        <option name="dep-module" value="enum" />
-        <option name="dep-module" value="future" />
-        <option name="dep-module" value="futures" />
-        <option name="dep-module" value="google-api-python-client" />
-        <option name="dep-module" value="google-auth>=1.4.2" />
-        <option name="dep-module" value="google-cloud-storage" />
-        <option name="dep-module" value="httplib2" />
-        <option name="dep-module" value="oauth2client" />
-        <option name="dep-module" value="protobuf==3.17.3" />
-        <option name="dep-module" value="pyasn1>=0.4.1" />
-        <option name="dep-module" value="pyserial" />
-        <option name="dep-module" value="requests" />
-  </multi_target_preparer>
-</configuration>
diff --git a/tools/vts-tradefed/res/config/cts-base-common.xml b/tools/vts-tradefed/res/config/cts-base-common.xml
deleted file mode 100644
index 89df8d2..0000000
--- a/tools/vts-tradefed/res/config/cts-base-common.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="Base test plan for running CTS test modules with VTS10">
-
-    <option name="dynamic-sharding" value="true" />
-    <device_recovery class="com.android.tradefed.device.WaitDeviceRecovery" />
-    <build_provider class="com.android.compatibility.common.tradefed.build.CompatibilityBuildProvider">
-        <option name="url-suite-name-override" value="CTS" />
-    </build_provider>
-
-    <option name="compatibility:test-arg" value="com.android.tradefed.testtype.AndroidJUnitTest:rerun-from-file:true" />
-    <option name="compatibility:test-arg" value="com.android.tradefed.testtype.AndroidJUnitTest:fallback-to-serial-rerun:false" />
-    <option name="compatibility:test-arg" value="com.android.compatibility.testtype.LibcoreTest:rerun-from-file:true" />
-    <option name="compatibility:test-arg" value="com.android.compatibility.testtype.LibcoreTest:fallback-to-serial-rerun:false" />
-
-    <logger class="com.android.tradefed.log.FileLogger">
-        <option name="log-level-display" value="WARN" />
-    </logger>
-    <result_reporter class="com.android.compatibility.common.tradefed.result.ConsoleReporter" />
-    <result_reporter class="com.android.compatibility.common.tradefed.result.VtsResultReporter" />
-    <result_reporter class="com.android.tradefed.result.suite.SuiteResultReporter" />
-
-    <include name="cts-preconditions" />
-    <option name="dynamic-config-pusher:dynamic-resource-name" value="vts10-tradefed" />
-    <include name="cts-system-checkers" />
-    <include name="cts-known-failures" />
-
-    <option name="test-tag" value="cts" />
-
-    <option name="enable-root" value="true" />
-    <!-- retain 200MB of host log -->
-    <option name="max-log-size" value="200" />
-    <!--  retain 200MB of logcat -->
-    <option name="max-tmp-logcat-file" value="209715200" />
-
-    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
-        <option name="run-command" value="settings put global package_verifier_enable 0" />
-        <option name="teardown-command" value="settings put global package_verifier_enable 1"/>
-    </target_preparer>
-
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.PropertyCheck">
-        <option name="property-name" value="ro.build.type" />
-        <option name="expected-value" value="user"/> <!-- Device should have user build -->
-        <option name="throw-error" value="false"/> <!-- Only print warning if not user build -->
-    </target_preparer>
-
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.PropertyCheck">
-        <option name="property-name" value="ro.product.locale" />
-        <option name="expected-value" value="en-US"/> <!-- Device locale should be US English -->
-        <option name="throw-error" value="false"/> <!-- Only print warning if not en-US -->
-    </target_preparer>
-    <template-include name="reporters" default="basic-reporters" />
-
-    <!-- Include additional test metadata output. -->
-    <template-include name="metadata-reporters" default="empty" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsDeviceInfoCollector" />
-
-    <option name="compatibility:primary-abi-only" value="true" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/cts-base-filters.xml b/tools/vts-tradefed/res/config/cts-base-filters.xml
deleted file mode 100644
index 2aff2bc..0000000
--- a/tools/vts-tradefed/res/config/cts-base-filters.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2019 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.
--->
-<configuration description="Base test filters for CTS based tests">
-    <!-- Specialization to be able to run CTS inside android-vts10.zip -->
-    <option name="compatibility-build-provider:url-suite-name-override" value="CTS" />
-    <option name="dynamic-config-pusher:dynamic-resource-name" value="vts10-tradefed" />
-    <option name="compatibility:primary-abi-only" value="true" />
-    <option name="compatibility:config-patterns" value="Cts.*\.config" />
-
-    <!-- Explicitly include CTS components listed in CtsConfigLoadingTest.java -->
-    <option name="compatibility:module-metadata-include-filter" key="component" value="abuse" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="art" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="auth" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="auto" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="backup" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="bionic" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="bluetooth" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="camera" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="deqp" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="devtools" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="framework" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="graphics" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="inputmethod" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="libcore" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="location" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="media" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="metrics" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="misc" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="networking" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="neuralnetworks" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="renderscript" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="security" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="statsd" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="systems" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="sysui" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="telecom" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="tv" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="uitoolkit" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="vr" />
-    <option name="compatibility:module-metadata-include-filter" key="component" value="webview" />
-
-    <!-- Exclude vts-hal-adapter tests -->
-    <option name="compatibility:module-metadata-exclude-filter" key="plan" value="vts-hal-adapter" />
-</configuration>
diff --git a/tools/vts-tradefed/res/config/cts-base.xml b/tools/vts-tradefed/res/config/cts-base.xml
deleted file mode 100644
index 26db51c..0000000
--- a/tools/vts-tradefed/res/config/cts-base.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="Base test plan for CTS based tests">
-
-    <!-- include base cts -->
-    <include name="cts" />
-
-    <!-- Filters to run a CTS-like command within VTS. For example: cts-on-gsi -->
-    <include name="cts-base-filters" />
-</configuration>
diff --git a/tools/vts-tradefed/res/config/cts-gsi-sanity.xml b/tools/vts-tradefed/res/config/cts-gsi-sanity.xml
deleted file mode 100644
index 9d2c4db..0000000
--- a/tools/vts-tradefed/res/config/cts-gsi-sanity.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="Runs a subset of CTS tests for GSI sanity checking">
-
-    <include name="cts" />
-    <option name="compatibility-build-provider:url-suite-name-override" value="CTS" />
-    <option name="dynamic-config-pusher:dynamic-resource-name" value="vts10-tradefed" />
-
-
-    <option name="plan" value="cts-gsi-sanity" />
-
-    <!-- Include test modules -->
-    <option name="compatibility:include-filter" value="CtsBionicCases" />
-    <option name="compatibility:include-filter" value="CtsOsHostTestCases" />
-    <option name="compatibility:include-filter" value="CtsOsTestCases" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/cts-hal-coverage.xml b/tools/vts-tradefed/res/config/cts-hal-coverage.xml
deleted file mode 100644
index b00f665..0000000
--- a/tools/vts-tradefed/res/config/cts-hal-coverage.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<configuration description="Running CTS test modules with coverage measurment">
-    <include name="cts-base" />
-    <option name="plan" value="cts-coverage" />
-    <target_preparer class="com.android.tradefed.targetprep.VtsCoveragePreparer" >
-        <option name="coverage-report-dir" value="vts-coverage" />
-    </target_preparer>
-    <metrics_collector class="com.android.tradefed.device.metric.VtsCoverageCollector" />
-</configuration>
diff --git a/tools/vts-tradefed/res/config/cts-hal-profiling.xml b/tools/vts-tradefed/res/config/cts-hal-profiling.xml
deleted file mode 100644
index 1c865a8..0000000
--- a/tools/vts-tradefed/res/config/cts-hal-profiling.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<configuration description="Running CTS test modules with hal trace profiling">
-    <include name="cts-base" />
-    <option name="plan" value="cts-profiling" />
-    <option name="enable-root" value="true" />
-    <target_preparer class="com.android.tradefed.targetprep.VtsTraceCollectPreparer" />
-    <metrics_collector class="com.android.tradefed.device.metric.VtsHalTraceCollector" />
-</configuration>
diff --git a/tools/vts-tradefed/res/config/cts-vendor-interface.xml b/tools/vts-tradefed/res/config/cts-vendor-interface.xml
deleted file mode 100644
index 042859a..0000000
--- a/tools/vts-tradefed/res/config/cts-vendor-interface.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="Runs a subset of CTS tests that can heavily exercise HALs">
-
-    <include name="cts" />
-    <option name="compatibility-build-provider:url-suite-name-override" value="CTS" />
-    <option name="dynamic-config-pusher:dynamic-resource-name" value="vts10-tradefed" />
-
-    <option name="plan" value="cts-vendor-interface" />
-
-    <!-- Include test modules -->
-    <option name="compatibility:include-filter" value="CtsAccessibilityServiceTestCases" />
-    <option name="compatibility:include-filter" value="CtsAccountManagerTestCases" />
-    <option name="compatibility:include-filter" value="CtsAnimationTestCases" />
-    <option name="compatibility:include-filter" value="CtsAppTestCases" />
-    <option name="compatibility:include-filter" value="CtsAtraceHostTestCases" />
-    <option name="compatibility:include-filter" value="CtsAutoFillServiceTestCases" />
-    <option name="compatibility:include-filter" value="CtsCameraTestCases" />
-    <option name="compatibility:include-filter" value="CtsContentTestCases" />
-    <option name="compatibility:include-filter" value="CtsDeqpTestCases" />
-    <option name="compatibility:include-filter" value="CtsFragmentTestCases" />
-    <option name="compatibility:include-filter" value="CtsGraphicsTestCases" />
-    <option name="compatibility:include-filter" value="CtsHostsideNetworkTests" />
-    <option name="compatibility:include-filter" value="CtsIcuTestCases" />
-    <option name="compatibility:include-filter" value="CtsKeystoreTestCases" />
-    <option name="compatibility:include-filter" value="CtsLibcoreOjTestCases" />
-    <option name="compatibility:include-filter" value="CtsLibcoreTestCases" />
-    <option name="compatibility:include-filter" value="CtsLocationTestCases" />
-    <option name="compatibility:include-filter" value="CtsMediaStressTestCases" />
-    <option name="compatibility:include-filter" value="CtsMidiTestCases" />
-    <option name="compatibility:include-filter" value="CtsMonkeyTestCases" />
-    <option name="compatibility:include-filter" value="CtsNetTestCases" />
-    <option name="compatibility:include-filter" value="CtsOsTestCases" />
-    <option name="compatibility:include-filter" value="CtsPdfTestCases" />
-    <option name="compatibility:include-filter" value="CtsPreference2TestCases" />
-    <option name="compatibility:include-filter" value="CtsPrintTestCases" />
-    <option name="compatibility:include-filter" value="CtsProviderTestCases" />
-    <option name="compatibility:include-filter" value="CtsRsBlasTestCases" />
-    <option name="compatibility:include-filter" value="CtsSecurityHostTestCases" />
-    <option name="compatibility:include-filter" value="CtsSecurityTestCases" />
-    <option name="compatibility:include-filter" value="CtsSensorTestCases" />
-    <option name="compatibility:include-filter" value="CtsShortcutHostTestCases" />
-    <option name="compatibility:include-filter" value="CtsSignatureTestCases" />
-    <option name="compatibility:include-filter" value="CtsSignatureTestCases" />
-    <option name="compatibility:include-filter" value="CtsSustainedPerformanceHostTestCases" />
-    <option name="compatibility:include-filter" value="CtsTelephonyTestCases" />
-    <option name="compatibility:include-filter" value="CtsTextTestCases" />
-    <option name="compatibility:include-filter" value="CtsUiRenderingTestCases" />
-    <option name="compatibility:include-filter" value="CtsViewTestCases" />
-    <option name="compatibility:include-filter" value="CtsWebkitTestCases" />
-    <option name="compatibility:include-filter" value="CtsWidgetTestCases" />
-    <option name="compatibility:include-filter" value="CtsWindowManagerDeviceTestCases" />
-
-    <option name="compatibility:test-arg" value="com.android.tradefed.testtype.AndroidJUnitTest:include-annotation:com.android.compatibility.common.util.VendorInterfaceTest" />
-    <option name="compatibility:test-arg" value="com.android.compatibility.common.tradefed.testtype.JarHostTest:include-annotation:com.android.compatibility.common.util.VendorInterfaceTest" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/plans.md b/tools/vts-tradefed/res/config/plans.md
deleted file mode 100644
index 197310e..0000000
--- a/tools/vts-tradefed/res/config/plans.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# VTS Test Plans
-
-A VTS test plan consists of a set of VTS tests. Typically the tests within a
-plan are for the same target component or testing the same or similar aspect
-(e.g., functionality, performance, robustness, or power). There are three kinds
-of plans in VTS:
-
-## 1. Official Plans
-
-Official plans contain only verified tests, and are for all Android developers
-and partners.
-
- * __vts__: For all default VTS tests.
- * __vts-firmware__: For all default VTS System Firmware tests.
- * __vts-fuzz__: For all default VTS fuzz tests.
- * __vts-hal__: For all default VTS HAL (hardware abstraction layer) module tests.
- * __vts-hal-profiling__: For all default VTS HAL performance profiling tests.
- * __vts-hal-replay__: For all default VTS HAL replay tests.
- * __vts-kernel__: For all default VTS kernel tests.
- * __vts-library__: For all default VTS library tests.
- * __vts-performance__: For all default VTS performance tests
-
-## 2. Staging Plans
-
-Serving plans contain experimental tests, and are for Android
-partners to use as part of their continuous integration infrastructure. The
-name of a serving plan always starts with 'vts-staging-'.
-
-## 3. Other Plans
-
-The following plans are also available for development purposes.
-
- * __vts-camera-its__: For camera ITS (Image Test Suite) tests ported to VTS.
- * __vts-codelab__: For VTS codelab.
- * __vts-codelab-multi-device__: For VTS codelab of multi-device testing.
- * __vts-gce__: For VTS tests which can be run on Google Compute Engine (GCE)
- * __vts-hal-auto__: For VTS automotive vehicle HAL test.
- * __vts-hal-tv__: For VTS tv HAL test.
- * __vts-host__: For VTS host-driven tests.
- * __vts-performance-systrace__: For VTS performance tests with systrace
-   enabled.
- * __vts-presubmit__: For VTS pre-submit time tests.
- * __vts-security__: For VTS security tests.
- * __vts-system__: For VTS system tests.
- * __vts-vndk__: for VTS vndk tests.
diff --git a/tools/vts-tradefed/res/config/reporters/empty.xml b/tools/vts-tradefed/res/config/reporters/empty.xml
deleted file mode 100644
index 105644e..0000000
--- a/tools/vts-tradefed/res/config/reporters/empty.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<!-- Configuration with no result reporters. -->
-<configuration description="Configuration with no result reporters" >
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-app-multi.xml b/tools/vts-tradefed/res/config/vts-app-multi.xml
deleted file mode 100644
index 37489f4..0000000
--- a/tools/vts-tradefed/res/config/vts-app-multi.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="VTS App Multi-Device Test Plan">
-  <include name="vts-base-multi-device" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-app-multi" />
-
-  <!-- First target Android device in camera ITS-in-a-box -->
-  <device name="device1">
-    <build_provider class="com.android.compatibility.common.tradefed.build.CompatibilityBuildProvider" />
-    <target_preparer class="com.android.tradefed.targetprep.VtsDevicePreparer">
-      <option name="enable-adb-root" value="true"/>
-      <option name="start-framework" value="true"/>
-      <option name="restore-framework" value="true"/>
-    </target_preparer>
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsDeviceInfoCollector" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="abort-on-push-failure" value="true"/>
-        <option name="push-group" value="HalHidlHostTest.push"/>
-        <option name="cleanup" value="true"/>
-    </target_preparer>
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.ApkInstaller">
-        <option name="test-file-name" value="DATA/app/sl4a/sl4a.apk" />
-        <option name="cleanup-apks" value="true" />
-        <option name="install-arg" value="-r" />
-    </target_preparer>
-  </device>
-
-  <!-- Second target Android device in camera ITS-in-a-box -->
-  <device name="device2">
-    <build_provider class="com.android.compatibility.common.tradefed.build.CompatibilityBuildProvider" />
-    <target_preparer class="com.android.tradefed.targetprep.VtsDevicePreparer">
-      <option name="enable-adb-root" value="true"/>
-      <option name="start-framework" value="true"/>
-      <option name="restore-framework" value="true"/>
-    </target_preparer>
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsDeviceInfoCollector" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="abort-on-push-failure" value="true"/>
-        <option name="push-group" value="HalHidlHostTest.push"/>
-        <option name="cleanup" value="true"/>
-        <!--  <option name="push-group" value="HostDrivenTest.push" /> -->
-    </target_preparer>
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.ApkInstaller">
-        <option name="test-file-name" value="DATA/app/sl4a/sl4a.apk" />
-        <option name="cleanup-apks" value="true" />
-        <option name="install-arg" value="-r" />
-    </target_preparer>
-  </device>
-
-  <option name="compatibility:include-filter" value="VtsAppWifiAwarePerformanceLatency" />
-  <!-- <option name="compatibility:include-filter" value="VtsAppWifiAwarePerformanceThroughput" /> -->
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-app.xml b/tools/vts-tradefed/res/config/vts-app.xml
deleted file mode 100644
index 00c38f0..0000000
--- a/tools/vts-tradefed/res/config/vts-app.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="VTS App Plan">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-app" />
-
-  <option name="compatibility:include-filter" value="VtsAppWifiNativeTest" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-base-common.xml b/tools/vts-tradefed/res/config/vts-base-common.xml
deleted file mode 100644
index b02a16f..0000000
--- a/tools/vts-tradefed/res/config/vts-base-common.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<configuration description="VTS Main Test Plan">
-  <include name="common-preparers" />
-  <device_recovery class="com.android.tradefed.device.WaitDeviceRecovery" />
-
-  <option name="compatibility:test-arg" value="com.android.tradefed.testtype.AndroidJUnitTest:rerun-from-file:true" />
-  <option name="compatibility:test-arg" value="com.android.tradefed.testtype.AndroidJUnitTest:fallback-to-serial-rerun:false" />
-  <logger class="com.android.tradefed.log.FileLogger">
-    <option name="log-level-display" value="INFO" />
-  </logger>
-  <option name="compatibility:skip-all-system-status-check" value="true" />
-  <option name="enable-root" value="true" />
-  <option name="max-log-size" value="200" />
-  <object type="vts-vendor-config" class="com.android.tradefed.util.VtsVendorConfigFileUtil" />
-  <result_reporter class="com.android.compatibility.common.tradefed.result.ConsoleReporter" />
-  <result_reporter class="com.android.compatibility.common.tradefed.result.suite.CompatibilityProtoResultReporter" />
-  <result_reporter class="com.android.compatibility.common.tradefed.result.suite.CertificationSuiteResultReporter" />
-  <template-include name="reporters" default="basic-reporters" />
-  <target_preparer class="com.android.tradefed.targetprep.VtsTestPlanResultReporter" />
-
-  <test class="com.android.compatibility.common.tradefed.testtype.suite.CompatibilityTestSuite">
-    <option name="config-patterns" value="Vts.*\.config" />
-  </test>
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-base-multi-device.xml b/tools/vts-tradefed/res/config/vts-base-multi-device.xml
deleted file mode 100644
index 600a917..0000000
--- a/tools/vts-tradefed/res/config/vts-base-multi-device.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="VTS Base Config for Multi-device Test Plans">
-  <include name="vts-base-common" />
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-base-presubmit.xml b/tools/vts-tradefed/res/config/vts-base-presubmit.xml
deleted file mode 100644
index 737d13b..0000000
--- a/tools/vts-tradefed/res/config/vts-base-presubmit.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="VTS Main Test Plan Simplified Base Config for Presubmit Tests">
-  <include name="vts-base-single-device" />
-
-  <target_preparer class="com.android.tradefed.targetprep.VtsDevicePreparer">
-    <option name="enable-adb-root" value="true"/>
-    <option name="start-framework" value="true"/>
-    <option name="restore-framework" value="true"/>
-  </target_preparer>
-
-  <option name="compatibility:test-arg" value="com.android.tradefed.testtype.VtsMultiDeviceTest:enable-dashboard-uploading:false" />
-  <option name="compatibility:test-arg" value="com.android.tradefed.testtype.VtsMultiDeviceTest:enable-log-uploading:false" />
-  <option name="compatibility:test-arg" value="com.android.tradefed.testtype.VtsMultiDeviceTest:bug-report-on-failure:false" />
-  <option name="compatibility:test-arg" value="com.android.tradefed.testtype.VtsMultiDeviceTest:logcat-on-failure:false" />
-
-  <option name="compatibility:primary-abi-only" value="true" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-base-single-device.xml b/tools/vts-tradefed/res/config/vts-base-single-device.xml
deleted file mode 100644
index a7356d0..0000000
--- a/tools/vts-tradefed/res/config/vts-base-single-device.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="VTS Base Config for Single-device Test Plans">
-  <include name="vts-base-common" />
-
-  <build_provider class="com.android.compatibility.common.tradefed.build.CompatibilityBuildProvider" />
-  <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsDeviceInfoCollector" />
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-base.xml b/tools/vts-tradefed/res/config/vts-base.xml
deleted file mode 100644
index ed0e9ab..0000000
--- a/tools/vts-tradefed/res/config/vts-base.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<configuration description="VTS Main Test Plan">
-  <!-- VtsDevicePreparer needs to run first to set root -->
-  <target_preparer class="com.android.tradefed.targetprep.VtsDevicePreparer">
-    <option name="enable-adb-root" value="true"/>
-    <option name="start-framework" value="true"/>
-    <option name="restore-framework" value="true"/>
-  </target_preparer>
-
-  <include name="vts-base-single-device" />
-
-  <target_preparer class="com.android.compatibility.common.tradefed.targetprep.DeviceInfoCollector">
-    <option name="apk" value="CtsDeviceInfo.apk"/>
-    <option name="package" value="com.android.compatibility.common.deviceinfo"/>
-    <option name="src-dir" value="/sdcard/device-info-files/"/>
-    <option name="dest-dir" value="device-info-files/"/>
-    <option name="temp-dir" value="temp-device-info-files/"/>
-    <option name="throw-error" value="false"/>
-  </target_preparer>
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-camera-its.xml b/tools/vts-tradefed/res/config/vts-camera-its.xml
deleted file mode 100644
index 1a154b2..0000000
--- a/tools/vts-tradefed/res/config/vts-camera-its.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="VTS Camera ITS (Image Test Suite) Multi-Device Test Plan">
-  <include name="vts-base-multi-device" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-camera-its" />
-
-  <!-- First target Android device in camera ITS-in-a-box -->
-  <device name="device1">
-    <build_provider class="com.android.compatibility.common.tradefed.build.CompatibilityBuildProvider" />
-    <target_preparer class="com.android.tradefed.targetprep.VtsDevicePreparer">
-      <option name="enable-adb-root" value="true"/>
-      <option name="start-framework" value="true"/>
-      <option name="restore-framework" value="true"/>
-    </target_preparer>
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsDeviceInfoCollector" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-    </target_preparer>
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.ApkInstaller">
-      <option name="test-file-name" value="DATA/app/CtsVerifier/CtsVerifier.apk" />
-      <option name="cleanup-apks" value="true" />
-    </target_preparer>
-  </device>
-
-  <!-- Second target Android device in camera ITS-in-a-box -->
-  <device name="device2">
-    <build_provider class="com.android.compatibility.common.tradefed.build.CompatibilityBuildProvider" />
-    <target_preparer class="com.android.tradefed.targetprep.VtsDevicePreparer">
-      <option name="enable-adb-root" value="true"/>
-      <option name="start-framework" value="true"/>
-      <option name="restore-framework" value="true"/>
-    </target_preparer>
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsDeviceInfoCollector" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-    </target_preparer>
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.ApkInstaller">
-      <option name="test-file-name" value="DATA/app/CtsVerifier/CtsVerifier.apk" />
-      <option name="cleanup-apks" value="true" />
-    </target_preparer>
-  </device>
-
-  <!-- Display device e.g., Pixel C, in camera ITS-in-a-box -->
-  <device name="device3" >
-    <build_provider class="com.android.compatibility.common.tradefed.build.CompatibilityBuildProvider" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsDeviceInfoCollector" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-    </target_preparer>
-  </device>
-
-  <option name="compatibility:include-filter" value="CameraITSTest" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-codelab-multi-device.xml b/tools/vts-tradefed/res/config/vts-codelab-multi-device.xml
deleted file mode 100644
index 74328e9..0000000
--- a/tools/vts-tradefed/res/config/vts-codelab-multi-device.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="VTS Codelab Plan">
-  <include name="vts-base-multi-device" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts" />
-  <option name="vts-plan-result:plan-name" value="vts" />
-  <option name="compatibility:primary-abi-only" value="true" />
-
-  <device name="device1">
-    <build_provider class="com.android.compatibility.common.tradefed.build.CompatibilityBuildProvider" />
-    <target_preparer class="com.android.tradefed.targetprep.VtsDevicePreparer">
-      <option name="enable-adb-root" value="true"/>
-      <option name="start-framework" value="true"/>
-      <option name="restore-framework" value="true"/>
-    </target_preparer>
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsDeviceInfoCollector" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-    </target_preparer>
-  </device>
-
-  <device name="device2" >
-    <build_provider class="com.android.compatibility.common.tradefed.build.CompatibilityBuildProvider" />
-    <target_preparer class="com.android.tradefed.targetprep.VtsDevicePreparer">
-      <option name="enable-adb-root" value="true"/>
-      <option name="start-framework" value="true"/>
-      <option name="restore-framework" value="true"/>
-    </target_preparer>
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsDeviceInfoCollector" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-    </target_preparer>
-  </device>
-
-  <option name="compatibility:include-filter" value="VtsCodelabHelloWorldMultiDeviceTest" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-codelab.xml b/tools/vts-tradefed/res/config/vts-codelab.xml
deleted file mode 100644
index 95fe5bf..0000000
--- a/tools/vts-tradefed/res/config/vts-codelab.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="VTS Codelab Plan">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-codelab" />
-  <option name="compatibility:primary-abi-only" value="true" />
-
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-codelab" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-device-health.xml b/tools/vts-tradefed/res/config/vts-device-health.xml
deleted file mode 100644
index cdabad9..0000000
--- a/tools/vts-tradefed/res/config/vts-device-health.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="VTS Device Health Test Plan">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-device-health" />
-  <option name="compatibility:primary-abi-only" value="true" />
-
-  <option name="compatibility:include-filter" value="VtsDeviceHealth" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-firmware.xml b/tools/vts-tradefed/res/config/vts-firmware.xml
deleted file mode 100644
index 5afb79d..0000000
--- a/tools/vts-tradefed/res/config/vts-firmware.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="VTS System Firmware Test Plan">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-firmware" />
-
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-firmware" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-flaky.xml b/tools/vts-tradefed/res/config/vts-flaky.xml
deleted file mode 100644
index 5740da5..0000000
--- a/tools/vts-tradefed/res/config/vts-flaky.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="Known flaky tests in vts plans">
-
-    <!-- b/118130933: on cuttlefish -->
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.GetCapabilities" />
-
-    <!-- b/118129083: on sailfish -->
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp VtsKernelLtp.cve.cve-2016-7117_64bit" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp VtsKernelLtp.syscalls.epoll_wait02_64bit" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp VtsKernelLtp.syscalls.sighold02_64bit" />
-
-    <!-- b/118133456: on sailfish -->
-    <option name="compatibility:exclude-filter" value="VtsKernelProcFileApi VtsKernelProcFileApi.testProcPagetypeinfo" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-fuzz-kernel.xml b/tools/vts-tradefed/res/config/vts-fuzz-kernel.xml
deleted file mode 100644
index 340f529..0000000
--- a/tools/vts-tradefed/res/config/vts-fuzz-kernel.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="VTS Fuzz-Kernel Test Plan">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-fuzz-kernel" />
-
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-fuzz-kernel" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-fuzz.xml b/tools/vts-tradefed/res/config/vts-fuzz.xml
deleted file mode 100644
index 4e3cfdf..0000000
--- a/tools/vts-tradefed/res/config/vts-fuzz.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="VTS Fuzz Test Plan">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-fuzz" />
-
-  <option name="compatibility:primary-abi-only" value="true" />
-
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-fuzz" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-gce.xml b/tools/vts-tradefed/res/config/vts-gce.xml
deleted file mode 100644
index 171d7ec..0000000
--- a/tools/vts-tradefed/res/config/vts-gce.xml
+++ /dev/null
@@ -1,121 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="VTS GCE (Google Compute Engine) Test Plan (Experimental)">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-gce" />
-
-  <option name="compatibility:include-filter" value="VtsCodelabHelloWorldStagingTest" />
-  <option name="compatibility:include-filter" value="VtsCodelabHelloWorldTest" />
-  <option name="compatibility:include-filter" value="VtsCodelabHidlMemoryTest" />
-  <option name="compatibility:include-filter" value="VtsCodelabTargetBinary" />
-  <option name="compatibility:include-filter" value="VtsFirmwareBootHeaderVerification" />
-  <option name="compatibility:include-filter" value="VtsFirmwareDtboVerification" />
-  <option name="compatibility:include-filter" value="VtsHalAuthSecretV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalBaseV1_0TargetTest" />
-  <option name="compatibility:include-filter" value="VtsHalBiometricsFaceV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalBiometricsFingerprintV2_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalBiometricsFingerprintV2_1TargetReplay" />
-  <option name="compatibility:include-filter" value="VtsHalBiometricsFingerprintV2_2Target" />
-  <option name="compatibility:include-filter" value="VtsHalBluetoothV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalBootV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalBroadcastradioV2_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalCameraProviderV2_4Target" />
-  <option name="compatibility:include-filter" value="VtsHalCasV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalConfigstoreV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalContexthubV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalContexthubV1_0TargetReplay" />
-  <option name="compatibility:include-filter" value="VtsHalDumpstateV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalGatekeeperV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalGraphicsMapperV2_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalGraphicsMapperV2_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalGraphicsMapperV3_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalGraphicsMapperV4_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalInputClassifierV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalIrV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalKeymasterV4_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalLightV2_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalLightV2_0TargetReplay" />
-  <option name="compatibility:include-filter" value="VtsHalMediaOmxStoreV1_0Host" />
-  <option name="compatibility:include-filter" value="VtsHalMemtrackV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalMemtrackV1_0TargetReplay" />
-  <option name="compatibility:include-filter" value="VtsHalNeuralnetworksV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalNeuralnetworksV1_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalNfcV1_0TargetReplay" />
-  <option name="compatibility:include-filter" value="VtsHalOemLockV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalPowerV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalPowerV1_0TargetReplay" />
-  <option name="compatibility:include-filter" value="VtsHalPowerV1_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalPowerV1_2Target" />
-  <option name="compatibility:include-filter" value="VtsHalPowerV1_3Target" />
-  <option name="compatibility:include-filter" value="VtsHalRenderscriptV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalSapV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalSoundtriggerV2_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalSoundtriggerV2_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalThermalV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalThermalV1_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalUsbV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalUsbV1_0TargetReplay" />
-  <option name="compatibility:include-filter" value="VtsHalUsbV1_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalVibratorV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalVibratorV1_0TargetReplay" />
-  <option name="compatibility:include-filter" value="VtsHalVibratorV1_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalVibratorV1_2Target" />
-  <option name="compatibility:include-filter" value="VtsHalVibratorV1_3Target" />
-  <option name="compatibility:include-filter" value="VtsHalVibratorV1_4Target" />
-  <option name="compatibility:include-filter" value="VtsHalVrV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalVrV1_0TargetReplay" />
-  <option name="compatibility:include-filter" value="VtsHalWeaverV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiNanV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiOffloadV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiSupplicantV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiSupplicantV1_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiV1_2Target" />
-  <option name="compatibility:include-filter" value="VtsHidlAllocatorV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsKernelBinderTest" />
-  <option name="compatibility:include-filter" value="VtsKernelDeviceTreeEarlyMount" />
-  <option name="compatibility:include-filter" value="VtsKernelHwBinder" />
-  <option name="compatibility:include-filter" value="VtsKernelLibcutilsTest" />
-  <option name="compatibility:include-filter" value="VtsKernelLinuxKselftestPresubmit" />
-  <option name="compatibility:include-filter" value="VtsKernelNetBpfTest" />
-  <option name="compatibility:include-filter" value="CtsOnGsiTrebleFrameworkVintfTest SystemVendorTest.KernelCompatibility"/>
-
-  <!-- Temporailly excluded due to their incompatibility with cuttlefish
-
-  <option name="compatibility:include-filter" value="VtsHalAudioEffectV2_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalAudioEffectV4_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalAudioV2_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalAudioV4_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalDrmV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalDrmV1_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalDrmV1_2Target" />
-  <option name="compatibility:include-filter" value="VtsHalDrmV1_3Target" />
-  <option name="compatibility:include-filter" value="VtsHalGnssV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalGnssV1_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalGraphicsComposerV2_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalGraphicsComposerV2_2Target" />
-  <option name="compatibility:include-filter" value="VtsHalHealthV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalHealthV2_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalKeymasterV3_0TargetReplay" />
-  <option name="compatibility:include-filter" value="VtsHalRadioV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalRadioV1_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalRadioV1_2Target" />
-  <option name="compatibility:include-filter" value="VtsKernelApiSysfsTest" />
-
-  -->
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-hal-adapter.xml b/tools/vts-tradefed/res/config/vts-hal-adapter.xml
deleted file mode 100644
index 571bdbc..0000000
--- a/tools/vts-tradefed/res/config/vts-hal-adapter.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="VTS HAL Adapter Test Plan">
-  <include name="cts-base-common" />
-  <option name="plan" value="vts-hal-adapter" />
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-hal-adapter" />
-
-  <test class="com.android.compatibility.common.tradefed.testtype.suite.CompatibilityTestSuite">
-    <option name="run-suite-tag" value="cts" />
-  </test>
-
-  <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-    <option name="abort-on-push-failure" value="true"/>
-    <option name="push" value="script/target/vts_adapter.sh->/data/local/tmp/vts_adapter.sh"/>
-  </target_preparer>
-
-  <target_preparer class="com.android.tradefed.targetprep.TestAppInstallSetup">
-    <option name="test-file-name" value="DeviceHealthTests.apk" />
-    <option name="cleanup-apks" value="true" />
-  </target_preparer>
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-hal-auto.xml b/tools/vts-tradefed/res/config/vts-hal-auto.xml
deleted file mode 100644
index 7bc6dcc..0000000
--- a/tools/vts-tradefed/res/config/vts-hal-auto.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<configuration description="VTS Serving Plan for HALs - Auto">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-hal-auto" />
-
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-hal-auto" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-hal-profiling-auto.xml b/tools/vts-tradefed/res/config/vts-hal-profiling-auto.xml
deleted file mode 100644
index 87ef7c7..0000000
--- a/tools/vts-tradefed/res/config/vts-hal-profiling-auto.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="VTS Profiling Plan for Auto HALs">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-hal-profiling-auto" />
-
-  <target_preparer class="com.android.tradefed.targetprep.VtsTraceCollectPreparer" />
-  <option name="compatibility:test-arg" value="com.android.tradefed.testtype.VtsMultiDeviceTest:enable-profiling:true" />
-
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-hal-auto" />
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-hal-profiling-tv.xml b/tools/vts-tradefed/res/config/vts-hal-profiling-tv.xml
deleted file mode 100644
index 6d681d1..0000000
--- a/tools/vts-tradefed/res/config/vts-hal-profiling-tv.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<configuration description="VTS Profiling Plan for TV HALs">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-hal-profiling-tv" />
-
-  <target_preparer class="com.android.tradefed.targetprep.VtsTraceCollectPreparer" />
-  <option name="compatibility:test-arg" value="com.android.tradefed.testtype.VtsMultiDeviceTest:enable-profiling:true" />
-
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-hal-tv" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-hal-profiling.xml b/tools/vts-tradefed/res/config/vts-hal-profiling.xml
deleted file mode 100644
index 6a56e86..0000000
--- a/tools/vts-tradefed/res/config/vts-hal-profiling.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="VTS HAL Profiling Plan">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-hal-profiling" />
-
-  <target_preparer class="com.android.tradefed.targetprep.VtsTraceCollectPreparer" />
-  <option name="compatibility:test-arg" value="com.android.tradefed.testtype.VtsMultiDeviceTest:enable-profiling:true" />
-
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-hal" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-hal-replay.xml b/tools/vts-tradefed/res/config/vts-hal-replay.xml
deleted file mode 100644
index 2bfffe6..0000000
--- a/tools/vts-tradefed/res/config/vts-hal-replay.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<configuration description="VTS HAL Replay Test Plan">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-hal-replay" />
-
-  <target_preparer class="com.android.tradefed.targetprep.VtsCoveragePreparer" >
-    <option name="coverage-report-dir" value="vts-coverage" />
-  </target_preparer>
-
-  <!-- For Hidl Hal replay tests -->
-  <option name="compatibility:include-filter" value="VtsHalNfcV1_0TargetReplay" />
-
-  <!-- For Hidl Hal replay tests: Internal Only -->
-  <option name="compatibility:include-filter" value="VtsHalBiometricsFingerprintV2_1TargetReplay" />
-  <option name="compatibility:include-filter" value="VtsHalContexthubV1_0TargetReplay" />
-  <option name="compatibility:include-filter" value="VtsHalKeymasterV3_0TargetReplay" />
-  <option name="compatibility:include-filter" value="VtsHalLightV2_0TargetReplay" />
-  <option name="compatibility:include-filter" value="VtsHalMemtrackV1_0TargetReplay" />
-  <option name="compatibility:include-filter" value="VtsHalPowerV1_0TargetReplay" />
-  <option name="compatibility:include-filter" value="VtsHalUsbV1_0TargetReplay" />
-  <option name="compatibility:include-filter" value="VtsHalVibratorV1_0TargetReplay" />
-  <option name="compatibility:include-filter" value="VtsHalVrV1_0TargetReplay" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-hal-tv.xml b/tools/vts-tradefed/res/config/vts-hal-tv.xml
deleted file mode 100644
index 6ebd9d5..0000000
--- a/tools/vts-tradefed/res/config/vts-hal-tv.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<configuration description="VTS Serving Plan for HALs - TV/x86">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-hal-tv" />
-
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-hal-tv" />
-
-  <option name="compatibility:test-arg" value="com.android.tradefed.testtype.VtsMultiDeviceTest:gtest-batch-mode:true" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-hal.xml b/tools/vts-tradefed/res/config/vts-hal.xml
deleted file mode 100644
index 5ee4d3b..0000000
--- a/tools/vts-tradefed/res/config/vts-hal.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="VTS HAL Test Plan">
-  <include name="vts-base" />
-  <target_preparer class="com.android.tradefed.targetprep.VtsCoveragePreparer" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-hal" />
-
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-hal" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-host.xml b/tools/vts-tradefed/res/config/vts-host.xml
deleted file mode 100644
index 599d274..0000000
--- a/tools/vts-tradefed/res/config/vts-host.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="VTS Host-Driven Test Plan">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-host" />
-
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-hal-host" />
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-host" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-kernel.xml b/tools/vts-tradefed/res/config/vts-kernel.xml
deleted file mode 100644
index d19e171..0000000
--- a/tools/vts-tradefed/res/config/vts-kernel.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="VTS Kernel Test Plan">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-kernel" />
-
-  <option name="compatibility:include-filter" value="VtsKernelBinderTest" />
-  <option name="compatibility:include-filter" value="VtsKernelNetBpfTest" />
-  <option name="compatibility:include-filter" value="VtsKernelDeviceTreeEarlyMount" />
-  <option name="compatibility:include-filter" value="VtsKernelHwBinder" />
-  <option name="compatibility:include-filter" value="VtsKernelLibcutilsTest" />
-  <option name="compatibility:include-filter" value="VtsKernelNetTest" />
-  <option name="compatibility:include-filter" value="VtsKernelProcFileApi" />
-  <option name="compatibility:include-filter" value="VtsKernelQtaguidTest" />
-  <option name="compatibility:include-filter" value="VtsKernelSelinuxFileApi" />
-  <option name="compatibility:include-filter" value="VtsKernelApiSysfsTest" />
-  <option name="compatibility:include-filter" value="VtsKernelSystemAsRoot" />
-  <option name="compatibility:include-filter" value="VtsKernelTunTest" />
-  <option name="compatibility:include-filter" value="VtsKernelLinuxKselftestPresubmit" />
-  <option name="compatibility:include-filter" value="VtsKernelLinuxKselftest" />
-  <option name="compatibility:include-filter" value="VtsKernelLtp" />
-  <option name="compatibility:include-filter" value="CtsOnGsiTrebleFrameworkVintfTest SystemVendorTest.KernelCompatibility"/>
-  <option name="compatibility:include-filter" value="VtsKernelLiblpTest" />
-  <option name="compatibility:include-filter" value="VtsKernelLibdmTest" />
-  <option name="compatibility:include-filter" value="VtsKernelDynamicPartitionsTest" />
-  <option name="compatibility:include-filter" value="VtsKernelLibIonTest" />
-  <option name="compatibility:include-filter" value="VtsKernelEncryptionTest" />
-  <option name="compatibility:include-filter" value="VtsLibsnapshotTest" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-library.xml b/tools/vts-tradefed/res/config/vts-library.xml
deleted file mode 100644
index 82b3262..0000000
--- a/tools/vts-tradefed/res/config/vts-library.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="VTS Library Test Plan">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-library" />
-
-  <option name="compatibility:include-filter" value="CpuProfilingTest" />
-  <option name="compatibility:include-filter" value="LibcTest" />
-  <option name="compatibility:include-filter" value="VtsFmqUnitTests" />
-  <option name="compatibility:include-filter" value="VtsHidlUnitTests" />
-  <option name="compatibility:include-filter" value="VtsVndkHidlBufferpoolV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsVndkHidlBufferpoolV2_0Target" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-local.xml b/tools/vts-tradefed/res/config/vts-local.xml
deleted file mode 100644
index fccf23f..0000000
--- a/tools/vts-tradefed/res/config/vts-local.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="VTS Serving Plan for local development test runs">
-    <include name="vts-base-presubmit" />
-
-    <option name="vts-plan-result:plan-name" value="vts-local" />
-
-    <option name="compatibility:include-filter" value="VtsCodelabHelloWorldTest" />
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-p2p.xml b/tools/vts-tradefed/res/config/vts-p2p.xml
deleted file mode 100644
index b7d8b48..0000000
--- a/tools/vts-tradefed/res/config/vts-p2p.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="VTS Pair to Pair Test Plan">
-  <include name="vts-base-multi-device" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-p2p" />
-  <option name="compatibility:primary-abi-only" value="true" />
-
-  <device name="device1">
-    <build_provider class="com.android.compatibility.common.tradefed.build.CompatibilityBuildProvider" />
-    <target_preparer class="com.android.tradefed.targetprep.VtsDevicePreparer">
-      <option name="enable-adb-root" value="true"/>
-      <option name="start-framework" value="true"/>
-      <option name="restore-framework" value="true"/>
-    </target_preparer>
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsDeviceInfoCollector" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-    </target_preparer>
-    <!-- TODO(yuexima): The following preparer should be moved to module level when supported. -->
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.ApkInstaller">
-        <option name="test-file-name" value="DATA/app/nbu/android_snippet.apk" />
-        <option name="cleanup-apks" value="true" />
-        <option name="install-arg" value="-r" />
-        <option name="install-arg" value="-g" />
-    </target_preparer>
-  </device>
-
-  <device name="device2" >
-    <build_provider class="com.android.compatibility.common.tradefed.build.CompatibilityBuildProvider" />
-    <target_preparer class="com.android.tradefed.targetprep.VtsDevicePreparer">
-      <option name="enable-adb-root" value="true"/>
-      <option name="start-framework" value="true"/>
-      <option name="restore-framework" value="true"/>
-    </target_preparer>
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsDeviceInfoCollector" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="push-group" value="HostDrivenTest.push" />
-    </target_preparer>
-    <!-- TODO(yuexima): The following preparer should be moved to module level when supported. -->
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.ApkInstaller">
-        <option name="test-file-name" value="DATA/app/nbu/android_snippet.apk" />
-        <option name="cleanup-apks" value="true" />
-        <option name="install-arg" value="-r" />
-        <option name="install-arg" value="-g" />
-    </target_preparer>
-  </device>
-
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-p2p" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-performance-systrace.xml b/tools/vts-tradefed/res/config/vts-performance-systrace.xml
deleted file mode 100644
index 7eaea6c..0000000
--- a/tools/vts-tradefed/res/config/vts-performance-systrace.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<configuration description="VTS Performance Plan with Systrac">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-performance-systrace" />
-
-  <option name="compatibility:include-filter" value="HwBinderBinderizeLatencySystraceTest" />
-  <option name="compatibility:include-filter" value="HwBinderBinderizePerformanceSystraceTest" />
-  <option name="compatibility:include-filter" value="HwBinderBinderizeThroughputSystraceTest" />
-  <option name="compatibility:include-filter" value="HwBinderPassthroughLatencySystraceTest" />
-  <option name="compatibility:include-filter" value="HwBinderPassthroughPerformanceSystraceTest" />
-  <option name="compatibility:include-filter" value="HwBinderPassthroughThroughputSystraceTest" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-performance.xml b/tools/vts-tradefed/res/config/vts-performance.xml
deleted file mode 100644
index 4b58566..0000000
--- a/tools/vts-tradefed/res/config/vts-performance.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="VTS Performance Plan">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-performance" />
-
-  <!-- For Kernel HwBinder and Binder Profiling -->
-  <option name="compatibility:include-filter" value="BinderPerformanceTest" />
-  <option name="compatibility:include-filter" value="BinderThroughputBenchmark" />
-  <option name="compatibility:include-filter" value="HwBinderBinderizeLatencyTest" />
-  <option name="compatibility:include-filter" value="HwBinderBinderizePerformanceTest" />
-  <option name="compatibility:include-filter" value="HwBinderBinderizeThroughputTest" />
-  <option name="compatibility:include-filter" value="HwBinderPassthroughLatencyTest" />
-  <option name="compatibility:include-filter" value="HwBinderPassthroughPerformanceTest" />
-  <option name="compatibility:include-filter" value="HwBinderPassthroughThroughputTest" />
-
-  <!-- For FMQ -->
-  <option name="compatibility:include-filter" value="FmqPerformanceTest" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-presubmit-connectivity.xml b/tools/vts-tradefed/res/config/vts-presubmit-connectivity.xml
deleted file mode 100644
index 7057329..0000000
--- a/tools/vts-tradefed/res/config/vts-presubmit-connectivity.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="VTS Presubmit Test Plan for Connectivity Modules">
-  <include name="vts-base-presubmit" />
-  <option name="vts-plan-result:plan-name" value="vts-presubmit-connectivity" />
-  <option name="compatibility:test-arg" value="com.android.tradefed.testtype.VtsMultiDeviceTest:max-retry-count:2" />
-
-  <include name="vts-presubmit-exclude" />
-
-  <option name="compatibility:include-filter" value="VtsHalRadioV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalRadioV1_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalRadioV1_2Target" />
-  <option name="compatibility:include-filter" value="VtsHalSapV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiNanV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiNanV1_2Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiOffloadV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiSupplicantV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiSupplicantV1_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiV1_1Target" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-presubmit-exclude.xml b/tools/vts-tradefed/res/config/vts-presubmit-exclude.xml
deleted file mode 100644
index d71398d..0000000
--- a/tools/vts-tradefed/res/config/vts-presubmit-exclude.xml
+++ /dev/null
@@ -1,165 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="Excluded tests from vts-presubmit plan runs">
-
-    <!-- Excludes known flaky test cases. -->
-    <include name="vts-flaky" />
-
-    <!-- b/116450442: known incompatibility with cuttlefish -->
-    <option name="compatibility:exclude-filter" value="VtsHalAudioV4_0Target AudioPrimaryHidlTest.GetMicrophonesTest" />
-    <option name="compatibility:exclude-filter" value="VtsHalAudioV4_0Target FloatAccessorPrimaryHidlTest.MasterVolumeTest" />
-    <option name="compatibility:exclude-filter" value="VtsHalAudioV4_0Target r(RequiredOutputStreamConfigSupport/OutputStreamTest.SupportedFormat/.*)" />
-    <option name="compatibility:exclude-filter" value="VtsHalAudioV4_0Target r(RequiredOutputStreamConfigSupport/OutputStreamTest.GetNextWriteTimestamp/.*)" />
-    <option name="compatibility:exclude-filter" value="VtsHalAudioV4_0Target r(RecommendedOutputStreamConfigSupport/OutputStreamTest.SupportedFormat/.*)" />
-    <option name="compatibility:exclude-filter" value="VtsHalAudioV4_0Target r(RecommendedOutputStreamConfigSupport/OutputStreamTest.GetNextWriteTimestamp/.*)" />
-    <option name="compatibility:exclude-filter" value="VtsHalAudioV4_0Target r(RequiredInputStreamConfigSupport/InputStreamTest.SupportedFormat/.*)" />
-    <option name="compatibility:exclude-filter" value="VtsHalAudioV4_0Target r(RequiredInputStreamConfigSupport/InputStreamTest.getNonExistingParameter/.*)" />
-    <option name="compatibility:exclude-filter" value="VtsHalAudioV4_0Target r(RequiredInputStreamConfigSupport/InputStreamTest.GetAudioSource/.*)" />
-    <option name="compatibility:exclude-filter" value="VtsHalAudioV4_0Target r(RecommendedInputStreamConfigSupport/InputStreamTest.SupportedFormat/.*)" />
-    <option name="compatibility:exclude-filter" value="VtsHalAudioV4_0Target r(RecommendedInputStreamConfigSupport/InputStreamTest.getNonExistingParameter/.*)" />
-    <option name="compatibility:exclude-filter" value="VtsHalAudioV4_0Target r(RecommendedInputStreamConfigSupport/InputStreamTest.GetAudioSource/.*)" />
-
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.DumpDebugInfo" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.CreateClientSingleton" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.CreateVirtualDisplay" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.DestroyVirtualDisplayBadDisplay" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.CreateLayer" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.CreateLayerBadDisplay" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.DestroyLayerBadDisplay" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.DestroyLayerBadLayerError" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.GetActiveConfigBadDisplay" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.GetDisplayConfig" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.GetDisplayConfigBadDisplay" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.GetDisplayName" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.GetDisplayType" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.GetClientTargetSupport" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.GetClientTargetSupportBadDisplay" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.GetDisplayAttribute" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.GetHdrCapabilities" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.SetClientTargetSlotCount" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.SetActiveConfig" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.SetActiveConfigPowerCycle" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.GetColorModes" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.SetColorMode" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.SetColorModeBadDisplay" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.SetColorModeBadParameter" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.GetDozeSupportBadDisplay" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.SetPowerMode" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.SetPowerModeVariations" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.SetPowerModeBadDisplay" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.SetPowerModeUnsupported" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.SetPowerModeBadParameter" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlTest.SetVsyncEnabled" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlCommandTest.SET_COLOR_TRANSFORM" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlCommandTest.SET_CLIENT_TARGET" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlCommandTest.SET_OUTPUT_BUFFER" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlCommandTest.VALIDATE_DISPLAY" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlCommandTest.ACCEPT_DISPLAY_CHANGES" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlCommandTest.PRESENT_DISPLAY" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlCommandTest.PRESENT_DISPLAY_NO_LAYER_STATE_CHANGES" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlCommandTest.SET_LAYER_CURSOR_POSITION" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlCommandTest.SET_LAYER_BUFFER" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlCommandTest.SET_LAYER_SURFACE_DAMAGE" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlCommandTest.SET_LAYER_BLEND_MODE" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlCommandTest.SET_LAYER_COLOR" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlCommandTest.SET_LAYER_COMPOSITION_TYPE" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlCommandTest.SET_LAYER_DATASPACE" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlCommandTest.SET_LAYER_DISPLAY_FRAME" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlCommandTest.SET_LAYER_PLANE_ALPHA" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlCommandTest.SET_LAYER_SIDEBAND_STREAM" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlCommandTest.SET_LAYER_SOURCE_CROP" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlCommandTest.SET_LAYER_TRANSFORM" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlCommandTest.SET_LAYER_VISIBLE_REGION" />
-    <option name="compatibility:exclude-filter" value="VtsHalGraphicsComposerV2_1Target GraphicsComposerHidlCommandTest.SET_LAYER_Z_ORDER" />
-
-    <option name="compatibility:exclude-filter" value="VtsHalMediaOmxV1_0Host AudioDecHidlTest.FlushTest_OMX.google.vorbis.decoder_audio_decoder.vorbis" />
-
-    <option name="compatibility:exclude-filter" value="VtsHalRadioV1_0Target RadioHidlTest.getDataRegistrationState" />
-    <option name="compatibility:exclude-filter" value="VtsHalRadioV1_0Target RadioHidlTest.supplyIccPinForApp" />
-    <option name="compatibility:exclude-filter" value="VtsHalRadioV1_0Target RadioHidlTest.supplyIccPukForApp" />
-    <option name="compatibility:exclude-filter" value="VtsHalRadioV1_0Target RadioHidlTest.supplyIccPin2ForApp" />
-    <option name="compatibility:exclude-filter" value="VtsHalRadioV1_0Target RadioHidlTest.supplyIccPuk2ForApp" />
-    <option name="compatibility:exclude-filter" value="VtsHalRadioV1_0Target RadioHidlTest.changeIccPinForApp" />
-    <option name="compatibility:exclude-filter" value="VtsHalRadioV1_0Target RadioHidlTest.changeIccPin2ForApp" />
-    <option name="compatibility:exclude-filter" value="VtsHalRadioV1_0Target RadioHidlTest.iccCloseLogicalChannel" />
-
-    <option name="compatibility:exclude-filter" value="VtsHalWifiV1_0Target WifiChipHidlTest.CreateRttController" />
-    <option name="compatibility:exclude-filter" value="VtsHalWifiV1_0Target WifiStaIfaceHidlTest.LinkLayerStatsCollection" />
-    <option name="compatibility:exclude-filter" value="VtsHalWifiV1_0Target WifiChipHidlTest.GetDebugRingBuffersStatus" />
-    <option name="compatibility:exclude-filter" value="VtsHalWifiV1_0Target WifiChipHidlTest.StartLoggingToDebugRingBuffer" />
-    <option name="compatibility:exclude-filter" value="VtsHalWifiV1_0Target WifiChipHidlTest.ForceDumpToDebugRingBuffer" />
-    <option name="compatibility:exclude-filter" value="VtsHalWifiV1_0Target WifiChipHidlTest.GetDebugHostWakeReasonStats" />
-
-    <option name="compatibility:exclude-filter" value="VtsHalWifiV1_1Target WifiChipHidlTest.SelectTxPowerScenario" />
-    <option name="compatibility:exclude-filter" value="VtsHalWifiV1_1Target WifiChipHidlTest.ResetTxPowerScenario" />
-
-    <!-- b/117936821: known incompatibility with Pixel 1 -->
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp VtsKernelLtp.mm.mmapstress07" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp VtsKernelLtp.syscalls.ptrace05" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp VtsKernelLtp.syscalls.sighold02" />
-    <option name="compatibility:exclude-filter" value="VtsKernelProcFileApi VtsKernelProcFileApi.testProcSysrqTrigger" />
-    <option name="compatibility:exclude-filter" value="VtsKernelProcFileApi VtsKernelProcFileApi.testProcUidProcstatSet" />
-
-    <!-- VtsKernelLtp test cases taking longer than 15 seconds -->
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp VtsKernelLtp.cve.cve-2011-0999" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp VtsKernelLtp.fs.linker01" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp VtsKernelLtp.nptl.nptl01" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp VtsKernelLtp.mm.mmapstress06" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp VtsKernelLtp.fs.fs_di" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp VtsKernelLtp.dio.dio23" />
-
-    <!-- b/118683028: tests recently become flaky -->
-    <option name="compatibility:exclude-filter" value="VtsHalMediaOmxV1_0Host VideoDecHidlTest.AdaptivePlaybackTest_OMX.google.hevc.decoder_video_decoder.hevc" />
-    <option name="compatibility:exclude-filter" value="VtsHalMediaOmxV1_0Host ComponentHidlTest.PortEnableDisable_Idle_OMX.google.opus.decoder_audio_decoder.opus" />
-    <option name="compatibility:exclude-filter" value="VtsHalAudioV4_0Target RequiredOutputStreamConfigSupport/OutputStreamTest.GetRenderPosition/11__44100_MONO" />
-    <option name="compatibility:exclude-filter" value="VtsHalRadioV1_0Target RadioHidlTest.deactivateDataCall" />
-    <option name="compatibility:exclude-filter" value="VtsHalRadioV1_0Target RadioHidlTest.setRadioCapability" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp mm.mtest06_2" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp mm.mtest06_3" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp mm.mem01" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp mm.mem03" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp mm.page01" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp mm.page02" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp syscalls.umount02" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp fs.fs_fill" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp syscalls.linkat02" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp syscalls.mount01" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp syscalls.ioctl05" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp syscalls.umount2_02" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp syscalls.umount2_03" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp syscalls.mknod07" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp syscalls.utime06" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp syscalls.umount2_01" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp syscalls.fallocate04" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp syscalls.mknodat02" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp fs.fs_inod01" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp syscalls.ftruncate04_64" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp syscalls.poll02" />
-
-    <!-- b/122260771: temporally disable kernel test cases that seems to cause device reboot -->
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp fs.inode02" />
-
-    <!-- b/118340949: temporally disable kernel test cases that takes 2+ minutes to finish -->
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp dio.dio16" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp dio.dio17" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp dio.dio20" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp dio.dio21" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp dio.dio24" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp dio.dio25" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp dio.dio27" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp dio.dio28" />
-    <option name="compatibility:exclude-filter" value="VtsKernelLtp mm.mtest06" />
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-presubmit-kernel.xml b/tools/vts-tradefed/res/config/vts-presubmit-kernel.xml
deleted file mode 100644
index b33a1f1..0000000
--- a/tools/vts-tradefed/res/config/vts-presubmit-kernel.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="VTS Presubmit Kernel Test Plan">
-  <include name="vts-base-presubmit" />
-
-  <option name="vts-plan-result:plan-name" value="vts-presubmit-kernel" />
-
-  <option name="compatibility:test-arg" value="com.android.tradefed.testtype.VtsMultiDeviceTest:max-retry-count:2" />
-  <option name="compatibility:test-arg" value="com.android.tradefed.testtype.VtsMultiDeviceTest:ltp-number-of-threads:1" />
-
-  <include name="vts-presubmit-exclude" />
-
-  <option name="compatibility:include-filter" value="VtsKernelBinderTest" />
-  <option name="compatibility:include-filter" value="VtsKernelLibcutilsTest" />
-  <option name="compatibility:include-filter" value="VtsKernelLtp" />
-  <option name="compatibility:include-filter" value="VtsKernelProcFileApi" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-presubmit.xml b/tools/vts-tradefed/res/config/vts-presubmit.xml
deleted file mode 100644
index 1f38646..0000000
--- a/tools/vts-tradefed/res/config/vts-presubmit.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="VTS Presubmit Test Plan">
-  <include name="vts-base-presubmit" />
-
-  <option name="vts-plan-result:plan-name" value="vts-presubmit" />
-
-  <option name="compatibility:test-arg" value="com.android.tradefed.testtype.VtsMultiDeviceTest:max-retry-count:2" />
-
-  <include name="vts-presubmit-exclude" />
-
-  <option name="compatibility:include-filter" value="SampleShellTest" />
-  <option name="compatibility:include-filter" value="VtsHalAudioV4_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalGraphicsComposerV2_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalMediaOmxV1_0Host" />
-  <option name="compatibility:include-filter" value="VtsHalMediaOmxStoreV1_0Host" />
-  <option name="compatibility:include-filter" value="VtsHalMediaC2V1_0Host" />
-  <option name="compatibility:include-filter" value="VtsTrebleVendorVintfTest" />
-  <option name="compatibility:include-filter" value="VtsHidlUnitTests" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-security.xml b/tools/vts-tradefed/res/config/vts-security.xml
deleted file mode 100644
index 4d41ca2..0000000
--- a/tools/vts-tradefed/res/config/vts-security.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="Run VTS Security Test Plan">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-security" />
-
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-security" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-selftest.xml b/tools/vts-tradefed/res/config/vts-selftest.xml
deleted file mode 100644
index f250fe4..0000000
--- a/tools/vts-tradefed/res/config/vts-selftest.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<configuration description="VTS Self Test Plan">
-  <include name="vts-base-presubmit" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-selftest" />
-  <option name="compatibility:primary-abi-only" value="true" />
-
-  <!-- VTS self test modules -->
-  <!--option name="compatibility:include-filter" value="VtsSelfTestBaseTest" />
-  <option name="compatibility:include-filter" value="VtsSelfTestPythonVirtualenvPreparerTestPart0" />
-  <option name="compatibility:include-filter" value="VtsSelfTestPythonVirtualenvPreparerTestPart1" />
-  <option name="compatibility:include-filter" value="VtsSelfTestPythonVirtualenvPreparerTestPart2" /-->
-
-  <option name="compatibility:test-arg" value="com.android.tradefed.testtype.VtsMultiDeviceTest:run-as-vts-self-test:true" />
-  <option name="compatibility:test-arg" value="com.android.tradefed.testtype.VtsMultiDeviceTest:max-retry-count:2" />
-
-  <!-- Regular test modules running in vts self test mode -->
-  <option name="compatibility:include-filter" value="ShellBinaryCrashTest" />
-
-  <!-- For Treble-specific validations -->
-  <!-- option name="compatibility:include-filter" value="VtsTreblePlatformVersionTest" />
-  <option name="compatibility:include-filter" value="VtsTrebleVintfTest" /-->
-
-  <!-- From vts-hal-hidl.xml -->
-  <!-- option name="compatibility:include-filter" value="VtsHalBluetoothV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalBootV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalIrV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalNfcV1_0Target" /-->
-
-  <!-- From vts-kernel.xml -->
-  <!-- option name="compatibility:include-filter" value="VtsKernelLtp" />
-  <option name="compatibility:include-filter" value="VtsKernelProcFileApi" />
-  <option name="compatibility:include-filter" value="VtsKernelLinuxKselftest" />
-  <option name="compatibility:include-filter" value="VtsKernelLinuxKselftestPresubmit" />
-  <option name="compatibility:include-filter" value="VtsKernelApiSysfsTest" />
-  <option name="compatibility:include-filter" value="VtsKernelBinderTest" />
-  <option name="compatibility:include-filter" value="VtsKernelHwBinder" />
-  <option name="compatibility:include-filter" value="VtsKernelLibcutilsTest" />
-  <option name="compatibility:include-filter" value="VtsKernelNetdTest" />
-  <option name="compatibility:include-filter" value="VtsKernelSelinuxFileApi" />
-  <option name="compatibility:include-filter" value="VtsKernelTunTest" />
-  <option name="compatibility:include-filter" value="VtsKernelQtaguidTest" />
-  <option name="compatibility:include-filter" value="CtsOnGsiTrebleFrameworkVintfTest SystemVendorTest.KernelCompatibility"/-->
-
-  <!--  From vts-vndk.xml -->
-  <!-- option name="compatibility:include-filter" value="VtsVndkDependency" /-->
-
-  <!-- For Hidl Hal replay tests -->
-  <!-- option name="compatibility:include-filter" value="VtsHalNfcV1_0TargetReplay" /-->
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-staging-default.xml b/tools/vts-tradefed/res/config/vts-staging-default.xml
deleted file mode 100644
index 16c3178..0000000
--- a/tools/vts-tradefed/res/config/vts-staging-default.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="VTS Serving Plan for Staging(new) tests">
-
-    <include name="vts-base" />
-    <option name="plan" value="vts" />
-    <option name="test-tag" value="vts-star" />
-    <option name="vts-plan-result:plan-name" value="vts-staging-default" />
-
-    <!-- for System -->
-    <option name="compatibility:include-filter" value="MemorySystemStressTest" />
-    <!-- b/66012102 -->
-    <!-- <option name="compatibility:include-filter" value="VtsAppCameraStressTest" /> -->
-
-    <!-- for Hal -->
-    <option name="compatibility:include-filter" value="VtsHalAudioEffectV2_0TargetReplay" />
-    <option name="compatibility:include-filter" value="VtsHalBluetoothV1_0TargetReplay" />
-    <option name="compatibility:include-filter" value="VtsHalThermalV1_0TargetReplay" />
-
-    <!-- for HAL adapter tests -->
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="abort-on-push-failure" value="true"/>
-        <option name="push" value="script/target/vts_adapter.sh->/data/local/tmp/vts_adapter.sh"/>
-    </target_preparer>
-
-    <target_preparer class="com.android.tradefed.targetprep.TestAppInstallSetup">
-        <option name="test-file-name" value="DeviceHealthTests.apk" />
-        <option name="cleanup-apks" value="true" />
-    </target_preparer>
-
-    <option name="compatibility:include-filter" value="VtsHalThermalV1_1Adapter" />
-    <option name="compatibility:include-filter" value="VtsHalUsbV1_2Adapter" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-staging-fuzz.xml b/tools/vts-tradefed/res/config/vts-staging-fuzz.xml
deleted file mode 100644
index 0f80da7..0000000
--- a/tools/vts-tradefed/res/config/vts-staging-fuzz.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="VTS Serving Plan for Fuzzing (Staging)">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-staging-fuzz" />
-
-  <option name="compatibility:primary-abi-only" value="true" />
-  <option name="compatibility:include-filter" value="VtsHalBiometricsFingerprintV2_1IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalBluetoothV1_0IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalCasNativeV1_0IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalCasV1_0IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalContexthubV1_0IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalContexthubV1_1IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalGnssV1_0IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalGraphicsComposerV2_1IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalGraphicsMapperV2_0IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalGraphicsMapperV2_1IfaceFuzzer" />
-  <!--option name="compatibility:include-filter" value="VtsHalKeymasterV3_0IfaceFuzzer" /--><!-- can brick device -->
-  <option name="compatibility:include-filter" value="VtsHalMediaOmxV1_0IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalNeuralnetworksV1_0IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalNfcV1_0IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalOemlockV1_0IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalRadioV1_0IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalRadioV1_1IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalRenderscriptV1_0IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalSensorsV1_0IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalSoundtriggerV2_0IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalTetheroffloadConfigV1_0IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalTetheroffloadControlV1_0IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalUsbV1_0IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalUsbV1_1IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalWeaverV1_0IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalWifiOffloadV1_0IfaceFuzzer" />
-  <option name="compatibility:include-filter" value="VtsHalWifiSupplicantV1_0IfaceFuzzer" />
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-staging-kernel.xml b/tools/vts-tradefed/res/config/vts-staging-kernel.xml
deleted file mode 100644
index f28d005..0000000
--- a/tools/vts-tradefed/res/config/vts-staging-kernel.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<configuration description="VTS Serving Plan for Kernel Staging Tests">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-staging-kernel" />
-
-  <option name="compatibility:include-filter" value="SecurityPoCKernelTestStaging" />
-  <option name="compatibility:include-filter" value="VtsKernelLinuxKselftestStaging" />
-  <option name="compatibility:include-filter" value="VtsKernelLtpStaging" />
-
-  <!-- TODO(bowgotsai): move this into compliance test list -->
-  <option name="compatibility:include-filter" value="VtsKernelRootDir" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-staging-presubmit.xml b/tools/vts-tradefed/res/config/vts-staging-presubmit.xml
deleted file mode 100644
index d94b1ea..0000000
--- a/tools/vts-tradefed/res/config/vts-staging-presubmit.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="VTS Serving Plan for Presubmit (Staging)">
-  <include name="vts-base" />
-  <option name="compatibility:primary-abi-only" value="true" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-staging-presubmit" />
-  <option name="vts-plan-result:default-type" value="staging" />
-
-  <!-- For vts-hal-hidl -->
-  <option name="compatibility:test-arg" value="com.android.tradefed.testtype.VtsMultiDeviceTest:gtest-batch-mode:true" />
-  <!-- option name="compatibility:include-filter" value="BinderThroughputBenchmark" / -->
-  <!-- option name="compatibility:include-filter" value="BinderPerformanceTest" / -->
-
-  <!-- For vts-library -->
-  <!-- option name="compatibility:include-filter" value="CpuProfilingTest" / -->
-
-  <!-- For vts-security -->
-
-  <!-- For vts-system -->
-  <option name="compatibility:include-filter" value="VtsCodelabHelloWorldTest" />
-  <!-- option name="compatibility:include-filter" value="SampleShellTest" / -->
-  <!-- option name="compatibility:include-filter" value="VtsHalLightV2_0Target" / -->
-  <!-- option name="compatibility:include-filter" value="VtsHalNfcV1_0HostBinderize" / -->
-
-  <!-- For vts-kernel -->
-  <!-- option name="compatibility:include-filter" value="KernelLtpTest" / -->
-  <!-- option name="compatibility:include-filter" value="LinuxKselftestTestPresubmit" / -->
-  <!-- option name="compatibility:include-filter" value="ShellBinaryCrashTest" / -->
-  <!-- option name="compatibility:include-filter" value="LibcTest" / -->
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-staging-sancov.xml b/tools/vts-tradefed/res/config/vts-staging-sancov.xml
deleted file mode 100644
index f4697fd..0000000
--- a/tools/vts-tradefed/res/config/vts-staging-sancov.xml
+++ /dev/null
@@ -1,92 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<configuration description="VTS Staging Plan for Sancov on HALs">
-  <include name="vts-base" />
-  <target_preparer class="com.android.tradefed.targetprep.VtsCoveragePreparer" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:default-type" value="staging" />
-  <option name="vts-plan-result:plan-name" value="vts-staging-sancov" />
-
-  <option name="compatibility:include-filter" value="VtsHalBluetoothV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalBootV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalIrV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalNeuralnetworksV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalNfcV1_0HostBinderize" />
-  <option name="compatibility:include-filter" value="VtsHalNfcV1_0HostPassthrough" />
-  <option name="compatibility:include-filter" value="VtsHalNfcV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalRadioV1_0Host" />
-  <option name="compatibility:include-filter" value="VtsHalRadioV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalRadioV1_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalRenderscriptV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalSapV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiHostapdV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiHostapdV1_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiHostapdV1_2Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiV1_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiNanV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiOffloadV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiSupplicantV1_0Host" />
-  <option name="compatibility:include-filter" value="VtsHalWifiSupplicantV1_1Host" />
-  <option name="compatibility:include-filter" value="VtsHalWifiSupplicantP2pV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiSupplicantP2pV1_2Target" />
-  <option name="compatibility:include-filter" value="VtsHalWifiSupplicantV1_3Host" />
-
-  <option name="compatibility:include-filter" value="VtsHalAudioV2_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalAudioV4_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalAudioEffectV2_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalAudioEffectV4_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalBiometricsFingerprintV2_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalBroadcastradioV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalCameraProviderV2_4Target" />
-  <option name="compatibility:include-filter" value="VtsHalConfigstoreV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalContexthubV1_0Host" />
-  <option name="compatibility:include-filter" value="VtsHalContexthubV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalGatekeeperV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalGnssV1_0HostBinderize" />
-  <option name="compatibility:include-filter" value="VtsHalGnssV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalGraphicsComposerV2_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalGraphicsMapperV2_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalGraphicsMapperV2_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalHealthV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalKeymasterV3_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalLightV2_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalMemtrackV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalMediaC2V1_0Host" />
-  <option name="compatibility:include-filter" value="VtsHalMediaOmxV1_0Host" />
-  <option name="compatibility:include-filter" value="VtsHalPowerV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalPowerV1_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalSensorsV1_0Host" />
-  <option name="compatibility:include-filter" value="VtsHalSensorsV2_0Host" />
-  <option name="compatibility:include-filter" value="VtsHalSensorsV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalSensorsV2_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalSoundtriggerV2_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalSoundtriggerV2_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalStatsV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalTetherOffloadConfigV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalTetherOffloadControlV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalThermalV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalUsbV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalUsbV1_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalVibratorV1_0Host" />
-  <option name="compatibility:include-filter" value="VtsHalVibratorV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalVibratorV1_1Target" />
-  <option name="compatibility:include-filter" value="VtsHalVrV1_0Host" />
-  <option name="compatibility:include-filter" value="VtsHalVrV1_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalWeaverV1_0Target" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-staging-selftest.xml b/tools/vts-tradefed/res/config/vts-staging-selftest.xml
deleted file mode 100644
index 272ce93..0000000
--- a/tools/vts-tradefed/res/config/vts-staging-selftest.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 Google Inc.
-
-     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.
--->
-<configuration description="VTS Serving Plan for SelfTest (Staging)">
-  <include name="vts-base" />
-  <option name="compatibility:primary-abi-only" value="true" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-staging-selftest" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-staging-web.xml b/tools/vts-tradefed/res/config/vts-staging-web.xml
deleted file mode 100644
index b9a0631..0000000
--- a/tools/vts-tradefed/res/config/vts-staging-web.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<configuration description="VTS Staging Plan for VTS Dashboard">
-  <include name="vts-base" />
-  <target_preparer class="com.android.tradefed.targetprep.VtsCoveragePreparer" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-staging-web" />
-  <option name="vts-plan-result:default-type" value="staging" />
-
-  <option name="compatibility:test-arg" value="com.android.tradefed.testtype.VtsMultiDeviceTest:gtest-batch-mode:true" />
-  <option name="compatibility:include-filter" value="LibcTest" />
-  <option name="compatibility:include-filter" value="SampleShellTest" />
-  <option name="compatibility:include-filter" value="VtsHalLightV2_0Target" />
-  <option name="compatibility:include-filter" value="VtsHalLightV2_0TargetProfiling" />
- </configuration>
diff --git a/tools/vts-tradefed/res/config/vts-star.xml b/tools/vts-tradefed/res/config/vts-star.xml
deleted file mode 100644
index 5a89dbe..0000000
--- a/tools/vts-tradefed/res/config/vts-star.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="VTS-* Main Test Plan Excluding VTS">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-star" />
-
-  <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-    <option name="abort-on-push-failure" value="true"/>
-    <option name="push" value="script/target/vts_adapter.sh->/data/local/tmp/vts_adapter.sh"/>
-  </target_preparer>
-
-  <target_preparer class="com.android.tradefed.targetprep.TestAppInstallSetup">
-    <option name="test-file-name" value="DeviceHealthTests.apk" />
-    <option name="cleanup-apks" value="true" />
-  </target_preparer>
-
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-app" />
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-codelab" />
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-device-health" />
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-fuzz" />
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-hal-profiling" />
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-host" />
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-library" />
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-performance" />
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-selftest" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-systems.xml b/tools/vts-tradefed/res/config/vts-systems.xml
deleted file mode 100644
index 0f74451..0000000
--- a/tools/vts-tradefed/res/config/vts-systems.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="VTS Systems Test Plan">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-systems" />
-
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-systems" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-unit-tests.xml b/tools/vts-tradefed/res/config/vts-unit-tests.xml
deleted file mode 100644
index 22c09d8..0000000
--- a/tools/vts-tradefed/res/config/vts-unit-tests.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<configuration description="Executes the VTS unit tests">
-    <option name="null-device" value="true" />
-    <build_provider class="com.android.tradefed.build.StubBuildProvider" />
-    <test class="com.android.tradefed.testtype.HostTest" >
-        <option name="class" value="com.android.tradefed.VtsUnitTests" />
-        <option name="class" value="com.android.compatibility.common.tradefed.VtsUnitTests" />
-    </test>
-    <logger class="com.android.tradefed.log.FileLogger" />
-
-    <result_reporter class="com.android.tradefed.result.ConsoleResultReporter">
-        <option name="suppress-passed-tests" value="true" />
-    </result_reporter>
-    <template-include name="reporters" default="empty" />
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts-vndk.xml b/tools/vts-tradefed/res/config/vts-vndk.xml
deleted file mode 100644
index dc31f12..0000000
--- a/tools/vts-tradefed/res/config/vts-vndk.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 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.
--->
-<configuration description="VTS VNDK (Vendor NDK) Test Plan">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts-star" />
-  <option name="vts-plan-result:plan-name" value="vts-vndk" />
-
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-vndk" />
-
-</configuration>
diff --git a/tools/vts-tradefed/res/config/vts10.xml b/tools/vts-tradefed/res/config/vts10.xml
deleted file mode 100644
index e6ba2bc..0000000
--- a/tools/vts-tradefed/res/config/vts10.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 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.
--->
-<configuration description="VTS Main Test Plan">
-  <include name="vts-base" />
-  <option name="plan" value="vts" />
-  <option name="test-tag" value="vts" />
-  <option name="vts-plan-result:plan-name" value="vts" />
-
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-firmware" />
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-hal" />
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-hal-replay" />
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-kernel" />
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-security" />
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-treble" />
-  <option name="compatibility:module-metadata-include-filter" key="plan" value="vts-vndk" />
-
-  <option name="compatibility:test-arg" value="com.android.tradefed.testtype.VtsMultiDeviceTest:ltp-number-of-threads:1" />
-
-  <!-- Unapproved vts-security Tests -->
-  <option name="compatibility:exclude-filter" value="SecurityPoCKernelTest" />
-  <option name="compatibility:exclude-filter" value="VtsSecuritySelinuxPolicyHost" />
-
-  <!-- VtsTrebleVintfTest is deprecated, run VtsTrebleVendorVintfTest instead -->
-  <option name="compatibility:exclude-filter" value="VtsTrebleVintfTest" />
-  <option name="compatibility:exclude-filter" value="VtsTrebleVintfTestOMr1" />
-
-  <!-- Tests for libraries not on GSI -->
-  <option name="compatibility:exclude-filter" value="VtsHalBufferHubV1_0Target" />
-</configuration>
diff --git a/tools/vts-tradefed/res/default/DefaultTestCase.runner_conf b/tools/vts-tradefed/res/default/DefaultTestCase.runner_conf
deleted file mode 100644
index f66d732..0000000
--- a/tools/vts-tradefed/res/default/DefaultTestCase.runner_conf
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-    "test_bed": [],
-    "log_path": "/tmp/logs",
-    "test_paths": ["./"],
-    "enable_web": true
-}
diff --git a/tools/vts-tradefed/res/push_groups/FuncFuzzerTest.push b/tools/vts-tradefed/res/push_groups/FuncFuzzerTest.push
deleted file mode 100644
index 1dbaa9f..0000000
--- a/tools/vts-tradefed/res/push_groups/FuncFuzzerTest.push
+++ /dev/null
@@ -1,5 +0,0 @@
-DATA/lib/libclang_rt.asan-arm-android.so->/data/local/tmp/32/libclang_rt.asan-arm-android.so
-DATA/lib64/libclang_rt.asan-aarch64-android.so->/data/local/tmp/64/libclang_rt.asan-aarch64-android.so
-
-DATA/asan/system/lib/libvts_func_fuzzer_utils.so->/data/local/tmp/32/libvts_func_fuzzer_utils.so
-DATA/asan/system/lib64/libvts_func_fuzzer_utils.so->/data/local/tmp/64/libvts_func_fuzzer_utils.so
diff --git a/tools/vts-tradefed/res/push_groups/HalHidlHostTest.push b/tools/vts-tradefed/res/push_groups/HalHidlHostTest.push
deleted file mode 100644
index f4a27e3..0000000
--- a/tools/vts-tradefed/res/push_groups/HalHidlHostTest.push
+++ /dev/null
@@ -1,2 +0,0 @@
-VtsDriverHal.push
-VtsDriverShell.push
\ No newline at end of file
diff --git a/tools/vts-tradefed/res/push_groups/HalHidlTargetTest.push b/tools/vts-tradefed/res/push_groups/HalHidlTargetTest.push
deleted file mode 100644
index d1ad9b6..0000000
--- a/tools/vts-tradefed/res/push_groups/HalHidlTargetTest.push
+++ /dev/null
@@ -1 +0,0 @@
-VtsDriverShell.push
\ No newline at end of file
diff --git a/tools/vts-tradefed/res/push_groups/HostDrivenTest.push b/tools/vts-tradefed/res/push_groups/HostDrivenTest.push
deleted file mode 100644
index f4a27e3..0000000
--- a/tools/vts-tradefed/res/push_groups/HostDrivenTest.push
+++ /dev/null
@@ -1,2 +0,0 @@
-VtsDriverHal.push
-VtsDriverShell.push
\ No newline at end of file
diff --git a/tools/vts-tradefed/res/push_groups/IfaceFuzzerTest.push b/tools/vts-tradefed/res/push_groups/IfaceFuzzerTest.push
deleted file mode 100644
index ef7d58c..0000000
--- a/tools/vts-tradefed/res/push_groups/IfaceFuzzerTest.push
+++ /dev/null
@@ -1,36 +0,0 @@
-DATA/asan/system/lib/libvts_datatype.so->/data/local/tmp/32/libvts_datatype.so
-DATA/asan/system/lib64/libvts_datatype.so->/data/local/tmp/64/libvts_datatype.so
-
-DATA/asan/system/lib/libvts_measurement.so->/data/local/tmp/32/libvts_measurement.so
-DATA/asan/system/lib64/libvts_measurement.so->/data/local/tmp/64/libvts_measurement.so
-
-DATA/asan/system/lib/libvts_interfacespecification.so->/data/local/tmp/32/libvts_interfacespecification.so
-DATA/asan/system/lib64/libvts_interfacespecification.so->/data/local/tmp/64/libvts_interfacespecification.so
-
-DATA/asan/system/lib/libvts_common.so->/data/local/tmp/32/libvts_common.so
-DATA/asan/system/lib64/libvts_common.so->/data/local/tmp/64/libvts_common.so
-
-DATA/asan/system/lib/libvts_multidevice_proto.so->/data/local/tmp/32/libvts_multidevice_proto.so
-DATA/asan/system/lib64/libvts_multidevice_proto.so->/data/local/tmp/64/libvts_multidevice_proto.so
-
-DATA/asan/system/lib/libvts_drivercomm.so->/data/local/tmp/32/libvts_drivercomm.so
-DATA/asan/system/lib64/libvts_drivercomm.so->/data/local/tmp/64/libvts_drivercomm.so
-
-DATA/asan/system/lib/libprotobuf-cpp-full.so->/data/local/tmp/32/libprotobuf-cpp-full.so
-DATA/asan/system/lib64/libprotobuf-cpp-full.so->/data/local/tmp/64/libprotobuf-cpp-full.so
-
-DATA/asan/system/lib/libvts_codecoverage.so->/data/local/tmp/32/libvts_codecoverage.so
-DATA/asan/system/lib64/libvts_codecoverage.so->/data/local/tmp/64/libvts_codecoverage.so
-
-DATA/lib/libclang_rt.asan-arm-android.so->/data/local/tmp/32/libclang_rt.asan-arm-android.so
-DATA/lib64/libclang_rt.asan-aarch64-android.so->/data/local/tmp/64/libclang_rt.asan-aarch64-android.so
-DATA/lib64/libclang_rt.asan-x86_64-android.so->/data/local/tmp/64/libclang_rt.asan-x86_64-android.so
-
-DATA/asan/system/lib/libvts_proto_fuzzer.so->/data/local/tmp/32/libvts_proto_fuzzer.so
-DATA/asan/system/lib64/libvts_proto_fuzzer.so->/data/local/tmp/64/libvts_proto_fuzzer.so
-
-DATA/asan/system/lib/libvts_proto_fuzzer_proto.so->/data/local/tmp/32/libvts_proto_fuzzer_proto.so
-DATA/asan/system/lib64/libvts_proto_fuzzer_proto.so->/data/local/tmp/64/libvts_proto_fuzzer_proto.so
-
-DATA/bin/vts_hal_agent32->/data/local/tmp/32/vts_hal_agent32
-DATA/bin/vts_hal_agent64->/data/local/tmp/64/vts_hal_agent64
diff --git a/tools/vts-tradefed/res/push_groups/LLVMFuzzerTest.push b/tools/vts-tradefed/res/push_groups/LLVMFuzzerTest.push
deleted file mode 100644
index 217a5c0..0000000
--- a/tools/vts-tradefed/res/push_groups/LLVMFuzzerTest.push
+++ /dev/null
@@ -1,5 +0,0 @@
-HostDrivenTest.push
-
-DATA/lib/libclang_rt.asan-arm-android.so->/data/local/tmp/32/libclang_rt.asan-arm-android.so
-DATA/lib64/libclang_rt.asan-aarch64-android.so->/data/local/tmp/64/libclang_rt.asan-aarch64-android.so
-
diff --git a/tools/vts-tradefed/res/push_groups/README.md b/tools/vts-tradefed/res/push_groups/README.md
deleted file mode 100644
index 167157e..0000000
--- a/tools/vts-tradefed/res/push_groups/README.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# VTS File Push Groups
-
-As part of the test setup procedure, a VTS test can push a set of files to
-a target device. A list of files can be defined as a push group (i.e., a `.push`
-file in this directory).
-
-A list of the predefined, basic push groups is as follows:
-
-- VtsAgent.push: VTS agent files.
-- VtsDriverShell.push: VTS shell driver files.
-- VtsDriverHal.push: VTS HAL driver files.
-- VtsProfilerHal.push: VTS HAL profiler files.
-- VtsSpec.push: VTS specification files for all HIDL HALs.
-
-Based on those, the following push groups are defined where each group is for a
-particular test type:
-
-- HalHidlTargetTest.push: For target-side HIDL HAL test.
-- HalHidlHostTest.push: For host-driven HIDL HAL test.
-- HostDrivenTest.push: For host-driven test (both HIDL HAL and other system-level components).
-
-The other push groups are fuzzing and record-and-replay tests:
-
-- FuncFuzzerTest.push
-- LLVMFuzzerTest.push
-- IfaceFuzzerTest.push
-- VtsHalReplayTest.push
\ No newline at end of file
diff --git a/tools/vts-tradefed/res/push_groups/VtsAgent.push b/tools/vts-tradefed/res/push_groups/VtsAgent.push
deleted file mode 100644
index 9857ee9..0000000
--- a/tools/vts-tradefed/res/push_groups/VtsAgent.push
+++ /dev/null
@@ -1,28 +0,0 @@
-DATA/lib/libvts_common.so->/data/local/tmp/32/libvts_common.so
-DATA/lib64/libvts_common.so->/data/local/tmp/64/libvts_common.so
-
-DATA/lib/libvts_resource_driver.so->/data/local/tmp/32/libvts_resource_driver.so
-DATA/lib64/libvts_resource_driver.so->/data/local/tmp/64/libvts_resource_driver.so
-
-DATA/lib/libvts_resource_manager.so->/data/local/tmp/32/libvts_resource_manager.so
-DATA/lib64/libvts_resource_manager.so->/data/local/tmp/64/libvts_resource_manager.so
-
-DATA/lib/libvts_multidevice_proto.so->/data/local/tmp/32/libvts_multidevice_proto.so
-DATA/lib64/libvts_multidevice_proto.so->/data/local/tmp/64/libvts_multidevice_proto.so
-
-DATA/lib/libvts_drivercomm.so->/data/local/tmp/32/libvts_drivercomm.so
-DATA/lib64/libvts_drivercomm.so->/data/local/tmp/64/libvts_drivercomm.so
-
-DATA/lib/libprotobuf-cpp-full.so->/data/local/tmp/32/libprotobuf-cpp-full.so
-DATA/lib64/libprotobuf-cpp-full.so->/data/local/tmp/64/libprotobuf-cpp-full.so
-
-DATA/lib/libvts_codecoverage.so->/data/local/tmp/32/libvts_codecoverage.so
-DATA/lib64/libvts_codecoverage.so->/data/local/tmp/64/libvts_codecoverage.so
-
-DATA/bin/vts_hal_agent32->/data/local/tmp/32/vts_hal_agent32
-DATA/bin/vts_hal_agent64->/data/local/tmp/64/vts_hal_agent64
-
-DATA/bin/vts_testability_checker32->/data/local/tmp/vts_testability_checker32
-DATA/bin/vts_testability_checker64->/data/local/tmp/vts_testability_checker64
-
-DATA/app/VtsAgentApp/VtsAgentApp.apk->/data/local/tmp/VtsAgentApp.apk
diff --git a/tools/vts-tradefed/res/push_groups/VtsDriverHal.push b/tools/vts-tradefed/res/push_groups/VtsDriverHal.push
deleted file mode 100644
index 1b2dcde..0000000
--- a/tools/vts-tradefed/res/push_groups/VtsDriverHal.push
+++ /dev/null
@@ -1,13 +0,0 @@
-VtsAgent.push
-
-DATA/lib/libvts_datatype.so->/data/local/tmp/32/libvts_datatype.so
-DATA/lib64/libvts_datatype.so->/data/local/tmp/64/libvts_datatype.so
-
-DATA/lib/libvts_measurement.so->/data/local/tmp/32/libvts_measurement.so
-DATA/lib64/libvts_measurement.so->/data/local/tmp/64/libvts_measurement.so
-
-DATA/lib/libvts_interfacespecification.so->/data/local/tmp/32/libvts_interfacespecification.so
-DATA/lib64/libvts_interfacespecification.so->/data/local/tmp/64/libvts_interfacespecification.so
-
-DATA/bin/vts_hal_driver32->/data/local/tmp/32/vts_hal_driver32
-DATA/bin/vts_hal_driver64->/data/local/tmp/64/vts_hal_driver64
diff --git a/tools/vts-tradefed/res/push_groups/VtsDriverShell.push b/tools/vts-tradefed/res/push_groups/VtsDriverShell.push
deleted file mode 100644
index 14b9ca3..0000000
--- a/tools/vts-tradefed/res/push_groups/VtsDriverShell.push
+++ /dev/null
@@ -1,4 +0,0 @@
-VtsAgent.push
-
-DATA/bin/vts_shell_driver32->/data/local/tmp/32/vts_shell_driver32
-DATA/bin/vts_shell_driver64->/data/local/tmp/64/vts_shell_driver64
\ No newline at end of file
diff --git a/tools/vts-tradefed/res/push_groups/VtsHalReplayTest.push b/tools/vts-tradefed/res/push_groups/VtsHalReplayTest.push
deleted file mode 100644
index f087463..0000000
--- a/tools/vts-tradefed/res/push_groups/VtsHalReplayTest.push
+++ /dev/null
@@ -1,8 +0,0 @@
-VtsDriverHal.push
-VtsDriverShell.push
-
-DATA/lib/libvts_profiling_utils.so->/data/local/tmp/32/libvts_profiling_utils.so
-DATA/lib64/libvts_profiling_utils.so->/data/local/tmp/64/libvts_profiling_utils.so
-
-DATA/bin/vts_hal_replayer32->/data/local/tmp/32/vts_hal_replayer32
-DATA/bin/vts_hal_replayer64->/data/local/tmp/64/vts_hal_replayer64
\ No newline at end of file
diff --git a/tools/vts-tradefed/res/push_groups/VtsSpec.push b/tools/vts-tradefed/res/push_groups/VtsSpec.push
deleted file mode 100644
index 14a5924..0000000
--- a/tools/vts-tradefed/res/push_groups/VtsSpec.push
+++ /dev/null
@@ -1,31 +0,0 @@
-spec/hardware/interfaces/thermal/1.0/vts/Thermal.vts->/data/local/tmp/spec/thermal/Thermal.vts
-spec/hardware/interfaces/thermal/1.0/vts/types.vts->/data/local/tmp/spec/thermal/types.vts
-spec/hardware/interfaces/vibrator/1.0/vts/Vibrator.vts->/data/local/tmp/spec/vibrator/Vibrator.vts
-spec/hardware/interfaces/vibrator/1.0/vts/types.vts->/data/local/tmp/spec/vibrator/types.vts
-spec/hardware/interfaces/sensors/1.0/vts/Sensors.vts->/data/local/tmp/spec/sensors/Sensors.vts
-spec/hardware/interfaces/sensors/1.0/vts/types.vts->/data/local/tmp/spec/sensors/types.vts
-spec/hardware/interfaces/graphics/mapper/2.0/vts/Mapper.vts->/data/local/tmp/spec/graphics/mapper/Mapper.vts
-spec/hardware/interfaces/graphics/mapper/2.0/vts/types.vts->/data/local/tmp/spec/graphics/mapper/types.vts
-spec/hardware/interfaces/graphics/allocator/2.0/vts/Allocator.vts->/data/local/tmp/spec/graphics/allocator/Allocator.vts
-spec/hardware/interfaces/graphics/allocator/2.0/vts/AllocatorClient.vts->/data/local/tmp/spec/graphics/allocator/AllocatorClient.vts
-spec/hardware/interfaces/graphics/allocator/2.0/vts/types.vts->/data/local/tmp/spec/graphics/allocator/types.vts
-spec/hardware/interfaces/tv/input/1.0/vts/TvInputCallback.vts->/data/local/tmp/spec/tv/input/TvInputCallback.vts
-spec/hardware/interfaces/tv/input/1.0/vts/TvInput.vts->/data/local/tmp/spec/tv/input/TvInput.vts
-spec/hardware/interfaces/tv/input/1.0/vts/types.vts->/data/local/tmp/spec/tv/input/types.vts
-spec/hardware/interfaces/tv/cec/1.0/vts/HdmiCec.vts->/data/local/tmp/spec/tv/cec/HdmiCec.vts
-spec/hardware/interfaces/tv/cec/1.0/vts/HdmiCecCallback.vts->/data/local/tmp/spec/tv/cec/HdmiCecCallback.vts
-spec/hardware/interfaces/tv/cec/1.0/vts/types.vts->/data/local/tmp/spec/tv/cec/types.vts
-spec/hardware/interfaces/automotive/vehicle/2.0/vts/Vehicle.vts->/data/local/tmp/spec/vehicle/Vehicle.vts
-spec/hardware/interfaces/automotive/vehicle/2.0/vts/VehicleCallback.vts->/data/local/tmp/spec/vehicle/VehicleCallback.vts
-spec/hardware/interfaces/automotive/vehicle/2.0/vts/types.vts->/data/local/tmp/spec/vehicle/types.vts
-spec/hardware/interfaces/vr/1.0/vts/Vr.vts->/data/local/tmp/spec/vr/Vr.vts
-spec/hardware/interfaces/nfc/1.0/vts/NfcClientCallback.vts->/data/local/tmp/spec/nfc/NfcClientCallback.vts
-spec/hardware/interfaces/nfc/1.0/vts/Nfc.vts->/data/local/tmp/spec/nfc/Nfc.vts
-spec/hardware/interfaces/nfc/1.0/vts/types.vts->/data/local/tmp/spec/nfc/types.vts
-spec/hardware/interfaces/light/2.0/vts/Light.vts->/data/local/tmp/spec/light/Light.vts
-spec/hardware/interfaces/light/2.0/vts/types.vts->/data/local/tmp/spec/light/types.vts
-spec/hardware/interfaces/power/1.0/vts/Power.vts->/data/local/tmp/spec/power/Power.vts
-spec/hardware/interfaces/power/1.0/vts/types.vts->/data/local/tmp/spec/power/types.vts
-spec/hardware/interfaces/memtrack/1.0/vts/Memtrack.vts->/data/local/tmp/spec/memtrack/Memtrack.vts
-spec/hardware/interfaces/memtrack/1.0/vts/types.vts->/data/local/tmp/spec/memtrack/types.vts
-
diff --git a/tools/vts-tradefed/res/report/VTS-logo.png b/tools/vts-tradefed/res/report/VTS-logo.png
deleted file mode 100644
index 7f72441..0000000
--- a/tools/vts-tradefed/res/report/VTS-logo.png
+++ /dev/null
Binary files differ
diff --git a/utils/native/libcoverage/Android.bp b/utils/native/libcoverage/Android.bp
index 6310c77..828c483 100644
--- a/utils/native/libcoverage/Android.bp
+++ b/utils/native/libcoverage/Android.bp
@@ -14,6 +14,10 @@
 // limitations under the License.
 //
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 cc_binary {
     name: "vts_coverage_configure",
 
diff --git a/utils/native/libprofiling/Android.bp b/utils/native/libprofiling/Android.bp
index c9fdc7d..bc72e20 100644
--- a/utils/native/libprofiling/Android.bp
+++ b/utils/native/libprofiling/Android.bp
@@ -14,6 +14,10 @@
 // limitations under the License.
 //
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 cc_library_shared {
 
     name: "libvts_profiling_utils",
diff --git a/utils/native/testability_checker/Android.bp b/utils/native/testability_checker/Android.bp
deleted file mode 100644
index fa61dbb..0000000
--- a/utils/native/testability_checker/Android.bp
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Copyright (C) 2017 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.
-//
-
-cc_defaults {
-    name: "VtsTestabilityCheckerDefaults",
-    shared_libs: [
-        "libbase",
-        "libcutils",
-        "libhidlbase",
-        "liblog",
-        "libselinux",
-        "libtinyxml2",
-        "libutils",
-        "libz",
-    ],
-    static_libs: [
-        "libvintf",
-        "libhidl-gen-utils",
-    ],
-    cflags: [
-        "-Wall",
-        "-Werror",
-    ],
-}
-
-cc_library {
-    name: "libvts_testability_checker",
-    defaults : ["VtsTestabilityCheckerDefaults"],
-    srcs: ["VtsTestabilityChecker.cpp"],
-}
-
-cc_test {
-    name: "libvts_testability_checker_test",
-    defaults : ["VtsTestabilityCheckerDefaults"],
-    srcs: ["VtsTestabilityCheckerTest.cpp"],
-
-    static_libs: [
-        "libgmock",
-        "libvts_testability_checker",
-    ],
-}
-
-cc_binary {
-    name: "vts_testability_checker",
-    defaults : ["VtsTestabilityCheckerDefaults"],
-    srcs: ["VtsTestabilityCheckerMain.cpp"],
-    multilib: {
-        lib64: {
-            suffix: "64",
-        },
-        lib32: {
-            suffix: "32",
-        },
-    },
-    compile_multilib: "both",
-    static_libs: [
-        "libhidl-gen-utils",
-        "libjsoncpp",
-        "libvts_testability_checker",
-    ],
-}
diff --git a/utils/native/testability_checker/VtsTestabilityChecker.cpp b/utils/native/testability_checker/VtsTestabilityChecker.cpp
deleted file mode 100644
index b667c5f..0000000
--- a/utils/native/testability_checker/VtsTestabilityChecker.cpp
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-#define LOG_TAG "VtsTestabilityChecker"
-
-#include "VtsTestabilityChecker.h"
-
-#include <algorithm>
-#include <iostream>
-#include <set>
-
-#include <android-base/strings.h>
-#include <vintf/parse_string.h>
-
-using android::base::Join;
-using android::vintf::Arch;
-using android::vintf::CompatibilityMatrix;
-using android::vintf::gArchStrings;
-using android::vintf::HalManifest;
-using android::vintf::ManifestHal;
-using android::vintf::ManifestInstance;
-using android::vintf::MatrixHal;
-using android::vintf::MatrixInstance;
-using android::vintf::toFQNameString;
-using android::vintf::Transport;
-using android::vintf::Version;
-using android::vintf::operator<<;
-using std::set;
-using std::string;
-using std::vector;
-
-namespace android {
-namespace vts {
-
-bool VtsTestabilityChecker::CheckHalForComplianceTest(
-    const string& hal_package_name, const Version& hal_version,
-    const string& hal_interface_name, const Arch& arch,
-    set<string>* instances) {
-  CHECK(instances) << "instances set should not be NULL.";
-  set<string> famework_hal_instances;
-  set<string> vendor_hal_instances;
-  bool check_framework_hal = CheckFrameworkManifestHal(
-      hal_package_name, hal_version, hal_interface_name, arch,
-      &famework_hal_instances);
-  bool check_vendor_hal =
-      CheckVendorManifestHal(hal_package_name, hal_version, hal_interface_name,
-                             arch, &vendor_hal_instances);
-  set_union(famework_hal_instances.begin(), famework_hal_instances.end(),
-            vendor_hal_instances.begin(), vendor_hal_instances.end(),
-            std::inserter(*instances, instances->begin()));
-  return check_framework_hal || check_vendor_hal;
-}
-
-bool VtsTestabilityChecker::CheckHalForNonComplianceTest(
-    const string& hal_package_name, const Version& hal_version,
-    const string& hal_interface_name, const Arch& arch,
-    set<string>* instances) {
-  CHECK(instances) << "instances set should not be NULL.";
-  set<string> vendor_hal_instances;
-  set<string> test_hal_instances;
-  bool check_vendor_hal =
-      CheckVendorManifestHal(hal_package_name, hal_version, hal_interface_name,
-                             arch, &vendor_hal_instances);
-
-  bool check_test_hal = CheckTestHalWithHwManager(
-      hal_package_name, hal_version, hal_interface_name, &test_hal_instances);
-
-  set_union(vendor_hal_instances.begin(), vendor_hal_instances.end(),
-            test_hal_instances.begin(), test_hal_instances.end(),
-            std::inserter(*instances, instances->begin()));
-  return check_vendor_hal || check_test_hal;
-}
-
-vector<const ManifestInstance*> VtsTestabilityChecker::FindInstance(
-    const vector<ManifestInstance>& manifest_instances,
-    const MatrixInstance& matrix_instance) {
-  vector<const ManifestInstance*> ret;
-  for (const auto& e : manifest_instances) {
-    if (matrix_instance.matchInstance(e.instance())) {
-      ret.push_back(&e);
-    }
-  }
-  return ret;
-}
-
-vector<const ManifestInstance*> VtsTestabilityChecker::FindInterface(
-    const vector<ManifestInstance>& manifest_instances,
-    const MatrixInstance& matrix_instance) {
-  vector<const ManifestInstance*> ret;
-  for (const auto& e : manifest_instances) {
-    if (e.interface() == matrix_instance.interface()) {
-      ret.push_back(&e);
-    }
-  }
-  return ret;
-}
-
-bool VtsTestabilityChecker::CheckFrameworkCompatibleHal(
-    const string& hal_package_name, const Version& hal_version,
-    const string& hal_interface_name, const Arch& arch,
-    set<string>* instances) {
-  CHECK(instances) << "instances set should not be NULL.";
-
-  auto matrix_instances = framework_comp_matrix_->getHidlFqInstances(
-      hal_package_name, hal_version, hal_interface_name);
-  auto manifest_instances = device_hal_manifest_->getHidlFqInstances(
-      hal_package_name, hal_version, hal_interface_name);
-
-  bool testable = false;
-
-  for (const auto& matrix_instance : matrix_instances) {
-    const auto& matched_instances =
-        FindInstance(manifest_instances, matrix_instance);
-    if (!matrix_instance.optional() && matched_instances.empty()) {
-      // In matrix but not in manifest.
-      // The test should still run, but expect the test
-      // to fail (due to incompatible vendor and framework HAL).
-      LOG(ERROR) << "Compatibility error. Hal " << hal_package_name
-                 << " is required by framework but not supported by vendor";
-      if (!hal_interface_name.empty()) {
-        if (!matrix_instance.isRegex()) {
-          instances->insert(matrix_instance.exactInstance());
-        } else {
-          LOG(ERROR) << "Ignore regex-instance '"
-                     << matrix_instance.regexPattern();
-        }
-      }
-      testable |= true;
-      continue;
-    }
-
-    if (hal_interface_name.empty()) {
-      testable |= !matched_instances.empty();
-      continue;
-    }
-
-    auto get_testable_instances =
-        [&](const vector<const vintf::ManifestInstance*>& manifest_instances) {
-          vector<string> ret;
-          for (const auto& manifest_instance : manifest_instances) {
-            if ((manifest_instance->transport() == Transport::PASSTHROUGH &&
-                 CheckPassthroughManifestArch(manifest_instance->arch(),
-                                              arch)) ||
-                manifest_instance->transport() == Transport::HWBINDER) {
-              ret.push_back(manifest_instance->instance());
-            }
-          }
-          return ret;
-        };
-
-    auto testable_instances = get_testable_instances(matched_instances);
-    if (!testable_instances.empty()) {
-      instances->insert(testable_instances.begin(), testable_instances.end());
-      testable |= true;
-      continue;
-    }
-
-    // Special case: if a.h.foo@1.0::IFoo/default is in matrix but /custom
-    // is in manifest, the interface is still testable, but /default should
-    // not be added to instances.
-    const auto& matched_interface_instances =
-        FindInterface(manifest_instances, matrix_instance);
-    auto testable_interfaces =
-        get_testable_instances(matched_interface_instances);
-    if (!testable_interfaces.empty()) {
-      testable |= true;
-      continue;
-    }
-  }
-  if (instances->empty()) {
-    LOG(ERROR) << "Hal "
-               << toFQNameString(hal_package_name, hal_version,
-                                 hal_interface_name)
-               << " has no testable instance";
-  }
-  return testable;
-}
-
-bool VtsTestabilityChecker::CheckPassthroughManifestArch(
-    const Arch& manifest_arch, const Arch& arch) {
-  switch (arch) {
-    case Arch::ARCH_32: {
-      if (android::vintf::has32(manifest_arch)) {
-        return true;
-      }
-      break;
-    }
-    case Arch::ARCH_64: {
-      if (android::vintf::has64(manifest_arch)) {
-        return true;
-      }
-      break;
-    }
-    default: {
-      LOG(ERROR) << "Unexpected arch to check: " << arch;
-      break;
-    }
-  }
-  return false;
-}
-
-bool VtsTestabilityChecker::CheckFrameworkManifestHal(
-    const string& hal_package_name, const Version& hal_version,
-    const string& hal_interface_name, const Arch& arch,
-    set<string>* instances) {
-  return CheckManifestHal(framework_hal_manifest_, hal_package_name,
-                          hal_version, hal_interface_name, arch, instances);
-}
-
-bool VtsTestabilityChecker::CheckVendorManifestHal(
-    const string& hal_package_name, const Version& hal_version,
-    const string& hal_interface_name, const Arch& arch,
-    set<string>* instances) {
-  return CheckManifestHal(device_hal_manifest_, hal_package_name, hal_version,
-                          hal_interface_name, arch, instances);
-}
-
-bool VtsTestabilityChecker::CheckManifestHal(const HalManifest* hal_manifest,
-                                             const string& hal_package_name,
-                                             const Version& hal_version,
-                                             const string& hal_interface_name,
-                                             const Arch& arch,
-                                             set<string>* instances) {
-  CHECK(instances) << "instances set should not be NULL.";
-
-  const auto& manifest_instances = hal_manifest->getHidlFqInstances(
-      hal_package_name, hal_version, hal_interface_name);
-
-  const auto& fq_instance_name =
-      toFQNameString(hal_package_name, hal_version, hal_interface_name);
-
-  if (manifest_instances.empty()) {
-    LOG(DEBUG) << "Does not find instances for " << fq_instance_name
-               << " in manifest file";
-    return false;
-  }
-
-  bool testable = false;
-  for (const auto& manifest_instance : manifest_instances) {
-    if (manifest_instance.transport() == Transport::PASSTHROUGH &&
-        !CheckPassthroughManifestArch(manifest_instance.arch(), arch)) {
-      LOG(DEBUG) << "Manifest HAL " << fq_instance_name
-                 << " is passthrough and does not support arch " << arch;
-      continue;  // skip this instance
-    }
-    if (!hal_interface_name.empty()) {
-      instances->insert(manifest_instance.instance());
-    }
-    testable = true;
-  }
-  return testable;
-}
-
-bool VtsTestabilityChecker::CheckTestHalWithHwManager(
-    const string& hal_package_name, const Version& hal_version,
-    const string& hal_interface_name, set<string>* instances) {
-  CHECK(instances) << "instances set should not be NULL.";
-
-  string fqName =
-      toFQNameString(hal_package_name, hal_version, hal_interface_name);
-  bool registered = false;
-  hardware::Return<void> res;
-  if (!hal_interface_name.empty()) {
-    res = sm_->listByInterface(fqName, [&](const auto& registered_instances) {
-      for (const string& instance : registered_instances) {
-        registered = true;
-        instances->insert(instance);
-      }
-    });
-  } else {  // handle legacy data without interface info.
-    res = sm_->list([&](const auto& services) {
-      for (const string& service : services) {
-        if (service.find(fqName) == 0) {
-          registered = true;
-          break;
-        }
-      }
-    });
-  }
-  if (!res.isOk()) {
-    LOG(ERROR) << "failed to check services: " << res.description();
-    return false;
-  }
-  return registered;
-}
-
-}  // namespace vts
-}  // namespace android
diff --git a/utils/native/testability_checker/VtsTestabilityChecker.h b/utils/native/testability_checker/VtsTestabilityChecker.h
deleted file mode 100644
index a7ebb83..0000000
--- a/utils/native/testability_checker/VtsTestabilityChecker.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-
-#ifndef UTILS_NATIVE_TESTABILITY_CHECKER_H_
-#define UTILS_NATIVE_TESTABILITY_CHECKER_H_
-
-#include <set>
-
-#include <android-base/logging.h>
-#include <android/hidl/manager/1.0/IServiceManager.h>
-#include <vintf/CompatibilityMatrix.h>
-#include <vintf/HalManifest.h>
-
-using android::hidl::manager::V1_0::IServiceManager;
-using android::vintf::Arch;
-using android::vintf::CompatibilityMatrix;
-using android::vintf::HalManifest;
-using android::vintf::ManifestHal;
-using android::vintf::MatrixHal;
-using android::vintf::Version;
-using std::set;
-using std::string;
-using std::vector;
-
-namespace android {
-namespace vts {
-
-// Library class to decide whether to run a test against given hal based on
-// the system compatibility matrix and device manifest files. Also collect the
-// instance names for testing if the decision is true.
-class VtsTestabilityChecker {
- public:
-  VtsTestabilityChecker(const CompatibilityMatrix* framework_comp_matrix,
-                        const HalManifest* framework_hal_manifest,
-                        const HalManifest* device_hal_manifest,
-                        sp<IServiceManager> sm)
-      : framework_comp_matrix_(framework_comp_matrix),
-        framework_hal_manifest_(framework_hal_manifest),
-        device_hal_manifest_(device_hal_manifest),
-        sm_(sm) {
-    CHECK(framework_comp_matrix_) << "framework_comp_matrix null.";
-    CHECK(framework_hal_manifest_) << "framework_hal_manifest null.";
-    CHECK(device_hal_manifest_) << "device_hal_manifest null.";
-  };
-
-  // Check whether we should run a compliance test against the given hal with
-  // the package name, version and interface name. Arch (32 or 64) info is
-  // required if the hal is a passthrough hal.
-  // Return true to indicate we should run the test, false otherwise.
-  // Store the instances name to run the test, instance should be empty set if
-  // we determine not to run the test (i,e. return value false).
-  bool CheckHalForComplianceTest(const string& hal_package_name,
-                                 const Version& hal_version,
-                                 const string& hal_interface_name,
-                                 const Arch& arch, set<string>* instances);
-
-  // Check whether we should run a non-compliance test against the given hal
-  // with the package name, version and interface name. Arch (32 or 64) info is
-  // required if the hal is a passthrough hal.
-  // Return true to indicate we should run the test, false otherwise.
-  // Store the instances name to run the test, instance should be empty set if
-  // we determine not to run the test (i,e. return value false).
-  bool CheckHalForNonComplianceTest(const string& hal_package_name,
-                                    const Version& hal_version,
-                                    const string& hal_interface_name,
-                                    const Arch& arch, set<string>* instances);
- private:
-  // Internal method to check the given hal against the framework compatibility
-  // matrix and device manifest.
-  // If the hal is required by the framework, return true with the corresponding
-  // instance names. If the hal is optional for framework, return true if vendor
-  // supports the hal with the corresponding instance names, false otherwise.
-  bool CheckFrameworkCompatibleHal(const string& hal_package_name,
-                                   const Version& hal_version,
-                                   const string& hal_interface_name,
-                                   const Arch& arch, set<string>* instances);
-
-  // Internal method to check whether the given hal is supported by vendor
-  // (i.e exists in the vendor manifest file). Store the corresponding instance
-  // names if supported..
-  // Arch (32 or 64) info is required if the hal is a passthrough hal.
-  bool CheckVendorManifestHal(const string& hal_package_name,
-                              const Version& hal_version,
-                              const string& hal_interface_name,
-                              const Arch& arch, set<string>* instances);
-
-  // Internal method to check whether the given hal is supported by framework
-  // (i.e exists in the framework manifest file). Store the corresponding
-  // instance names if supported.
-  // Arch (32 or 64) info is required if the hal is a passthrough hal.
-  bool CheckFrameworkManifestHal(const string& hal_package_name,
-                                 const Version& hal_version,
-                                 const string& hal_interface_name,
-                                 const Arch& arch, set<string>* instances);
-
-  // Internal method to check whether the given hal is registered with
-  // hwservicemanager. Store the corresponding instance names if registered.
-  // This is used to check test hals that is not listed in manifest files.
-  // Note this could not check for passthrough hals.
-  bool CheckTestHalWithHwManager(const string& hal_package_name,
-                                 const Version& hal_version,
-                                 const string& hal_interface_name,
-                                 set<string>* instances);
-
-  // Helper method to check whether the hal_manifest support the
-  // package@version::interface and arch (for passthrough hal). Store the
-  // corresponding instance names if supported.
-  bool CheckManifestHal(const HalManifest* hal_manifest,
-                        const string& hal_package_name,
-                        const Version& hal_version,
-                        const string& hal_interface_name, const Arch& arch,
-                        set<string>* instances);
-
-  // Helper method to check whether a passthrough hal support the given arch
-  // (32 or 64).
-  bool CheckPassthroughManifestArch(const Arch& manifest_arch,
-                                    const Arch& arch);
-
-  // Helper method to find matching instances from a list of
-  // manifest_instances.
-  vector<const vintf::ManifestInstance*> FindInstance(
-      const vector<vintf::ManifestInstance>& manifest_instances,
-      const vintf::MatrixInstance& matrix_instance);
-
-  // Helper method to find matching interfaces from a list of
-  // manifest_instances.
-  vector<const vintf::ManifestInstance*> FindInterface(
-      const vector<vintf::ManifestInstance>& manifest_instances,
-      const vintf::MatrixInstance& matrix_instance);
-
-  const CompatibilityMatrix* framework_comp_matrix_;  // Do not own.
-  const HalManifest* framework_hal_manifest_;         // Do not own.
-  const HalManifest* device_hal_manifest_;            // Do not own.
-  sp<IServiceManager> sm_;
-
-  friend class
-      VtsTestabilityCheckerTest_CheckFrameworkCompatibleHalOptional_Test;
-  friend class
-      VtsTestabilityCheckerTest_CheckFrameworkCompatibleHalRequired_Test;
-};
-
-}  // namespace vts
-}  // namespace android
-#endif  // UTILS_NATIVE_TESTABILITY_CHECKER_H_
diff --git a/utils/native/testability_checker/VtsTestabilityCheckerMain.cpp b/utils/native/testability_checker/VtsTestabilityCheckerMain.cpp
deleted file mode 100644
index 3bf0d15..0000000
--- a/utils/native/testability_checker/VtsTestabilityCheckerMain.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright 2017 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.
- */
-#include <getopt.h>
-#include <json/json.h>
-#include <iostream>
-
-#include <hidl-util/FQName.h>
-#include <hidl/ServiceManagement.h>
-#include <vintf/VintfObject.h>
-
-#include "VtsTestabilityChecker.h"
-
-using android::hidl::manager::V1_0::IServiceManager;
-using android::vintf::VintfObject;
-using std::cerr;
-using std::cout;
-using std::endl;
-
-// Example:
-// vts_testability_checker --compliance android.hardware.foo@1.0::IFoo
-// vts_testability_checker -c -b 32 android.hardware.foo@1.0::IFoo
-// vts_testability_checker android.hardware.foo@1.0
-void ShowUsage() {
-  cout << "Usage: vts_hal_testability_checker [options] <hal name>\n"
-          "--compliance:     Whether to check for compliance test.\n"
-          "--bitness:        Test bitness.\n"
-          "--help:           Show help\n";
-  exit(1);
-}
-
-const option long_opts[] = {{"help", no_argument, nullptr, 'h'},
-                            {"compliance", no_argument, nullptr, 'c'},
-                            {"bitness", required_argument, nullptr, 'b'},
-                            {nullptr, 0, nullptr, 0}};
-
-int main(int argc, char** argv) {
-  string bitness = "32";
-  bool is_compliance_test = false;
-
-  while (true) {
-    int opt = getopt_long(argc, argv, "hcb:", long_opts, nullptr);
-    if (opt == -1) {
-      break;
-    }
-
-    switch (opt) {
-      case 'h':
-      case '?':
-        ShowUsage();
-        return 0;
-      case 'c': {
-        is_compliance_test = true;
-        break;
-      }
-      case 'b': {
-        bitness = string(optarg);
-        if (bitness != "32" && bitness != "64") {
-          cerr << "Invalid bitness " << bitness << endl;
-          return -1;
-        }
-        break;
-      }
-      default:
-        cerr << "getopt_long returned unexpected value " << opt << endl;
-        return -1;
-    }
-  }
-
-  if (optind != argc - 1) {
-    cerr << "Must specify the hal name (see --help)." << endl;
-    return -1;
-  }
-
-  android::FQName hal_fq_name;
-  if (!android::FQName::parse(argv[optind], &hal_fq_name)) {
-    cerr << "Invalid hal name: " << argv[optind] << endl;
-    return -1;
-  }
-
-  string hal_package_name = hal_fq_name.package();
-  size_t hal_major_version = hal_fq_name.getPackageMajorVersion();
-  size_t hal_minor_version = hal_fq_name.getPackageMinorVersion();
-  string hal_interface_name = hal_fq_name.name();
-  Version hal_version(hal_major_version, hal_minor_version);
-
-  Arch arch;
-  if (bitness == "32") {
-    arch = Arch::ARCH_32;
-  } else if (bitness == "64") {
-    arch = Arch::ARCH_64;
-  }
-
-  auto framework_comp_matrix = VintfObject::GetFrameworkCompatibilityMatrix();
-  if (!framework_comp_matrix) {
-    cerr << "Failed to get framework compatibility matrix." << endl;
-    return -1;
-  }
-
-  auto device_hal_manifest = VintfObject::GetDeviceHalManifest();
-  if (!device_hal_manifest) {
-    cerr << "Failed to get device manifest." << endl;
-    return -1;
-  }
-
-  auto framework_hal_manifest = VintfObject::GetFrameworkHalManifest();
-  if (!framework_hal_manifest) {
-    cerr << "Failed to get framework manifest." << endl;
-    return -1;
-  }
-
-  android::sp<IServiceManager> sm =
-      ::android::hardware::defaultServiceManager();
-  if (sm == nullptr) {
-    cerr << "failed to get IServiceManager" << endl;
-    return -1;
-  }
-
-  android::vts::VtsTestabilityChecker checker(framework_comp_matrix.get(),
-                                              framework_hal_manifest.get(),
-                                              device_hal_manifest.get(), sm);
-  set<string> instances;
-  bool result = false;
-  if (is_compliance_test) {
-    result = checker.CheckHalForComplianceTest(
-        hal_package_name, hal_version, hal_interface_name, arch, &instances);
-  } else {
-    result = checker.CheckHalForNonComplianceTest(
-        hal_package_name, hal_version, hal_interface_name, arch, &instances);
-  }
-
-  // Create json output.
-  Json::Value root(Json::objectValue);
-  root["Testable"] = Json::Value(result);
-  root["instances"] = Json::Value(Json::arrayValue);
-  for (const string& instance : instances) {
-    root["instances"].append(instance);
-  }
-
-  Json::FastWriter writer;
-  std::string json_output = writer.write(root);
-
-  cout << json_output;
-  return 0;
-}
diff --git a/utils/native/testability_checker/VtsTestabilityCheckerTest.cpp b/utils/native/testability_checker/VtsTestabilityCheckerTest.cpp
deleted file mode 100644
index 38822bc..0000000
--- a/utils/native/testability_checker/VtsTestabilityCheckerTest.cpp
+++ /dev/null
@@ -1,588 +0,0 @@
-/*
- * Copyright (C) 2017 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.
- */
-#include "VtsTestabilityChecker.h"
-
-#include <gmock/gmock.h>
-#include <gtest/gtest.h>
-
-#include <vintf/CompatibilityMatrix.h>
-#include <vintf/HalManifest.h>
-#include <vintf/parse_xml.h>
-
-using namespace testing;
-
-using android::hidl::base::V1_0::IBase;
-using android::hidl::manager::V1_0::IServiceManager;
-using android::hidl::manager::V1_0::IServiceNotification;
-using android::hardware::hidl_array;
-using android::hardware::hidl_death_recipient;
-using android::hardware::hidl_handle;
-using android::hardware::hidl_string;
-using android::hardware::hidl_vec;
-using android::vintf::Arch;
-using android::vintf::CompatibilityMatrix;
-using android::vintf::HalManifest;
-using android::vintf::ManifestHal;
-using android::vintf::MatrixHal;
-using android::vintf::Version;
-using android::vintf::XmlConverter;
-using android::vintf::gCompatibilityMatrixConverter;
-using android::vintf::gHalManifestConverter;
-using std::set;
-using std::string;
-
-namespace android {
-namespace vts {
-
-class MockServiceManager : public IServiceManager {
- public:
-  template <typename T>
-  using R = ::android::hardware::Return<T>;
-  using String = const hidl_string &;
-  ~MockServiceManager() = default;
-
-#define MOCK_METHOD_CB(name) \
-  MOCK_METHOD1(name, R<void>(IServiceManager::name##_cb))
-
-  MOCK_METHOD2(get, R<sp<IBase>>(String, String));
-  MOCK_METHOD2(add, R<bool>(String, const sp<IBase> &));
-  MOCK_METHOD2(getTransport, R<IServiceManager::Transport>(String, String));
-  MOCK_METHOD_CB(list);
-  MOCK_METHOD2(listByInterface, R<void>(String, listByInterface_cb));
-  MOCK_METHOD3(registerForNotifications,
-               R<bool>(String, String, const sp<IServiceNotification> &));
-  MOCK_METHOD_CB(debugDump);
-  MOCK_METHOD2(registerPassthroughClient, R<void>(String, String));
-  MOCK_METHOD_CB(interfaceChain);
-  MOCK_METHOD2(debug,
-               R<void>(const hidl_handle &, const hidl_vec<hidl_string> &));
-  MOCK_METHOD_CB(interfaceDescriptor);
-  MOCK_METHOD_CB(getHashChain);
-  MOCK_METHOD0(setHalInstrumentation, R<void>());
-  MOCK_METHOD2(linkToDeath,
-               R<bool>(const sp<hidl_death_recipient> &, uint64_t));
-  MOCK_METHOD0(ping, R<void>());
-  MOCK_METHOD_CB(getDebugInfo);
-  MOCK_METHOD0(notifySyspropsChanged, R<void>());
-  MOCK_METHOD1(unlinkToDeath, R<bool>(const sp<hidl_death_recipient> &));
-};
-
-class VtsTestabilityCheckerTest : public ::testing::Test {
- public:
-  virtual void SetUp() override {
-    test_cm_ = testFrameworkCompMatrix();
-    test_fm_ = testFrameworkManfiest();
-    test_vm_ = testDeviceManifest();
-    sm_ = new NiceMock<MockServiceManager>();
-    checker_.reset(
-        new VtsTestabilityChecker(&test_cm_, &test_fm_, &test_vm_, sm_));
-  }
-  virtual void TearDown() override {}
-
-  HalManifest testDeviceManifest() {
-    HalManifest vm;
-    string xml =
-        "<manifest version=\"1.0\" type=\"framework\">\n"
-        "    <hal format=\"hidl\">\n"
-        "        <name>android.hardware.audio</name>\n"
-        "        <transport arch=\"32\">passthrough</transport>\n"
-        "        <version>2.0</version>\n"
-        "        <interface>\n"
-        "            <name>IAudio</name>\n"
-        "            <instance>default</instance>\n"
-        "        </interface>\n"
-        "    </hal>\n"
-        "    <hal format=\"hidl\">\n"
-        "        <name>android.hardware.camera</name>\n"
-        "        <transport>hwbinder</transport>\n"
-        "        <version>1.2</version>\n"
-        "        <version>2.5</version>\n"
-        "        <interface>\n"
-        "            <name>ICamera</name>\n"
-        "            <instance>legacy/0</instance>\n"
-        "        </interface>\n"
-        "        <interface>\n"
-        "            <name>IBetterCamera</name>\n"
-        "            <instance>camera</instance>\n"
-        "            <instance>default</instance>\n"
-        "        </interface>\n"
-        "    </hal>\n"
-        "    <hal format=\"hidl\">\n"
-        "        <name>android.hardware.drm</name>\n"
-        "        <transport>hwbinder</transport>\n"
-        "        <version>2.0</version>\n"
-        "        <interface>\n"
-        "            <name>IDrm</name>\n"
-        "            <instance>default</instance>\n"
-        "        </interface>\n"
-        "    </hal>\n"
-        "    <hal format=\"hidl\">\n"
-        "        <name>android.hardware.nfc</name>\n"
-        "        <transport>hwbinder</transport>\n"
-        "        <version>1.0</version>\n"
-        "        <interface>\n"
-        "            <name>INfc</name>\n"
-        "            <instance>default</instance>\n"
-        "        </interface>\n"
-        "    </hal>\n"
-        "    <hal format=\"hidl\">\n"
-        "        <name>android.hardware.renderscript</name>\n"
-        "        <transport arch=\"32+64\">passthrough</transport>\n"
-        "        <version>1.0</version>\n"
-        "        <interface>\n"
-        "            <name>IRenderscript</name>\n"
-        "            <instance>default</instance>\n"
-        "        </interface>\n"
-        "    </hal>\n"
-        "    <hal format=\"hidl\">\n"
-        "        <name>android.hardware.vibrator</name>\n"
-        "        <transport>hwbinder</transport>\n"
-        "        <version>1.0</version>\n"
-        "        <interface>\n"
-        "            <name>IVibrator</name>\n"
-        "            <instance>default</instance>\n"
-        "        </interface>\n"
-        "    </hal>\n"
-        "</manifest>\n";
-    gHalManifestConverter(&vm, xml);
-    return vm;
-  }
-
-  HalManifest testFrameworkManfiest() {
-    HalManifest fm;
-    string xml =
-        "<manifest version=\"1.0\" type=\"framework\">\n"
-        "    <hal format=\"hidl\">\n"
-        "        <name>android.hardware.nfc</name>\n"
-        "        <transport>hwbinder</transport>\n"
-        "        <version>1.0</version>\n"
-        "        <interface>\n"
-        "            <name>INfc</name>\n"
-        "            <instance>default</instance>\n"
-        "            <instance>fnfc</instance>\n"
-        "        </interface>\n"
-        "    </hal>\n"
-        "</manifest>\n";
-    gHalManifestConverter(&fm, xml);
-    return fm;
-  }
-
-  CompatibilityMatrix testFrameworkCompMatrix() {
-    CompatibilityMatrix cm;
-    string xml =
-        "<compatibility-matrix version=\"1.0\" type=\"framework\">\n"
-        "    <hal format=\"native\" optional=\"true\">\n"
-        "        <name>android.hardware.audio</name>\n"
-        "        <version>2.0-1</version>\n"
-        "        <interface>\n"
-        "            <name>IAudio</name>\n"
-        "            <instance>default</instance>\n"
-        "        </interface>\n"
-        "    </hal>\n"
-        "    <hal format=\"native\" optional=\"true\">\n"
-        "        <name>android.hardware.camera</name>\n"
-        "        <version>2.2-3</version>\n"
-        "        <version>4.5-6</version>\n"
-        "        <interface>\n"
-        "            <name>ICamera</name>\n"
-        "            <instance>default</instance>\n"
-        "        </interface>\n"
-        "        <interface>\n"
-        "            <name>IBetterCamera</name>\n"
-        "            <instance>camera</instance>\n"
-        "        </interface>\n"
-        "    </hal>\n"
-        "    <hal format=\"native\" optional=\"false\">\n"
-        "        <name>android.hardware.drm</name>\n"
-        "        <version>1.0-1</version>\n"
-        "        <interface>\n"
-        "            <name>IDrm</name>\n"
-        "            <instance>default</instance>\n"
-        "            <instance>drm</instance>\n"
-        "        </interface>\n"
-        "        <interface>\n"
-        "            <name>IDrmTest</name>\n"
-        "            <instance>default</instance>\n"
-        "        </interface>\n"
-        "    </hal>\n"
-        "    <hal format=\"native\" optional=\"false\">\n"
-        "        <name>android.hardware.light</name>\n"
-        "        <version>2.0-1</version>\n"
-        "        <interface>\n"
-        "            <name>ILight</name>\n"
-        "            <instance>default</instance>\n"
-        "        </interface>\n"
-        "    </hal>\n"
-        "    <hal format=\"native\" optional=\"true\">\n"
-        "        <name>android.hardware.nfc</name>\n"
-        "        <version>1.0-2</version>\n"
-        "        <interface>\n"
-        "            <name>INfc</name>\n"
-        "            <instance>default</instance>\n"
-        "            <instance>nfc</instance>\n"
-        "        </interface>\n"
-        "        <interface>\n"
-        "            <name>INfcTest</name>\n"
-        "            <instance>default</instance>\n"
-        "        </interface>\n"
-        "    </hal>\n"
-        "    <hal format=\"native\" optional=\"true\">\n"
-        "        <name>android.hardware.radio</name>\n"
-        "        <version>1.0-1</version>\n"
-        "        <interface>\n"
-        "            <name>IRadio</name>\n"
-        "            <instance>default</instance>\n"
-        "        </interface>\n"
-        "    </hal>\n"
-        "    <hal format=\"native\" optional=\"false\">\n"
-        "        <name>android.hardware.vibrator</name>\n"
-        "        <version>2.0</version>\n"
-        "        <interface>\n"
-        "            <name>IVibrator</name>\n"
-        "            <instance>default</instance>\n"
-        "        </interface>\n"
-        "    </hal>\n"
-        "</compatibility-matrix>\n";
-    gCompatibilityMatrixConverter(&cm, xml);
-    return cm;
-  }
-
- protected:
-  CompatibilityMatrix test_cm_;
-  HalManifest test_fm_;
-  HalManifest test_vm_;
-  sp<MockServiceManager> sm_;
-  std::unique_ptr<VtsTestabilityChecker> checker_;
-};
-
-TEST_F(VtsTestabilityCheckerTest, CheckComplianceTest) {
-  set<string> instances;
-  // Check non-existent hal.
-  EXPECT_FALSE(checker_->CheckHalForComplianceTest(
-      "nonexistent", {1, 0}, "None", Arch::ARCH_32, &instances));
-  EXPECT_TRUE(instances.empty());
-  // Check hal with unsupported version by vendor.
-  EXPECT_FALSE(checker_->CheckHalForComplianceTest(
-      "android.hardware.nfc", {2, 0}, "INfc", Arch::ARCH_32, &instances));
-  EXPECT_TRUE(instances.empty());
-  // Check hal with unsupported interface by vendor.
-  EXPECT_FALSE(checker_->CheckHalForComplianceTest(
-      "android.hardware.nfc", {1, 0}, "INfcTest", Arch::ARCH_32, &instances));
-  EXPECT_TRUE(instances.empty());
-  // Check hal with unsupported arch by vendor.
-  EXPECT_FALSE(checker_->CheckHalForComplianceTest(
-      "android.hardware.audio", {1, 0}, "IAudio", Arch::ARCH_64, &instances));
-  EXPECT_TRUE(instances.empty());
-  // Check hal claimed by framework but not supported by vendor (error case).
-  EXPECT_FALSE(checker_->CheckHalForComplianceTest(
-      "android.hardware.light", {2, 0}, "ILight", Arch::ARCH_32, &instances));
-  EXPECT_TRUE(instances.empty());
-  // Check hal interface claimed by framework but not supported by vendor (error
-  // case).
-  EXPECT_FALSE(checker_->CheckHalForComplianceTest(
-      "android.hardware.drm", {1, 0}, "IDrmTest", Arch::ARCH_32, &instances));
-  EXPECT_TRUE(instances.empty());
-
-  // Check hal claimed by framework and supported by vendor.
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckHalForComplianceTest("android.hardware.vibrator",
-                                                  {1, 0}, "IVibrator",
-                                                  Arch::ARCH_32, &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"default"})));
-
-  // Check hal not claimed by framework but supported by vendor.
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckHalForComplianceTest(
-      "android.hardware.renderscript", {1, 0}, "IRenderscript", Arch::ARCH_32,
-      &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"default"})));
-
-  // Check hal with version not claimed by framework by supported by vendor.
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckHalForComplianceTest("android.hardware.vibrator",
-                                                  {1, 0}, "IVibrator",
-                                                  Arch::ARCH_32, &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"default"})));
-
-  // Check hal with instance not claimed by framework but supported by vendor.
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckHalForComplianceTest(
-      "android.hardware.camera", {2, 2}, "ICamera", Arch::ARCH_32, &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"legacy/0"})));
-
-  // Check hal with additional vendor instance not claimed by framework.
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckHalForComplianceTest("android.hardware.camera",
-                                                  {1, 2}, "IBetterCamera",
-                                                  Arch::ARCH_32, &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"default", "camera"})));
-
-  // Check hal supported by both framework and vendor.
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckHalForComplianceTest(
-      "android.hardware.nfc", {1, 0}, "INfc", Arch::ARCH_32, &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"default", "fnfc"})));
-
-  // Check hal instance claimed by framework but not supported by vendor.
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckHalForComplianceTest(
-      "android.hardware.drm", {2, 0}, "IDrm", Arch::ARCH_32, &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"default"})));
-
-  // Check an optional hal with empty interface (legacy input).
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckHalForComplianceTest(
-      "android.hardware.vibrator", {1, 0}, "" /*interface*/, Arch::ARCH_EMPTY,
-      &instances));
-  EXPECT_TRUE(instances.empty());
-}
-
-TEST_F(VtsTestabilityCheckerTest, CheckNonComplianceTest) {
-  set<string> instances;
-  ON_CALL(*sm_, listByInterface(_, _))
-      .WillByDefault(
-          Invoke([](hidl_string str, IServiceManager::listByInterface_cb cb) {
-            if (str == "android.hardware.foo@1.0::IFoo") {
-              cb({"default", "footest"});
-            } else if (str == "android.hardware.nfc@3.0::INfc") {
-              cb({"default"});
-            } else if (str == "android.hardware.drm@2.0::IDrm") {
-              cb({"drmtest"});
-            }
-            return hardware::Void();
-          }));
-
-  ON_CALL(*sm_, list(_)).WillByDefault(Invoke([](IServiceManager::list_cb cb) {
-    cb({"android.hardware.foo@1.0::IFoo/default",
-        "android.hardware.foo@1.0::IFoo/footest",
-        "android.hardware.nfc@3.0::INfc/default",
-        "android.hardware.drm@2.0::IDrm/drmtest"});
-    return hardware::Void();
-  }));
-
-  // Check non-existent hal.
-  EXPECT_FALSE(checker_->CheckHalForNonComplianceTest(
-      "non-existent", {1, 0}, "None", Arch::ARCH_32, &instances));
-  EXPECT_TRUE(instances.empty());
-  // Check hal with unsupported version by vendor.
-  EXPECT_FALSE(checker_->CheckHalForNonComplianceTest(
-      "android.hardware.nfc", {2, 0}, "INfc", Arch::ARCH_32, &instances));
-  EXPECT_TRUE(instances.empty());
-  // Check hal with unsupported interface by vendor.
-  EXPECT_FALSE(checker_->CheckHalForNonComplianceTest(
-      "android.hardware.nfc", {1, 0}, "INfcTest", Arch::ARCH_32, &instances));
-  EXPECT_TRUE(instances.empty());
-  // Check hal with unsupported arch by vendor.
-  EXPECT_FALSE(checker_->CheckHalForNonComplianceTest(
-      "android.hardware.audio", {1, 0}, "IAudio", Arch::ARCH_64, &instances));
-  EXPECT_TRUE(instances.empty());
-  // Check hal claimed by framework but not supported by vendor (error case).
-  EXPECT_FALSE(checker_->CheckHalForNonComplianceTest(
-      "android.hardware.light", {2, 0}, "ILight", Arch::ARCH_32, &instances));
-  EXPECT_TRUE(instances.empty());
-  // Check hal interface claimed by framework but not supported by vendor (error
-  // case).
-  EXPECT_FALSE(checker_->CheckHalForNonComplianceTest(
-      "android.hardware.drm", {1, 0}, "IDrmTest", Arch::ARCH_32, &instances));
-  EXPECT_TRUE(instances.empty());
-
-  // Check hal claimed by framework and supported by vendor.
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckHalForNonComplianceTest(
-      "android.hardware.vibrator", {1, 0}, "IVibrator", Arch::ARCH_32,
-      &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"default"})));
-
-  // Check hal not claimed by framework but supported by vendor.
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckHalForNonComplianceTest(
-      "android.hardware.renderscript", {1, 0}, "IRenderscript", Arch::ARCH_32,
-      &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"default"})));
-
-  // Check hal with version not claimed by framework by supported by vendor.
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckHalForNonComplianceTest(
-      "android.hardware.vibrator", {1, 0}, "IVibrator", Arch::ARCH_32,
-      &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"default"})));
-
-  // Check hal with instance not claimed by framework but supported by vendor.
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckHalForNonComplianceTest(
-      "android.hardware.camera", {2, 2}, "ICamera", Arch::ARCH_32, &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"legacy/0"})));
-
-  // Check hal with additional vendor instance not claimed by framework.
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckHalForNonComplianceTest(
-      "android.hardware.camera", {1, 2}, "IBetterCamera", Arch::ARCH_32,
-      &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"default", "camera"})));
-
-  // Check hal supported by both framework and vendor.
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckHalForNonComplianceTest(
-      "android.hardware.nfc", {1, 0}, "INfc", Arch::ARCH_32, &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"default"})));
-
-  // Check an optional hal with empty interface (legacy input).
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckHalForNonComplianceTest(
-      "android.hardware.vibrator", {1, 0}, "" /*interface*/, Arch::ARCH_EMPTY,
-      &instances));
-  EXPECT_TRUE(instances.empty());
-
-  // Check hal only registered with hwmanger.
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckHalForNonComplianceTest(
-      "android.hardware.foo", {1, 0}, "IFoo", Arch::ARCH_EMPTY, &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"default", "footest"})));
-
-  // Check hal with version only registered with hwmanger.
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckHalForNonComplianceTest(
-      "android.hardware.nfc", {3, 0}, "INfc", Arch::ARCH_EMPTY, &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"default"})));
-
-  // Check hal with additional instance registered with hwmanger.
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckHalForNonComplianceTest(
-      "android.hardware.drm", {2, 0}, "IDrm", Arch::ARCH_EMPTY, &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"default", "drmtest"})));
-
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckHalForNonComplianceTest(
-      "android.hardware.foo", {1, 0}, "", Arch::ARCH_EMPTY, &instances));
-  EXPECT_TRUE(instances.empty());
-}
-
-TEST_F(VtsTestabilityCheckerTest, CheckFrameworkCompatibleHalOptional) {
-  set<string> instances;
-  // Check non-existent hal.
-  EXPECT_FALSE(checker_->CheckFrameworkCompatibleHal(
-      "nonexistent", {1, 0}, "None", Arch::ARCH_EMPTY, &instances));
-  EXPECT_TRUE(instances.empty());
-
-  // Check hal not required by framework
-  EXPECT_FALSE(checker_->CheckFrameworkCompatibleHal(
-      "android.hardware.renderscript", {1, 0}, "IRenderscript",
-      Arch::ARCH_EMPTY, &instances));
-  EXPECT_TRUE(instances.empty());
-
-  // Check hal with unsupported version.
-  EXPECT_FALSE(checker_->CheckFrameworkCompatibleHal(
-      "android.hardware.camera", {1, 0}, "ICamera", Arch::ARCH_EMPTY,
-      &instances));
-  EXPECT_TRUE(instances.empty());
-
-  // Check hal with non-existent interface.
-  EXPECT_FALSE(checker_->CheckFrameworkCompatibleHal(
-      "android.hardware.camera", {1, 2}, "None", Arch::ARCH_EMPTY, &instances));
-  EXPECT_TRUE(instances.empty());
-
-  // Check an optional hal not supported by vendor.
-  EXPECT_FALSE(checker_->CheckFrameworkCompatibleHal(
-      "android.hardware.radio", {1, 0}, "IRadio", Arch::ARCH_EMPTY,
-      &instances));
-  EXPECT_TRUE(instances.empty());
-
-  // Check an optional hal with version not supported by vendor.
-  EXPECT_FALSE(checker_->CheckFrameworkCompatibleHal(
-      "android.hardware.camera", {4, 5}, "ICamera", Arch::ARCH_EMPTY,
-      &instances));
-  EXPECT_TRUE(instances.empty());
-
-  // Check an optional hal with interface not supported by vendor.
-  EXPECT_FALSE(checker_->CheckFrameworkCompatibleHal(
-      "android.hardware.nfc", {4, 5}, "INfcTest", Arch::ARCH_EMPTY,
-      &instances));
-  EXPECT_TRUE(instances.empty());
-
-  // Check an option passthrough hal with unsupported arch.
-  EXPECT_FALSE(checker_->CheckFrameworkCompatibleHal(
-      "android.hardware.audio", {2, 0}, "IAudio", Arch::ARCH_64, &instances));
-  EXPECT_TRUE(instances.empty());
-
-  // Check an optional hal supported by vendor but with no compatible
-  // instance.
-  EXPECT_TRUE(checker_->CheckFrameworkCompatibleHal(
-      "android.hardware.camera", {2, 2}, "ICamera", Arch::ARCH_EMPTY,
-      &instances));
-  EXPECT_TRUE(instances.empty());
-
-  // Check an optional hal supported by vendor.
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckFrameworkCompatibleHal(
-      "android.hardware.camera", {2, 2}, "IBetterCamera", Arch::ARCH_EMPTY,
-      &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"camera"})));
-
-  // Check an optional passthrough hal supported by vendor.
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckFrameworkCompatibleHal(
-      "android.hardware.audio", {2, 0}, "IAudio", Arch::ARCH_32, &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"default"})));
-
-  // Check an optional hal with empty interface (legacy input).
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckFrameworkCompatibleHal(
-      "android.hardware.camera", {2, 2}, "" /*interface*/, Arch::ARCH_EMPTY,
-      &instances));
-  EXPECT_TRUE(instances.empty());
-}
-
-TEST_F(VtsTestabilityCheckerTest, CheckFrameworkCompatibleHalRequired) {
-  set<string> instances;
-  // Check a required hal not supported by vendor.
-  EXPECT_TRUE(checker_->CheckFrameworkCompatibleHal(
-      "android.hardware.light", {2, 0}, "ILight", Arch::ARCH_32, &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"default"})));
-
-  // Check a required hal with version not supported by vendor.
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckFrameworkCompatibleHal("android.hardware.vibrator",
-                                                    {2, 0}, "IVibrator",
-                                                    Arch::ARCH_32, &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"default"})));
-
-  // Check a required hal with interface not supported by vendor.
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckFrameworkCompatibleHal(
-      "android.hardware.drm", {1, 0}, "IDrmTest", Arch::ARCH_32, &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"default"})));
-
-  // Check a required hal supported by vendor.
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckFrameworkCompatibleHal(
-      "android.hardware.drm", {1, 0}, "IDrm", Arch::ARCH_32, &instances));
-  EXPECT_THAT(instances, ContainerEq(set<string>({"default", "drm"})));
-
-  // Check an optional hal with empty interface (legacy input).
-  instances.clear();
-  EXPECT_TRUE(checker_->CheckFrameworkCompatibleHal(
-      "android.hardware.vibrator", {2, 0}, "" /*interface*/, Arch::ARCH_EMPTY,
-      &instances));
-  EXPECT_TRUE(instances.empty());
-}
-
-}  // namespace vts
-}  // namespace android
-
-int main(int argc, char **argv) {
-  ::testing::InitGoogleTest(&argc, argv);
-  return RUN_ALL_TESTS();
-}
diff --git a/utils/native/trace_processor/Android.bp b/utils/native/trace_processor/Android.bp
index fc8d8d0..48fe58a 100644
--- a/utils/native/trace_processor/Android.bp
+++ b/utils/native/trace_processor/Android.bp
@@ -14,6 +14,10 @@
 // limitations under the License.
 //
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 cc_library_host_shared {
     name: "libvts_traceprocessor",
 
diff --git a/utils/native/trace_processor/VtsCoverageProcessor.cpp b/utils/native/trace_processor/VtsCoverageProcessor.cpp
index c8ea95d..afa2c2a 100644
--- a/utils/native/trace_processor/VtsCoverageProcessor.cpp
+++ b/utils/native/trace_processor/VtsCoverageProcessor.cpp
@@ -59,7 +59,7 @@
         break;
       }
     }
-    // sanity check.
+    // Validate
     if (msg_to_be_updated->covered_line_count() < 0) {
       cerr << __func__ << ": covered_line_count should not be negative."
            << endl;
@@ -116,7 +116,7 @@
 void VtsCoverageProcessor::MergeCoverageMsg(
     const CoverageReportMessage& ref_coverage_msg,
     CoverageReportMessage* merged_coverage_msg) {
-  // sanity check.
+  // File path consistency check.
   if (ref_coverage_msg.file_path() != merged_coverage_msg->file_path()) {
     cerr << "Trying to merge coverage data for different files." << endl;
     exit(-1);
diff --git a/utils/native/trace_processor/VtsTraceProcessor.cpp b/utils/native/trace_processor/VtsTraceProcessor.cpp
index 5643386..c77a535 100644
--- a/utils/native/trace_processor/VtsTraceProcessor.cpp
+++ b/utils/native/trace_processor/VtsTraceProcessor.cpp
@@ -291,7 +291,7 @@
         int64_t start_timestamp = entry_record.timestamp();
         int64_t end_timestamp = record.timestamp();
         int64_t latency = end_timestamp - start_timestamp;
-        // sanity check.
+        // Negative latency check.
         if (latency < 0) {
           cerr << __func__ << ": got negative latency for " << full_api_name
                << endl;
diff --git a/utils/python/Android.bp b/utils/python/Android.bp
index f84fa6b..bf480b9 100644
--- a/utils/python/Android.bp
+++ b/utils/python/Android.bp
@@ -12,6 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
 python_library_host {
     name: "vndk_utils",
     pkg_path: "vts/utils/python",
diff --git a/utils/python/android/api.py b/utils/python/android/api.py
index 5832a2d..ab51ed2 100644
--- a/utils/python/android/api.py
+++ b/utils/python/android/api.py
@@ -17,3 +17,4 @@
 PLATFORM_API_LEVEL_O_MR1 = 27
 PLATFORM_API_LEVEL_P = 28
 PLATFORM_API_LEVEL_Q = 29
+PLATFORM_API_LEVEL_R = 30
diff --git a/utils/python/archive/Android.mk b/utils/python/archive/Android.mk
index 619537b..88f5735 100644
--- a/utils/python/archive/Android.mk
+++ b/utils/python/archive/Android.mk
@@ -16,6 +16,8 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := vts_archive_test
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
 LOCAL_MODULE_CLASS := FAKE
 LOCAL_IS_HOST_MODULE := true
 
diff --git a/utils/python/controllers/android_device.py b/utils/python/controllers/android_device.py
index a0c52d1..e5dd1cb 100644
--- a/utils/python/controllers/android_device.py
+++ b/utils/python/controllers/android_device.py
@@ -467,10 +467,11 @@
     @property
     def isTcpFastbootdMode(self):
         """True if the device is in tcp fastbootd mode."""
-        if self.fastboot.isFastbootOverTcp(self.serial):
-            out = self.fastboot.getvar("is-userspace").strip()
-            if ("is-userspace: yes") in out:
-                return True
+        if self.serial in list_unauthorized_devices():
+            if self.fastboot.isFastbootOverTcp(self.serial):
+                out = self.fastboot.getvar("is-userspace").strip()
+                if ("is-userspace: yes") in out:
+                    return True
         return False
 
     @property
diff --git a/utils/python/controllers/fastboot.py b/utils/python/controllers/fastboot.py
index 05bc76e..2d8313a 100644
--- a/utils/python/controllers/fastboot.py
+++ b/utils/python/controllers/fastboot.py
@@ -14,7 +14,7 @@
 #   limitations under the License.
 
 from subprocess import Popen, PIPE
-import os
+
 import socket
 
 
@@ -41,36 +41,15 @@
     return err
 
 def isFastbootOverTcp(serial):
-    if '%' in serial:      # IPv6 link-local address
-        token = serial.split('%')
-        if len(token) == 2:
-            try:
-                socket.inet_pton(socket.AF_INET6, token[0])
-                return True
-            except socket.error:
-                return False
-    elif ':' in serial:    # IPv4 IP address
-        token = serial.split(':')
-        if len(token) == 2:
-            try:
-                socket.inet_aton(token[0])
-                return True
-            except socket.error:
-                return False
+    token = serial.split(':')
+    if len(token) == 2:
+        try:
+            socket.inet_aton(token[0])
+            return True
+        except socket.error:
+            return False
     return False
 
-def fastbootSerial(serial):
-    if isFastbootOverTcp(serial):
-        return "tcp:" + os.getenv(
-            "FASTBOOT_SERIAL_{}".format(serial
-                                        .replace(':', '_')
-                                        .replace('%', '_')
-                                        .replace('.', '_')
-                                        .replace('[', '_')
-                                        .replace(']', '_')),
-            serial[:serial.rindex(':')])
-    return serial
-
 class FastbootError(Exception):
     """Raised when there is an error in fastboot operations."""
 
@@ -87,7 +66,10 @@
     def __init__(self, serial=""):
         self.serial = serial
         if serial:
-            self.fastboot_str = "fastboot -s {}".format(fastbootSerial(serial))
+            if isFastbootOverTcp(serial):
+                self.fastboot_str = "fastboot -s tcp:{}".format(serial[:serial.index(':')])
+            else:
+                self.fastboot_str = "fastboot -s {}".format(serial)
         else:
             self.fastboot_str = "fastboot"
 
diff --git a/utils/python/coverage/Android.mk b/utils/python/coverage/Android.mk
index 281690c..a4eb9db 100644
--- a/utils/python/coverage/Android.mk
+++ b/utils/python/coverage/Android.mk
@@ -16,6 +16,8 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := vts_coverage_test
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
 LOCAL_MODULE_CLASS := FAKE
 LOCAL_IS_HOST_MODULE := true
 
diff --git a/utils/python/coverage/gcno_parser.py b/utils/python/coverage/gcno_parser.py
index 954cc3d..62bafd9 100644
--- a/utils/python/coverage/gcno_parser.py
+++ b/utils/python/coverage/gcno_parser.py
@@ -207,7 +207,7 @@
         """
 
         block_number = self.ReadInt()
-        self.ReadInt()  #  dummy value
+        self.ReadInt()
         lines = []
         src = self.ReadString()  #  source file name
         src_length = int(math.ceil(len(src) * 1.0 / self.BYTES_IN_WORD)) + 1
diff --git a/utils/python/hal/__init__.py b/utils/python/hal/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/utils/python/hal/__init__.py
+++ /dev/null
diff --git a/utils/python/hal/hal_service_name_utils.py b/utils/python/hal/hal_service_name_utils.py
deleted file mode 100644
index 4cdd473..0000000
--- a/utils/python/hal/hal_service_name_utils.py
+++ /dev/null
@@ -1,172 +0,0 @@
-#
-# Copyright (C) 2017 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.
-#
-
-import json
-import logging
-
-from vts.runners.host import asserts
-from vts.runners.host import const
-
-VTS_TESTABILITY_CHECKER_32 = "/data/local/tmp/vts_testability_checker32"
-VTS_TESTABILITY_CHECKER_64 = "/data/local/tmp/vts_testability_checker64"
-
-
-def GetHalServiceName(shell, hal, bitness="64", run_as_compliance_test=False):
-    """Determine whether to run a VTS test against a HAL and get the service
-    names of the given hal if determine to run.
-
-    Args:
-        shell: the ShellMirrorObject to execute command on the device.
-        hal: string, the FQName of a HAL service, e.g.,
-                     android.hardware.foo@1.0::IFoo
-        bitness: string, the bitness of the test.
-        run_as_compliance_test: boolean, whether it is a compliance test.
-
-    Returns:
-        a boolean whether to run the test against the given hal.
-        a set containing all service names for the given HAL.
-    """
-
-    binary = VTS_TESTABILITY_CHECKER_64
-    if bitness == "32":
-        binary = VTS_TESTABILITY_CHECKER_32
-    # Give permission to execute the binary.
-    shell.Execute("chmod 755 %s" % binary)
-    cmd = binary
-    if run_as_compliance_test:
-        cmd += " -c "
-    cmd += " -b " + bitness + " " + hal
-    cmd_results = shell.Execute(str(cmd))
-    asserts.assertFalse(
-        any(cmd_results[const.EXIT_CODE]),
-        "Failed to run vts_testability_checker. ErrorCode: %s\n STDOUT: %s\n STDERR: %s\n"
-        % (cmd_results[const.EXIT_CODE][0], cmd_results[const.STDOUT][0],
-           cmd_results[const.STDERR][0]))
-    result = json.loads(cmd_results[const.STDOUT][0])
-    if str(result['Testable']).lower() == "true":
-        return True, set(result['instances'])
-    else:
-        return False, ()
-
-
-class CombMode(object):
-    """Enum for service name combination mode"""
-    FULL_PERMUTATION = 0
-    NAME_MATCH = 1
-    NO_COMBINATION = 2
-
-
-def GetServiceInstancesCombinations(services,
-                                    service_instances,
-                                    mode=CombMode.FULL_PERMUTATION):
-    """Create combinations of instances for all services.
-
-    Args:
-        services: list, all services used in the test. e.g. [s1, s2]
-        service_instances: dictionary, mapping of each service and the
-                           corresponding service name(s).
-                           e.g. {"s1": ["n1"], "s2": ["n2", "n3"]}
-        mode: CombMode that determines the combination strategy.
-
-    Returns:
-        A list of service instance combinations.
-    """
-    if mode == CombMode.FULL_PERMUTATION:
-        return GetServiceInstancesFullCombinations(services, service_instances)
-    elif mode == CombMode.NAME_MATCH:
-        return GetServiceInstancesNameMatchCombinations(
-            services, service_instances)
-    else:
-        logging.warning("Unknown comb mode, use default comb mode instead.")
-        return GetServiceInstancesFullCombinations(services, service_instances)
-
-
-def GetServiceInstancesFullCombinations(services, service_instances):
-    """Create all combinations of instances for all services.
-
-    Create full permutation for registered service instances, e.g.
-    s1 have instances (n1, n2) and s2 have instances (n3, n4), return all
-    permutations of s1 and s2, i.e. (s1/n1, s2/n3), (s1/n1, s2/n4),
-    (s1/n2, s2/n3) and (s1/n2, s2/n4)
-
-    Args:
-        services: list, all services used in the test. e.g. [s1, s2]
-        service_instances: dictionary, mapping of each service and the
-                           corresponding service name(s).
-                           e.g. {"s1": ["n1"], "s2": ["n2", "n3"]}
-
-    Returns:
-        A list of all service instance combinations.
-        e.g. [[s1/n1, s2/n2], [s1/n1, s2/n3]]
-    """
-    service_instance_combinations = []
-    if not services or (service_instances and type(service_instances) != dict):
-        return service_instance_combinations
-    service = services.pop()
-    pre_instance_combs = GetServiceInstancesCombinations(
-        services, service_instances)
-    if service not in service_instances or not service_instances[service]:
-        return pre_instance_combs
-    for name in service_instances[service]:
-        if not pre_instance_combs:
-            new_instance_comb = [service + '/' + name]
-            service_instance_combinations.append(new_instance_comb)
-        else:
-            for instance_comb in pre_instance_combs:
-                new_instance_comb = [service + '/' + name]
-                new_instance_comb.extend(instance_comb)
-                service_instance_combinations.append(new_instance_comb)
-
-    return service_instance_combinations
-
-
-def GetServiceInstancesNameMatchCombinations(services, service_instances):
-    """Create service instance combinations with same name for services.
-
-    Create combinations for services with the same instance name, e.g.
-    both s1 and s2 have two instances with name n1, and n2, return
-    the service instance combination of s1 and s2 with same instance name,
-    i.e. (s1/n1, s2/n1) and (s1/n2, s2/n2)
-
-    Args:
-        services: list, all services used in the test. e.g. [s1, s2]
-        service_instances: dictionary, mapping of each service and the
-                           corresponding service name(s).
-                           e.g. {"s1": ["n1", "n2"], "s2": ["n1", "n2"]}
-
-    Returns:
-        A list of service instance combinations.
-        e.g. [[s1/n1, s2/n1], [s1/n2, s2/n2]]
-    """
-    service_instance_combinations = []
-    instance_names = set()
-    for service in services:
-        if service not in service_instances or not service_instances[service]:
-            logging.error("Does not found instance for service: %s", service)
-            return []
-        if not instance_names:
-            instance_names = set(service_instances[service])
-        else:
-            instance_names.intersection_update(set(service_instances[service]))
-
-    for name in instance_names:
-        instance_comb = []
-        for service in services:
-            new_instance = [service + '/' + name]
-            instance_comb.extend(new_instance)
-        service_instance_combinations.append(instance_comb)
-
-    return service_instance_combinations
diff --git a/utils/python/hal/hal_service_name_utils_unittest.py b/utils/python/hal/hal_service_name_utils_unittest.py
deleted file mode 100644
index 71f017d..0000000
--- a/utils/python/hal/hal_service_name_utils_unittest.py
+++ /dev/null
@@ -1,106 +0,0 @@
-#
-# Copyright (C) 2017 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.
-#
-
-import unittest
-
-from vts.utils.python.hal import hal_service_name_utils
-
-
-class HalServiceNameUtilsUnitTest(unittest.TestCase):
-    """Tests for hal hidl gtest template"""
-
-    def testGetServiceInstancesFullCombinations(self):
-        """Test the function to get service instance combinations"""
-
-        comb1 = hal_service_name_utils.GetServiceInstancesCombinations([], {})
-        self.assertEquals(0, len(comb1))
-        comb2 = hal_service_name_utils.GetServiceInstancesCombinations(["s1"],
-                                                                       {})
-        self.assertEquals(0, len(comb2))
-        comb3 = hal_service_name_utils.GetServiceInstancesCombinations(
-            ["s1"], {"s1": ["n1"]})
-        self.assertEqual([["s1/n1"]], comb3)
-        comb4 = hal_service_name_utils.GetServiceInstancesCombinations(
-            ["s1"], {"s1": ["n1", "n2"]})
-        self.assertEqual([["s1/n1"], ["s1/n2"]], comb4)
-        comb5 = hal_service_name_utils.GetServiceInstancesCombinations(
-            ["s1", "s2"], {"s1": ["n1", "n2"]})
-        self.assertEqual([["s1/n1"], ["s1/n2"]], comb5)
-        comb6 = hal_service_name_utils.GetServiceInstancesCombinations(
-            ["s1", "s2"], {"s1": ["n1", "n2"],
-                           "s2": ["n3"]})
-        self.assertEqual([["s2/n3", "s1/n1"], ["s2/n3", "s1/n2"]], comb6)
-        comb7 = hal_service_name_utils.GetServiceInstancesCombinations(
-            ["s1", "s2"], {"s1": ["n1", "n2"],
-                           "s2": ["n3", "n4"]})
-        self.assertEqual([["s2/n3", "s1/n1"], ["s2/n3", "s1/n2"],
-                          ["s2/n4", "s1/n1"], ["s2/n4", "s1/n2"]], comb7)
-        comb8 = hal_service_name_utils.GetServiceInstancesCombinations(
-            ["s1", "s2"], {"s1": ["n1", "n2"],
-                           "s2": []})
-        self.assertEqual([["s1/n1"], ["s1/n2"]], comb8)
-        comb9 = hal_service_name_utils.GetServiceInstancesCombinations(
-            ["s1", "s2"], {"s1": [],
-                           "s2": ["n1", "n2"]})
-        self.assertEqual([["s2/n1"], ["s2/n2"]], comb9)
-
-    def testGetServiceInstancesNameMatchCombinations(self):
-        """Test the function to get service instance combinations"""
-
-        mode = hal_service_name_utils.CombMode.NAME_MATCH
-        comb1 = hal_service_name_utils.GetServiceInstancesCombinations([], {},
-                                                                       mode)
-        self.assertEquals(0, len(comb1))
-        comb2 = hal_service_name_utils.GetServiceInstancesCombinations(
-            ["s1"], {}, mode)
-        self.assertEquals(0, len(comb2))
-        comb3 = hal_service_name_utils.GetServiceInstancesCombinations(
-            ["s1"], {"s1": ["n1"]}, mode)
-        #self.assertEqual([["s1/n1"]], comb3)
-        comb4 = hal_service_name_utils.GetServiceInstancesCombinations(
-            ["s1"], {"s1": ["n1", "n2"]}, mode)
-        self.assertEqual([["s1/n1"], ["s1/n2"]], comb4)
-        comb5 = hal_service_name_utils.GetServiceInstancesCombinations(
-            ["s1", "s2"], {"s1": ["n1", "n2"]}, mode)
-        self.assertEqual(0, len(comb5))
-        comb6 = hal_service_name_utils.GetServiceInstancesCombinations(
-            ["s1", "s2"], {"s1": ["n1", "n2"],
-                           "s2": ["n3"]}, mode)
-        self.assertEqual(0, len(comb6))
-        comb7 = hal_service_name_utils.GetServiceInstancesCombinations(
-            ["s1", "s2"], {"s1": ["n1", "n2"],
-                           "s2": ["n3", "n4"]}, mode)
-        self.assertEqual(0, len(comb7))
-        comb8 = hal_service_name_utils.GetServiceInstancesCombinations(
-            ["s1", "s2"], {"s1": ["n1", "n2"],
-                           "s2": []}, mode)
-        self.assertEqual(0, len(comb8))
-        comb9 = hal_service_name_utils.GetServiceInstancesCombinations(
-            ["s1", "s2"], {"s1": [],
-                           "s2": ["n1", "n2"]}, mode)
-        self.assertEqual(0, len(comb9))
-        comb10 = hal_service_name_utils.GetServiceInstancesCombinations(
-            ["s1", "s2"], {"s1": ["n1"],
-                           "s2": ["n1", "n2"]}, mode)
-        self.assertEqual([["s1/n1", "s2/n1"]], comb10)
-        comb11 = hal_service_name_utils.GetServiceInstancesCombinations(
-            ["s1", "s2"], {"s1": ["n1", "n2"],
-                           "s2": ["n1", "n2"]}, mode)
-        self.assertEqual([["s1/n1", "s2/n1"], ["s1/n2", "s2/n2"]], comb11)
-
-
-if __name__ == '__main__':
-    unittest.main()
diff --git a/utils/python/mirror/hal_mirror.py b/utils/python/mirror/hal_mirror.py
index b6c5bfb..8fdb56a 100644
--- a/utils/python/mirror/hal_mirror.py
+++ b/utils/python/mirror/hal_mirror.py
@@ -160,15 +160,15 @@
                 function_pointer = kwargs[api.name]
             else:
 
-                def dummy(*args):
-                    """Dummy implementation for any callback function."""
+                def stub(*args):
+                    """Stub implementation for any callback function."""
                     logging.debug(
-                        "Entering dummy implementation"
+                        "Entering stub implementation"
                         " for callback function: %s", api.name)
                     for arg_index in range(len(args)):
                         logging.debug("arg%s: %s", arg_index, args[arg_index])
 
-                function_pointer = dummy
+                function_pointer = stub
             func_pt_msg = var_msg.function_pointer.add()
             func_pt_msg.function_name = api.name
             func_pt_msg.id = self.GetCallbackFunctionID(function_pointer)