Merge "Update makefiles iff there is a change"
diff --git a/atrace/V1_0/build/Android.bp b/atrace/V1_0/build/Android.bp
new file mode 100644
index 0000000..a1160fa
--- /dev/null
+++ b/atrace/V1_0/build/Android.bp
@@ -0,0 +1,94 @@
+// This file was auto-generated. Do not edit manually.
+// Use launch_hal_test.py or update_makefiles.py in test/vts-testcase/hal/script/ to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.atrace@1.0-vts.spec",
+    hidl_gen_args: "-r android.hardware:hardware/interfaces",
+    srcs: [
+        ":android.hardware.atrace@1.0_hal",
+    ],
+    out: [
+        "android/hardware/atrace/1.0/AtraceDevice.vts",
+        "android/hardware/atrace/1.0/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.atrace@1.0-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.atrace@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/atrace/1.0/ $(genDir)/android/hardware/atrace/1.0/",
+    srcs: [
+        ":android.hardware.atrace@1.0_hal",
+    ],
+    out: [
+        "android/hardware/atrace/1.0/AtraceDevice.vts.cpp",
+        "android/hardware/atrace/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.atrace@1.0-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.atrace@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/atrace/1.0/ $(genDir)/android/hardware/atrace/1.0/",
+    srcs: [
+        ":android.hardware.atrace@1.0_hal",
+    ],
+    out: [
+        "android/hardware/atrace/1.0/AtraceDevice.vts.h",
+        "android/hardware/atrace/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.atrace@1.0-vts.driver",
+    generated_sources: ["android.hardware.atrace@1.0-vts.driver_genc++"],
+    generated_headers: ["android.hardware.atrace@1.0-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.atrace@1.0-vts.driver_genc++_headers"],
+    defaults: ["VtsHalDriverDefaults"],
+    shared_libs: [],
+    static_libs: [
+        "android.hardware.atrace@1.0",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.atrace@1.0-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.atrace@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/atrace/1.0/ $(genDir)/android/hardware/atrace/1.0/",
+    srcs: [
+        ":android.hardware.atrace@1.0_hal",
+    ],
+    out: [
+        "android/hardware/atrace/1.0/AtraceDevice.vts.cpp",
+        "android/hardware/atrace/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.atrace@1.0-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.atrace@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/atrace/1.0/ $(genDir)/android/hardware/atrace/1.0/",
+    srcs: [
+        ":android.hardware.atrace@1.0_hal",
+    ],
+    out: [
+        "android/hardware/atrace/1.0/AtraceDevice.vts.h",
+        "android/hardware/atrace/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.atrace@1.0-vts.profiler",
+    generated_sources: ["android.hardware.atrace@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.atrace@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.atrace@1.0-vts.profiler_genc++_headers"],
+    defaults: ["VtsHalProfilerDefaults"],
+    shared_libs: [],
+    static_libs: [
+        "android.hardware.atrace@1.0",
+    ],
+}
+
diff --git a/audio/effect/V2_0/target_replay/AndroidTest.xml b/audio/effect/V2_0/target_replay/AndroidTest.xml
index 16aff53..b497ef5 100644
--- a/audio/effect/V2_0/target_replay/AndroidTest.xml
+++ b/audio/effect/V2_0/target_replay/AndroidTest.xml
@@ -17,7 +17,7 @@
     <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="abort-on-push-failure" value="false"/>
-        <option name="push-group" value="HalHidlHostTest.push"/>
+        <option name="push-group" value="VtsHalReplayTest.push"/>
         <option name="cleanup" value="true"/>
         <option name="push" value="spec/hardware/interfaces/audio/common/2.0/vts/types.vts->/data/local/tmp/spec/android/hardware/audio/common/2.0/types.vts"/>
         <option name="push" value="DATA/lib/android.hardware.audio.common@2.0-vts.driver.so->/data/local/tmp/32/android.hardware.audio.common@2.0-vts.driver.so"/>
diff --git a/bluetooth/V1_0/target_replay/AndroidTest.xml b/bluetooth/V1_0/target_replay/AndroidTest.xml
index 6787bcd..a3a52c0 100644
--- a/bluetooth/V1_0/target_replay/AndroidTest.xml
+++ b/bluetooth/V1_0/target_replay/AndroidTest.xml
@@ -17,7 +17,7 @@
     <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="abort-on-push-failure" value="false"/>
-        <option name="push-group" value="HalHidlHostTest.push"/>
+        <option name="push-group" value="VtsHalReplayTest.push"/>
         <option name="cleanup" value="true"/>
         <option name="push" value="spec/hardware/interfaces/bluetooth/1.0/vts/BluetoothHci.vts->/data/local/tmp/spec/android/hardware/bluetooth/1.0/BluetoothHci.vts"/>
         <option name="push" value="spec/hardware/interfaces/bluetooth/1.0/vts/BluetoothHciCallbacks.vts->/data/local/tmp/spec/android/hardware/bluetooth/1.0/BluetoothHciCallbacks.vts"/>
diff --git a/bluetooth/a2dp/V1_0/build/Android.bp b/bluetooth/a2dp/V1_0/build/Android.bp
new file mode 100644
index 0000000..deab3c9
--- /dev/null
+++ b/bluetooth/a2dp/V1_0/build/Android.bp
@@ -0,0 +1,99 @@
+// This file was auto-generated. Do not edit manually.
+// Use launch_hal_test.py or update_makefiles.py in test/vts-testcase/hal/script/ to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.bluetooth.a2dp@1.0-vts.spec",
+    hidl_gen_args: "-r android.hardware:hardware/interfaces",
+    srcs: [
+        ":android.hardware.bluetooth.a2dp@1.0_hal",
+    ],
+    out: [
+        "android/hardware/bluetooth/a2dp/1.0/BluetoothAudioHost.vts",
+        "android/hardware/bluetooth/a2dp/1.0/BluetoothAudioOffload.vts",
+        "android/hardware/bluetooth/a2dp/1.0/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.bluetooth.a2dp@1.0-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.bluetooth.a2dp@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/bluetooth/a2dp/1.0/ $(genDir)/android/hardware/bluetooth/a2dp/1.0/",
+    srcs: [
+        ":android.hardware.bluetooth.a2dp@1.0_hal",
+    ],
+    out: [
+        "android/hardware/bluetooth/a2dp/1.0/BluetoothAudioHost.vts.cpp",
+        "android/hardware/bluetooth/a2dp/1.0/BluetoothAudioOffload.vts.cpp",
+        "android/hardware/bluetooth/a2dp/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.bluetooth.a2dp@1.0-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.bluetooth.a2dp@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/bluetooth/a2dp/1.0/ $(genDir)/android/hardware/bluetooth/a2dp/1.0/",
+    srcs: [
+        ":android.hardware.bluetooth.a2dp@1.0_hal",
+    ],
+    out: [
+        "android/hardware/bluetooth/a2dp/1.0/BluetoothAudioHost.vts.h",
+        "android/hardware/bluetooth/a2dp/1.0/BluetoothAudioOffload.vts.h",
+        "android/hardware/bluetooth/a2dp/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.bluetooth.a2dp@1.0-vts.driver",
+    generated_sources: ["android.hardware.bluetooth.a2dp@1.0-vts.driver_genc++"],
+    generated_headers: ["android.hardware.bluetooth.a2dp@1.0-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.bluetooth.a2dp@1.0-vts.driver_genc++_headers"],
+    defaults: ["VtsHalDriverDefaults"],
+    shared_libs: [],
+    static_libs: [
+        "android.hardware.bluetooth.a2dp@1.0",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.bluetooth.a2dp@1.0-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.bluetooth.a2dp@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/bluetooth/a2dp/1.0/ $(genDir)/android/hardware/bluetooth/a2dp/1.0/",
+    srcs: [
+        ":android.hardware.bluetooth.a2dp@1.0_hal",
+    ],
+    out: [
+        "android/hardware/bluetooth/a2dp/1.0/BluetoothAudioHost.vts.cpp",
+        "android/hardware/bluetooth/a2dp/1.0/BluetoothAudioOffload.vts.cpp",
+        "android/hardware/bluetooth/a2dp/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.bluetooth.a2dp@1.0-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.bluetooth.a2dp@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/bluetooth/a2dp/1.0/ $(genDir)/android/hardware/bluetooth/a2dp/1.0/",
+    srcs: [
+        ":android.hardware.bluetooth.a2dp@1.0_hal",
+    ],
+    out: [
+        "android/hardware/bluetooth/a2dp/1.0/BluetoothAudioHost.vts.h",
+        "android/hardware/bluetooth/a2dp/1.0/BluetoothAudioOffload.vts.h",
+        "android/hardware/bluetooth/a2dp/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.bluetooth.a2dp@1.0-vts.profiler",
+    generated_sources: ["android.hardware.bluetooth.a2dp@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.bluetooth.a2dp@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.bluetooth.a2dp@1.0-vts.profiler_genc++_headers"],
+    defaults: ["VtsHalProfilerDefaults"],
+    shared_libs: [],
+    static_libs: [
+        "android.hardware.bluetooth.a2dp@1.0",
+    ],
+}
+
diff --git a/configstore/V1_0/target_replay/AndroidTest.xml b/configstore/V1_0/target_replay/AndroidTest.xml
index 6163503..a8d8b93 100644
--- a/configstore/V1_0/target_replay/AndroidTest.xml
+++ b/configstore/V1_0/target_replay/AndroidTest.xml
@@ -17,7 +17,7 @@
     <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="abort-on-push-failure" value="false"/>
-        <option name="push-group" value="HalHidlHostTest.push"/>
+        <option name="push-group" value="VtsHalReplayTest.push"/>
         <option name="cleanup" value="true"/>
         <option name="push" value="spec/hardware/interfaces/configstore/1.0/vts/SurfaceFlingerConfigs.vts->/data/local/tmp/spec/android/hardware/configstore/1.0/SurfaceFlingerConfigs.vts"/>
         <option name="push" value="spec/hardware/interfaces/configstore/1.0/vts/types.vts->/data/local/tmp/spec/android/hardware/configstore/1.0/types.vts"/>
diff --git a/configstore/V1_1/build/Android.bp b/configstore/V1_1/build/Android.bp
new file mode 100644
index 0000000..c5f74d1
--- /dev/null
+++ b/configstore/V1_1/build/Android.bp
@@ -0,0 +1,100 @@
+// This file was auto-generated. Do not edit manually.
+// Use launch_hal_test.py or update_makefiles.py in test/vts-testcase/hal/script/ to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.configstore@1.1-vts.spec",
+    hidl_gen_args: "-r android.hardware:hardware/interfaces",
+    srcs: [
+        ":android.hardware.configstore@1.1_hal",
+    ],
+    out: [
+        "android/hardware/configstore/1.1/SurfaceFlingerConfigs.vts",
+        "android/hardware/configstore/1.1/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.configstore@1.1-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.configstore@1.1 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/configstore/1.1/ $(genDir)/android/hardware/configstore/1.1/",
+    srcs: [
+        ":android.hardware.configstore@1.1_hal",
+    ],
+    out: [
+        "android/hardware/configstore/1.1/SurfaceFlingerConfigs.vts.cpp",
+        "android/hardware/configstore/1.1/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.configstore@1.1-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.configstore@1.1 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/configstore/1.1/ $(genDir)/android/hardware/configstore/1.1/",
+    srcs: [
+        ":android.hardware.configstore@1.1_hal",
+    ],
+    out: [
+        "android/hardware/configstore/1.1/SurfaceFlingerConfigs.vts.h",
+        "android/hardware/configstore/1.1/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.configstore@1.1-vts.driver",
+    generated_sources: ["android.hardware.configstore@1.1-vts.driver_genc++"],
+    generated_headers: ["android.hardware.configstore@1.1-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.configstore@1.1-vts.driver_genc++_headers"],
+    defaults: ["VtsHalDriverDefaults"],
+    shared_libs: [
+        "android.hardware.configstore@1.0-vts.driver",
+    ],
+    static_libs: [
+        "android.hardware.configstore@1.0",
+        "android.hardware.configstore@1.1",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.configstore@1.1-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.configstore@1.1 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/configstore/1.1/ $(genDir)/android/hardware/configstore/1.1/",
+    srcs: [
+        ":android.hardware.configstore@1.1_hal",
+    ],
+    out: [
+        "android/hardware/configstore/1.1/SurfaceFlingerConfigs.vts.cpp",
+        "android/hardware/configstore/1.1/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.configstore@1.1-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.configstore@1.1 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/configstore/1.1/ $(genDir)/android/hardware/configstore/1.1/",
+    srcs: [
+        ":android.hardware.configstore@1.1_hal",
+    ],
+    out: [
+        "android/hardware/configstore/1.1/SurfaceFlingerConfigs.vts.h",
+        "android/hardware/configstore/1.1/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.configstore@1.1-vts.profiler",
+    generated_sources: ["android.hardware.configstore@1.1-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.configstore@1.1-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.configstore@1.1-vts.profiler_genc++_headers"],
+    defaults: ["VtsHalProfilerDefaults"],
+    shared_libs: [
+        "android.hardware.configstore@1.0-vts.profiler",
+    ],
+    static_libs: [
+        "android.hardware.configstore@1.0",
+        "android.hardware.configstore@1.1",
+    ],
+}
+
diff --git a/contexthub/V1_0/target_replay/AndroidTest.xml b/contexthub/V1_0/target_replay/AndroidTest.xml
index 6fe76d2..ff4d80a 100644
--- a/contexthub/V1_0/target_replay/AndroidTest.xml
+++ b/contexthub/V1_0/target_replay/AndroidTest.xml
@@ -17,7 +17,7 @@
     <option name="config-descriptor:metadata" key="plan" value="vts-hal-replay" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="abort-on-push-failure" value="false"/>
-        <option name="push-group" value="HalHidlHostTest.push"/>
+        <option name="push-group" value="VtsHalReplayTest.push"/>
         <option name="cleanup" value="true"/>
         <option name="push" value="spec/hardware/interfaces/contexthub/1.0/vts/Contexthub.vts->/data/local/tmp/spec/android/hardware/contexthub/1.0/Contexthub.vts"/>
         <option name="push" value="spec/hardware/interfaces/contexthub/1.0/vts/ContexthubCallback.vts->/data/local/tmp/spec/android/hardware/contexthub/1.0/ContexthubCallback.vts"/>
diff --git a/fastboot/V1_0/build/Android.bp b/fastboot/V1_0/build/Android.bp
new file mode 100644
index 0000000..9b64dfa
--- /dev/null
+++ b/fastboot/V1_0/build/Android.bp
@@ -0,0 +1,94 @@
+// This file was auto-generated. Do not edit manually.
+// Use launch_hal_test.py or update_makefiles.py in test/vts-testcase/hal/script/ to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.fastboot@1.0-vts.spec",
+    hidl_gen_args: "-r android.hardware:hardware/interfaces",
+    srcs: [
+        ":android.hardware.fastboot@1.0_hal",
+    ],
+    out: [
+        "android/hardware/fastboot/1.0/Fastboot.vts",
+        "android/hardware/fastboot/1.0/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.fastboot@1.0-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.fastboot@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/fastboot/1.0/ $(genDir)/android/hardware/fastboot/1.0/",
+    srcs: [
+        ":android.hardware.fastboot@1.0_hal",
+    ],
+    out: [
+        "android/hardware/fastboot/1.0/Fastboot.vts.cpp",
+        "android/hardware/fastboot/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.fastboot@1.0-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.fastboot@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/fastboot/1.0/ $(genDir)/android/hardware/fastboot/1.0/",
+    srcs: [
+        ":android.hardware.fastboot@1.0_hal",
+    ],
+    out: [
+        "android/hardware/fastboot/1.0/Fastboot.vts.h",
+        "android/hardware/fastboot/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.fastboot@1.0-vts.driver",
+    generated_sources: ["android.hardware.fastboot@1.0-vts.driver_genc++"],
+    generated_headers: ["android.hardware.fastboot@1.0-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.fastboot@1.0-vts.driver_genc++_headers"],
+    defaults: ["VtsHalDriverDefaults"],
+    shared_libs: [],
+    static_libs: [
+        "android.hardware.fastboot@1.0",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.fastboot@1.0-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.fastboot@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/fastboot/1.0/ $(genDir)/android/hardware/fastboot/1.0/",
+    srcs: [
+        ":android.hardware.fastboot@1.0_hal",
+    ],
+    out: [
+        "android/hardware/fastboot/1.0/Fastboot.vts.cpp",
+        "android/hardware/fastboot/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.fastboot@1.0-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.fastboot@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/fastboot/1.0/ $(genDir)/android/hardware/fastboot/1.0/",
+    srcs: [
+        ":android.hardware.fastboot@1.0_hal",
+    ],
+    out: [
+        "android/hardware/fastboot/1.0/Fastboot.vts.h",
+        "android/hardware/fastboot/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.fastboot@1.0-vts.profiler",
+    generated_sources: ["android.hardware.fastboot@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.fastboot@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.fastboot@1.0-vts.profiler_genc++_headers"],
+    defaults: ["VtsHalProfilerDefaults"],
+    shared_libs: [],
+    static_libs: [
+        "android.hardware.fastboot@1.0",
+    ],
+}
+
diff --git a/gatekeeper/V1_0/target_replay/AndroidTest.xml b/gatekeeper/V1_0/target_replay/AndroidTest.xml
index a7d5b52..50d31b1 100644
--- a/gatekeeper/V1_0/target_replay/AndroidTest.xml
+++ b/gatekeeper/V1_0/target_replay/AndroidTest.xml
@@ -17,7 +17,7 @@
     <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="abort-on-push-failure" value="false"/>
-        <option name="push-group" value="HalHidlHostTest.push"/>
+        <option name="push-group" value="VtsHalReplayTest.push"/>
         <option name="cleanup" value="true"/>
         <option name="push" value="spec/hardware/interfaces/gatekeeper/1.0/vts/Gatekeeper.vts->/data/local/tmp/spec/android/hardware/gatekeeper/1.0/Gatekeeper.vts"/>
         <option name="push" value="spec/hardware/interfaces/gatekeeper/1.0/vts/types.vts->/data/local/tmp/spec/android/hardware/gatekeeper/1.0/types.vts"/>
diff --git a/health/storage/V1_0/build/Android.bp b/health/storage/V1_0/build/Android.bp
new file mode 100644
index 0000000..a4f2e04
--- /dev/null
+++ b/health/storage/V1_0/build/Android.bp
@@ -0,0 +1,99 @@
+// This file was auto-generated. Do not edit manually.
+// Use launch_hal_test.py or update_makefiles.py in test/vts-testcase/hal/script/ to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.health.storage@1.0-vts.spec",
+    hidl_gen_args: "-r android.hardware:hardware/interfaces",
+    srcs: [
+        ":android.hardware.health.storage@1.0_hal",
+    ],
+    out: [
+        "android/hardware/health/storage/1.0/GarbageCollectCallback.vts",
+        "android/hardware/health/storage/1.0/Storage.vts",
+        "android/hardware/health/storage/1.0/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.health.storage@1.0-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.health.storage@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/health/storage/1.0/ $(genDir)/android/hardware/health/storage/1.0/",
+    srcs: [
+        ":android.hardware.health.storage@1.0_hal",
+    ],
+    out: [
+        "android/hardware/health/storage/1.0/GarbageCollectCallback.vts.cpp",
+        "android/hardware/health/storage/1.0/Storage.vts.cpp",
+        "android/hardware/health/storage/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.health.storage@1.0-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.health.storage@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/health/storage/1.0/ $(genDir)/android/hardware/health/storage/1.0/",
+    srcs: [
+        ":android.hardware.health.storage@1.0_hal",
+    ],
+    out: [
+        "android/hardware/health/storage/1.0/GarbageCollectCallback.vts.h",
+        "android/hardware/health/storage/1.0/Storage.vts.h",
+        "android/hardware/health/storage/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.health.storage@1.0-vts.driver",
+    generated_sources: ["android.hardware.health.storage@1.0-vts.driver_genc++"],
+    generated_headers: ["android.hardware.health.storage@1.0-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.health.storage@1.0-vts.driver_genc++_headers"],
+    defaults: ["VtsHalDriverDefaults"],
+    shared_libs: [],
+    static_libs: [
+        "android.hardware.health.storage@1.0",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.health.storage@1.0-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.health.storage@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/health/storage/1.0/ $(genDir)/android/hardware/health/storage/1.0/",
+    srcs: [
+        ":android.hardware.health.storage@1.0_hal",
+    ],
+    out: [
+        "android/hardware/health/storage/1.0/GarbageCollectCallback.vts.cpp",
+        "android/hardware/health/storage/1.0/Storage.vts.cpp",
+        "android/hardware/health/storage/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.health.storage@1.0-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.health.storage@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/health/storage/1.0/ $(genDir)/android/hardware/health/storage/1.0/",
+    srcs: [
+        ":android.hardware.health.storage@1.0_hal",
+    ],
+    out: [
+        "android/hardware/health/storage/1.0/GarbageCollectCallback.vts.h",
+        "android/hardware/health/storage/1.0/Storage.vts.h",
+        "android/hardware/health/storage/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.health.storage@1.0-vts.profiler",
+    generated_sources: ["android.hardware.health.storage@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.health.storage@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.health.storage@1.0-vts.profiler_genc++_headers"],
+    defaults: ["VtsHalProfilerDefaults"],
+    shared_libs: [],
+    static_libs: [
+        "android.hardware.health.storage@1.0",
+    ],
+}
+
diff --git a/health/storage/V1_0/target/Android.mk b/health/storage/V1_0/target/Android.mk
new file mode 100644
index 0000000..08ba4a3
--- /dev/null
+++ b/health/storage/V1_0/target/Android.mk
@@ -0,0 +1,22 @@
+#
+# 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.
+#
+
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := VtsHalHealthStorageV1_0Target
+include test/vts/tools/build/Android.host_config.mk
diff --git a/health/storage/V1_0/target/AndroidTest.xml b/health/storage/V1_0/target/AndroidTest.xml
new file mode 100644
index 0000000..61325ea
--- /dev/null
+++ b/health/storage/V1_0/target/AndroidTest.xml
@@ -0,0 +1,29 @@
+<?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 VtsHalHealthStorageV1_0Target test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-hal" />
+    <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="VtsHalHealthStorageV1_0Target"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalHealthStorageV1_0TargetTest/VtsHalHealthStorageV1_0TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalHealthStorageV1_0TargetTest/VtsHalHealthStorageV1_0TargetTest"/>
+        <option name="binary-test-type" value="hal_hidl_gtest"/>
+        <option name="test-timeout" value="5m"/>
+    </test>
+</configuration>
diff --git a/keymaster/V3_0/target_replay/AndroidTest.xml b/keymaster/V3_0/target_replay/AndroidTest.xml
index 1ad3960..d308ebc 100644
--- a/keymaster/V3_0/target_replay/AndroidTest.xml
+++ b/keymaster/V3_0/target_replay/AndroidTest.xml
@@ -17,7 +17,7 @@
     <option name="config-descriptor:metadata" key="plan" value="vts-hal-replay" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="abort-on-push-failure" value="false"/>
-        <option name="push-group" value="HalHidlHostTest.push"/>
+        <option name="push-group" value="VtsHalReplayTest.push"/>
         <option name="cleanup" value="true"/>
         <option name="push" value="spec/hardware/interfaces/keymaster/3.0/vts/KeymasterDevice.vts->/data/local/tmp/spec/android/hardware/keymaster/3.0/KeymasterDevice.vts"/>
         <option name="push" value="spec/hardware/interfaces/keymaster/3.0/vts/types.vts->/data/local/tmp/spec/android/hardware/keymaster/3.0/types.vts"/>
diff --git a/light/V2_0/target_replay/AndroidTest.xml b/light/V2_0/target_replay/AndroidTest.xml
index 3924899..6523bef 100644
--- a/light/V2_0/target_replay/AndroidTest.xml
+++ b/light/V2_0/target_replay/AndroidTest.xml
@@ -17,7 +17,7 @@
     <option name="config-descriptor:metadata" key="plan" value="vts-hal-replay" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="abort-on-push-failure" value="false"/>
-        <option name="push-group" value="HalHidlHostTest.push"/>
+        <option name="push-group" value="VtsHalReplayTest.push"/>
         <option name="cleanup" value="true"/>
         <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"/>
diff --git a/memtrack/V1_0/target_replay/AndroidTest.xml b/memtrack/V1_0/target_replay/AndroidTest.xml
index 36155a6..f891595 100644
--- a/memtrack/V1_0/target_replay/AndroidTest.xml
+++ b/memtrack/V1_0/target_replay/AndroidTest.xml
@@ -17,7 +17,7 @@
     <option name="config-descriptor:metadata" key="plan" value="vts-hal-replay" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="abort-on-push-failure" value="false"/>
-        <option name="push-group" value="HalHidlHostTest.push"/>
+        <option name="push-group" value="VtsHalReplayTest.push"/>
         <option name="cleanup" value="true"/>
         <option name="push" value="spec/hardware/interfaces/memtrack/1.0/vts/Memtrack.vts->/data/local/tmp/spec/android/hardware/memtrack/1.0/Memtrack.vts"/>
         <option name="push" value="spec/hardware/interfaces/memtrack/1.0/vts/types.vts->/data/local/tmp/spec/android/hardware/memtrack/1.0/types.vts"/>
diff --git a/neuralnetworks/V1_0/target/AndroidTest.xml b/neuralnetworks/V1_0/target/AndroidTest.xml
index 61416f4..1c7617e 100644
--- a/neuralnetworks/V1_0/target/AndroidTest.xml
+++ b/neuralnetworks/V1_0/target/AndroidTest.xml
@@ -25,5 +25,6 @@
         <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalNeuralnetworksV1_0TargetTest/VtsHalNeuralnetworksV1_0TargetTest"/>
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="test-timeout" value="5m"/>
+        <option name="gtest-batch-mode" value="true"/>
     </test>
 </configuration>
diff --git a/neuralnetworks/V1_1/target/AndroidTest.xml b/neuralnetworks/V1_1/target/AndroidTest.xml
index 296f475..2f61869 100644
--- a/neuralnetworks/V1_1/target/AndroidTest.xml
+++ b/neuralnetworks/V1_1/target/AndroidTest.xml
@@ -26,5 +26,6 @@
         <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalNeuralnetworksV1_1TargetTest/VtsHalNeuralnetworksV1_1TargetTest"/>
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="test-timeout" value="5m"/>
+        <option name="gtest-batch-mode" value="true"/>
     </test>
 </configuration>
diff --git a/neuralnetworks/V1_2/build/Android.bp b/neuralnetworks/V1_2/build/Android.bp
new file mode 100644
index 0000000..6c40021
--- /dev/null
+++ b/neuralnetworks/V1_2/build/Android.bp
@@ -0,0 +1,104 @@
+// This file was auto-generated. Do not edit manually.
+// Use launch_hal_test.py or update_makefiles.py in test/vts-testcase/hal/script/ to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.neuralnetworks@1.2-vts.spec",
+    hidl_gen_args: "-r android.hardware:hardware/interfaces",
+    srcs: [
+        ":android.hardware.neuralnetworks@1.2_hal",
+    ],
+    out: [
+        "android/hardware/neuralnetworks/1.2/Device.vts",
+        "android/hardware/neuralnetworks/1.2/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.neuralnetworks@1.2-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.neuralnetworks@1.2 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/neuralnetworks/1.2/ $(genDir)/android/hardware/neuralnetworks/1.2/",
+    srcs: [
+        ":android.hardware.neuralnetworks@1.2_hal",
+    ],
+    out: [
+        "android/hardware/neuralnetworks/1.2/Device.vts.cpp",
+        "android/hardware/neuralnetworks/1.2/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.neuralnetworks@1.2-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.neuralnetworks@1.2 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/neuralnetworks/1.2/ $(genDir)/android/hardware/neuralnetworks/1.2/",
+    srcs: [
+        ":android.hardware.neuralnetworks@1.2_hal",
+    ],
+    out: [
+        "android/hardware/neuralnetworks/1.2/Device.vts.h",
+        "android/hardware/neuralnetworks/1.2/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.neuralnetworks@1.2-vts.driver",
+    generated_sources: ["android.hardware.neuralnetworks@1.2-vts.driver_genc++"],
+    generated_headers: ["android.hardware.neuralnetworks@1.2-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.neuralnetworks@1.2-vts.driver_genc++_headers"],
+    defaults: ["VtsHalDriverDefaults"],
+    shared_libs: [
+        "android.hardware.neuralnetworks@1.0-vts.driver",
+        "android.hardware.neuralnetworks@1.1-vts.driver",
+    ],
+    static_libs: [
+        "android.hardware.neuralnetworks@1.0",
+        "android.hardware.neuralnetworks@1.1",
+        "android.hardware.neuralnetworks@1.2",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.neuralnetworks@1.2-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.neuralnetworks@1.2 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/neuralnetworks/1.2/ $(genDir)/android/hardware/neuralnetworks/1.2/",
+    srcs: [
+        ":android.hardware.neuralnetworks@1.2_hal",
+    ],
+    out: [
+        "android/hardware/neuralnetworks/1.2/Device.vts.cpp",
+        "android/hardware/neuralnetworks/1.2/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.neuralnetworks@1.2-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.neuralnetworks@1.2 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/neuralnetworks/1.2/ $(genDir)/android/hardware/neuralnetworks/1.2/",
+    srcs: [
+        ":android.hardware.neuralnetworks@1.2_hal",
+    ],
+    out: [
+        "android/hardware/neuralnetworks/1.2/Device.vts.h",
+        "android/hardware/neuralnetworks/1.2/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.neuralnetworks@1.2-vts.profiler",
+    generated_sources: ["android.hardware.neuralnetworks@1.2-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.neuralnetworks@1.2-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.neuralnetworks@1.2-vts.profiler_genc++_headers"],
+    defaults: ["VtsHalProfilerDefaults"],
+    shared_libs: [
+        "android.hardware.neuralnetworks@1.0-vts.profiler",
+        "android.hardware.neuralnetworks@1.1-vts.profiler",
+    ],
+    static_libs: [
+        "android.hardware.neuralnetworks@1.0",
+        "android.hardware.neuralnetworks@1.1",
+        "android.hardware.neuralnetworks@1.2",
+    ],
+}
+
diff --git a/nfc/V1_0/target_replay/AndroidTest.xml b/nfc/V1_0/target_replay/AndroidTest.xml
index 3e5f2a3..65dcfa2 100644
--- a/nfc/V1_0/target_replay/AndroidTest.xml
+++ b/nfc/V1_0/target_replay/AndroidTest.xml
@@ -17,7 +17,7 @@
     <option name="config-descriptor:metadata" key="plan" value="vts-hal-replay" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="abort-on-push-failure" value="false"/>
-        <option name="push-group" value="HalHidlHostTest.push"/>
+        <option name="push-group" value="VtsHalReplayTest.push"/>
         <option name="cleanup" value="true"/>
         <option name="push" value="spec/hardware/interfaces/nfc/1.0/vts/Nfc.vts->/data/local/tmp/spec/android/hardware/nfc/1.0/Nfc.vts"/>
         <option name="push" value="spec/hardware/interfaces/nfc/1.0/vts/NfcClientCallback.vts->/data/local/tmp/spec/android/hardware/nfc/1.0/NfcClientCallback.vts"/>
diff --git a/power/V1_0/target_replay/AndroidTest.xml b/power/V1_0/target_replay/AndroidTest.xml
index 74309e4..1a1b151 100644
--- a/power/V1_0/target_replay/AndroidTest.xml
+++ b/power/V1_0/target_replay/AndroidTest.xml
@@ -17,7 +17,7 @@
     <option name="config-descriptor:metadata" key="plan" value="vts-hal-replay" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="abort-on-push-failure" value="false"/>
-        <option name="push-group" value="HalHidlHostTest.push"/>
+        <option name="push-group" value="VtsHalReplayTest.push"/>
         <option name="cleanup" value="true"/>
         <option name="push" value="spec/hardware/interfaces/power/1.0/vts/Power.vts->/data/local/tmp/spec/android/hardware/power/1.0/Power.vts"/>
         <option name="push" value="spec/hardware/interfaces/power/1.0/vts/types.vts->/data/local/tmp/spec/android/hardware/power/1.0/types.vts"/>
diff --git a/power/V1_3/target/Android.mk b/power/V1_3/target/Android.mk
index 812df84..f81b1ef 100644
--- a/power/V1_3/target/Android.mk
+++ b/power/V1_3/target/Android.mk
@@ -19,5 +19,4 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := VtsHalPowerV1_3Target
-VTS_CONFIG_SRC_DIR := testcases/hal/power/V1_3/target
 include test/vts/tools/build/Android.host_config.mk
diff --git a/radio/V1_3/build/Android.bp b/radio/V1_3/build/Android.bp
new file mode 100644
index 0000000..dafc352
--- /dev/null
+++ b/radio/V1_3/build/Android.bp
@@ -0,0 +1,122 @@
+// This file was auto-generated. Do not edit manually.
+// Use launch_hal_test.py or update_makefiles.py in test/vts-testcase/hal/script/ to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.radio@1.3-vts.spec",
+    hidl_gen_args: "-r android.hardware:hardware/interfaces",
+    srcs: [
+        ":android.hardware.radio@1.3_hal",
+    ],
+    out: [
+        "android/hardware/radio/1.3/Radio.vts",
+        "android/hardware/radio/1.3/RadioIndication.vts",
+        "android/hardware/radio/1.3/RadioResponse.vts",
+        "android/hardware/radio/1.3/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.radio@1.3-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.radio@1.3 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/radio/1.3/ $(genDir)/android/hardware/radio/1.3/",
+    srcs: [
+        ":android.hardware.radio@1.3_hal",
+    ],
+    out: [
+        "android/hardware/radio/1.3/Radio.vts.cpp",
+        "android/hardware/radio/1.3/RadioIndication.vts.cpp",
+        "android/hardware/radio/1.3/RadioResponse.vts.cpp",
+        "android/hardware/radio/1.3/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio@1.3-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.radio@1.3 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/radio/1.3/ $(genDir)/android/hardware/radio/1.3/",
+    srcs: [
+        ":android.hardware.radio@1.3_hal",
+    ],
+    out: [
+        "android/hardware/radio/1.3/Radio.vts.h",
+        "android/hardware/radio/1.3/RadioIndication.vts.h",
+        "android/hardware/radio/1.3/RadioResponse.vts.h",
+        "android/hardware/radio/1.3/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.radio@1.3-vts.driver",
+    generated_sources: ["android.hardware.radio@1.3-vts.driver_genc++"],
+    generated_headers: ["android.hardware.radio@1.3-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.radio@1.3-vts.driver_genc++_headers"],
+    defaults: ["VtsHalDriverDefaults"],
+    shared_libs: [
+        "android.hardware.radio@1.0-vts.driver",
+        "android.hardware.radio@1.1-vts.driver",
+        "android.hardware.radio@1.2-vts.driver",
+        "android.hidl.safe_union@1.0-vts.driver",
+    ],
+    static_libs: [
+        "android.hardware.radio@1.0",
+        "android.hardware.radio@1.1",
+        "android.hardware.radio@1.2",
+        "android.hardware.radio@1.3",
+        "android.hidl.safe_union@1.0",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.radio@1.3-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.radio@1.3 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/radio/1.3/ $(genDir)/android/hardware/radio/1.3/",
+    srcs: [
+        ":android.hardware.radio@1.3_hal",
+    ],
+    out: [
+        "android/hardware/radio/1.3/Radio.vts.cpp",
+        "android/hardware/radio/1.3/RadioIndication.vts.cpp",
+        "android/hardware/radio/1.3/RadioResponse.vts.cpp",
+        "android/hardware/radio/1.3/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio@1.3-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.radio@1.3 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/radio/1.3/ $(genDir)/android/hardware/radio/1.3/",
+    srcs: [
+        ":android.hardware.radio@1.3_hal",
+    ],
+    out: [
+        "android/hardware/radio/1.3/Radio.vts.h",
+        "android/hardware/radio/1.3/RadioIndication.vts.h",
+        "android/hardware/radio/1.3/RadioResponse.vts.h",
+        "android/hardware/radio/1.3/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.radio@1.3-vts.profiler",
+    generated_sources: ["android.hardware.radio@1.3-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.radio@1.3-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.radio@1.3-vts.profiler_genc++_headers"],
+    defaults: ["VtsHalProfilerDefaults"],
+    shared_libs: [
+        "android.hardware.radio@1.0-vts.profiler",
+        "android.hardware.radio@1.1-vts.profiler",
+        "android.hardware.radio@1.2-vts.profiler",
+        "android.hidl.safe_union@1.0-vts.profiler",
+    ],
+    static_libs: [
+        "android.hardware.radio@1.0",
+        "android.hardware.radio@1.1",
+        "android.hardware.radio@1.2",
+        "android.hardware.radio@1.3",
+        "android.hidl.safe_union@1.0",
+    ],
+}
+
diff --git a/script/update_makefiles.py b/script/update_makefiles.py
index ce20dce..a84b666 100755
--- a/script/update_makefiles.py
+++ b/script/update_makefiles.py
@@ -21,15 +21,41 @@
 2. files matching: test/vts-testcase/hal/<hal_name>/<hal_version>/Android.bp
 
 Usage:
-  cd test/vts-testcase/hal; ./script/update_makefiles.py
+  To update build files for all HALs:
+     cd test/vts-testcase/hal; ./script/update_makefiles.py
+  To update build files for a specific HAL:
+     cd test/vts-testcase/hal; ./script/update_makefiles.py --hal nfc@1.0
 """
+import argparse
+import re
 
 from build.build_rule_gen import BuildRuleGen
 from utils.const import Constant
 
 if __name__ == "__main__":
+    parser = argparse.ArgumentParser(
+        description='Update build files for HAL driver/profiler.')
+    parser.add_argument(
+        '--hal',
+        dest='hal_package_name',
+        required=False,
+        help='hal package name (e.g. nfc@1.0).')
+    args = parser.parse_args()
+
     print 'Updating build rules.'
     build_rule_gen = BuildRuleGen(Constant.BP_WARNING_HEADER,
                                   Constant.HAL_PACKAGE_PREFIX,
                                   Constant.HAL_INTERFACE_PATH)
-    build_rule_gen.UpdateBuildRule(Constant.VTS_HAL_TEST_CASE_PATH)
+
+    if args.hal_package_name:
+        regex = re.compile(Constant.HAL_PACKAGE_NAME_PATTERN)
+        result = re.match(regex, args.hal_package_name)
+        if not result:
+            print 'Invalid hal package name. Exiting..'
+            sys.exit(1)
+        package_name, version = args.hal_package_name.split('@')
+        hal_list = [(package_name, version)]
+        build_rule_gen.UpdateHalDirBuildRule(hal_list,
+                                             Constant.VTS_HAL_TEST_CASE_PATH)
+    else:
+        build_rule_gen.UpdateBuildRule(Constant.VTS_HAL_TEST_CASE_PATH)
diff --git a/system/hidl/safe_union/V1_0/build/Android.bp b/system/hidl/safe_union/V1_0/build/Android.bp
new file mode 100644
index 0000000..2df9de8
--- /dev/null
+++ b/system/hidl/safe_union/V1_0/build/Android.bp
@@ -0,0 +1,89 @@
+// This file was auto-generated. Do not edit manually.
+// Use launch_hal_test.py or update_makefiles.py in test/vts-testcase/hal/script/ to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hidl.safe_union@1.0-vts.spec",
+    hidl_gen_args: "-r android.hidl:system/libhidl/transport",
+    srcs: [
+        ":android.hidl.safe_union@1.0_hal",
+    ],
+    out: [
+        "android/hidl/safe_union/1.0/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hidl.safe_union@1.0-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hidl:system/libhidl/transport android.hidl.safe_union@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hidl/safe_union/1.0/ $(genDir)/android/hidl/safe_union/1.0/",
+    srcs: [
+        ":android.hidl.safe_union@1.0_hal",
+    ],
+    out: [
+        "android/hidl/safe_union/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hidl.safe_union@1.0-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hidl:system/libhidl/transport android.hidl.safe_union@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hidl/safe_union/1.0/ $(genDir)/android/hidl/safe_union/1.0/",
+    srcs: [
+        ":android.hidl.safe_union@1.0_hal",
+    ],
+    out: [
+        "android/hidl/safe_union/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hidl.safe_union@1.0-vts.driver",
+    generated_sources: ["android.hidl.safe_union@1.0-vts.driver_genc++"],
+    generated_headers: ["android.hidl.safe_union@1.0-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hidl.safe_union@1.0-vts.driver_genc++_headers"],
+    defaults: ["VtsHalDriverDefaults"],
+    shared_libs: [],
+    static_libs: [
+        "android.hidl.safe_union@1.0",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hidl.safe_union@1.0-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hidl:system/libhidl/transport android.hidl.safe_union@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hidl/safe_union/1.0/ $(genDir)/android/hidl/safe_union/1.0/",
+    srcs: [
+        ":android.hidl.safe_union@1.0_hal",
+    ],
+    out: [
+        "android/hidl/safe_union/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hidl.safe_union@1.0-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hidl:system/libhidl/transport android.hidl.safe_union@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hidl/safe_union/1.0/ $(genDir)/android/hidl/safe_union/1.0/",
+    srcs: [
+        ":android.hidl.safe_union@1.0_hal",
+    ],
+    out: [
+        "android/hidl/safe_union/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hidl.safe_union@1.0-vts.profiler",
+    generated_sources: ["android.hidl.safe_union@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hidl.safe_union@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hidl.safe_union@1.0-vts.profiler_genc++_headers"],
+    defaults: ["VtsHalProfilerDefaults"],
+    shared_libs: [],
+    static_libs: [
+        "android.hidl.safe_union@1.0",
+    ],
+}
+
diff --git a/tests/safeunion/V1_0/build/Android.bp b/tests/safeunion/V1_0/build/Android.bp
new file mode 100644
index 0000000..8dc3b00
--- /dev/null
+++ b/tests/safeunion/V1_0/build/Android.bp
@@ -0,0 +1,100 @@
+// This file was auto-generated. Do not edit manually.
+// Use launch_hal_test.py or update_makefiles.py in test/vts-testcase/hal/script/ to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.tests.safeunion@1.0-vts.spec",
+    hidl_gen_args: "-r android.hardware:hardware/interfaces",
+    srcs: [
+        ":android.hardware.tests.safeunion@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/safeunion/1.0/OtherInterface.vts",
+        "android/hardware/tests/safeunion/1.0/SafeUnion.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.tests.safeunion@1.0-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.tests.safeunion@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/tests/safeunion/1.0/ $(genDir)/android/hardware/tests/safeunion/1.0/",
+    srcs: [
+        ":android.hardware.tests.safeunion@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/safeunion/1.0/OtherInterface.vts.cpp",
+        "android/hardware/tests/safeunion/1.0/SafeUnion.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.safeunion@1.0-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.tests.safeunion@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/tests/safeunion/1.0/ $(genDir)/android/hardware/tests/safeunion/1.0/",
+    srcs: [
+        ":android.hardware.tests.safeunion@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/safeunion/1.0/OtherInterface.vts.h",
+        "android/hardware/tests/safeunion/1.0/SafeUnion.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.tests.safeunion@1.0-vts.driver",
+    generated_sources: ["android.hardware.tests.safeunion@1.0-vts.driver_genc++"],
+    generated_headers: ["android.hardware.tests.safeunion@1.0-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.tests.safeunion@1.0-vts.driver_genc++_headers"],
+    defaults: ["VtsHalDriverDefaults"],
+    shared_libs: [
+        "android.hidl.safe_union@1.0-vts.driver",
+    ],
+    static_libs: [
+        "android.hardware.tests.safeunion@1.0",
+        "android.hidl.safe_union@1.0",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.tests.safeunion@1.0-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.tests.safeunion@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/tests/safeunion/1.0/ $(genDir)/android/hardware/tests/safeunion/1.0/",
+    srcs: [
+        ":android.hardware.tests.safeunion@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/safeunion/1.0/OtherInterface.vts.cpp",
+        "android/hardware/tests/safeunion/1.0/SafeUnion.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.safeunion@1.0-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.tests.safeunion@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/tests/safeunion/1.0/ $(genDir)/android/hardware/tests/safeunion/1.0/",
+    srcs: [
+        ":android.hardware.tests.safeunion@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/safeunion/1.0/OtherInterface.vts.h",
+        "android/hardware/tests/safeunion/1.0/SafeUnion.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.tests.safeunion@1.0-vts.profiler",
+    generated_sources: ["android.hardware.tests.safeunion@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.tests.safeunion@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.tests.safeunion@1.0-vts.profiler_genc++_headers"],
+    defaults: ["VtsHalProfilerDefaults"],
+    shared_libs: [
+        "android.hidl.safe_union@1.0-vts.profiler",
+    ],
+    static_libs: [
+        "android.hardware.tests.safeunion@1.0",
+        "android.hidl.safe_union@1.0",
+    ],
+}
+
diff --git a/thermal/V1_0/target_replay/AndroidTest.xml b/thermal/V1_0/target_replay/AndroidTest.xml
index e30d598..05d8ff8 100644
--- a/thermal/V1_0/target_replay/AndroidTest.xml
+++ b/thermal/V1_0/target_replay/AndroidTest.xml
@@ -17,7 +17,7 @@
     <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="abort-on-push-failure" value="false"/>
-        <option name="push-group" value="HalHidlHostTest.push"/>
+        <option name="push-group" value="VtsHalReplayTest.push"/>
         <option name="cleanup" value="true"/>
         <option name="push" value="spec/hardware/interfaces/thermal/1.0/vts/Thermal.vts->/data/local/tmp/spec/android/hardware/thermal/1.0/Thermal.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"/>
diff --git a/treble/vintf/SingleManifestTest.cpp b/treble/vintf/SingleManifestTest.cpp
index ecd5a81..42acfc2 100644
--- a/treble/vintf/SingleManifestTest.cpp
+++ b/treble/vintf/SingleManifestTest.cpp
@@ -147,8 +147,8 @@
       Partition partition = GetPartition(hal_service);
       if (partition == Partition::UNKNOWN) return;
       EXPECT_EQ(expected_partition, partition)
-          << fq_name.string() << " is in partition " << partition
-          << " but is expected to be in " << expected_partition;
+          << fq_name.string() << "/" << instance_name << " is in partition "
+          << partition << " but is expected to be in " << expected_partition;
     };
   };
 
diff --git a/treble/vintf/SystemVendorTest.cpp b/treble/vintf/SystemVendorTest.cpp
index eebd4de..083aed9 100644
--- a/treble/vintf/SystemVendorTest.cpp
+++ b/treble/vintf/SystemVendorTest.cpp
@@ -31,27 +31,76 @@
 
 using std::endl;
 
+// Tests that device manifest and framework compatibility matrix are compatible.
+TEST_F(SystemVendorTest, DeviceManifestFrameworkMatrixCompatibility) {
+  auto device_manifest = VintfObject::GetDeviceHalManifest();
+  ASSERT_NE(device_manifest, nullptr) << "Failed to get device HAL manifest.";
+  auto fwk_matrix = VintfObject::GetFrameworkCompatibilityMatrix();
+  ASSERT_NE(fwk_matrix, nullptr)
+      << "Failed to get framework compatibility matrix.";
+
+  string error;
+  EXPECT_TRUE(device_manifest->checkCompatibility(*fwk_matrix, &error))
+      << error;
+}
+
+// Tests that framework manifest and device compatibility matrix are compatible.
+TEST_F(SystemVendorTest, FrameworkManifestDeviceMatrixCompatibility) {
+  auto fwk_manifest = VintfObject::GetFrameworkHalManifest();
+  ASSERT_NE(fwk_manifest, nullptr) << "Failed to get framework HAL manifest.";
+  auto device_matrix = VintfObject::GetDeviceCompatibilityMatrix();
+  ASSERT_NE(device_matrix, nullptr)
+      << "Failed to get device compatibility matrix.";
+
+  string error;
+  EXPECT_TRUE(fwk_manifest->checkCompatibility(*device_matrix, &error))
+      << error;
+}
+
+// Tests that framework compatibility matrix and runtime info are compatible.
+// AVB version is not a compliance requirement.
+TEST_F(SystemVendorTest, FrameworkMatrixDeviceRuntimeCompatibility) {
+  auto fwk_matrix = VintfObject::GetFrameworkCompatibilityMatrix();
+  ASSERT_NE(fwk_matrix, nullptr)
+      << "Failed to get framework compatibility matrix.";
+  auto runtime_info = VintfObject::GetRuntimeInfo();
+  ASSERT_NE(nullptr, runtime_info) << "Failed to get runtime info.";
+
+  string error;
+  EXPECT_TRUE(runtime_info->checkCompatibility(
+      *fwk_matrix, &error,
+      ::android::vintf::CheckFlags::ENABLE_ALL_CHECKS.disableAvb()
+          .disableKernel()))
+      << error;
+}
+
+// Tests that runtime kernel matches requirements in compatibility matrix.
+// This includes testing kernel version and kernel configurations.
+TEST_F(SystemVendorTest, KernelCompatibility) {
+  auto fwk_matrix = VintfObject::GetFrameworkCompatibilityMatrix();
+  ASSERT_NE(fwk_matrix, nullptr)
+      << "Failed to get framework compatibility matrix.";
+  auto runtime_info = VintfObject::GetRuntimeInfo();
+  ASSERT_NE(nullptr, runtime_info) << "Failed to get runtime info.";
+
+  string error;
+  EXPECT_TRUE(runtime_info->checkCompatibility(
+      *fwk_matrix, &error,
+      ::android::vintf::CheckFlags::DISABLE_ALL_CHECKS.enableKernel()))
+      << error;
+}
+
 // Tests that vendor and framework are compatible.
+// If any of the other tests in SystemVendorTest fails, this test will fail as
+// well. This is a sanity check in case the sub-tests do not cover some
+// checks.
+// AVB version is not a compliance requirement.
 TEST_F(SystemVendorTest, VendorFrameworkCompatibility) {
   string error;
-
-  EXPECT_TRUE(vendor_manifest_->checkCompatibility(
-      *VintfObject::GetFrameworkCompatibilityMatrix(), &error))
-      << error;
-
-  EXPECT_TRUE(fwk_manifest_->checkCompatibility(
-      *VintfObject::GetDeviceCompatibilityMatrix(), &error))
-      << error;
-
-  // AVB version is not a compliance requirement.
-  EXPECT_TRUE(VintfObject::GetRuntimeInfo()->checkCompatibility(
-      *VintfObject::GetFrameworkCompatibilityMatrix(), &error,
-      ::android::vintf::CheckFlags::DISABLE_AVB_CHECK))
-      << error;
-
   EXPECT_EQ(android::vintf::COMPATIBLE,
             VintfObject::CheckCompatibility(
-                {}, &error, ::android::vintf::CheckFlags::DISABLE_AVB_CHECK))
+                {}, &error,
+                ::android::vintf::CheckFlags::ENABLE_ALL_CHECKS.disableAvb()))
       << error;
 }
 
@@ -64,18 +113,22 @@
 // SingleManifestTest.ServedHwbinderHalsAreInManifest because some HALs may
 // refuse to provide its PID, and the partition cannot be inferred.
 TEST_F(SystemVendorTest, ServedHwbinderHalsAreInManifest) {
-  std::set<std::string> manifest_hwbinder_hals_;
+  auto device_manifest = VintfObject::GetDeviceHalManifest();
+  ASSERT_NE(device_manifest, nullptr) << "Failed to get device HAL manifest.";
+  auto fwk_manifest = VintfObject::GetFrameworkHalManifest();
+  ASSERT_NE(fwk_manifest, nullptr) << "Failed to get framework HAL manifest.";
 
-  insert(&manifest_hwbinder_hals_, GetHwbinderHals(fwk_manifest_));
-  insert(&manifest_hwbinder_hals_, GetHwbinderHals(vendor_manifest_));
+  std::set<std::string> manifest_hwbinder_hals;
+
+  insert(&manifest_hwbinder_hals, GetHwbinderHals(fwk_manifest));
+  insert(&manifest_hwbinder_hals, GetHwbinderHals(device_manifest));
 
   Return<void> ret = default_manager_->list([&](const auto &list) {
     for (const auto &name : list) {
       // TODO(b/73774955): use standardized parsing code for fqinstancename
       if (std::string(name).find(IBase::descriptor) == 0) continue;
 
-      EXPECT_NE(manifest_hwbinder_hals_.find(name),
-                manifest_hwbinder_hals_.end())
+      EXPECT_NE(manifest_hwbinder_hals.find(name), manifest_hwbinder_hals.end())
           << name << " is being served, but it is not in a manifest.";
     }
   });
@@ -85,7 +138,10 @@
 // Tests that deprecated HALs are not served, unless a higher, non-deprecated
 // minor version is served.
 TEST_F(SystemVendorTest, NoDeprecatedHalsOnManager) {
-  if (vendor_manifest_->level() == Level::UNSPECIFIED) {
+  auto device_manifest = VintfObject::GetDeviceHalManifest();
+  ASSERT_NE(device_manifest, nullptr) << "Failed to get device HAL manifest.";
+
+  if (device_manifest->level() == Level::UNSPECIFIED) {
     // On a legacy device, no HALs are deprecated.
     return;
   }
diff --git a/treble/vintf/SystemVendorTest.h b/treble/vintf/SystemVendorTest.h
index 847acd8..fbde2da 100644
--- a/treble/vintf/SystemVendorTest.h
+++ b/treble/vintf/SystemVendorTest.h
@@ -28,21 +28,7 @@
 // device manifest.
 class SystemVendorTest : public VtsTrebleVintfTestBase {
  public:
-  virtual ~SystemVendorTest() {}
-  virtual void SetUp() override {
-    VtsTrebleVintfTestBase::SetUp();
-
-    vendor_manifest_ = VintfObject::GetDeviceHalManifest();
-    ASSERT_NE(vendor_manifest_, nullptr)
-        << "Failed to get vendor HAL manifest." << endl;
-
-    fwk_manifest_ = VintfObject::GetFrameworkHalManifest();
-    ASSERT_NE(fwk_manifest_, nullptr)
-        << "Failed to get framework HAL manifest." << endl;
-  }
-
-  HalManifestPtr vendor_manifest_;
-  HalManifestPtr fwk_manifest_;
+  virtual ~SystemVendorTest(){};
 };
 
 }  // namespace testing
diff --git a/treble/vintf/utils.h b/treble/vintf/utils.h
index cf8855c..2ad580e 100644
--- a/treble/vintf/utils.h
+++ b/treble/vintf/utils.h
@@ -46,6 +46,7 @@
 using android::vintf::HalManifest;
 using android::vintf::Level;
 using android::vintf::ManifestHal;
+using android::vintf::RuntimeInfo;
 using android::vintf::SchemaType;
 using android::vintf::to_string;
 using android::vintf::Transport;
@@ -65,6 +66,7 @@
 using HashCharArray = hidl_array<unsigned char, 32>;
 using HalManifestPtr = std::shared_ptr<const HalManifest>;
 using MatrixPtr = std::shared_ptr<const CompatibilityMatrix>;
+using RuntimeInfoPtr = std::shared_ptr<const RuntimeInfo>;
 
 // Path to directory on target containing test data.
 extern const string kDataDir;
diff --git a/usb/V1_0/target_replay/AndroidTest.xml b/usb/V1_0/target_replay/AndroidTest.xml
index 0a157b4..3dd8239 100644
--- a/usb/V1_0/target_replay/AndroidTest.xml
+++ b/usb/V1_0/target_replay/AndroidTest.xml
@@ -17,7 +17,7 @@
     <option name="config-descriptor:metadata" key="plan" value="vts-hal-replay" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="abort-on-push-failure" value="false"/>
-        <option name="push-group" value="HalHidlHostTest.push"/>
+        <option name="push-group" value="VtsHalReplayTest.push"/>
         <option name="cleanup" value="true"/>
         <option name="push" value="spec/hardware/interfaces/usb/1.0/vts/Usb.vts->/data/local/tmp/spec/android/hardware/usb/1.0/Usb.vts"/>
         <option name="push" value="spec/hardware/interfaces/usb/1.0/vts/UsbCallback.vts->/data/local/tmp/spec/android/hardware/usb/1.0/UsbCallback.vts"/>
diff --git a/usb/gadget/V1_0/host/AndroidTest.xml b/usb/gadget/V1_0/host/AndroidTest.xml
index 6a7af1c..8e8e8a8 100644
--- a/usb/gadget/V1_0/host/AndroidTest.xml
+++ b/usb/gadget/V1_0/host/AndroidTest.xml
@@ -16,6 +16,7 @@
 <configuration description="Config for VtsHalUsbGadgetV1_0Host test cases">
     <option name="config-descriptor:metadata" key="plan" value="vts-staging-default" />
     <option name="config-descriptor:metadata" key="plan" value="vts-hal-host" />
+    <option name="config-descriptor:metadata" key="plan" value="vts-hal" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="HostDrivenTest.push" />
     </target_preparer>
diff --git a/usb/gadget/V1_0/host/VtsHalUsbGadgetV1_0HostTest.py b/usb/gadget/V1_0/host/VtsHalUsbGadgetV1_0HostTest.py
index da9abb6..2be71cd 100644
--- a/usb/gadget/V1_0/host/VtsHalUsbGadgetV1_0HostTest.py
+++ b/usb/gadget/V1_0/host/VtsHalUsbGadgetV1_0HostTest.py
@@ -45,7 +45,7 @@
             self.adb.wait_for_device()
         except adb.AdbError as e:
             logging.exception(e)
-        self.serialno = self.adb.shell("\"getprop ro.serialno\"")
+        self.serialno = self.adb.shell("getprop ro.serialno")
 
     def checkProtocol(self, usb_class, usb_sub_class, usb_protocol):
         """Queries the host USB bus to see if the interface is present.
diff --git a/vibrator/V1_0/target_replay/AndroidTest.xml b/vibrator/V1_0/target_replay/AndroidTest.xml
index 952aae1..664cac3 100644
--- a/vibrator/V1_0/target_replay/AndroidTest.xml
+++ b/vibrator/V1_0/target_replay/AndroidTest.xml
@@ -17,7 +17,7 @@
     <option name="config-descriptor:metadata" key="plan" value="vts-hal-replay" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="abort-on-push-failure" value="false"/>
-        <option name="push-group" value="HalHidlHostTest.push"/>
+        <option name="push-group" value="VtsHalReplayTest.push"/>
         <option name="cleanup" value="true"/>
         <option name="push" value="spec/hardware/interfaces/vibrator/1.0/vts/Vibrator.vts->/data/local/tmp/spec/android/hardware/vibrator/1.0/Vibrator.vts"/>
         <option name="push" value="spec/hardware/interfaces/vibrator/1.0/vts/types.vts->/data/local/tmp/spec/android/hardware/vibrator/1.0/types.vts"/>
diff --git a/vr/V1_0/target_replay/AndroidTest.xml b/vr/V1_0/target_replay/AndroidTest.xml
index f4881f5..992734c 100644
--- a/vr/V1_0/target_replay/AndroidTest.xml
+++ b/vr/V1_0/target_replay/AndroidTest.xml
@@ -17,7 +17,7 @@
     <option name="config-descriptor:metadata" key="plan" value="vts-hal-replay" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="abort-on-push-failure" value="false"/>
-        <option name="push-group" value="HalHidlHostTest.push"/>
+        <option name="push-group" value="VtsHalReplayTest.push"/>
         <option name="cleanup" value="true"/>
         <option name="push" value="spec/hardware/interfaces/vr/1.0/vts/Vr.vts->/data/local/tmp/spec/android/hardware/vr/1.0/Vr.vts"/>
         <option name="push" value="DATA/lib/android.hardware.vr@1.0-vts.driver.so->/data/local/tmp/32/android.hardware.vr@1.0-vts.driver.so"/>
diff --git a/wifi/V1_1/target/base/AndroidTest.xml b/wifi/V1_1/target/base/AndroidTest.xml
index 689df99..c05b7dc 100644
--- a/wifi/V1_1/target/base/AndroidTest.xml
+++ b/wifi/V1_1/target/base/AndroidTest.xml
@@ -28,5 +28,7 @@
         <option name="binary-test-stop-native-servers" value="true"/>
         <option name="test-timeout" value="15m"/>
         <option name="runtime-hint" value="5m"/>
+        <!-- b/114117679: VtsHalWifiV1_0Target 2 failed test cases (waiver) -->
+        <option name="exclude-filter" value="VtsHalWifiV1_0Target#WifiChipHidlTest.RequestFirmwareDebugDump" />
     </test>
 </configuration>