Disable VtsHalWifiV1_0Target#WifiChipHidlTest.RequestFirmwareDebugDump
am: 00b7a39b53

Change-Id: I8a323b41d1032b5b5ea4b24b4e0456a6f1828813
diff --git a/.clang-format b/.clang-format
new file mode 100644
index 0000000..6027082
--- /dev/null
+++ b/.clang-format
@@ -0,0 +1,13 @@
+---
+Language: Cpp
+BasedOnStyle: Google
+ColumnLimit: 80
+IndentWidth: 2
+ContinuationIndentWidth: 4
+---
+Language: Java
+BasedOnStyle: Google
+ColumnLimit: 100
+IndentWidth: 4
+ContinuationIndentWidth: 8
+...
diff --git a/OWNERS b/OWNERS
new file mode 100644
index 0000000..4929ba5
--- /dev/null
+++ b/OWNERS
@@ -0,0 +1,5 @@
+yim@google.com
+trong@google.com
+zhuoyao@google.com
+yuexima@google.com
+ryanjcampbell@google.com
diff --git a/PREUPLOAD.cfg b/PREUPLOAD.cfg
new file mode 100644
index 0000000..6be6e5f
--- /dev/null
+++ b/PREUPLOAD.cfg
@@ -0,0 +1,6 @@
+[Builtin Hooks]
+clang_format = true
+
+[Builtin Hooks Options]
+clang_format = --commit ${PREUPLOAD_COMMIT} --style file --extensions c,h,cc,cpp,java
+
diff --git a/audio/V2_0/build/Android.bp b/audio/V2_0/build/Android.bp
index 5e948d4..4266f1a 100644
--- a/audio/V2_0/build/Android.bp
+++ b/audio/V2_0/build/Android.bp
@@ -64,28 +64,37 @@
     generated_headers: ["android.hardware.audio@2.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.audio@2.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.audio@2.0",
         "android.hardware.audio.common@2.0",
         "android.hardware.audio.common@2.0-vts.driver",
-        "android.hidl.base@1.0",
     ],
     export_shared_lib_headers: [
         "android.hardware.audio.common@2.0",
         "android.hardware.audio.common@2.0-vts.driver",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -135,15 +144,26 @@
     export_generated_headers: ["android.hardware.audio@2.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.audio@2.0",
         "android.hardware.audio.common@2.0",
         "android.hardware.audio.common@2.0-vts.profiler",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/audio/V2_0/target/AndroidTest.xml b/audio/V2_0/target/AndroidTest.xml
index b44532c..584e834 100644
--- a/audio/V2_0/target/AndroidTest.xml
+++ b/audio/V2_0/target/AndroidTest.xml
@@ -29,7 +29,7 @@
         <option name="binary-test-disable-framework" value="true"/>
         <option name="binary-test-stop-native-servers" value="true"/>
         <option name="precondition-lshal" value="android.hardware.audio@2.0"/>
-        <option name="test-timeout" value="60m"/>
+        <option name="test-timeout" value="120m"/>
         <option name="runtime-hint" value="10m"/>
     </test>
 </configuration>
diff --git a/audio/V2_0/target_profiling/AndroidTest.xml b/audio/V2_0/target_profiling/AndroidTest.xml
index bb8d13d..2cd5bd4 100644
--- a/audio/V2_0/target_profiling/AndroidTest.xml
+++ b/audio/V2_0/target_profiling/AndroidTest.xml
@@ -17,11 +17,12 @@
     <option name="config-descriptor:metadata" key="plan" value="vts-hal-profiling" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="abort-on-push-failure" value="false"/>
-        <option name="push-group" value="HalHidlTargetProfilingTest.push"/>
         <option name="cleanup" value="true"/>
+        <option name="push-group" value="HalHidlTargetProfilingTest.push"/>
+        <option name="push" value="DATA/hardware/interfaces/audio/2.0/config/audio_policy_configuration.xsd->/data/local/tmp/audio_policy_configuration.xsd"/>
         <option name="push" value="DATA/lib/android.hardware.audio.common@2.0-vts.profiler.so->/data/local/tmp/32/android.hardware.audio.common@2.0-vts.profiler.so"/>
-        <option name="push" value="DATA/lib64/android.hardware.audio.common@2.0-vts.profiler.so->/data/local/tmp/64/android.hardware.audio.common@2.0-vts.profiler.so"/>
         <option name="push" value="DATA/lib/android.hardware.audio@2.0-vts.profiler.so->/data/local/tmp/32/android.hardware.audio@2.0-vts.profiler.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.audio.common@2.0-vts.profiler.so->/data/local/tmp/64/android.hardware.audio.common@2.0-vts.profiler.so"/>
         <option name="push" value="DATA/lib64/android.hardware.audio@2.0-vts.profiler.so->/data/local/tmp/64/android.hardware.audio@2.0-vts.profiler.so"/>
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
diff --git a/audio/common/V2_0/build/Android.bp b/audio/common/V2_0/build/Android.bp
index af8cb6d..0d49052 100644
--- a/audio/common/V2_0/build/Android.bp
+++ b/audio/common/V2_0/build/Android.bp
@@ -43,25 +43,36 @@
     generated_headers: ["android.hardware.audio.common@2.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.audio.common@2.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.audio.common@2.0",
         
     ],
     export_shared_lib_headers: [
         
     ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
 }
 
 // Build VTS profiler.
@@ -96,13 +107,25 @@
     export_generated_headers: ["android.hardware.audio.common@2.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.audio.common@2.0",
         
     ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
 }
 
diff --git a/audio/effect/V2_0/build/Android.bp b/audio/effect/V2_0/build/Android.bp
index bf0e985..f2937ba 100644
--- a/audio/effect/V2_0/build/Android.bp
+++ b/audio/effect/V2_0/build/Android.bp
@@ -85,28 +85,37 @@
     generated_headers: ["android.hardware.audio.effect@2.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.audio.effect@2.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.audio.effect@2.0",
         "android.hardware.audio.common@2.0",
         "android.hardware.audio.common@2.0-vts.driver",
-        "android.hidl.base@1.0",
     ],
     export_shared_lib_headers: [
         "android.hardware.audio.common@2.0",
         "android.hardware.audio.common@2.0-vts.driver",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -170,15 +179,26 @@
     export_generated_headers: ["android.hardware.audio.effect@2.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.audio.effect@2.0",
         "android.hardware.audio.common@2.0",
         "android.hardware.audio.common@2.0-vts.profiler",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/audio/effect/V2_0/target/AndroidTest.xml b/audio/effect/V2_0/target/AndroidTest.xml
index 24c6099..8e86a25 100644
--- a/audio/effect/V2_0/target/AndroidTest.xml
+++ b/audio/effect/V2_0/target/AndroidTest.xml
@@ -18,6 +18,7 @@
     <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"/>
+        <option name="push" value="DATA/hardware/interfaces/audio/effect/2.0/xml/audio_effects_conf_V2_0.xsd->/data/local/tmp/audio_effects_conf_V2_0.xsd"/>
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
diff --git a/audio/effect/V2_0/target_profiling/AndroidTest.xml b/audio/effect/V2_0/target_profiling/AndroidTest.xml
index dc6df27..95cf39c 100644
--- a/audio/effect/V2_0/target_profiling/AndroidTest.xml
+++ b/audio/effect/V2_0/target_profiling/AndroidTest.xml
@@ -23,6 +23,7 @@
         <option name="push" value="DATA/lib64/android.hardware.audio.common@2.0-vts.profiler.so->/data/local/tmp/64/android.hardware.audio.common@2.0-vts.profiler.so"/>
         <option name="push" value="DATA/lib/android.hardware.audio.effect@2.0-vts.profiler.so->/data/local/tmp/32/android.hardware.audio.effect@2.0-vts.profiler.so"/>
         <option name="push" value="DATA/lib64/android.hardware.audio.effect@2.0-vts.profiler.so->/data/local/tmp/64/android.hardware.audio.effect@2.0-vts.profiler.so"/>
+        <option name="push" value="DATA/hardware/interfaces/audio/effect/2.0/xml/audio_effects_conf_V2_0.xsd->/data/local/tmp/audio_effects_conf_V2_0.xsd"/>
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
diff --git a/automotive/Android.bp b/automotive/Android.bp
index 1047dba..13c324a 100644
--- a/automotive/Android.bp
+++ b/automotive/Android.bp
@@ -4,5 +4,4 @@
 subdirs = [
     "evs/V1_0",
     "vehicle/V2_0",
-    "vehicle/V2_1",
 ]
diff --git a/automotive/evs/V1_0/build/Android.bp b/automotive/evs/V1_0/build/Android.bp
index a2d10af..87aef34 100644
--- a/automotive/evs/V1_0/build/Android.bp
+++ b/automotive/evs/V1_0/build/Android.bp
@@ -55,24 +55,35 @@
     generated_headers: ["android.hardware.automotive.evs@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.automotive.evs@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.automotive.evs@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -116,13 +127,25 @@
     export_generated_headers: ["android.hardware.automotive.evs@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.automotive.evs@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/wifi/V1_0/target/base/Android.mk b/automotive/evs/V1_0/target/Android.mk
similarity index 87%
copy from wifi/V1_0/target/base/Android.mk
copy to automotive/evs/V1_0/target/Android.mk
index c07841b..b511a08 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/automotive/evs/V1_0/target/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalEvsV1_0Target
+VTS_CONFIG_SRC_DIR := testcases/hal/automotive/evs/V1_0/target
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/automotive/evs/V1_0/target/AndroidTest.xml
similarity index 74%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to automotive/evs/V1_0/target/AndroidTest.xml
index 4108231..de5aa23 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/automotive/evs/V1_0/target/AndroidTest.xml
@@ -13,24 +13,21 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-hal" />
+<configuration description="Config for VTS VtsHalEvsV1_0Target test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-hal-auto" />
     <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>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalEvsV1_0Target"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalEvsV1_0TargetTest/VtsHalEvsV1_0TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalEvsV1_0TargetTest/VtsHalEvsV1_0TargetTest"/>
         <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.wifi@1.0"/>
+        <option name="precondition-lshal" value="android.hardware.automotive.evs@1.0"/>
         <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>
diff --git a/wifi/V1_0/target/base/Android.mk b/automotive/evs/V1_0/target_profiling/Android.mk
similarity index 85%
copy from wifi/V1_0/target/base/Android.mk
copy to automotive/evs/V1_0/target_profiling/Android.mk
index c07841b..9070902 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/automotive/evs/V1_0/target_profiling/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalEvsV1_0TargetProfiling
+VTS_CONFIG_SRC_DIR := testcases/hal/automotive/evs/V1_0/target_profiling
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/automotive/evs/V1_0/target_profiling/AndroidTest.xml
similarity index 74%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to automotive/evs/V1_0/target_profiling/AndroidTest.xml
index 4108231..6ca4852 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/automotive/evs/V1_0/target_profiling/AndroidTest.xml
@@ -13,24 +13,22 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-hal" />
+<configuration description="Config for VTS VtsHalEvsV1_0Target test cases">
+    <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="HalHidlTargetTest.push"/>
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalEvsV1_0TargetProfiling"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalEvsV1_0TargetTest/VtsHalEvsV1_0TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalEvsV1_0TargetTest/VtsHalEvsV1_0TargetTest"/>
         <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.wifi@1.0"/>
+        <option name="enable-profiling" value="true"/>
+        <option name="precondition-lshal" value="android.hardware.automotive.evs@1.0"/>
         <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>
diff --git a/automotive/vehicle/V2_0/build/Android.bp b/automotive/vehicle/V2_0/build/Android.bp
index a96449e..514ae0f 100644
--- a/automotive/vehicle/V2_0/build/Android.bp
+++ b/automotive/vehicle/V2_0/build/Android.bp
@@ -49,24 +49,35 @@
     generated_headers: ["android.hardware.automotive.vehicle@2.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.automotive.vehicle@2.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.automotive.vehicle@2.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -106,13 +117,25 @@
     export_generated_headers: ["android.hardware.automotive.vehicle@2.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.automotive.vehicle@2.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/automotive/vehicle/V2_0/host/VtsHalAutomotiveVehicleV2_0HostTest.py b/automotive/vehicle/V2_0/host/VtsHalAutomotiveVehicleV2_0HostTest.py
index 2fd0f4b..107a8f3 100644
--- a/automotive/vehicle/V2_0/host/VtsHalAutomotiveVehicleV2_0HostTest.py
+++ b/automotive/vehicle/V2_0/host/VtsHalAutomotiveVehicleV2_0HostTest.py
@@ -199,67 +199,6 @@
         asserts.assertEqual(1, len(propValue["value"]["int32Values"]))
         asserts.assertEqual(value, propValue["value"]["int32Values"][0])
 
-    def testObd2SensorProperties(self):
-        """Test reading the live and freeze OBD2 frame properties.
-
-        OBD2 (On-Board Diagnostics 2) is the industry standard protocol
-        for retrieving diagnostic sensor information from vehicles.
-        """
-        class CheckRead(object):
-            """This class wraps the logic of an actual property read.
-
-            Attributes:
-                testobject: the test case this object is used on behalf of.
-                propertyId: the identifier of the Vehiche HAL property to read.
-                name: the engineer-readable name of this test operation.
-            """
-
-            def __init__(self, testobject, propertyId, name):
-                self.testobject = testobject
-                self.propertyId = propertyId
-                self.name = name
-
-            def onReadSuccess(self, propValue):
-                """Override this to perform any post-read validation.
-
-                Args:
-                    propValue: the property value obtained from Vehicle HAL.
-                """
-                pass
-
-            def __call__(self):
-                """Reads the specified property and validates the result."""
-                propValue = self.testobject.readVhalProperty(self.propertyId)
-                asserts.assertNotEqual(propValue, None,
-                                       msg="reading %s should not return None" %
-                                       self.name)
-                logging.info("%s = %s", self.name, propValue)
-                self.onReadSuccess(propValue)
-                logging.info("%s pass" % self.name)
-
-        def checkLiveFrameRead():
-            """Validates reading the OBD2_LIVE_FRAME (if available)."""
-            checker = CheckRead(self,
-                                self.vtypes.VehicleProperty.OBD2_LIVE_FRAME,
-                                "OBD2_LIVE_FRAME")
-            checker()
-
-        def checkFreezeFrameRead():
-            """Validates reading the OBD2_FREEZE_FRAME (if available)."""
-            checker = CheckRead(self,
-                                self.vtypes.VehicleProperty.OBD2_FREEZE_FRAME,
-                                "OBD2_FREEZE_FRAME")
-            checker()
-
-        isLiveSupported = self.vtypes.VehicleProperty.OBD2_LIVE_FRAME in self.propToConfig
-        isFreezeSupported = self.vtypes.VehicleProperty.OBD2_FREEZE_FRAME in self.propToConfig
-        logging.info("isLiveSupported = %s, isFreezeSupported = %s",
-                     isLiveSupported, isFreezeSupported)
-        if isLiveSupported:
-            checkLiveFrameRead()
-        if isFreezeSupported:
-            checkFreezeFrameRead()
-
     def testDrivingStatus(self):
         """Checks that DRIVING_STATUS property returns correct result."""
         propValue = self.readVhalProperty(
@@ -686,5 +625,294 @@
                 time.sleep(1)
             asserts.fail("Callback not called in 5 seconds.")
 
+    def getDiagnosticSupportInfo(self):
+        """Check which of the OBD2 diagnostic properties are supported."""
+        properties = [self.vtypes.VehicleProperty.OBD2_LIVE_FRAME,
+            self.vtypes.VehicleProperty.OBD2_FREEZE_FRAME,
+            self.vtypes.VehicleProperty.OBD2_FREEZE_FRAME_INFO,
+            self.vtypes.VehicleProperty.OBD2_FREEZE_FRAME_CLEAR]
+        return {x:self.isPropSupported(x) for x in properties}
+
+    class CheckRead(object):
+        """An object whose job it is to read a Vehicle HAL property and run
+           routine validation checks on the result."""
+
+        def __init__(self, test, propertyId, areaId=0):
+            """Creates a CheckRead instance.
+
+            Args:
+                test: the containing testcase object.
+                propertyId: the numeric identifier of the vehicle property.
+            """
+            self.test = test
+            self.propertyId = propertyId
+            self.areaId = 0
+
+        def validateGet(self, status, value):
+            """Validate the result of IVehicle.get.
+
+            Args:
+                status: the StatusCode returned from Vehicle HAL.
+                value: the VehiclePropValue returned from Vehicle HAL.
+
+            Returns: a VehiclePropValue instance, or None on failure."""
+            asserts.assertEqual(self.test.vtypes.StatusCode.OK, status)
+            asserts.assertNotEqual(value, None)
+            asserts.assertEqual(self.propertyId, value['prop'])
+            return value
+
+        def prepareRequest(self, propValue):
+            """Setup this request with any property-specific data.
+
+            Args:
+                propValue: a dictionary in the format of a VehiclePropValue.
+
+            Returns: a dictionary in the format of a VehclePropValue."""
+            return propValue
+
+        def __call__(self):
+            asserts.assertTrue(self.test.isPropSupported(self.propertyId), "error")
+            request = {
+                'prop' : self.propertyId,
+                'timestamp' : 0,
+                'areaId' : self.areaId,
+                'value' : {
+                    'int32Values' : [],
+                    'floatValues' : [],
+                    'int64Values' : [],
+                    'bytes' : [],
+                    'stringValue' : ""
+                }
+            }
+            request = self.prepareRequest(request)
+            requestPropValue = self.test.vtypes.Py2Pb("VehiclePropValue",
+                request)
+            status, responsePropValue = self.test.vehicle.get(requestPropValue)
+            return self.validateGet(status, responsePropValue)
+
+    class CheckWrite(object):
+        """An object whose job it is to write a Vehicle HAL property and run
+           routine validation checks on the result."""
+
+        def __init__(self, test, propertyId, areaId=0):
+            """Creates a CheckWrite instance.
+
+            Args:
+                test: the containing testcase object.
+                propertyId: the numeric identifier of the vehicle property.
+                areaId: the numeric identifier of the vehicle area.
+            """
+            self.test = test
+            self.propertyId = propertyId
+            self.areaId = 0
+
+        def validateSet(self, status):
+            """Validate the result of IVehicle.set.
+            Reading back the written-to property to ensure a consistent
+            value is fair game for this method.
+
+            Args:
+                status: the StatusCode returned from Vehicle HAL.
+
+            Returns: None."""
+            asserts.assertEqual(self.test.vtypes.StatusCode.OK, status)
+
+        def prepareRequest(self, propValue):
+            """Setup this request with any property-specific data.
+
+            Args:
+                propValue: a dictionary in the format of a VehiclePropValue.
+
+            Returns: a dictionary in the format of a VehclePropValue."""
+            return propValue
+
+        def __call__(self):
+            asserts.assertTrue(self.test.isPropSupported(self.propertyId), "error")
+            request = {
+                'prop' : self.propertyId,
+                'timestamp' : 0,
+                'areaId' : self.areaId,
+                'value' : {
+                    'int32Values' : [],
+                    'floatValues' : [],
+                    'int64Values' : [],
+                    'bytes' : [],
+                    'stringValue' : ""
+                }
+            }
+            request = self.prepareRequest(request)
+            requestPropValue = self.test.vtypes.Py2Pb("VehiclePropValue",
+                request)
+            status = self.test.vehicle.set(requestPropValue)
+            return self.validateSet(status)
+
+    def testReadObd2LiveFrame(self):
+        """Test that one can correctly read the OBD2 live frame."""
+        supportInfo = self.getDiagnosticSupportInfo()
+        if supportInfo[self.vtypes.VehicleProperty.OBD2_LIVE_FRAME]:
+            checkRead = self.CheckRead(self,
+                self.vtypes.VehicleProperty.OBD2_LIVE_FRAME)
+            checkRead()
+        else:
+            # live frame not supported by this HAL implementation. done
+            logging.info("OBD2_LIVE_FRAME not supported.")
+
+    def testReadObd2FreezeFrameInfo(self):
+        """Test that one can read the list of OBD2 freeze timestamps."""
+        supportInfo = self.getDiagnosticSupportInfo()
+        if supportInfo[self.vtypes.VehicleProperty.OBD2_FREEZE_FRAME_INFO]:
+            checkRead = self.CheckRead(self,
+                self.vtypes.VehicleProperty.OBD2_FREEZE_FRAME_INFO)
+            checkRead()
+        else:
+            # freeze frame info not supported by this HAL implementation. done
+            logging.info("OBD2_FREEZE_FRAME_INFO not supported.")
+
+    def testReadValidObd2FreezeFrame(self):
+        """Test that one can read the OBD2 freeze frame data."""
+        class FreezeFrameCheckRead(self.CheckRead):
+            def __init__(self, test, timestamp):
+                self.test = test
+                self.propertyId = \
+                    self.test.vtypes.VehicleProperty.OBD2_FREEZE_FRAME
+                self.timestamp = timestamp
+                self.areaId = 0
+
+            def prepareRequest(self, propValue):
+                propValue['value']['int64Values'] = [self.timestamp]
+                return propValue
+
+            def validateGet(self, status, value):
+                # None is acceptable, as a newer fault could have overwritten
+                # the one we're trying to read
+                if value is not None:
+                    asserts.assertEqual(self.test.vtypes.StatusCode.OK, status)
+                    asserts.assertEqual(self.propertyId, value['prop'])
+                    asserts.assertEqual(self.timestamp, value['timestamp'])
+
+        supportInfo = self.getDiagnosticSupportInfo()
+        if supportInfo[self.vtypes.VehicleProperty.OBD2_FREEZE_FRAME_INFO] \
+            and supportInfo[self.vtypes.VehicleProperty.OBD2_FREEZE_FRAME]:
+            infoCheckRead = self.CheckRead(self,
+                self.vtypes.VehicleProperty.OBD2_FREEZE_FRAME_INFO)
+            frameInfos = infoCheckRead()
+            timestamps = frameInfos["value"]["int64Values"]
+            for timestamp in timestamps:
+                freezeCheckRead = FreezeFrameCheckRead(self, timestamp)
+                freezeCheckRead()
+        else:
+            # freeze frame not supported by this HAL implementation. done
+            logging.info("OBD2_FREEZE_FRAME and _INFO not supported.")
+
+    def testReadInvalidObd2FreezeFrame(self):
+        """Test that trying to read freeze frame at invalid timestamps
+            behaves correctly (i.e. returns an error code)."""
+        class FreezeFrameCheckRead(self.CheckRead):
+            def __init__(self, test, timestamp):
+                self.test = test
+                self.propertyId = self.test.vtypes.VehicleProperty.OBD2_FREEZE_FRAME
+                self.timestamp = timestamp
+                self.areaId = 0
+
+            def prepareRequest(self, propValue):
+                propValue['value']['int64Values'] = [self.timestamp]
+                return propValue
+
+            def validateGet(self, status, value):
+                asserts.assertEqual(
+                    self.test.vtypes.StatusCode.INVALID_ARG, status)
+
+        supportInfo = self.getDiagnosticSupportInfo()
+        invalidTimestamps = [0,482005800]
+        if supportInfo[self.vtypes.VehicleProperty.OBD2_FREEZE_FRAME]:
+            for timestamp in invalidTimestamps:
+                freezeCheckRead = FreezeFrameCheckRead(self, timestamp)
+                freezeCheckRead()
+        else:
+            # freeze frame not supported by this HAL implementation. done
+            logging.info("OBD2_FREEZE_FRAME not supported.")
+
+    def testClearValidObd2FreezeFrame(self):
+        """Test that deleting a diagnostic freeze frame works.
+        Given the timing behavor of OBD2_FREEZE_FRAME, the only sensible
+        definition of works here is that, after deleting a frame, trying to read
+        at its timestamp, will not be successful."""
+        class FreezeFrameClearCheckWrite(self.CheckWrite):
+            def __init__(self, test, timestamp):
+                self.test = test
+                self.propertyId = self.test.vtypes.VehicleProperty.OBD2_FREEZE_FRAME_CLEAR
+                self.timestamp = timestamp
+                self.areaId = 0
+
+            def prepareRequest(self, propValue):
+                propValue['value']['int64Values'] = [self.timestamp]
+                return propValue
+
+            def validateSet(self, status):
+                asserts.assertTrue(status in [
+                    self.test.vtypes.StatusCode.OK,
+                    self.test.vtypes.StatusCode.INVALID_ARG], "error")
+
+        class FreezeFrameCheckRead(self.CheckRead):
+            def __init__(self, test, timestamp):
+                self.test = test
+                self.propertyId = \
+                    self.test.vtypes.VehicleProperty.OBD2_FREEZE_FRAME
+                self.timestamp = timestamp
+                self.areaId = 0
+
+            def prepareRequest(self, propValue):
+                propValue['value']['int64Values'] = [self.timestamp]
+                return propValue
+
+            def validateGet(self, status, value):
+                asserts.assertEqual(
+                    self.test.vtypes.StatusCode.INVALID_ARG, status)
+
+        supportInfo = self.getDiagnosticSupportInfo()
+        if supportInfo[self.vtypes.VehicleProperty.OBD2_FREEZE_FRAME_INFO] \
+            and supportInfo[self.vtypes.VehicleProperty.OBD2_FREEZE_FRAME] \
+            and supportInfo[self.vtypes.VehicleProperty.OBD2_FREEZE_FRAME_CLEAR]:
+            infoCheckRead = self.CheckRead(self,
+                self.vtypes.VehicleProperty.OBD2_FREEZE_FRAME_INFO)
+            frameInfos = infoCheckRead()
+            timestamps = frameInfos["value"]["int64Values"]
+            for timestamp in timestamps:
+                checkWrite = FreezeFrameClearCheckWrite(self, timestamp)
+                checkWrite()
+                checkRead = FreezeFrameCheckRead(self, timestamp)
+                checkRead()
+        else:
+            # freeze frame not supported by this HAL implementation. done
+            logging.info("OBD2_FREEZE_FRAME, _CLEAR and _INFO not supported.")
+
+    def testClearInvalidObd2FreezeFrame(self):
+        """Test that deleting an invalid freeze frame behaves correctly."""
+        class FreezeFrameClearCheckWrite(self.CheckWrite):
+            def __init__(self, test, timestamp):
+                self.test = test
+                self.propertyId = \
+                    self.test.vtypes.VehicleProperty.OBD2_FREEZE_FRAME_CLEAR
+                self.timestamp = timestamp
+                self.areaId = 0
+
+            def prepareRequest(self, propValue):
+                propValue['value']['int64Values'] = [self.timestamp]
+                return propValue
+
+            def validateSet(self, status):
+                asserts.assertEqual(self.test.vtypes.StatusCode.INVALID_ARG,
+                    status, "PropId: 0x%s, Timestamp: %d" % (self.propertyId, self.timestamp))
+
+        supportInfo = self.getDiagnosticSupportInfo()
+        if supportInfo[self.vtypes.VehicleProperty.OBD2_FREEZE_FRAME_CLEAR]:
+            invalidTimestamps = [0,482005800]
+            for timestamp in invalidTimestamps:
+                checkWrite = FreezeFrameClearCheckWrite(self, timestamp)
+                checkWrite()
+        else:
+            # freeze frame not supported by this HAL implementation. done
+            logging.info("OBD2_FREEZE_FRAME_CLEAR not supported.")
+
 if __name__ == "__main__":
     test_runner.main()
diff --git a/automotive/vehicle/V2_1/build/Android.bp b/automotive/vehicle/V2_1/build/Android.bp
deleted file mode 100644
index 1dbc4fa..0000000
--- a/automotive/vehicle/V2_1/build/Android.bp
+++ /dev/null
@@ -1,119 +0,0 @@
-// This file was auto-generated. Do not edit manually.
-// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
-
-// Generate .vts spec files.
-hal2vts {
-    name: "android.hardware.automotive.vehicle@2.1-vts.spec",
-    srcs: [
-        ":android.hardware.automotive.vehicle@2.1_hal",
-    ],
-    out: [
-        "android/hardware/automotive/vehicle/2.1/Vehicle.vts",
-        "android/hardware/automotive/vehicle/2.1/types.vts",
-    ],
-}
-
-// Build VTS driver.
-genrule {
-    name: "android.hardware.automotive.vehicle@2.1-vts.driver_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.automotive.vehicle@2.1 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/automotive/vehicle/2.1/ $(genDir)/android/hardware/automotive/vehicle/2.1/",
-    srcs: [
-        ":android.hardware.automotive.vehicle@2.1_hal",
-    ],
-    out: [
-        "android/hardware/automotive/vehicle/2.1/Vehicle.vts.cpp",
-        "android/hardware/automotive/vehicle/2.1/types.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.automotive.vehicle@2.1-vts.driver_genc++_headers",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.automotive.vehicle@2.1 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/automotive/vehicle/2.1/ $(genDir)/android/hardware/automotive/vehicle/2.1/",
-    srcs: [
-        ":android.hardware.automotive.vehicle@2.1_hal",
-    ],
-    out: [
-        "android/hardware/automotive/vehicle/2.1/Vehicle.vts.h",
-        "android/hardware/automotive/vehicle/2.1/types.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.automotive.vehicle@2.1-vts.driver",
-    generated_sources: ["android.hardware.automotive.vehicle@2.1-vts.driver_genc++"],
-    generated_headers: ["android.hardware.automotive.vehicle@2.1-vts.driver_genc++_headers"],
-    export_generated_headers: ["android.hardware.automotive.vehicle@2.1-vts.driver_genc++_headers"],
-    shared_libs: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "liblog",
-        "libutils",
-        "libcutils",
-        "libvts_common",
-        "libvts_datatype",
-        "libvts_drivercomm",
-        "libvts_measurement",
-        "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
-        "android.hardware.automotive.vehicle@2.1",
-        "android.hardware.automotive.vehicle@2.0",
-        "android.hardware.automotive.vehicle@2.0-vts.driver",
-        "android.hidl.base@1.0",
-    ],
-    export_shared_lib_headers: [
-        "android.hardware.automotive.vehicle@2.0",
-        "android.hardware.automotive.vehicle@2.0-vts.driver",
-        "android.hidl.base@1.0",
-    ],
-}
-
-// Build VTS profiler.
-genrule {
-    name: "android.hardware.automotive.vehicle@2.1-vts.profiler_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.automotive.vehicle@2.1 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/automotive/vehicle/2.1/ $(genDir)/android/hardware/automotive/vehicle/2.1/",
-    srcs: [
-        ":android.hardware.automotive.vehicle@2.1_hal",
-    ],
-    out: [
-        "android/hardware/automotive/vehicle/2.1/Vehicle.vts.cpp",
-        "android/hardware/automotive/vehicle/2.1/types.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.automotive.vehicle@2.1-vts.profiler_genc++_headers",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.automotive.vehicle@2.1 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/automotive/vehicle/2.1/ $(genDir)/android/hardware/automotive/vehicle/2.1/",
-    srcs: [
-        ":android.hardware.automotive.vehicle@2.1_hal",
-    ],
-    out: [
-        "android/hardware/automotive/vehicle/2.1/Vehicle.vts.h",
-        "android/hardware/automotive/vehicle/2.1/types.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.automotive.vehicle@2.1-vts.profiler",
-    generated_sources: ["android.hardware.automotive.vehicle@2.1-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.automotive.vehicle@2.1-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.automotive.vehicle@2.1-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.automotive.vehicle@2.1",
-        "android.hardware.automotive.vehicle@2.0",
-        "android.hardware.automotive.vehicle@2.0-vts.profiler",
-        "android.hidl.base@1.0",
-    ],
-}
-
diff --git a/biometrics/fingerprint/V2_1/build/Android.bp b/biometrics/fingerprint/V2_1/build/Android.bp
index 7cc3b75..c4fb80e 100644
--- a/biometrics/fingerprint/V2_1/build/Android.bp
+++ b/biometrics/fingerprint/V2_1/build/Android.bp
@@ -49,24 +49,35 @@
     generated_headers: ["android.hardware.biometrics.fingerprint@2.1-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.biometrics.fingerprint@2.1-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.biometrics.fingerprint@2.1",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -106,13 +117,25 @@
     export_generated_headers: ["android.hardware.biometrics.fingerprint@2.1-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.biometrics.fingerprint@2.1",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/biometrics/fingerprint/V2_1/target_replay/AndroidTest.xml b/biometrics/fingerprint/V2_1/target_replay/AndroidTest.xml
index d9a8294..b2bf143 100644
--- a/biometrics/fingerprint/V2_1/target_replay/AndroidTest.xml
+++ b/biometrics/fingerprint/V2_1/target_replay/AndroidTest.xml
@@ -18,7 +18,7 @@
     <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="cleanup" value="false"/>
+        <option name="cleanup" value="true"/>
         <option name="push" value="spec/hardware/interfaces/biometrics/fingerprint/2.1/vts/BiometricsFingerprint.vts->/data/local/tmp/spec/android/hardware/biometrics/fingerprint/2.1/BiometricsFingerprint.vts"/>
         <option name="push" value="spec/hardware/interfaces/biometrics/fingerprint/2.1/vts/BiometricsFingerprintClientCallback.vts->/data/local/tmp/spec/android/hardware/biometrics/fingerprint/2.1/BiometricsFingerprintClientCallback.vts"/>
         <option name="push" value="spec/hardware/interfaces/biometrics/fingerprint/2.1/vts/types.vts->/data/local/tmp/spec/android/hardware/biometrics/fingerprint/2.1/types.vts"/>
@@ -29,7 +29,9 @@
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalBiometricsFingerprintV2_1TargetReplay"/>
         <option name="binary-test-type" value="hal_hidl_replay_test"/>
-        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/biometrics/fingerprint/V2_1/android.hardware.biometrics.fingerprint@2.1_sailfish_1.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/biometrics/fingerprint/V2_1/android.hardware.biometrics.fingerprint_2.1_232168888856.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/biometrics/fingerprint/V2_1/android.hardware.biometrics.fingerprint_2.1_45646006628.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/biometrics/fingerprint/V2_1/android.hardware.biometrics.fingerprint_2.1_705377609277.vts.trace"/>
         <option name="hal-hidl-package-name" value="android.hardware.biometrics.fingerprint@2.1"/>
         <option name="precondition-lshal" value="android.hardware.biometrics.fingerprint@2.1"/>
         <option name="test-timeout" value="5m"/>
diff --git a/bluetooth/V1_0/build/Android.bp b/bluetooth/V1_0/build/Android.bp
index d82abbe..d289977 100644
--- a/bluetooth/V1_0/build/Android.bp
+++ b/bluetooth/V1_0/build/Android.bp
@@ -49,24 +49,35 @@
     generated_headers: ["android.hardware.bluetooth@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.bluetooth@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.bluetooth@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -106,13 +117,25 @@
     export_generated_headers: ["android.hardware.bluetooth@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.bluetooth@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/boot/V1_0/build/Android.bp b/boot/V1_0/build/Android.bp
index 92ef74a..f020db0 100644
--- a/boot/V1_0/build/Android.bp
+++ b/boot/V1_0/build/Android.bp
@@ -46,24 +46,35 @@
     generated_headers: ["android.hardware.boot@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.boot@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.boot@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -101,13 +112,25 @@
     export_generated_headers: ["android.hardware.boot@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.boot@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/broadcastradio/V1_0/build/Android.bp b/broadcastradio/V1_0/build/Android.bp
index b3ae706..04244cd 100644
--- a/broadcastradio/V1_0/build/Android.bp
+++ b/broadcastradio/V1_0/build/Android.bp
@@ -55,24 +55,35 @@
     generated_headers: ["android.hardware.broadcastradio@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.broadcastradio@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.broadcastradio@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -116,13 +127,25 @@
     export_generated_headers: ["android.hardware.broadcastradio@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.broadcastradio@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/broadcastradio/V1_0/target/AndroidTest.xml b/broadcastradio/V1_0/target/AndroidTest.xml
index d2d53bc..69e07e5 100644
--- a/broadcastradio/V1_0/target/AndroidTest.xml
+++ b/broadcastradio/V1_0/target/AndroidTest.xml
@@ -14,7 +14,6 @@
      limitations under the License.
 -->
 <configuration description="Config for VTS VtsHalBroadcastradioV1_0Target test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-hal-auto" />
     <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"/>
diff --git a/broadcastradio/V1_1/build/Android.bp b/broadcastradio/V1_1/build/Android.bp
index d1a46e9..f64c410 100644
--- a/broadcastradio/V1_1/build/Android.bp
+++ b/broadcastradio/V1_1/build/Android.bp
@@ -55,28 +55,37 @@
     generated_headers: ["android.hardware.broadcastradio@1.1-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.broadcastradio@1.1-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.broadcastradio@1.1",
         "android.hardware.broadcastradio@1.0",
         "android.hardware.broadcastradio@1.0-vts.driver",
-        "android.hidl.base@1.0",
     ],
     export_shared_lib_headers: [
         "android.hardware.broadcastradio@1.0",
         "android.hardware.broadcastradio@1.0-vts.driver",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -120,15 +129,26 @@
     export_generated_headers: ["android.hardware.broadcastradio@1.1-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.broadcastradio@1.1",
         "android.hardware.broadcastradio@1.0",
         "android.hardware.broadcastradio@1.0-vts.profiler",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/wifi/V1_0/target/base/Android.mk b/broadcastradio/V1_1/target/Android.mk
similarity index 86%
copy from wifi/V1_0/target/base/Android.mk
copy to broadcastradio/V1_1/target/Android.mk
index c07841b..7ec9a3c 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/broadcastradio/V1_1/target/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalBroadcastradioV1_1Target
+VTS_CONFIG_SRC_DIR := testcases/hal/broadcastradio/V1_1/target
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/broadcastradio/V1_1/target/AndroidTest.xml
similarity index 74%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to broadcastradio/V1_1/target/AndroidTest.xml
index 4108231..4a73abd 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/broadcastradio/V1_1/target/AndroidTest.xml
@@ -13,24 +13,21 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-hal" />
+<configuration description="Config for VTS VtsHalBroadcastradioV1_0Target test cases">
+    <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="HalHidlTargetTest.push"/>
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalBroadcastradioV1_1Target"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalBroadcastradioV1_1TargetTest/VtsHalBroadcastradioV1_1TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalBroadcastradioV1_1TargetTest/VtsHalBroadcastradioV1_1TargetTest"/>
         <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.wifi@1.0"/>
+        <option name="precondition-lshal" value="android.hardware.broadcastradio@1.1"/>
         <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>
diff --git a/wifi/V1_0/target/base/Android.mk b/broadcastradio/V1_1/target_profiling/Android.mk
similarity index 84%
copy from wifi/V1_0/target/base/Android.mk
copy to broadcastradio/V1_1/target_profiling/Android.mk
index c07841b..a4ee112 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/broadcastradio/V1_1/target_profiling/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalBroadcastradioV1_1TargetProfiling
+VTS_CONFIG_SRC_DIR := testcases/hal/broadcastradio/V1_1/target_profiling
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/broadcastradio/V1_1/target_profiling/AndroidTest.xml
similarity index 62%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to broadcastradio/V1_1/target_profiling/AndroidTest.xml
index 4108231..1ac9fa5 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/broadcastradio/V1_1/target_profiling/AndroidTest.xml
@@ -13,24 +13,25 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-hal" />
+<configuration description="Config for VTS VtsHalBroadcastradioV1_1TargetProfiling test cases">
+    <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="HalHidlTargetTest.push"/>
+        <option name="push-group" value="HalHidlTargetProfilingTest.push"/>
+        <option name="cleanup" value="true"/>
+        <option name="push" value="DATA/lib/android.hardware.broadcastradio@1.1-vts.profiler.so->/data/local/tmp/32/android.hardware.broadcastradio@1.1-vts.profiler.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.broadcastradio@1.1-vts.profiler.so->/data/local/tmp/64/android.hardware.broadcastradio@1.1-vts.profiler.so"/>
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalBroadcastradioV1_1TargetProfiling"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalBroadcastradioV1_1TargetTest/VtsHalBroadcastradioV1_1TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalBroadcastradioV1_1TargetTest/VtsHalBroadcastradioV1_1TargetTest"/>
         <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.wifi@1.0"/>
+        <option name="enable-profiling" value="true"/>
+        <option name="precondition-lshal" value="android.hardware.broadcastradio@1.1"/>
         <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>
diff --git a/build/soong/hal2vts.go b/build/soong/hal2vts.go
index 9e79acc..01ac1fd 100644
--- a/build/soong/hal2vts.go
+++ b/build/soong/hal2vts.go
@@ -130,9 +130,11 @@
 	return h.generatedHeaders
 }
 
-func hal2vtsFactory() (blueprint.Module, []interface{}) {
+func hal2vtsFactory() android.Module {
 	h := &hal2vts{}
-	return android.InitAndroidModule(h, &h.properties)
+	h.AddProperties(&h.properties)
+	android.InitAndroidModule(h)
+	return h
 }
 
 func vtsList(config android.Config) *android.Paths {
diff --git a/camera/Android.bp b/camera/Android.bp
index 7e79b70..fb12cd5 100644
--- a/camera/Android.bp
+++ b/camera/Android.bp
@@ -5,6 +5,7 @@
     "common/V1_0",
     "device/V1_0",
     "device/V3_2",
+    "device/V3_3",
     "metadata/V3_2",
     "provider/V2_4",
 ]
diff --git a/camera/common/V1_0/build/Android.bp b/camera/common/V1_0/build/Android.bp
index ff0cc22..47e91b2 100644
--- a/camera/common/V1_0/build/Android.bp
+++ b/camera/common/V1_0/build/Android.bp
@@ -43,25 +43,36 @@
     generated_headers: ["android.hardware.camera.common@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.camera.common@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.camera.common@1.0",
         
     ],
     export_shared_lib_headers: [
         
     ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
 }
 
 // Build VTS profiler.
@@ -96,13 +107,25 @@
     export_generated_headers: ["android.hardware.camera.common@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.camera.common@1.0",
         
     ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
 }
 
diff --git a/camera/device/V1_0/build/Android.bp b/camera/device/V1_0/build/Android.bp
index 2a93a6f..8232106 100644
--- a/camera/device/V1_0/build/Android.bp
+++ b/camera/device/V1_0/build/Android.bp
@@ -52,32 +52,41 @@
     generated_headers: ["android.hardware.camera.device@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.camera.device@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.camera.device@1.0",
         "android.hardware.camera.common@1.0",
         "android.hardware.camera.common@1.0-vts.driver",
         "android.hardware.graphics.common@1.0",
         "android.hardware.graphics.common@1.0-vts.driver",
-        "android.hidl.base@1.0",
     ],
     export_shared_lib_headers: [
         "android.hardware.camera.common@1.0",
         "android.hardware.camera.common@1.0-vts.driver",
         "android.hardware.graphics.common@1.0",
         "android.hardware.graphics.common@1.0-vts.driver",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -119,8 +128,11 @@
     export_generated_headers: ["android.hardware.camera.device@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
@@ -129,7 +141,15 @@
         "android.hardware.camera.common@1.0-vts.profiler",
         "android.hardware.graphics.common@1.0",
         "android.hardware.graphics.common@1.0-vts.profiler",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/camera/device/V3_2/build/Android.bp b/camera/device/V3_2/build/Android.bp
index 2b40b6a..9094150 100644
--- a/camera/device/V3_2/build/Android.bp
+++ b/camera/device/V3_2/build/Android.bp
@@ -52,32 +52,41 @@
     generated_headers: ["android.hardware.camera.device@3.2-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.camera.device@3.2-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.camera.device@3.2",
         "android.hardware.camera.common@1.0",
         "android.hardware.camera.common@1.0-vts.driver",
         "android.hardware.graphics.common@1.0",
         "android.hardware.graphics.common@1.0-vts.driver",
-        "android.hidl.base@1.0",
     ],
     export_shared_lib_headers: [
         "android.hardware.camera.common@1.0",
         "android.hardware.camera.common@1.0-vts.driver",
         "android.hardware.graphics.common@1.0",
         "android.hardware.graphics.common@1.0-vts.driver",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -119,8 +128,11 @@
     export_generated_headers: ["android.hardware.camera.device@3.2-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
@@ -129,7 +141,15 @@
         "android.hardware.camera.common@1.0-vts.profiler",
         "android.hardware.graphics.common@1.0",
         "android.hardware.graphics.common@1.0-vts.profiler",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/tests/versioning/V2_3/Android.bp b/camera/device/V3_3/Android.bp
similarity index 100%
rename from tests/versioning/V2_3/Android.bp
rename to camera/device/V3_3/Android.bp
diff --git a/camera/device/V3_3/build/Android.bp b/camera/device/V3_3/build/Android.bp
new file mode 100644
index 0000000..1cc2e8f
--- /dev/null
+++ b/camera/device/V3_3/build/Android.bp
@@ -0,0 +1,151 @@
+// This file was auto-generated. Do not edit manually.
+// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.camera.device@3.3-vts.spec",
+    srcs: [
+        ":android.hardware.camera.device@3.3_hal",
+    ],
+    out: [
+        "android/hardware/camera/device/3.3/CameraDeviceSession.vts",
+        "android/hardware/camera/device/3.3/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.camera.device@3.3-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.device@3.3 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/camera/device/3.3/ $(genDir)/android/hardware/camera/device/3.3/",
+    srcs: [
+        ":android.hardware.camera.device@3.3_hal",
+    ],
+    out: [
+        "android/hardware/camera/device/3.3/CameraDeviceSession.vts.cpp",
+        "android/hardware/camera/device/3.3/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.camera.device@3.3-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.device@3.3 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/camera/device/3.3/ $(genDir)/android/hardware/camera/device/3.3/",
+    srcs: [
+        ":android.hardware.camera.device@3.3_hal",
+    ],
+    out: [
+        "android/hardware/camera/device/3.3/CameraDeviceSession.vts.h",
+        "android/hardware/camera/device/3.3/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.camera.device@3.3-vts.driver",
+    generated_sources: ["android.hardware.camera.device@3.3-vts.driver_genc++"],
+    generated_headers: ["android.hardware.camera.device@3.3-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.camera.device@3.3-vts.driver_genc++_headers"],
+    shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libprotobuf-cpp-full",
+        "libutils",
+        "libvts_common",
+        "libvts_datatype",
+        "libvts_drivercomm",
+        "libvts_measurement",
+        "libvts_multidevice_proto",
+        "android.hidl.allocator@1.0",
+        "android.hardware.camera.device@3.3",
+        "android.hardware.camera.common@1.0",
+        "android.hardware.camera.common@1.0-vts.driver",
+        "android.hardware.camera.device@3.2",
+        "android.hardware.camera.device@3.2-vts.driver",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.graphics.common@1.0-vts.driver",
+    ],
+    export_shared_lib_headers: [
+        "android.hardware.camera.common@1.0",
+        "android.hardware.camera.common@1.0-vts.driver",
+        "android.hardware.camera.device@3.2",
+        "android.hardware.camera.device@3.2-vts.driver",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.graphics.common@1.0-vts.driver",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.camera.device@3.3-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.device@3.3 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/camera/device/3.3/ $(genDir)/android/hardware/camera/device/3.3/",
+    srcs: [
+        ":android.hardware.camera.device@3.3_hal",
+    ],
+    out: [
+        "android/hardware/camera/device/3.3/CameraDeviceSession.vts.cpp",
+        "android/hardware/camera/device/3.3/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.camera.device@3.3-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.device@3.3 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/camera/device/3.3/ $(genDir)/android/hardware/camera/device/3.3/",
+    srcs: [
+        ":android.hardware.camera.device@3.3_hal",
+    ],
+    out: [
+        "android/hardware/camera/device/3.3/CameraDeviceSession.vts.h",
+        "android/hardware/camera/device/3.3/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.camera.device@3.3-vts.profiler",
+    generated_sources: ["android.hardware.camera.device@3.3-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.camera.device@3.3-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.camera.device@3.3-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_common",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hardware.camera.device@3.3",
+        "android.hardware.camera.common@1.0",
+        "android.hardware.camera.common@1.0-vts.profiler",
+        "android.hardware.camera.device@3.2",
+        "android.hardware.camera.device@3.2-vts.profiler",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.graphics.common@1.0-vts.profiler",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
diff --git a/camera/metadata/V3_2/build/Android.bp b/camera/metadata/V3_2/build/Android.bp
index a8a9f66..ca9b055 100644
--- a/camera/metadata/V3_2/build/Android.bp
+++ b/camera/metadata/V3_2/build/Android.bp
@@ -43,25 +43,36 @@
     generated_headers: ["android.hardware.camera.metadata@3.2-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.camera.metadata@3.2-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.camera.metadata@3.2",
         
     ],
     export_shared_lib_headers: [
         
     ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
 }
 
 // Build VTS profiler.
@@ -96,13 +107,25 @@
     export_generated_headers: ["android.hardware.camera.metadata@3.2-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.camera.metadata@3.2",
         
     ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
 }
 
diff --git a/camera/provider/V2_4/build/Android.bp b/camera/provider/V2_4/build/Android.bp
index 3c3ca1f..e80e66c 100644
--- a/camera/provider/V2_4/build/Android.bp
+++ b/camera/provider/V2_4/build/Android.bp
@@ -46,19 +46,21 @@
     generated_headers: ["android.hardware.camera.provider@2.4-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.camera.provider@2.4-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.camera.provider@2.4",
         "android.hardware.camera.common@1.0",
         "android.hardware.camera.common@1.0-vts.driver",
@@ -68,7 +70,6 @@
         "android.hardware.camera.device@3.2-vts.driver",
         "android.hardware.graphics.common@1.0",
         "android.hardware.graphics.common@1.0-vts.driver",
-        "android.hidl.base@1.0",
     ],
     export_shared_lib_headers: [
         "android.hardware.camera.common@1.0",
@@ -79,7 +80,15 @@
         "android.hardware.camera.device@3.2-vts.driver",
         "android.hardware.graphics.common@1.0",
         "android.hardware.graphics.common@1.0-vts.driver",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -117,8 +126,11 @@
     export_generated_headers: ["android.hardware.camera.provider@2.4-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
@@ -131,7 +143,15 @@
         "android.hardware.camera.device@3.2-vts.profiler",
         "android.hardware.graphics.common@1.0",
         "android.hardware.graphics.common@1.0-vts.profiler",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/tests/versioning/V2_2/Android.bp b/cas/Android.bp
similarity index 81%
copy from tests/versioning/V2_2/Android.bp
copy to cas/Android.bp
index 995dd5b..8c4fa06 100644
--- a/tests/versioning/V2_2/Android.bp
+++ b/cas/Android.bp
@@ -2,5 +2,6 @@
 // Use test/vts-testcase/hal/update_makefiles.py to generate this file.
 
 subdirs = [
-    "*",
+    "V1_0",
+    "native/V1_0",
 ]
diff --git a/tests/versioning/V1_0/Android.bp b/cas/V1_0/Android.bp
similarity index 100%
copy from tests/versioning/V1_0/Android.bp
copy to cas/V1_0/Android.bp
diff --git a/cas/V1_0/build/Android.bp b/cas/V1_0/build/Android.bp
new file mode 100644
index 0000000..0f85302
--- /dev/null
+++ b/cas/V1_0/build/Android.bp
@@ -0,0 +1,151 @@
+// This file was auto-generated. Do not edit manually.
+// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.cas@1.0-vts.spec",
+    srcs: [
+        ":android.hardware.cas@1.0_hal",
+    ],
+    out: [
+        "android/hardware/cas/1.0/Cas.vts",
+        "android/hardware/cas/1.0/CasListener.vts",
+        "android/hardware/cas/1.0/DescramblerBase.vts",
+        "android/hardware/cas/1.0/MediaCasService.vts",
+        "android/hardware/cas/1.0/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.cas@1.0-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.cas@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/cas/1.0/ $(genDir)/android/hardware/cas/1.0/",
+    srcs: [
+        ":android.hardware.cas@1.0_hal",
+    ],
+    out: [
+        "android/hardware/cas/1.0/Cas.vts.cpp",
+        "android/hardware/cas/1.0/CasListener.vts.cpp",
+        "android/hardware/cas/1.0/DescramblerBase.vts.cpp",
+        "android/hardware/cas/1.0/MediaCasService.vts.cpp",
+        "android/hardware/cas/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.cas@1.0-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.cas@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/cas/1.0/ $(genDir)/android/hardware/cas/1.0/",
+    srcs: [
+        ":android.hardware.cas@1.0_hal",
+    ],
+    out: [
+        "android/hardware/cas/1.0/Cas.vts.h",
+        "android/hardware/cas/1.0/CasListener.vts.h",
+        "android/hardware/cas/1.0/DescramblerBase.vts.h",
+        "android/hardware/cas/1.0/MediaCasService.vts.h",
+        "android/hardware/cas/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.cas@1.0-vts.driver",
+    generated_sources: ["android.hardware.cas@1.0-vts.driver_genc++"],
+    generated_headers: ["android.hardware.cas@1.0-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.cas@1.0-vts.driver_genc++_headers"],
+    shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libprotobuf-cpp-full",
+        "libutils",
+        "libvts_common",
+        "libvts_datatype",
+        "libvts_drivercomm",
+        "libvts_measurement",
+        "libvts_multidevice_proto",
+        "android.hidl.allocator@1.0",
+        "android.hardware.cas@1.0",
+        
+    ],
+    export_shared_lib_headers: [
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.cas@1.0-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.cas@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/cas/1.0/ $(genDir)/android/hardware/cas/1.0/",
+    srcs: [
+        ":android.hardware.cas@1.0_hal",
+    ],
+    out: [
+        "android/hardware/cas/1.0/Cas.vts.cpp",
+        "android/hardware/cas/1.0/CasListener.vts.cpp",
+        "android/hardware/cas/1.0/DescramblerBase.vts.cpp",
+        "android/hardware/cas/1.0/MediaCasService.vts.cpp",
+        "android/hardware/cas/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.cas@1.0-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.cas@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/cas/1.0/ $(genDir)/android/hardware/cas/1.0/",
+    srcs: [
+        ":android.hardware.cas@1.0_hal",
+    ],
+    out: [
+        "android/hardware/cas/1.0/Cas.vts.h",
+        "android/hardware/cas/1.0/CasListener.vts.h",
+        "android/hardware/cas/1.0/DescramblerBase.vts.h",
+        "android/hardware/cas/1.0/MediaCasService.vts.h",
+        "android/hardware/cas/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.cas@1.0-vts.profiler",
+    generated_sources: ["android.hardware.cas@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.cas@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.cas@1.0-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_common",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hardware.cas@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
diff --git a/wifi/V1_0/target/base/Android.mk b/cas/V1_0/target/Android.mk
similarity index 87%
copy from wifi/V1_0/target/base/Android.mk
copy to cas/V1_0/target/Android.mk
index c07841b..72836ba 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/cas/V1_0/target/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalCasV1_0Target
+VTS_CONFIG_SRC_DIR := testcases/hal/cas/V1_0/target
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/cas/V1_0/target/AndroidTest.xml
similarity index 72%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to cas/V1_0/target/AndroidTest.xml
index 4108231..bfc3716 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/cas/V1_0/target/AndroidTest.xml
@@ -13,7 +13,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
+<configuration description="Config for VTS VtsHalCasV1_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"/>
@@ -21,16 +21,13 @@
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalCasV1_0Target"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalCasV1_0TargetTest/VtsHalCasV1_0TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalCasV1_0TargetTest/VtsHalCasV1_0TargetTest"/>
         <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.wifi@1.0"/>
-        <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" />
+        <option name="precondition-lshal" value="android.hardware.cas@1.0"/>
+        <option name="test-timeout" value="1m"/>
     </test>
 </configuration>
diff --git a/tests/versioning/V1_0/Android.bp b/cas/native/V1_0/Android.bp
similarity index 100%
copy from tests/versioning/V1_0/Android.bp
copy to cas/native/V1_0/Android.bp
diff --git a/cas/native/V1_0/build/Android.bp b/cas/native/V1_0/build/Android.bp
new file mode 100644
index 0000000..e667395
--- /dev/null
+++ b/cas/native/V1_0/build/Android.bp
@@ -0,0 +1,139 @@
+// This file was auto-generated. Do not edit manually.
+// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.cas.native@1.0-vts.spec",
+    srcs: [
+        ":android.hardware.cas.native@1.0_hal",
+    ],
+    out: [
+        "android/hardware/cas/native/1.0/Descrambler.vts",
+        "android/hardware/cas/native/1.0/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.cas.native@1.0-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.cas.native@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/cas/native/1.0/ $(genDir)/android/hardware/cas/native/1.0/",
+    srcs: [
+        ":android.hardware.cas.native@1.0_hal",
+    ],
+    out: [
+        "android/hardware/cas/native/1.0/Descrambler.vts.cpp",
+        "android/hardware/cas/native/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.cas.native@1.0-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.cas.native@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/cas/native/1.0/ $(genDir)/android/hardware/cas/native/1.0/",
+    srcs: [
+        ":android.hardware.cas.native@1.0_hal",
+    ],
+    out: [
+        "android/hardware/cas/native/1.0/Descrambler.vts.h",
+        "android/hardware/cas/native/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.cas.native@1.0-vts.driver",
+    generated_sources: ["android.hardware.cas.native@1.0-vts.driver_genc++"],
+    generated_headers: ["android.hardware.cas.native@1.0-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.cas.native@1.0-vts.driver_genc++_headers"],
+    shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libprotobuf-cpp-full",
+        "libutils",
+        "libvts_common",
+        "libvts_datatype",
+        "libvts_drivercomm",
+        "libvts_measurement",
+        "libvts_multidevice_proto",
+        "android.hidl.allocator@1.0",
+        "android.hardware.cas.native@1.0",
+        "android.hardware.cas@1.0",
+        "android.hardware.cas@1.0-vts.driver",
+    ],
+    export_shared_lib_headers: [
+        "android.hardware.cas@1.0",
+        "android.hardware.cas@1.0-vts.driver",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.cas.native@1.0-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.cas.native@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/cas/native/1.0/ $(genDir)/android/hardware/cas/native/1.0/",
+    srcs: [
+        ":android.hardware.cas.native@1.0_hal",
+    ],
+    out: [
+        "android/hardware/cas/native/1.0/Descrambler.vts.cpp",
+        "android/hardware/cas/native/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.cas.native@1.0-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.cas.native@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/cas/native/1.0/ $(genDir)/android/hardware/cas/native/1.0/",
+    srcs: [
+        ":android.hardware.cas.native@1.0_hal",
+    ],
+    out: [
+        "android/hardware/cas/native/1.0/Descrambler.vts.h",
+        "android/hardware/cas/native/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.cas.native@1.0-vts.profiler",
+    generated_sources: ["android.hardware.cas.native@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.cas.native@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.cas.native@1.0-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_common",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hardware.cas.native@1.0",
+        "android.hardware.cas@1.0",
+        "android.hardware.cas@1.0-vts.profiler",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
diff --git a/configstore/V1_0/build/Android.bp b/configstore/V1_0/build/Android.bp
index 1c31e7d..373af03 100644
--- a/configstore/V1_0/build/Android.bp
+++ b/configstore/V1_0/build/Android.bp
@@ -46,24 +46,35 @@
     generated_headers: ["android.hardware.configstore@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.configstore@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.configstore@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -101,13 +112,25 @@
     export_generated_headers: ["android.hardware.configstore@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.configstore@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/wifi/V1_0/target/base/Android.mk b/configstore/V1_0/target_replay/Android.mk
similarity index 85%
copy from wifi/V1_0/target/base/Android.mk
copy to configstore/V1_0/target_replay/Android.mk
index c07841b..2132348 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/configstore/V1_0/target_replay/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalConfigstoreV1_0TargetReplay
+VTS_CONFIG_SRC_DIR := testcases/hal/configstore/V1_0/target_replay
 include test/vts/tools/build/Android.host_config.mk
diff --git a/configstore/V1_0/target_replay/AndroidTest.xml b/configstore/V1_0/target_replay/AndroidTest.xml
new file mode 100644
index 0000000..abedaa1
--- /dev/null
+++ b/configstore/V1_0/target_replay/AndroidTest.xml
@@ -0,0 +1,36 @@
+<?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 VtsHalConfigstoreV1_0TargetReplay test cases">
+    <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="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"/>
+        <option name="push" value="DATA/lib/android.hardware.configstore@1.0-vts.driver.so->/data/local/tmp/32/android.hardware.configstore@1.0-vts.driver.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.configstore@1.0-vts.driver.so->/data/local/tmp/64/android.hardware.configstore@1.0-vts.driver.so"/>
+    </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="VtsHalConfigstoreV1_0TargetReplay"/>
+        <option name="binary-test-type" value="hal_hidl_replay_test"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/configstore/V1_0/android.hardware.configstore_1.0_16680329225052.vts.trace"/>
+        <option name="hal-hidl-package-name" value="android.hardware.configstore@1.0"/>
+        <option name="precondition-lshal" value="android.hardware.configstore@1.0"/>
+        <option name="test-timeout" value="5m"/>
+    </test>
+</configuration>
diff --git a/contexthub/V1_0/build/Android.bp b/contexthub/V1_0/build/Android.bp
index 0408b5a..f1af8e5 100644
--- a/contexthub/V1_0/build/Android.bp
+++ b/contexthub/V1_0/build/Android.bp
@@ -49,24 +49,35 @@
     generated_headers: ["android.hardware.contexthub@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.contexthub@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.contexthub@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -106,13 +117,25 @@
     export_generated_headers: ["android.hardware.contexthub@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.contexthub@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/contexthub/V1_0/host/AndroidTest.xml b/contexthub/V1_0/host/AndroidTest.xml
index 0b4cc55..812b8fb 100644
--- a/contexthub/V1_0/host/AndroidTest.xml
+++ b/contexthub/V1_0/host/AndroidTest.xml
@@ -14,7 +14,7 @@
      limitations under the License.
 -->
 <configuration description="Config for VTS VtsHalContexthubV1_0Host test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-staging-hal" />
+    <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"/>
diff --git a/contexthub/V1_0/target_replay/AndroidTest.xml b/contexthub/V1_0/target_replay/AndroidTest.xml
index 4852285..70f4f5d 100644
--- a/contexthub/V1_0/target_replay/AndroidTest.xml
+++ b/contexthub/V1_0/target_replay/AndroidTest.xml
@@ -29,7 +29,7 @@
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalContexthubV1_0TargetReplay"/>
         <option name="binary-test-type" value="hal_hidl_replay_test"/>
-        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/contexthub/V1_0/android.hardware.contexthub@1.0_sailfish_1.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/contexthub/V1_0/android.hardware.contexthub_1.0_sailfish_19190690972.vts.trace"/>
         <option name="hal-hidl-package-name" value="android.hardware.contexthub@1.0"/>
         <option name="precondition-lshal" value="android.hardware.contexthub@1.0"/>
         <option name="test-timeout" value="5m"/>
diff --git a/drm/V1_0/build/Android.bp b/drm/V1_0/build/Android.bp
index df800bc..81bb65c 100644
--- a/drm/V1_0/build/Android.bp
+++ b/drm/V1_0/build/Android.bp
@@ -58,24 +58,35 @@
     generated_headers: ["android.hardware.drm@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.drm@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.drm@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -121,13 +132,25 @@
     export_generated_headers: ["android.hardware.drm@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.drm@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/drm/V1_0/target/AndroidTest.xml b/drm/V1_0/target/AndroidTest.xml
index b8826c2..7f717e7 100644
--- a/drm/V1_0/target/AndroidTest.xml
+++ b/drm/V1_0/target/AndroidTest.xml
@@ -18,8 +18,8 @@
     <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"/>
-        <option name="push" value="DATA/lib/drm-vts-test-libs->/data/local/tmp/32/lib"/>
-        <option name="push" value="DATA/lib64/drm-vts-test-libs->/data/local/tmp/64/lib"/>
+        <option name="push" value="vendor/lib/drm-vts-test-libs->/data/local/tmp/32/lib"/>
+        <option name="push" value="vendor/lib64/drm-vts-test-libs->/data/local/tmp/64/lib"/>
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
diff --git a/drm/V1_0/target_profiling/AndroidTest.xml b/drm/V1_0/target_profiling/AndroidTest.xml
index 35fa974..0d17c45 100644
--- a/drm/V1_0/target_profiling/AndroidTest.xml
+++ b/drm/V1_0/target_profiling/AndroidTest.xml
@@ -19,8 +19,8 @@
         <option name="abort-on-push-failure" value="false"/>
         <option name="push-group" value="HalHidlTargetProfilingTest.push"/>
         <option name="cleanup" value="true"/>
-        <option name="push" value="DATA/lib/drm-vts-test-libs->/data/local/tmp/32/lib"/>
-        <option name="push" value="DATA/lib64/drm-vts-test-libs->/data/local/tmp/64/lib"/>
+        <option name="push" value="vendor/lib/drm-vts-test-libs->/data/local/tmp/32/lib"/>
+        <option name="push" value="vendor/lib64/drm-vts-test-libs->/data/local/tmp/64/lib"/>
         <option name="push" value="DATA/lib/android.hardware.drm@1.0-vts.profiler.so->/data/local/tmp/32/android.hardware.drm@1.0-vts.profiler.so"/>
         <option name="push" value="DATA/lib64/android.hardware.drm@1.0-vts.profiler.so->/data/local/tmp/64/android.hardware.drm@1.0-vts.profiler.so"/>
     </target_preparer>
diff --git a/dumpstate/V1_0/build/Android.bp b/dumpstate/V1_0/build/Android.bp
index 600e4f0..27c5f48 100644
--- a/dumpstate/V1_0/build/Android.bp
+++ b/dumpstate/V1_0/build/Android.bp
@@ -43,24 +43,35 @@
     generated_headers: ["android.hardware.dumpstate@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.dumpstate@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.dumpstate@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -96,13 +107,25 @@
     export_generated_headers: ["android.hardware.dumpstate@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.dumpstate@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/wifi/V1_0/target/base/Android.mk b/dumpstate/V1_0/target/Android.mk
similarity index 87%
copy from wifi/V1_0/target/base/Android.mk
copy to dumpstate/V1_0/target/Android.mk
index c07841b..04ea176 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/dumpstate/V1_0/target/Android.mk
@@ -18,6 +18,7 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalDumpstateV1_0Target
+VTS_CONFIG_SRC_DIR := testcases/hal/dumpstate/V1_0/target
 include test/vts/tools/build/Android.host_config.mk
+
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/dumpstate/V1_0/target/AndroidTest.xml
similarity index 69%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to dumpstate/V1_0/target/AndroidTest.xml
index 4108231..97041ef 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/dumpstate/V1_0/target/AndroidTest.xml
@@ -13,7 +13,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
+<configuration description="Config for VtsHalDumpstateV1_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"/>
@@ -21,16 +21,12 @@
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalDumpstateV1_0Target"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalDumpstateV1_0TargetTest/VtsHalDumpstateV1_0TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalDumpstateV1_0TargetTest/VtsHalDumpstateV1_0TargetTest"/>
         <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.wifi@1.0"/>
-        <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" />
+        <option name="precondition-lshal" value="android.hardware.dumpstate@1.0"/>
+        <option name="test-timeout" value="5m"/>
     </test>
 </configuration>
diff --git a/gatekeeper/V1_0/build/Android.bp b/gatekeeper/V1_0/build/Android.bp
index acdfcbd..b9d3330 100644
--- a/gatekeeper/V1_0/build/Android.bp
+++ b/gatekeeper/V1_0/build/Android.bp
@@ -46,24 +46,35 @@
     generated_headers: ["android.hardware.gatekeeper@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.gatekeeper@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.gatekeeper@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -101,13 +112,25 @@
     export_generated_headers: ["android.hardware.gatekeeper@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.gatekeeper@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/wifi/V1_0/target/base/Android.mk b/gatekeeper/V1_0/target_replay/Android.mk
similarity index 85%
copy from wifi/V1_0/target/base/Android.mk
copy to gatekeeper/V1_0/target_replay/Android.mk
index c07841b..d53e149 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/gatekeeper/V1_0/target_replay/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalGatekeeperV1_0TargetReplay
+VTS_CONFIG_SRC_DIR := testcases/hal/gatekeeper/V1_0/target_replay
 include test/vts/tools/build/Android.host_config.mk
diff --git a/gatekeeper/V1_0/target_replay/AndroidTest.xml b/gatekeeper/V1_0/target_replay/AndroidTest.xml
new file mode 100644
index 0000000..e7f22bf
--- /dev/null
+++ b/gatekeeper/V1_0/target_replay/AndroidTest.xml
@@ -0,0 +1,37 @@
+<?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 VtsHalGatekeeperV1_0TargetReplay test cases">
+    <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="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"/>
+        <option name="push" value="DATA/lib/android.hardware.gatekeeper@1.0-vts.driver.so->/data/local/tmp/32/android.hardware.gatekeeper@1.0-vts.driver.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.gatekeeper@1.0-vts.driver.so->/data/local/tmp/64/android.hardware.gatekeeper@1.0-vts.driver.so"/>
+    </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="VtsHalGatekeeperV1_0TargetReplay"/>
+        <option name="binary-test-type" value="hal_hidl_replay_test"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/gatekeeper/V1_0/android.hardware.gatekeeper_1.0_450525506023.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/gatekeeper/V1_0/android.hardware.gatekeeper_1.0_39493054816.vts.trace"/>
+        <option name="hal-hidl-package-name" value="android.hardware.gatekeeper@1.0"/>
+        <option name="precondition-lshal" value="android.hardware.gatekeeper@1.0"/>
+        <option name="test-timeout" value="5m"/>
+    </test>
+</configuration>
diff --git a/gnss/V1_0/__init__.py b/gnss/V1_0/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/gnss/V1_0/__init__.py
diff --git a/gnss/V1_0/build/Android.bp b/gnss/V1_0/build/Android.bp
index 3118d9b..338033f 100644
--- a/gnss/V1_0/build/Android.bp
+++ b/gnss/V1_0/build/Android.bp
@@ -103,24 +103,35 @@
     generated_headers: ["android.hardware.gnss@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.gnss@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.gnss@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -196,13 +207,25 @@
     export_generated_headers: ["android.hardware.gnss@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.gnss@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/gnss/V1_0/host/VtsHalGnssV1_0HostTest.py b/gnss/V1_0/host/VtsHalGnssV1_0HostTest.py
new file mode 100644
index 0000000..3c7d5dc
--- /dev/null
+++ b/gnss/V1_0/host/VtsHalGnssV1_0HostTest.py
@@ -0,0 +1,163 @@
+#!/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 keys
+from vts.runners.host import test_runner
+from vts.utils.python.precondition import precondition_utils
+
+
+class VtsHalGnssV1_0HostTest(base_test.BaseTestClass):
+    """A simple testcase for the GNSS HIDL HAL."""
+    SYSPROP_GETSTUB = "vts.hal.vts.hidl.get_stub"
+
+    def setUpClass(self):
+        """Creates a mirror and turns on the framework-layer GNSS service."""
+        self.dut = self.android_devices[0]
+
+        self.passthrough_mode = self.getUserParam(
+            keys.ConfigKeys.IKEY_PASSTHROUGH_MODE, default_value=True)
+
+        self.dut.shell.Execute("setenforce 0")  # SELinux permissive mode
+        if not precondition_utils.CanRunHidlHalTest(
+            self, self.dut, self.dut.shell.default):
+            self._skip_all_testcases = True
+            return
+
+        mode = "true" if self.passthrough_mode else "false"
+        self.dut.shell.Execute(
+            "setprop %s %s" % (self.SYSPROP_GETSTUB, mode))
+
+        self.dut.hal.InitHidlHal(
+            target_type="gnss",
+            target_basepaths=self.dut.libPaths,
+            target_version=1.0,
+            target_package="android.hardware.gnss",
+            target_component_name="IGnss",
+            bits=int(self.abi_bitness))
+
+        if self.coverage.enabled:
+            self.coverage.LoadArtifacts()
+            self.coverage.InitializeDeviceCoverage(self.dut)
+
+    def SetCallback(self):
+        """Utility function to set the callbacks."""
+
+        def gnssLocationCb(location):
+            logging.info("callback gnssLocationCb")
+
+        def gnssStatusCb(status):
+            logging.info("callback gnssStatusCb")
+
+        def gnssSvStatusCb(svInfo):
+            logging.info("callback gnssSvStatusCb")
+
+        def gnssNmeaCb(timestamp, nmea):
+            logging.info("callback gnssNmeaCb")
+
+        def gnssSetCapabilitesCb(capabilities):
+            logging.info("callback gnssSetCapabilitesCb")
+
+        def gnssAcquireWakelockCb():
+            logging.info("callback gnssAcquireWakelockCb")
+
+        def gnssReleaseWakelockCb():
+            logging.info("callback gnssReleaseWakelockCb")
+
+        def gnssRequestTimeCb():
+            logging.info("callback gnssRequestTimeCb")
+
+        def gnssSetSystemInfoCb(info):
+            logging.info("callback gnssSetSystemInfoCb")
+
+        client_callback = self.dut.hal.gnss.GetHidlCallbackInterface(
+            "IGnssCallback",
+            gnssLocationCb=gnssLocationCb,
+            gnssStatusCb=gnssStatusCb,
+            gnssSvStatusCb=gnssSvStatusCb,
+            gnssNmeaCb=gnssNmeaCb,
+            gnssSetCapabilitesCb=gnssSetCapabilitesCb,
+            gnssAcquireWakelockCb=gnssAcquireWakelockCb,
+            gnssReleaseWakelockCb=gnssReleaseWakelockCb,
+            gnssRequestTimeCb=gnssRequestTimeCb,
+            gnssSetSystemInfoCb=gnssSetSystemInfoCb)
+
+        result = self.dut.hal.gnss.setCallback(client_callback)
+        logging.info("setCallback result: %s", result)
+
+    def testExtensionPresence(self):
+        """A test case which checks whether each extension exists."""
+        self.SetCallback()
+
+        nested_interface = self.dut.hal.gnss.getExtensionAGnssRil()
+        if not nested_interface:
+            logging.info("getExtensionAGnssRil returned None")
+        else:
+            result = nested_interface.updateNetworkAvailability(False, "test")
+            logging.info("updateNetworkAvailability result: %s", result)
+
+        nested_interface = self.dut.hal.gnss.getExtensionGnssGeofencing()
+        if not nested_interface:
+            logging.info("getExtensionGnssGeofencing returned None")
+
+        nested_interface = self.dut.hal.gnss.getExtensionAGnss()
+        if not nested_interface:
+            logging.info("getExtensionAGnss returned None")
+        else:
+            result = nested_interface.dataConnClosed()
+            logging.info("dataConnClosed result: %s", result)
+
+        nested_interface = self.dut.hal.gnss.getExtensionGnssNi()
+        if not nested_interface:
+            logging.info("getExtensionGnssNi returned None")
+
+        nested_interface = self.dut.hal.gnss.getExtensionGnssMeasurement()
+        if not nested_interface:
+            logging.info("getExtensionGnssMeasurement returned None")
+
+        nested_interface = self.dut.hal.gnss.getExtensionXtra()
+        if not nested_interface:
+            logging.info("getExtensionXtra returned None")
+
+        nested_interface = self.dut.hal.gnss.getExtensionGnssConfiguration()
+        if not nested_interface:
+            logging.info("getExtensionGnssConfiguration returned None")
+
+        nested_interface = self.dut.hal.gnss.getExtensionGnssBatching()
+        if not nested_interface:
+            logging.info("getExtensionGnssBatching returned None")
+
+    def testExtensionPresenceForUnimplementedOnes(self):
+        """A test case which checks whether each extension exists.
+
+        Separate test case for known failures.
+        """
+        self.SetCallback()
+
+        nested_interface = self.dut.hal.gnss.getExtensionGnssNavigationMessage()
+        if not nested_interface:
+            logging.error("ExtensionGnssNavigationMessage not implemented")
+
+        nested_interface = self.dut.hal.gnss.getExtensionGnssDebug()
+        if not nested_interface:
+            logging.error("ExtensionGnssDebug not implemented")
+
+if __name__ == "__main__":
+    test_runner.main()
diff --git a/gnss/V1_0/host/__init__.py b/gnss/V1_0/host/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/gnss/V1_0/host/__init__.py
diff --git a/wifi/V1_0/target/base/Android.mk b/gnss/V1_0/host/binderize/Android.mk
similarity index 80%
copy from wifi/V1_0/target/base/Android.mk
copy to gnss/V1_0/host/binderize/Android.mk
index c07841b..bbdbd75 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/gnss/V1_0/host/binderize/Android.mk
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2017 The Android Open Source Project
+# 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.
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalGnssV1_0HostBinderize
+VTS_CONFIG_SRC_DIR := testcases/hal/gnss/V1_0/host/binderize
 include test/vts/tools/build/Android.host_config.mk
diff --git a/gnss/V1_0/host/binderize/AndroidTest.xml b/gnss/V1_0/host/binderize/AndroidTest.xml
new file mode 100644
index 0000000..fcad899
--- /dev/null
+++ b/gnss/V1_0/host/binderize/AndroidTest.xml
@@ -0,0 +1,55 @@
+<?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 HAL gnss Provider (Binder Mode) test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-hal" />
+    <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="cleanup" value="true" />
+        <option name="push" value="spec/hardware/interfaces/gnss/1.0/vts/AGnss.vts->/data/local/tmp/spec/android/hardware/gnss/1.0/AGnss.vts" />
+        <option name="push" value="spec/hardware/interfaces/gnss/1.0/vts/AGnssCallback.vts->/data/local/tmp/spec/android/hardware/gnss/1.0/AGnssCallback.vts" />
+        <option name="push" value="spec/hardware/interfaces/gnss/1.0/vts/AGnssRil.vts->/data/local/tmp/spec/android/hardware/gnss/1.0/AGnssRil.vts" />
+        <option name="push" value="spec/hardware/interfaces/gnss/1.0/vts/AGnssRilCallback.vts->/data/local/tmp/spec/android/hardware/gnss/1.0/AGnssRilCallback.vts" />
+        <option name="push" value="spec/hardware/interfaces/gnss/1.0/vts/Gnss.vts->/data/local/tmp/spec/android/hardware/gnss/1.0/Gnss.vts" />
+        <option name="push" value="spec/hardware/interfaces/gnss/1.0/vts/GnssBatching.vts->/data/local/tmp/spec/android/hardware/gnss/1.0/GnssBatching.vts" />
+        <option name="push" value="spec/hardware/interfaces/gnss/1.0/vts/GnssBatchingCallback.vts->/data/local/tmp/spec/android/hardware/gnss/1.0/GnssBatchingCallback.vts" />
+        <option name="push" value="spec/hardware/interfaces/gnss/1.0/vts/GnssCallback.vts->/data/local/tmp/spec/android/hardware/gnss/1.0/GnssCallback.vts" />
+        <option name="push" value="spec/hardware/interfaces/gnss/1.0/vts/GnssConfiguration.vts->/data/local/tmp/spec/android/hardware/gnss/1.0/GnssConfiguration.vts" />
+        <option name="push" value="spec/hardware/interfaces/gnss/1.0/vts/GnssDebug.vts->/data/local/tmp/spec/android/hardware/gnss/1.0/GnssDebug.vts" />
+        <option name="push" value="spec/hardware/interfaces/gnss/1.0/vts/GnssGeofenceCallback.vts->/data/local/tmp/spec/android/hardware/gnss/1.0/GnssGeofenceCallback.vts" />
+        <option name="push" value="spec/hardware/interfaces/gnss/1.0/vts/GnssGeofencing.vts->/data/local/tmp/spec/android/hardware/gnss/1.0/GnssGeofencing.vts" />
+        <option name="push" value="spec/hardware/interfaces/gnss/1.0/vts/GnssMeasurement.vts->/data/local/tmp/spec/android/hardware/gnss/1.0/GnssMeasurement.vts" />
+        <option name="push" value="spec/hardware/interfaces/gnss/1.0/vts/GnssMeasurementCallback.vts->/data/local/tmp/spec/android/hardware/gnss/1.0/GnssMeasurementCallback.vts" />
+        <option name="push" value="spec/hardware/interfaces/gnss/1.0/vts/GnssNavigationMessage.vts->/data/local/tmp/spec/android/hardware/gnss/1.0/GnssNavigationMessage.vts" />
+        <option name="push" value="spec/hardware/interfaces/gnss/1.0/vts/GnssNavigationMessageCallback.vts->/data/local/tmp/spec/android/hardware/gnss/1.0/GnssNavigationMessageCallback.vts" />
+        <option name="push" value="spec/hardware/interfaces/gnss/1.0/vts/GnssNi.vts->/data/local/tmp/spec/android/hardware/gnss/1.0/GnssNi.vts" />
+        <option name="push" value="spec/hardware/interfaces/gnss/1.0/vts/GnssNiCallback.vts->/data/local/tmp/spec/android/hardware/gnss/1.0/GnssNiCallback.vts" />
+        <option name="push" value="spec/hardware/interfaces/gnss/1.0/vts/GnssXtra.vts->/data/local/tmp/spec/android/hardware/gnss/1.0/GnssXtra.vts" />
+        <option name="push" value="spec/hardware/interfaces/gnss/1.0/vts/GnssXtraCallback.vts->/data/local/tmp/spec/android/hardware/gnss/1.0/GnssXtraCallback.vts" />
+        <option name="push" value="spec/hardware/interfaces/gnss/1.0/vts/types.vts->/data/local/tmp/spec/android/hardware/gnss/1.0/types.vts" />
+
+        <option name="push" value="DATA/lib/android.hardware.gnss@1.0-vts.driver.so->/data/local/tmp/32/android.hardware.gnss@1.0-vts.driver.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.gnss@1.0-vts.driver.so->/data/local/tmp/64/android.hardware.gnss@1.0-vts.driver.so"/>
+    </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="VtsHalGnssV1_0HostBinderize" />
+        <option name="test-case-path" value="vts/testcases/hal/gnss/V1_0/host/VtsHalGnssV1_0HostTest" />
+        <option name="test-config-path" value="vts/testcases/hal/gnss/V1_0/host/binderize/VtsHalGnssV1_0HostTest.config" />
+        <option name="skip-on-64bit-abi" value="true"/>
+        <option name="test-timeout" value="10m"/>
+    </test>
+</configuration>
diff --git a/gnss/V1_0/host/binderize/VtsHalGnssV1_0HostTest.config b/gnss/V1_0/host/binderize/VtsHalGnssV1_0HostTest.config
new file mode 100644
index 0000000..5a94c6f
--- /dev/null
+++ b/gnss/V1_0/host/binderize/VtsHalGnssV1_0HostTest.config
@@ -0,0 +1,3 @@
+{
+    "passthrough_mode": False
+}
diff --git a/gnss/__init__.py b/gnss/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/gnss/__init__.py
diff --git a/graphics/allocator/V2_0/build/Android.bp b/graphics/allocator/V2_0/build/Android.bp
index 90b9ad8..ed5ddd2 100644
--- a/graphics/allocator/V2_0/build/Android.bp
+++ b/graphics/allocator/V2_0/build/Android.bp
@@ -43,28 +43,37 @@
     generated_headers: ["android.hardware.graphics.allocator@2.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.graphics.allocator@2.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.graphics.allocator@2.0",
         "android.hardware.graphics.mapper@2.0",
         "android.hardware.graphics.mapper@2.0-vts.driver",
-        "android.hidl.base@1.0",
     ],
     export_shared_lib_headers: [
         "android.hardware.graphics.mapper@2.0",
         "android.hardware.graphics.mapper@2.0-vts.driver",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -100,15 +109,26 @@
     export_generated_headers: ["android.hardware.graphics.allocator@2.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.graphics.allocator@2.0",
         "android.hardware.graphics.mapper@2.0",
         "android.hardware.graphics.mapper@2.0-vts.profiler",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/graphics/bufferqueue/V1_0/build/Android.bp b/graphics/bufferqueue/V1_0/build/Android.bp
index 22f466f..d9a996c 100644
--- a/graphics/bufferqueue/V1_0/build/Android.bp
+++ b/graphics/bufferqueue/V1_0/build/Android.bp
@@ -46,32 +46,41 @@
     generated_headers: ["android.hardware.graphics.bufferqueue@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.graphics.bufferqueue@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.graphics.bufferqueue@1.0",
         "android.hardware.graphics.common@1.0",
         "android.hardware.graphics.common@1.0-vts.driver",
         "android.hardware.media@1.0",
         "android.hardware.media@1.0-vts.driver",
-        "android.hidl.base@1.0",
     ],
     export_shared_lib_headers: [
         "android.hardware.graphics.common@1.0",
         "android.hardware.graphics.common@1.0-vts.driver",
         "android.hardware.media@1.0",
         "android.hardware.media@1.0-vts.driver",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -109,8 +118,11 @@
     export_generated_headers: ["android.hardware.graphics.bufferqueue@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
@@ -119,7 +131,15 @@
         "android.hardware.graphics.common@1.0-vts.profiler",
         "android.hardware.media@1.0",
         "android.hardware.media@1.0-vts.profiler",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/graphics/common/V1_0/build/Android.bp b/graphics/common/V1_0/build/Android.bp
index 8133059..e5c1d82 100644
--- a/graphics/common/V1_0/build/Android.bp
+++ b/graphics/common/V1_0/build/Android.bp
@@ -43,25 +43,36 @@
     generated_headers: ["android.hardware.graphics.common@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.graphics.common@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.graphics.common@1.0",
         
     ],
     export_shared_lib_headers: [
         
     ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
 }
 
 // Build VTS profiler.
@@ -96,13 +107,25 @@
     export_generated_headers: ["android.hardware.graphics.common@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.graphics.common@1.0",
         
     ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
 }
 
diff --git a/graphics/composer/V2_1/build/Android.bp b/graphics/composer/V2_1/build/Android.bp
index 48aa08c..9ed171a 100644
--- a/graphics/composer/V2_1/build/Android.bp
+++ b/graphics/composer/V2_1/build/Android.bp
@@ -52,28 +52,37 @@
     generated_headers: ["android.hardware.graphics.composer@2.1-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.graphics.composer@2.1-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.graphics.composer@2.1",
         "android.hardware.graphics.common@1.0",
         "android.hardware.graphics.common@1.0-vts.driver",
-        "android.hidl.base@1.0",
     ],
     export_shared_lib_headers: [
         "android.hardware.graphics.common@1.0",
         "android.hardware.graphics.common@1.0-vts.driver",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -115,15 +124,26 @@
     export_generated_headers: ["android.hardware.graphics.composer@2.1-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.graphics.composer@2.1",
         "android.hardware.graphics.common@1.0",
         "android.hardware.graphics.common@1.0-vts.profiler",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/graphics/composer/V2_1/target/AndroidTest.xml b/graphics/composer/V2_1/target/AndroidTest.xml
index acfec59..dcdc67c 100644
--- a/graphics/composer/V2_1/target/AndroidTest.xml
+++ b/graphics/composer/V2_1/target/AndroidTest.xml
@@ -27,8 +27,20 @@
         <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalGraphicsComposerV2_1TargetTest/VtsHalGraphicsComposerV2_1TargetTest"/>
         <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalGraphicsComposerV2_1TargetTest/VtsHalGraphicsComposerV2_1TargetTest"/>
         <option name="binary-test-type" value="hal_hidl_gtest"/>
+        <option name="exclude-filter" value="r(.*/default.*)" />
+        <option name="precondition-lshal" value="android.hardware.graphics.composer@2.1"/>
+        <option name="test-timeout" value="5m"/>
+    </test>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="VtsHalGraphicsComposerV2_1Target"/>
+        <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/VtsHalGraphicsComposerV2_1TargetTest/VtsHalGraphicsComposerV2_1TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalGraphicsComposerV2_1TargetTest/VtsHalGraphicsComposerV2_1TargetTest"/>
+        <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="exclude-filter" value="r(.*/vr.*)" />
         <option name="precondition-lshal" value="android.hardware.graphics.composer@2.1"/>
         <option name="test-timeout" value="5m"/>
     </test>
diff --git a/graphics/composer/V2_1/target_profiling/AndroidTest.xml b/graphics/composer/V2_1/target_profiling/AndroidTest.xml
index 502f5ad..d6c8279 100644
--- a/graphics/composer/V2_1/target_profiling/AndroidTest.xml
+++ b/graphics/composer/V2_1/target_profiling/AndroidTest.xml
@@ -33,6 +33,7 @@
         <option name="binary-test-disable-framework" value="true"/>
         <option name="binary-test-stop-native-servers" value="true"/>
         <option name="enable-profiling" value="true"/>
+        <option name="exclude-filter" value="r(.*/vr.*)" />
         <option name="precondition-lshal" value="android.hardware.graphics.composer@2.1"/>
         <option name="test-timeout" value="5m"/>
     </test>
diff --git a/graphics/mapper/V2_0/build/Android.bp b/graphics/mapper/V2_0/build/Android.bp
index d0727b6..0af0d66 100644
--- a/graphics/mapper/V2_0/build/Android.bp
+++ b/graphics/mapper/V2_0/build/Android.bp
@@ -46,28 +46,37 @@
     generated_headers: ["android.hardware.graphics.mapper@2.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.graphics.mapper@2.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.graphics.mapper@2.0",
         "android.hardware.graphics.common@1.0",
         "android.hardware.graphics.common@1.0-vts.driver",
-        "android.hidl.base@1.0",
     ],
     export_shared_lib_headers: [
         "android.hardware.graphics.common@1.0",
         "android.hardware.graphics.common@1.0-vts.driver",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -105,15 +114,26 @@
     export_generated_headers: ["android.hardware.graphics.mapper@2.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.graphics.mapper@2.0",
         "android.hardware.graphics.common@1.0",
         "android.hardware.graphics.common@1.0-vts.profiler",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/health/V1_0/build/Android.bp b/health/V1_0/build/Android.bp
index b0ac344..ea7c913 100644
--- a/health/V1_0/build/Android.bp
+++ b/health/V1_0/build/Android.bp
@@ -46,24 +46,35 @@
     generated_headers: ["android.hardware.health@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.health@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.health@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -101,13 +112,25 @@
     export_generated_headers: ["android.hardware.health@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.health@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/ir/V1_0/build/Android.bp b/ir/V1_0/build/Android.bp
index 388080f..2b91e17 100644
--- a/ir/V1_0/build/Android.bp
+++ b/ir/V1_0/build/Android.bp
@@ -46,24 +46,35 @@
     generated_headers: ["android.hardware.ir@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.ir@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.ir@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -101,13 +112,25 @@
     export_generated_headers: ["android.hardware.ir@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.ir@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/keymaster/V3_0/build/Android.bp b/keymaster/V3_0/build/Android.bp
index e55e946..c8f9127 100644
--- a/keymaster/V3_0/build/Android.bp
+++ b/keymaster/V3_0/build/Android.bp
@@ -46,24 +46,35 @@
     generated_headers: ["android.hardware.keymaster@3.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.keymaster@3.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.keymaster@3.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -101,13 +112,25 @@
     export_generated_headers: ["android.hardware.keymaster@3.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.keymaster@3.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/keymaster/V3_0/target_replay/AndroidTest.xml b/keymaster/V3_0/target_replay/AndroidTest.xml
index 44d0300..a368a65 100644
--- a/keymaster/V3_0/target_replay/AndroidTest.xml
+++ b/keymaster/V3_0/target_replay/AndroidTest.xml
@@ -28,7 +28,8 @@
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalKeymasterV3_0TargetReplay"/>
         <option name="binary-test-type" value="hal_hidl_replay_test"/>
-        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/keymaster/V3_0/android.hardware.keymaster@3.0_sailfish_1.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/keymaster/V3_0/android.hardware.keymaster_3.0_40741352389.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/keymaster/V3_0/android.hardware.keymaster_3.0_203096852418.vts.trace"/>
         <option name="hal-hidl-package-name" value="android.hardware.keymaster@3.0"/>
         <option name="precondition-lshal" value="android.hardware.keymaster@3.0"/>
         <option name="test-timeout" value="5m"/>
diff --git a/light/V2_0/build/Android.bp b/light/V2_0/build/Android.bp
index cab486f..ea2a888 100644
--- a/light/V2_0/build/Android.bp
+++ b/light/V2_0/build/Android.bp
@@ -46,24 +46,35 @@
     generated_headers: ["android.hardware.light@2.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.light@2.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.light@2.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -101,13 +112,25 @@
     export_generated_headers: ["android.hardware.light@2.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.light@2.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/light/V2_0/target_replay/Android.mk b/light/V2_0/target_replay/Android.mk
index c21c2f6..a92b553 100644
--- a/light/V2_0/target_replay/Android.mk
+++ b/light/V2_0/target_replay/Android.mk
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2016 The Android Open Source Project
+# 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.
diff --git a/light/V2_0/target_replay/AndroidTest.xml b/light/V2_0/target_replay/AndroidTest.xml
index 18cd587..cbe4ab5 100644
--- a/light/V2_0/target_replay/AndroidTest.xml
+++ b/light/V2_0/target_replay/AndroidTest.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 The Android Open Source Project
+<!-- 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.
@@ -13,22 +13,25 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS Light HIDL HAL's target-side replay test cases">
+<configuration description="Config for VTS VtsHalLightV2_0TargetReplay test cases">
     <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="cleanup" value="true" />
-        <option name="push" value="spec/hardware/interfaces/light/2.0/vts/Light.vts->/data/local/tmp/spec/target.vts" />
+        <option name="push-group" value="HalHidlHostTest.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"/>
         <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>
-    <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
+    <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalLightV2_0TargetReplay" />
-        <option name="binary-test-type" value="hal_hidl_replay_test" />
-        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/light/V2_0/android.hardware.light@2.0_sailfish_1.vts.trace" />
-        <option name="hal-hidl-package-name" value="android.hardware.light@2.0" />
+        <option name="test-module-name" value="VtsHalLightV2_0TargetReplay"/>
+        <option name="binary-test-type" value="hal_hidl_replay_test"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/light/V2_0/android.hardware.light_2.0_19050569395.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/light/V2_0/android.hardware.light_2.0_17887988342.vts.trace"/>
+        <option name="hal-hidl-package-name" value="android.hardware.light@2.0"/>
+        <option name="precondition-lshal" value="android.hardware.light@2.0"/>
         <option name="test-timeout" value="5m" />
     </test>
 </configuration>
diff --git a/media/V1_0/build/Android.bp b/media/V1_0/build/Android.bp
index dc078e0..1ea4f95 100644
--- a/media/V1_0/build/Android.bp
+++ b/media/V1_0/build/Android.bp
@@ -43,19 +43,21 @@
     generated_headers: ["android.hardware.media@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.media@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.media@1.0",
         "android.hardware.graphics.common@1.0",
         "android.hardware.graphics.common@1.0-vts.driver",
@@ -64,6 +66,15 @@
         "android.hardware.graphics.common@1.0",
         "android.hardware.graphics.common@1.0-vts.driver",
     ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
 }
 
 // Build VTS profiler.
@@ -98,8 +109,11 @@
     export_generated_headers: ["android.hardware.media@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
@@ -107,5 +121,14 @@
         "android.hardware.graphics.common@1.0",
         "android.hardware.graphics.common@1.0-vts.profiler",
     ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
 }
 
diff --git a/media/omx/V1_0/build/Android.bp b/media/omx/V1_0/build/Android.bp
index f19e2c3..0465545 100644
--- a/media/omx/V1_0/build/Android.bp
+++ b/media/omx/V1_0/build/Android.bp
@@ -61,19 +61,21 @@
     generated_headers: ["android.hardware.media.omx@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.media.omx@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.media.omx@1.0",
         "android.hardware.graphics.bufferqueue@1.0",
         "android.hardware.graphics.bufferqueue@1.0-vts.driver",
@@ -81,7 +83,6 @@
         "android.hardware.graphics.common@1.0-vts.driver",
         "android.hardware.media@1.0",
         "android.hardware.media@1.0-vts.driver",
-        "android.hidl.base@1.0",
     ],
     export_shared_lib_headers: [
         "android.hardware.graphics.bufferqueue@1.0",
@@ -90,7 +91,15 @@
         "android.hardware.graphics.common@1.0-vts.driver",
         "android.hardware.media@1.0",
         "android.hardware.media@1.0-vts.driver",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -138,8 +147,11 @@
     export_generated_headers: ["android.hardware.media.omx@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
@@ -150,7 +162,15 @@
         "android.hardware.graphics.common@1.0-vts.profiler",
         "android.hardware.media@1.0",
         "android.hardware.media@1.0-vts.profiler",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/media/omx/V1_0/host/AndroidTest.xml b/media/omx/V1_0/host/AndroidTest.xml
index 3196f75..212af0a 100644
--- a/media/omx/V1_0/host/AndroidTest.xml
+++ b/media/omx/V1_0/host/AndroidTest.xml
@@ -36,10 +36,14 @@
         <option name="push" value="DATA/lib/android.hardware.media.omx@1.0-vts.driver.so->/data/local/tmp/32/android.hardware.media.omx@1.0-vts.driver.so"/>
         <option name="push" value="DATA/lib64/android.hardware.media.omx@1.0-vts.driver.so->/data/local/tmp/64/android.hardware.media.omx@1.0-vts.driver.so"/>
         <option name="push" value="DATA/media/res/bbb_352x288_420p_30fps_32frames.yuv->/sdcard/media/bbb_352x288_420p_30fps_32frames.yuv"/>
-        <option name="push" value="DATA/media/res/bbb_avc_1920x1080_5000kbps_30fps.h264->/sdcard/media/bbb_avc_1920x1080_5000kbps_30fps.h264"/>
-        <option name="push" value="DATA/media/res/bbb_avc_1920x1080_5000kbps_30fps.info->/sdcard/media/bbb_avc_1920x1080_5000kbps_30fps.info"/>
+        <option name="push" value="DATA/media/res/bbb_avc_176x144_300kbps_60fps.h264->/sdcard/media/bbb_avc_176x144_300kbps_60fps.h264"/>
+        <option name="push" value="DATA/media/res/bbb_avc_176x144_300kbps_60fps.info->/sdcard/media/bbb_avc_176x144_300kbps_60fps.info"/>
+        <option name="push" value="DATA/media/res/bbb_avc_640x360_768kbps_30fps.h264->/sdcard/media/bbb_avc_640x360_768kbps_30fps.h264"/>
+        <option name="push" value="DATA/media/res/bbb_avc_640x360_768kbps_30fps.info->/sdcard/media/bbb_avc_640x360_768kbps_30fps.info"/>
         <option name="push" value="DATA/media/res/bbb_mp3_stereo_192kbps_48000hz.info->/sdcard/media/bbb_mp3_stereo_192kbps_48000hz.info"/>
         <option name="push" value="DATA/media/res/bbb_mp3_stereo_192kbps_48000hz.mp3->/sdcard/media/bbb_mp3_stereo_192kbps_48000hz.mp3"/>
+        <option name="push" value="DATA/media/res/bbb_flac_stereo_680kbps_48000hz.flac->/sdcard/media/bbb_flac_stereo_680kbps_48000hz.flac"/>
+        <option name="push" value="DATA/media/res/bbb_flac_stereo_680kbps_48000hz.info->/sdcard/media/bbb_flac_stereo_680kbps_48000hz.info"/>
         <option name="push" value="DATA/media/res/bbb_raw_1ch_16khz_s16le.raw->/sdcard/media/bbb_raw_1ch_16khz_s16le.raw"/>
         <option name="push" value="DATA/media/res/bbb_raw_1ch_8khz_s16le.raw->/sdcard/media/bbb_raw_1ch_8khz_s16le.raw"/>
         <option name="push" value="DATA/media/res/bbb_raw_2ch_48khz_s16le.raw->/sdcard/media/bbb_raw_2ch_48khz_s16le.raw"/>
@@ -47,14 +51,22 @@
         <option name="push" value="DATA/media/res/sine_amrnb_1ch_12kbps_8000hz.info->/sdcard/media/sine_amrnb_1ch_12kbps_8000hz.info"/>
         <option name="push" value="DATA/media/res/bbb_h263_352x288_300kbps_12fps.h263->/sdcard/media/bbb_h263_352x288_300kbps_12fps.h263"/>
         <option name="push" value="DATA/media/res/bbb_h263_352x288_300kbps_12fps.info->/sdcard/media/bbb_h263_352x288_300kbps_12fps.info"/>
+        <option name="push" value="DATA/media/res/bbb_hevc_176x144_176kbps_60fps.hevc->/sdcard/media/bbb_hevc_176x144_176kbps_60fps.hevc"/>
+        <option name="push" value="DATA/media/res/bbb_hevc_176x144_176kbps_60fps.info->/sdcard/media/bbb_hevc_176x144_176kbps_60fps.info"/>
         <option name="push" value="DATA/media/res/bbb_hevc_640x360_1600kbps_30fps.hevc->/sdcard/media/bbb_hevc_640x360_1600kbps_30fps.hevc"/>
         <option name="push" value="DATA/media/res/bbb_hevc_640x360_1600kbps_30fps.info->/sdcard/media/bbb_hevc_640x360_1600kbps_30fps.info"/>
         <option name="push" value="DATA/media/res/bbb_mpeg2_176x144_105kbps_25fps.m2v->/sdcard/media/bbb_mpeg2_176x144_105kbps_25fps.m2v"/>
         <option name="push" value="DATA/media/res/bbb_mpeg2_176x144_105kbps_25fps.info->/sdcard/media/bbb_mpeg2_176x144_105kbps_25fps.info"/>
-        <option name="push" value="DATA/media/res/bbb_mpeg4_1280x720_1000kbps_25fps.m4v->/sdcard/media/bbb_mpeg4_1280x720_1000kbps_25fps.m4v"/>
-        <option name="push" value="DATA/media/res/bbb_mpeg4_1280x720_1000kbps_25fps.info->/sdcard/media/bbb_mpeg4_1280x720_1000kbps_25fps.info"/>
+        <option name="push" value="DATA/media/res/bbb_mpeg2_352x288_1mbps_60fps.m2v->/sdcard/media/bbb_mpeg2_352x288_1mbps_60fps.m2v"/>
+        <option name="push" value="DATA/media/res/bbb_mpeg2_352x288_1mbps_60fps.info->/sdcard/media/bbb_mpeg2_352x288_1mbps_60fps.info"/>
+        <option name="push" value="DATA/media/res/bbb_mpeg4_352x288_512kbps_30fps.m4v->/sdcard/media/bbb_mpeg4_352x288_512kbps_30fps.m4v"/>
+        <option name="push" value="DATA/media/res/bbb_mpeg4_352x288_512kbps_30fps.info->/sdcard/media/bbb_mpeg4_352x288_512kbps_30fps.info"/>
+        <option name="push" value="DATA/media/res/bbb_vp8_176x144_240kbps_60fps.vp8->/sdcard/media/bbb_vp8_176x144_240kbps_60fps.vp8"/>
+        <option name="push" value="DATA/media/res/bbb_vp8_176x144_240kbps_60fps.info->/sdcard/media/bbb_vp8_176x144_240kbps_60fps.info"/>
         <option name="push" value="DATA/media/res/bbb_vp8_640x360_2mbps_30fps.vp8->/sdcard/media/bbb_vp8_640x360_2mbps_30fps.vp8"/>
         <option name="push" value="DATA/media/res/bbb_vp8_640x360_2mbps_30fps.info->/sdcard/media/bbb_vp8_640x360_2mbps_30fps.info"/>
+        <option name="push" value="DATA/media/res/bbb_vp9_176x144_285kbps_60fps.vp9->/sdcard/media/bbb_vp9_176x144_285kbps_60fps.vp9"/>
+        <option name="push" value="DATA/media/res/bbb_vp9_176x144_285kbps_60fps.info->/sdcard/media/bbb_vp9_176x144_285kbps_60fps.info"/>
         <option name="push" value="DATA/media/res/bbb_vp9_640x360_1600kbps_30fps.vp9->/sdcard/media/bbb_vp9_640x360_1600kbps_30fps.vp9"/>
         <option name="push" value="DATA/media/res/bbb_vp9_640x360_1600kbps_30fps.info->/sdcard/media/bbb_vp9_640x360_1600kbps_30fps.info"/>
         <option name="push" value="DATA/media/res/bbb_aac_stereo_128kbps_48000hz.aac->/sdcard/media/bbb_aac_stereo_128kbps_48000hz.aac"/>
@@ -84,11 +96,16 @@
         <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalMediaOmxV1_0TargetAudioDecTest/VtsHalMediaOmxV1_0TargetAudioDecTest"/>
         <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalMediaOmxV1_0TargetVideoEncTest/VtsHalMediaOmxV1_0TargetVideoEncTest"/>
         <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalMediaOmxV1_0TargetVideoDecTest/VtsHalMediaOmxV1_0TargetVideoDecTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalMediaOmxV1_0TargetComponentTest/VtsHalMediaOmxV1_0TargetComponentTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalMediaOmxV1_0TargetAudioEncTest/VtsHalMediaOmxV1_0TargetAudioEncTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalMediaOmxV1_0TargetAudioDecTest/VtsHalMediaOmxV1_0TargetAudioDecTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalMediaOmxV1_0TargetVideoEncTest/VtsHalMediaOmxV1_0TargetVideoEncTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalMediaOmxV1_0TargetVideoDecTest/VtsHalMediaOmxV1_0TargetVideoDecTest"/>
         <option name="binary-test-disable-framework" value="true"/>
         <option name="binary-test-stop-native-servers" value="true"/>
         <option name="hal-hidl-package-name" value="android.hardware.media.omx@1.0"/>
         <option name="precondition-lshal" value="android.hardware.media.omx@1.0"/>
         <option name="test-timeout" value="2h"/>
-        <option name="runtime-hint" value="40m"/>
+        <option name="runtime-hint" value="10m"/>
     </test>
 </configuration>
diff --git a/media/omx/V1_0/host/VtsHalMediaOmxV1_0HostTest.py b/media/omx/V1_0/host/VtsHalMediaOmxV1_0HostTest.py
index 2f4d6e9..338c1d9 100644
--- a/media/omx/V1_0/host/VtsHalMediaOmxV1_0HostTest.py
+++ b/media/omx/V1_0/host/VtsHalMediaOmxV1_0HostTest.py
@@ -42,6 +42,7 @@
                        "audio_decoder.aac",
                        "audio_decoder.amrnb",
                        "audio_decoder.amrwb",
+                       "audio_decoder.flac",
                        "audio_decoder.g711alaw",
                        "audio_decoder.g711mlaw",
                        "audio_decoder.gsm",
@@ -102,7 +103,7 @@
         test_cases = []
 
         for gtest_case in gtest_cases:
-            test_suite = gtest_case.GetFullName()
+            test_suite = gtest_case.full_name
             for component, roles in self.components.iteritems():
                 for role in roles:
                     if not self.COMPONENT_TEST in test_suite and not role in self.whitelist_roles:
@@ -120,7 +121,7 @@
                     instance_name = "default"
                     test_case = omx_test_case.VtsHalMediaOmxV1_0TestCase(
                         component, role, instance_name, test_suite, test_name,
-                        path)
+                        path, tag)
                     test_cases.append(test_case)
         logging.info("num of test_testcases: %s", len(test_cases))
         return test_cases
diff --git a/wifi/V1_0/target/base/Android.mk b/media/omx/V1_0/host_basic/Android.mk
similarity index 86%
copy from wifi/V1_0/target/base/Android.mk
copy to media/omx/V1_0/host_basic/Android.mk
index c07841b..16535d5 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/media/omx/V1_0/host_basic/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalMediaOmxV1_0HostBasic
+VTS_CONFIG_SRC_DIR := testcases/hal/media/omx/V1_0/host_basic
 include test/vts/tools/build/Android.host_config.mk
diff --git a/media/omx/V1_0/host_basic/AndroidTest.xml b/media/omx/V1_0/host_basic/AndroidTest.xml
new file mode 100644
index 0000000..803e33b
--- /dev/null
+++ b/media/omx/V1_0/host_basic/AndroidTest.xml
@@ -0,0 +1,48 @@
+<?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 VtsHalMediaOmxV1_0HostBasic test cases">
+    <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="true"/>
+        <option name="push-group" value="HalHidlHostTest.push"/>
+        <option name="cleanup" value="true"/>
+        <option name="push" value="spec/hardware/interfaces/media/omx/1.0/vts/GraphicBufferSource.vts->/data/local/tmp/spec/android/hardware/media/omx/1.0/GraphicBufferSource.vts"/>
+        <option name="push" value="spec/hardware/interfaces/media/omx/1.0/vts/Omx.vts->/data/local/tmp/spec/android/hardware/media/omx/1.0/Omx.vts"/>
+        <option name="push" value="spec/hardware/interfaces/media/omx/1.0/vts/OmxBufferSource.vts->/data/local/tmp/spec/android/hardware/media/omx/1.0/OmxBufferSource.vts"/>
+        <option name="push" value="spec/hardware/interfaces/media/omx/1.0/vts/OmxNode.vts->/data/local/tmp/spec/android/hardware/media/omx/1.0/OmxNode.vts"/>
+        <option name="push" value="spec/hardware/interfaces/media/omx/1.0/vts/OmxObserver.vts->/data/local/tmp/spec/android/hardware/media/omx/1.0/OmxObserver.vts"/>
+        <option name="push" value="spec/hardware/interfaces/media/omx/1.0/vts/OmxStore.vts->/data/local/tmp/spec/android/hardware/media/omx/1.0/OmxStore.vts"/>
+        <option name="push" value="spec/hardware/interfaces/media/omx/1.0/vts/types.vts->/data/local/tmp/spec/android/hardware/media/omx/1.0/types.vts"/>
+        <option name="push" value="spec/hardware/interfaces/graphics/common/1.0/vts/types.vts->/data/local/tmp/spec/android/hardware/graphics/common/1.0/types.vts"/>
+        <option name="push" value="spec/hardware/interfaces/media/1.0/vts/types.vts->/data/local/tmp/spec/android/hardware/media/1.0/types.vts"/>
+        <option name="push" value="DATA/lib/android.hardware.graphics.bufferqueue@1.0-vts.driver.so->/data/local/tmp/32/android.hardware.graphics.bufferqueue@1.0-vts.driver.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.graphics.bufferqueue@1.0-vts.driver.so->/data/local/tmp/64/android.hardware.graphics.bufferqueue@1.0-vts.driver.so"/>
+        <option name="push" value="DATA/lib/android.hardware.graphics.common@1.0-vts.driver.so->/data/local/tmp/32/android.hardware.graphics.common@1.0-vts.driver.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.graphics.common@1.0-vts.driver.so->/data/local/tmp/64/android.hardware.graphics.common@1.0-vts.driver.so"/>
+        <option name="push" value="DATA/lib/android.hardware.media@1.0-vts.driver.so->/data/local/tmp/32/android.hardware.media@1.0-vts.driver.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.media@1.0-vts.driver.so->/data/local/tmp/64/android.hardware.media@1.0-vts.driver.so"/>
+        <option name="push" value="DATA/lib/android.hardware.media.omx@1.0-vts.driver.so->/data/local/tmp/32/android.hardware.media.omx@1.0-vts.driver.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.media.omx@1.0-vts.driver.so->/data/local/tmp/64/android.hardware.media.omx@1.0-vts.driver.so"/>
+    </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="VtsHalMediaOmxV1_0HostBasic"/>
+        <option name="test-case-path" value="vts/testcases/hal/media/omx/V1_0/host_basic/VtsHalMediaOmxV1_0HostBasicTest"/>
+        <option name="hal-hidl-package-name" value="android.hardware.media.omx@1.0"/>
+        <option name="precondition-lshal" value="android.hardware.media.omx@1.0"/>
+        <option name="test-timeout" value="1m"/>
+    </test>
+</configuration>
diff --git a/media/omx/V1_0/host_basic/VtsHalMediaOmxV1_0HostBasicTest.py b/media/omx/V1_0/host_basic/VtsHalMediaOmxV1_0HostBasicTest.py
new file mode 100644
index 0000000..0175368
--- /dev/null
+++ b/media/omx/V1_0/host_basic/VtsHalMediaOmxV1_0HostBasicTest.py
@@ -0,0 +1,70 @@
+#!/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 time
+
+from vts.runners.host import asserts
+from vts.runners.host import base_test
+from vts.runners.host import keys
+from vts.runners.host import test_runner
+from vts.utils.python.controllers import android_device
+from vts.utils.python.precondition import precondition_utils
+
+class VtsHalMediaOmxV1_0HostBasic(base_test.BaseTestClass):
+    """Host test class to run the Media_Omx HAL."""
+
+    def setUpClass(self):
+        self.dut = self.registerController(android_device)[0]
+
+        self.dut.shell.InvokeTerminal("one")
+        self.dut.shell.one.Execute("setenforce 0")  # SELinux permissive mode
+        if not precondition_utils.CanRunHidlHalTest(
+            self, self.dut, self.dut.shell.one):
+            self._skip_all_testcases = True
+            return
+
+        self.dut.hal.InitHidlHal(
+            target_type="media_omx",
+            target_basepaths=self.dut.libPaths,
+            target_version=1.0,
+            target_package="android.hardware.media.omx",
+            target_component_name="IOmxStore",
+            bits=int(self.abi_bitness))
+
+        if self.coverage.enabled:
+            self.coverage.LoadArtifacts()
+            self.coverage.InitializeDeviceCoverage(self.dut)
+
+    def testIOmxStoreBase(self):
+        """A simple test case which just calls each registered function."""
+
+        self.vtypes = self.dut.hal.media_omx.GetHidlTypeInterface("types")
+        status, attributes = self.dut.hal.media_omx.listServiceAttributes()
+        asserts.assertEqual(self.vtypes.Status.OK, status)
+
+        prefix = self.dut.hal.media_omx.getNodePrefix()
+        logging.info("getNodePrefix: %s", prefix)
+
+        roles = self.dut.hal.media_omx.listRoles()
+        logging.info("roles: %s", roles)
+
+        omx = self.dut.hal.media_omx.getOmx("default")
+        logging.info("omx: %s", omx)
+
+if __name__ == "__main__":
+    test_runner.main()
diff --git a/media/omx/V1_0/host_basic/__init__.py b/media/omx/V1_0/host_basic/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/media/omx/V1_0/host_basic/__init__.py
diff --git a/wifi/V1_0/target/base/Android.mk b/media/omx/V1_0/host_omxstore/Android.mk
similarity index 86%
copy from wifi/V1_0/target/base/Android.mk
copy to media/omx/V1_0/host_omxstore/Android.mk
index c07841b..7f178b2 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/media/omx/V1_0/host_omxstore/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalMediaOmxStoreV1_0Host
+VTS_CONFIG_SRC_DIR := testcases/hal/media/omx/V1_0/host_omxstore
 include test/vts/tools/build/Android.host_config.mk
diff --git a/media/omx/V1_0/host_omxstore/AndroidTest.xml b/media/omx/V1_0/host_omxstore/AndroidTest.xml
new file mode 100644
index 0000000..7ab988d
--- /dev/null
+++ b/media/omx/V1_0/host_omxstore/AndroidTest.xml
@@ -0,0 +1,48 @@
+<?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 VtsHalMediaOmxStoreV1_0Host 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="true"/>
+        <option name="push-group" value="HalHidlHostTest.push"/>
+        <option name="cleanup" value="true"/>
+        <option name="push" value="spec/hardware/interfaces/media/omx/1.0/vts/GraphicBufferSource.vts->/data/local/tmp/spec/android/hardware/media/omx/1.0/GraphicBufferSource.vts"/>
+        <option name="push" value="spec/hardware/interfaces/media/omx/1.0/vts/Omx.vts->/data/local/tmp/spec/android/hardware/media/omx/1.0/Omx.vts"/>
+        <option name="push" value="spec/hardware/interfaces/media/omx/1.0/vts/OmxBufferSource.vts->/data/local/tmp/spec/android/hardware/media/omx/1.0/OmxBufferSource.vts"/>
+        <option name="push" value="spec/hardware/interfaces/media/omx/1.0/vts/OmxNode.vts->/data/local/tmp/spec/android/hardware/media/omx/1.0/OmxNode.vts"/>
+        <option name="push" value="spec/hardware/interfaces/media/omx/1.0/vts/OmxObserver.vts->/data/local/tmp/spec/android/hardware/media/omx/1.0/OmxObserver.vts"/>
+        <option name="push" value="spec/hardware/interfaces/media/omx/1.0/vts/OmxStore.vts->/data/local/tmp/spec/android/hardware/media/omx/1.0/OmxStore.vts"/>
+        <option name="push" value="spec/hardware/interfaces/media/omx/1.0/vts/types.vts->/data/local/tmp/spec/android/hardware/media/omx/1.0/types.vts"/>
+        <option name="push" value="spec/hardware/interfaces/graphics/common/1.0/vts/types.vts->/data/local/tmp/spec/android/hardware/graphics/common/1.0/types.vts"/>
+        <option name="push" value="spec/hardware/interfaces/media/1.0/vts/types.vts->/data/local/tmp/spec/android/hardware/media/1.0/types.vts"/>
+        <option name="push" value="DATA/lib/android.hardware.graphics.bufferqueue@1.0-vts.driver.so->/data/local/tmp/32/android.hardware.graphics.bufferqueue@1.0-vts.driver.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.graphics.bufferqueue@1.0-vts.driver.so->/data/local/tmp/64/android.hardware.graphics.bufferqueue@1.0-vts.driver.so"/>
+        <option name="push" value="DATA/lib/android.hardware.graphics.common@1.0-vts.driver.so->/data/local/tmp/32/android.hardware.graphics.common@1.0-vts.driver.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.graphics.common@1.0-vts.driver.so->/data/local/tmp/64/android.hardware.graphics.common@1.0-vts.driver.so"/>
+        <option name="push" value="DATA/lib/android.hardware.media@1.0-vts.driver.so->/data/local/tmp/32/android.hardware.media@1.0-vts.driver.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.media@1.0-vts.driver.so->/data/local/tmp/64/android.hardware.media@1.0-vts.driver.so"/>
+        <option name="push" value="DATA/lib/android.hardware.media.omx@1.0-vts.driver.so->/data/local/tmp/32/android.hardware.media.omx@1.0-vts.driver.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.media.omx@1.0-vts.driver.so->/data/local/tmp/64/android.hardware.media.omx@1.0-vts.driver.so"/>
+    </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="VtsHalMediaOmxStoreV1_0Host"/>
+        <option name="test-case-path" value="vts/testcases/hal/media/omx/V1_0/host_omxstore/VtsHalMediaOmxStoreV1_0HostTest"/>
+        <option name="hal-hidl-package-name" value="android.hardware.media.omx@1.0"/>
+        <option name="precondition-lshal" value="android.hardware.media.omx@1.0"/>
+        <option name="test-timeout" value="1m"/>
+    </test>
+</configuration>
diff --git a/media/omx/V1_0/host_omxstore/VtsHalMediaOmxStoreV1_0HostTest.py b/media/omx/V1_0/host_omxstore/VtsHalMediaOmxStoreV1_0HostTest.py
new file mode 100644
index 0000000..fe855b5
--- /dev/null
+++ b/media/omx/V1_0/host_omxstore/VtsHalMediaOmxStoreV1_0HostTest.py
@@ -0,0 +1,475 @@
+#!/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.
+#
+"""This module is for VTS test cases involving IOmxStore and IOmx::listNodes().
+
+VtsHalMediaOmxStoreV1_0Host derives from base_test.BaseTestClass. It contains
+two independent tests: testListServiceAttributes() and
+testQueryCodecInformation(). The first one tests
+IOmxStore::listServiceAttributes() while the second one test multiple functions
+in IOmxStore as well as check the consistency of the return values with
+IOmx::listNodes().
+
+"""
+
+import logging
+import re
+
+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.utils.python.precondition import precondition_utils
+
+
+class VtsHalMediaOmxStoreV1_0Host(base_test.BaseTestClass):
+    """Host test class to run the Media_OmxStore HAL."""
+
+    def setUpClass(self):
+        self.dut = self.registerController(android_device)[0]
+
+        self.dut.shell.InvokeTerminal('one')
+        self.dut.shell.one.Execute('setenforce 0')  # SELinux permissive mode
+        if not precondition_utils.CanRunHidlHalTest(
+            self, self.dut, self.dut.shell.one):
+            self._skip_all_testcases = True
+            return
+
+        self.dut.hal.InitHidlHal(
+            target_type='media_omx',
+            target_basepaths=self.dut.libPaths,
+            target_version=1.0,
+            target_package='android.hardware.media.omx',
+            target_component_name='IOmxStore',
+            bits=int(self.abi_bitness))
+
+        self.omxstore = self.dut.hal.media_omx
+        self.vtypes = self.omxstore.GetHidlTypeInterface('types')
+
+        if self.coverage.enabled:
+            self.coverage.LoadArtifacts()
+            self.coverage.InitializeDeviceCoverage(self.dut)
+
+    def testListServiceAttributes(self):
+        """Test IOmxStore::listServiceAttributes().
+
+        Tests that IOmxStore::listServiceAttributes() can be called
+        successfully and returns sensible attributes.
+
+        An attribute has a name (key) and a value. Known attributes (represented
+        by variable "known" below) have certain specifications for valid values.
+        Unknown attributes that start with 'supports-' should only have '0' or
+        '1' as their value. Other unknown attributes do not cause the test to
+        fail, but are reported as warnings in the host log.
+
+        """
+
+        status, attributes = self.omxstore.listServiceAttributes()
+        asserts.assertEqual(self.vtypes.Status.OK, status,
+                            'listServiceAttributes() fails.')
+
+        # known is a dictionary whose keys are the known "key" for a service
+        # attribute pair (see IOmxStore::Attribute), and whose values are the
+        # corresponding regular expressions that will have to match with the
+        # "value" of the attribute pair. If listServiceAttributes() returns an
+        # attribute that has a matching key but an unmatched value, the test
+        # will fail.
+        known = {
+            'max-video-encoder-input-buffers': re.compile('0|[1-9][0-9]*'),
+            'supports-multiple-secure-codecs': re.compile('0|1'),
+            'supports-secure-with-non-secure-codec': re.compile('0|1'),
+        }
+        # unknown is a list of pairs of regular expressions. For each attribute
+        # whose key is not known (i.e., does not match any of the keys in the
+        # "known" variable defined above), that key will be tried for a match
+        # with the first element of each pair of the variable "unknown". If a
+        # match occurs, the value of that same attribute will be tried for a
+        # match with the second element of the pair. If this second match fails,
+        # the test will fail.
+        unknown = [
+            (re.compile(r'supports-[a-z0-9\-]*'), re.compile('0|1')),
+        ]
+
+        # key_set is used to verify that listServiceAttributes() does not return
+        # duplicate attribute names.
+        key_set = set()
+        for attr in attributes:
+            attr_key = attr['key']
+            attr_value = attr['value']
+
+            # attr_key must not have been seen before.
+            assert(
+                attr_key not in key_set,
+                'Service attribute "' + attr_key + '" has duplicates.')
+            key_set.add(attr_key)
+
+            if attr_key in known:
+                asserts.assertTrue(
+                    known[attr_key].match(attr_value),
+                    'Service attribute "' + attr_key + '" has ' +
+                    'invalid value "' + attr_value + '".')
+            else:
+                matched = False
+                for key_re, value_re in unknown:
+                    if key_re.match(attr_key):
+                        asserts.assertTrue(
+                            value_re.match(attr_value),
+                            'Service attribute "' + attr_key + '" has ' +
+                            'invalid value "' + attr_value + '".')
+                        matched = True
+                if not matched:
+                    logging.warning(
+                        'Unrecognized service attribute "' + attr_key + '" ' +
+                        'with value "' + attr_value + '".')
+
+    def testQueryCodecInformation(self):
+        """Query and verify information from IOmxStore and IOmx::listNodes().
+
+        This function performs three main checks:
+         1. Information about roles and nodes returned from
+            IOmxStore::listRoles() conforms to the specifications in
+            IOmxStore.hal.
+         2. Each node present in the information returned from
+            IOmxStore::listRoles() must be supported by its owner. A node is
+            considered "supported" by its owner if the IOmx instance
+            corresponding to that owner returns that node and all associated
+            roles when IOmx::listNodes() is called.
+         3. The prefix string obtained form IOmxStore::getNodePrefix() must be
+            sensible, and is indeed a prefix of all the node names.
+
+        In step 1, node attributes are validated in the same manner as how
+        service attributes are validated in testListServiceAttributes().
+        Role names and mime types must be recognized by the function get_role()
+        defined below.
+
+        """
+
+        # Basic patterns for matching
+        class Pattern(object):
+            toggle = '(0|1)'
+            string = '(.*)'
+            num = '(0|([1-9][0-9]*))'
+            size = '(' + num + 'x' + num + ')'
+            ratio = '(' + num + ':' + num + ')'
+            range_num = '((' + num + '-' + num + ')|' + num + ')'
+            range_size = '((' + size + '-' + size + ')|' + size + ')'
+            range_ratio = '((' + ratio + '-' + ratio + ')|' + ratio + ')'
+            list_range_num = '(' + range_num + '(,' + range_num + ')*)'
+
+        # Matching rules for node attributes with fixed keys
+        attr_re = {
+            'alignment'                     : Pattern.size,
+            'bitrate-range'                 : Pattern.range_num,
+            'block-aspect-ratio-range'      : Pattern.range_ratio,
+            'block-count-range'             : Pattern.range_num,
+            'block-size'                    : Pattern.size,
+            'blocks-per-second-range'       : Pattern.range_num,
+            'complexity-default'            : Pattern.num,
+            'complexity-range'              : Pattern.range_num,
+            'feature-adaptive-playback'     : Pattern.toggle,
+            'feature-bitrate-control'       : '(VBR|CBR|CQ)[,(VBR|CBR|CQ)]*',
+            'feature-can-swap-width-height' : Pattern.toggle,
+            'feature-intra-refresh'         : Pattern.toggle,
+            'feature-partial-frame'         : Pattern.toggle,
+            'feature-secure-playback'       : Pattern.toggle,
+            'feature-tunneled-playback'     : Pattern.toggle,
+            'frame-rate-range'              : Pattern.range_num,
+            'max-channel-count'             : Pattern.num,
+            'max-concurrent-instances'      : Pattern.num,
+            'max-supported-instances'       : Pattern.num,
+            'pixel-aspect-ratio-range'      : Pattern.range_ratio,
+            'quality-default'               : Pattern.num,
+            'quality-range'                 : Pattern.range_num,
+            'quality-scale'                 : Pattern.string,
+            'sample-rate-ranges'            : Pattern.list_range_num,
+            'size-range'                    : Pattern.range_size,
+        }
+
+        # Matching rules for node attributes with key patterns
+        attr_pattern_re = [
+            ('measured-frame-rate-' + Pattern.size +
+             '-range', Pattern.range_num),
+            (r'feature-[a-zA-Z0-9_\-]+', Pattern.string),
+        ]
+
+        # Matching rules for node names and owners
+        node_name_re = r'[a-zA-Z0-9.\-]+'
+        node_owner_re = r'[a-zA-Z0-9._\-]+'
+
+        # Compile all regular expressions
+        for key in attr_re:
+            attr_re[key] = re.compile(attr_re[key])
+        for index, value in enumerate(attr_pattern_re):
+            attr_pattern_re[index] = (re.compile(value[0]),
+                                      re.compile(value[1]))
+        node_name_re = re.compile(node_name_re)
+        node_owner_re = re.compile(node_owner_re)
+
+        # Mapping from mime types to roles.
+        # These values come from MediaDefs.cpp and OMXUtils.cpp
+        audio_mime_to_role = {
+            '3gpp'          : 'amrnb',
+            'ac3'           : 'ac3',
+            'amr-wb'        : 'amrwb',
+            'eac3'          : 'eac3',
+            'flac'          : 'flac',
+            'g711-alaw'     : 'g711alaw',
+            'g711-mlaw'     : 'g711mlaw',
+            'gsm'           : 'gsm',
+            'mp4a-latm'     : 'aac',
+            'mpeg'          : 'mp3',
+            'mpeg-L1'       : 'mp1',
+            'mpeg-L2'       : 'mp2',
+            'opus'          : 'opus',
+            'raw'           : 'raw',
+            'vorbis'        : 'vorbis',
+        }
+        video_mime_to_role = {
+            '3gpp'          : 'h263',
+            'avc'           : 'avc',
+            'dolby-vision'  : 'dolby-vision',
+            'hevc'          : 'hevc',
+            'mp4v-es'       : 'mpeg4',
+            'mpeg2'         : 'mpeg2',
+            'x-vnd.on2.vp8' : 'vp8',
+            'x-vnd.on2.vp9' : 'vp9',
+        }
+        def get_role(is_encoder, mime):
+            """Returns the role based on is_encoder and mime.
+
+            The mapping from a pair (is_encoder, mime) to a role string is
+            defined in frameworks/av/media/libmedia/MediaDefs.cpp and
+            frameworks/av/media/libstagefright/omx/OMXUtils.cpp. This function
+            does essentially the same work as GetComponentRole() in
+            OMXUtils.cpp.
+
+            Args:
+              is_encoder: A boolean indicating whether the role is for an
+                  encoder or a decoder.
+              mime: A string of the desired mime type.
+
+            Returns:
+              A string for the requested role name, or None if mime is not
+              recognized.
+            """
+            mime_suffix = mime[6:]
+            middle = 'encoder.' if is_encoder else 'decoder.'
+            if mime.startswith('audio/'):
+                if mime_suffix not in audio_mime_to_role:
+                    return None
+                prefix = 'audio_'
+                suffix = audio_mime_to_role[mime_suffix]
+            elif mime.startswith('video/'):
+                if mime_suffix not in video_mime_to_role:
+                    return None
+                prefix = 'video_'
+                suffix = video_mime_to_role[mime_suffix]
+            else:
+                return None
+            return prefix + middle + suffix
+
+        # The test code starts here.
+        roles = self.omxstore.listRoles()
+        if len(roles) == 0:
+            logging.warning('IOmxStore has an empty implementation. Skipping...')
+            return
+
+        # A map from a node name to a set of roles.
+        node2roles = {}
+
+        # A map from an owner to a set of node names.
+        owner2nodes = {}
+
+        logging.info('Testing IOmxStore::listRoles()...')
+        # role_set is used for checking if there are duplicate roles.
+        role_set = set()
+        for role in roles:
+            role_name = role['role']
+            mime_type = role['type']
+            is_encoder = role['isEncoder']
+            nodes = role['nodes']
+
+            # The role name must not have duplicates.
+            asserts.assertFalse(
+                role_name in role_set,
+                'Role "' + role_name + '" has duplicates.')
+
+            queried_role = get_role(is_encoder, mime_type)
+            # If mime_type is not recognized, skip it.
+            if queried_role is None:
+                logging.info(
+                    'Unrecognized mime type  "' +
+                    mime_type + '", skipping.')
+                continue
+
+            # Otherwise, type and isEncoder must be consistent with role.
+            asserts.assertEqual(
+                role_name, queried_role,
+                'Role "' + role_name + '" does not match ' +
+                ('an encoder ' if is_encoder else 'a decoder ') +
+                'for mime type "' + mime_type + '"')
+
+            # Save the role name to check for duplicates.
+            role_set.add(role_name)
+
+            # Ignore role.preferPlatformNodes for now.
+
+            # node_set is used for checking if there are duplicate node names
+            # for each role.
+            node_set = set()
+            for node in nodes:
+                node_name = node['name']
+                owner = node['owner']
+                attributes = node['attributes']
+
+                # For each role, the node name must not have duplicates.
+                asserts.assertFalse(
+                    node_name in node_set,
+                    'Node "' + node_name + '" has duplicates for the same ' +
+                    'role "' + queried_role + '".')
+
+                # Check the format of node name
+                asserts.assertTrue(
+                    node_name_re.match(node_name),
+                    'Node name "' + node_name + '" is invalid.')
+                # Check the format of node owner
+                asserts.assertTrue(
+                    node_owner_re.match(owner),
+                    'Node owner "' + owner + '" is invalid.')
+
+                attr_map = {}
+                for attr in attributes:
+                    attr_key = attr['key']
+                    attr_value = attr['value']
+
+                    # For each node and each role, the attribute key must not
+                    # have duplicates.
+                    asserts.assertFalse(
+                        attr_key in attr_map,
+                        'Attribute "' + attr_key +
+                        '" for node "' + node_name +
+                        '"has duplicates.')
+
+                    # Check the value against the corresponding regular
+                    # expression.
+                    if attr_key in attr_re:
+                        asserts.assertTrue(
+                            attr_re[attr_key].match(attr_value),
+                            'Attribute "' + attr_key + '" has ' +
+                            'invalid value "' + attr_value + '".')
+                    else:
+                        key_found = False
+                        for pattern_key, pattern_value in attr_pattern_re:
+                            if pattern_key.match(attr_key):
+                                asserts.assertTrue(
+                                    pattern_value.match(attr_value),
+                                    'Attribute "' + attr_key + '" has ' +
+                                    'invalid value "' + attr_value + '".')
+                                key_found = True
+                                break
+                        if not key_found:
+                            logging.warning(
+                                'Unknown attribute "' +
+                                attr_key + '" with value "' +
+                                attr_value + '".')
+
+                    # Store the key-value pair
+                    attr_map[attr_key] = attr_value
+
+                if node_name not in node2roles:
+                    node2roles[node_name] = {queried_role,}
+                    if owner not in owner2nodes:
+                        owner2nodes[owner] = {node_name,}
+                    else:
+                        owner2nodes[owner].add(node_name)
+                else:
+                    node2roles[node_name].add(queried_role)
+
+        # Verify the information with IOmx::listNodes().
+        # IOmxStore::listRoles() and IOmx::listNodes() should give consistent
+        # information about nodes and roles.
+        logging.info('Verifying with IOmx::listNodes()...')
+        for owner in owner2nodes:
+            # Obtain the IOmx instance for each "owner"
+            omx = self.omxstore.getOmx(owner)
+            asserts.assertTrue(
+                omx,
+                'Cannot obtain IOmx instance "' + owner + '".')
+
+            # Invoke IOmx::listNodes()
+            status, node_info_list = omx.listNodes()
+            asserts.assertEqual(
+                self.vtypes.Status.OK, status,
+                'IOmx::listNodes() fails for IOmx instance "' + owner + '".')
+
+            # Verify that roles for each node match with the information from
+            # IOmxStore::listRoles().
+            node_set = set()
+            for node_info in node_info_list:
+                node = node_info['mName']
+                roles = node_info['mRoles']
+
+                # IOmx::listNodes() should not list duplicate node names.
+                asserts.assertFalse(
+                    node in node_set,
+                    'IOmx::listNodes() lists duplicate nodes "' + node + '".')
+                node_set.add(node)
+
+                # Skip "hidden" nodes, i.e. those that are not advertised by
+                # IOmxStore::listRoles().
+                if node not in owner2nodes[owner]:
+                    logging.warning(
+                        'IOmx::listNodes() lists unknown node "' + node +
+                        '" for IOmx instance "' + owner + '".')
+                    continue
+
+                # All the roles advertised by IOmxStore::listRoles() for this
+                # node must be included in role_set.
+                role_set = set(roles)
+                asserts.assertTrue(
+                    node2roles[node] <= role_set,
+                    'IOmx::listNodes() for IOmx instance "' + owner + '" ' +
+                    'does not report some roles for node "' + node + '": ' +
+                    ', '.join(node2roles[node] - role_set))
+
+            # Check that all nodes obtained from IOmxStore::listRoles() are
+            # supported by the their corresponding IOmx instances.
+            node_set_diff = owner2nodes[owner] - node_set
+            asserts.assertFalse(
+                node_set_diff,
+                'IOmx::listNodes() for IOmx instance "' + owner + '" ' +
+                'does not report some expected nodes: ' +
+                ', '.join(node_set_diff) + '.')
+
+        # Call IOmxStore::getNodePrefix().
+        prefix = self.omxstore.getNodePrefix()
+        logging.info('Checking node prefix: ' +
+                     'IOmxStore::getNodePrefix() returns "' + prefix + '".')
+
+        # Check that the prefix is a sensible string.
+        asserts.assertTrue(
+            node_name_re.match(prefix),
+            '"' + prefix + '" is not a valid prefix for node names.')
+
+        # Check that all node names have the said prefix.
+        for node in node2roles:
+            asserts.assertTrue(
+                node.startswith(prefix),
+                'Node "' + node + '" does not start with ' +
+                'prefix "' + prefix + '".')
+
+if __name__ == '__main__':
+    test_runner.main()
diff --git a/media/omx/V1_0/host_omxstore/__init__.py b/media/omx/V1_0/host_omxstore/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/media/omx/V1_0/host_omxstore/__init__.py
diff --git a/memtrack/V1_0/build/Android.bp b/memtrack/V1_0/build/Android.bp
index 13d064f..0da1ffe 100644
--- a/memtrack/V1_0/build/Android.bp
+++ b/memtrack/V1_0/build/Android.bp
@@ -46,24 +46,35 @@
     generated_headers: ["android.hardware.memtrack@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.memtrack@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.memtrack@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -101,13 +112,25 @@
     export_generated_headers: ["android.hardware.memtrack@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.memtrack@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/memtrack/V1_0/target_replay/Android.mk b/memtrack/V1_0/target_replay/Android.mk
index af28dd5..fba0bca 100644
--- a/memtrack/V1_0/target_replay/Android.mk
+++ b/memtrack/V1_0/target_replay/Android.mk
@@ -19,5 +19,5 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := VtsHalMemtrackV1_0TargetReplay
-VTS_CONFIG_SRC_DIR := testcases/hal/memtrack/V1_0/target
+VTS_CONFIG_SRC_DIR := testcases/hal/memtrack/V1_0/target_replay
 include test/vts/tools/build/Android.host_config.mk
diff --git a/memtrack/V1_0/target_replay/AndroidTest.xml b/memtrack/V1_0/target_replay/AndroidTest.xml
index 2a219e9..17ad1a2 100644
--- a/memtrack/V1_0/target_replay/AndroidTest.xml
+++ b/memtrack/V1_0/target_replay/AndroidTest.xml
@@ -18,17 +18,20 @@
     <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="cleanup" value="true" />
-        <option name="push" value="spec/hardware/interfaces/memtrack/1.0/vts/Memtrack.vts->/data/local/tmp/spec/target.vts" />
+        <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"/>
         <option name="push" value="DATA/lib/android.hardware.memtrack@1.0-vts.driver.so->/data/local/tmp/32/android.hardware.memtrack@1.0-vts.driver.so"/>
         <option name="push" value="DATA/lib64/android.hardware.memtrack@1.0-vts.driver.so->/data/local/tmp/64/android.hardware.memtrack@1.0-vts.driver.so"/>
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalMemtrackV1_0TargetReplay"/>
-        <option name="binary-test-type" value="hal_hidl_replay_test" />
-        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/memtrack/V1_0/android.hardware.memtrack@1.0_sailfish_1.vts.trace" />
-        <option name="hal-hidl-package-name" value="android.hardware.memtrack@1.0" />
+        <option name="binary-test-type" value="hal_hidl_replay_test"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/memtrack/V1_0/android.hardware.memtrack_1.0_17494978824.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/memtrack/V1_0/android.hardware.memtrack_1.0_18679173942.vts.trace"/>
+        <option name="hal-hidl-package-name" value="android.hardware.memtrack@1.0"/>
+        <option name="precondition-lshal" value="android.hardware.memtrack@1.0"/>
         <option name="test-timeout" value="15m"/>
     </test>
 </configuration>
diff --git a/tests/versioning/V2_2/Android.bp b/neuralnetworks/Android.bp
similarity index 91%
rename from tests/versioning/V2_2/Android.bp
rename to neuralnetworks/Android.bp
index 995dd5b..cdc8905 100644
--- a/tests/versioning/V2_2/Android.bp
+++ b/neuralnetworks/Android.bp
@@ -2,5 +2,5 @@
 // Use test/vts-testcase/hal/update_makefiles.py to generate this file.
 
 subdirs = [
-    "*",
+    "V1_0",
 ]
diff --git a/tests/versioning/V1_0/Android.bp b/neuralnetworks/V1_0/Android.bp
similarity index 100%
copy from tests/versioning/V1_0/Android.bp
copy to neuralnetworks/V1_0/Android.bp
diff --git a/neuralnetworks/V1_0/build/Android.bp b/neuralnetworks/V1_0/build/Android.bp
new file mode 100644
index 0000000..c2ca1b3
--- /dev/null
+++ b/neuralnetworks/V1_0/build/Android.bp
@@ -0,0 +1,151 @@
+// This file was auto-generated. Do not edit manually.
+// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.neuralnetworks@1.0-vts.spec",
+    srcs: [
+        ":android.hardware.neuralnetworks@1.0_hal",
+    ],
+    out: [
+        "android/hardware/neuralnetworks/1.0/Device.vts",
+        "android/hardware/neuralnetworks/1.0/ExecutionCallback.vts",
+        "android/hardware/neuralnetworks/1.0/PreparedModel.vts",
+        "android/hardware/neuralnetworks/1.0/PreparedModelCallback.vts",
+        "android/hardware/neuralnetworks/1.0/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.neuralnetworks@1.0-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.neuralnetworks@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/neuralnetworks/1.0/ $(genDir)/android/hardware/neuralnetworks/1.0/",
+    srcs: [
+        ":android.hardware.neuralnetworks@1.0_hal",
+    ],
+    out: [
+        "android/hardware/neuralnetworks/1.0/Device.vts.cpp",
+        "android/hardware/neuralnetworks/1.0/ExecutionCallback.vts.cpp",
+        "android/hardware/neuralnetworks/1.0/PreparedModel.vts.cpp",
+        "android/hardware/neuralnetworks/1.0/PreparedModelCallback.vts.cpp",
+        "android/hardware/neuralnetworks/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.neuralnetworks@1.0-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.neuralnetworks@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/neuralnetworks/1.0/ $(genDir)/android/hardware/neuralnetworks/1.0/",
+    srcs: [
+        ":android.hardware.neuralnetworks@1.0_hal",
+    ],
+    out: [
+        "android/hardware/neuralnetworks/1.0/Device.vts.h",
+        "android/hardware/neuralnetworks/1.0/ExecutionCallback.vts.h",
+        "android/hardware/neuralnetworks/1.0/PreparedModel.vts.h",
+        "android/hardware/neuralnetworks/1.0/PreparedModelCallback.vts.h",
+        "android/hardware/neuralnetworks/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.neuralnetworks@1.0-vts.driver",
+    generated_sources: ["android.hardware.neuralnetworks@1.0-vts.driver_genc++"],
+    generated_headers: ["android.hardware.neuralnetworks@1.0-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.neuralnetworks@1.0-vts.driver_genc++_headers"],
+    shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libprotobuf-cpp-full",
+        "libutils",
+        "libvts_common",
+        "libvts_datatype",
+        "libvts_drivercomm",
+        "libvts_measurement",
+        "libvts_multidevice_proto",
+        "android.hidl.allocator@1.0",
+        "android.hardware.neuralnetworks@1.0",
+        
+    ],
+    export_shared_lib_headers: [
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.neuralnetworks@1.0-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.neuralnetworks@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/neuralnetworks/1.0/ $(genDir)/android/hardware/neuralnetworks/1.0/",
+    srcs: [
+        ":android.hardware.neuralnetworks@1.0_hal",
+    ],
+    out: [
+        "android/hardware/neuralnetworks/1.0/Device.vts.cpp",
+        "android/hardware/neuralnetworks/1.0/ExecutionCallback.vts.cpp",
+        "android/hardware/neuralnetworks/1.0/PreparedModel.vts.cpp",
+        "android/hardware/neuralnetworks/1.0/PreparedModelCallback.vts.cpp",
+        "android/hardware/neuralnetworks/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.neuralnetworks@1.0-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.neuralnetworks@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/neuralnetworks/1.0/ $(genDir)/android/hardware/neuralnetworks/1.0/",
+    srcs: [
+        ":android.hardware.neuralnetworks@1.0_hal",
+    ],
+    out: [
+        "android/hardware/neuralnetworks/1.0/Device.vts.h",
+        "android/hardware/neuralnetworks/1.0/ExecutionCallback.vts.h",
+        "android/hardware/neuralnetworks/1.0/PreparedModel.vts.h",
+        "android/hardware/neuralnetworks/1.0/PreparedModelCallback.vts.h",
+        "android/hardware/neuralnetworks/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.neuralnetworks@1.0-vts.profiler",
+    generated_sources: ["android.hardware.neuralnetworks@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.neuralnetworks@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.neuralnetworks@1.0-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_common",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hardware.neuralnetworks@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
diff --git a/wifi/V1_0/target/base/Android.mk b/neuralnetworks/V1_0/target/Android.mk
similarity index 86%
copy from wifi/V1_0/target/base/Android.mk
copy to neuralnetworks/V1_0/target/Android.mk
index c07841b..521fc01 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/neuralnetworks/V1_0/target/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalNeuralnetworksV1_0Target
+VTS_CONFIG_SRC_DIR := testcases/hal/neuralnetworks/V1_0/target
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/neuralnetworks/V1_0/target/AndroidTest.xml
similarity index 66%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to neuralnetworks/V1_0/target/AndroidTest.xml
index 4108231..587eadb 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/neuralnetworks/V1_0/target/AndroidTest.xml
@@ -13,7 +13,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
+<configuration description="Config for VTS VtsHalNeuralnetworksV1_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"/>
@@ -21,16 +21,11 @@
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalNeuralnetworksV1_0Target"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalNeuralnetworksV1_0TargetTest/VtsHalNeuralnetworksV1_0TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalNeuralnetworksV1_0TargetTest/VtsHalNeuralnetworksV1_0TargetTest"/>
         <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.wifi@1.0"/>
-        <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" />
+        <option name="precondition-lshal" value="android.hardware.neuralnetworks@1.0"/>
+        <option name="test-timeout" value="5m"/>
     </test>
 </configuration>
diff --git a/wifi/V1_0/target/base/Android.mk b/neuralnetworks/V1_0/target_profiling/Android.mk
similarity index 84%
copy from wifi/V1_0/target/base/Android.mk
copy to neuralnetworks/V1_0/target_profiling/Android.mk
index c07841b..37d2011 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/neuralnetworks/V1_0/target_profiling/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalNeuralnetworksV1_0TargetProfiling
+VTS_CONFIG_SRC_DIR := testcases/hal/neuralnetworks/V1_0/target_profiling
 include test/vts/tools/build/Android.host_config.mk
diff --git a/neuralnetworks/V1_0/target_profiling/AndroidTest.xml b/neuralnetworks/V1_0/target_profiling/AndroidTest.xml
new file mode 100644
index 0000000..d6ad792
--- /dev/null
+++ b/neuralnetworks/V1_0/target_profiling/AndroidTest.xml
@@ -0,0 +1,35 @@
+<?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 VtsHalNeuralnetworksV1_0TargetProfiling test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-hal-profiling" />
+    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
+        <option name="abort-on-push-failure" value="false"/>
+        <option name="push-group" value="HalHidlTargetProfilingTest.push"/>
+        <option name="cleanup" value="true"/>
+        <option name="push" value="DATA/lib/android.hardware.neuralnetworks@1.0-vts.profiler.so->/data/local/tmp/32/android.hardware.neuralnetworks@1.0-vts.profiler.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.neuralnetworks@1.0-vts.profiler.so->/data/local/tmp/64/android.hardware.neuralnetworks@1.0-vts.profiler.so"/>
+    </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="VtsHalNeuralnetworksV1_0TargetProfiling"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalNeuralnetworksV1_0TargetTest/VtsHalNeuralnetworksV1_0TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalNeuralnetworksV1_0TargetTest/VtsHalNeuralnetworksV1_0TargetTest"/>
+        <option name="binary-test-type" value="hal_hidl_gtest"/>
+        <option name="enable-profiling" value="true"/>
+        <option name="precondition-lshal" value="android.hardware.neuralnetworks@1.0"/>
+        <option name="test-timeout" value="5m"/>
+    </test>
+</configuration>
diff --git a/nfc/V1_0/build/Android.bp b/nfc/V1_0/build/Android.bp
index 4f0caf9..53209c9 100644
--- a/nfc/V1_0/build/Android.bp
+++ b/nfc/V1_0/build/Android.bp
@@ -49,24 +49,35 @@
     generated_headers: ["android.hardware.nfc@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.nfc@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.nfc@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -106,13 +117,25 @@
     export_generated_headers: ["android.hardware.nfc@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.nfc@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/nfc/V1_0/target_replay/AndroidTest.xml b/nfc/V1_0/target_replay/AndroidTest.xml
index 17241a4..d1e93d8 100644
--- a/nfc/V1_0/target_replay/AndroidTest.xml
+++ b/nfc/V1_0/target_replay/AndroidTest.xml
@@ -29,8 +29,8 @@
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalNfcV1_0TargetReplay"/>
         <option name="binary-test-type" value="hal_hidl_replay_test"/>
-        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/nfc/V1_0/android.hardware.nfc@1.0_sailfish_2.vts.trace"/>
-        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/nfc/V1_0/android.hardware.nfc@1.0_sailfish_1.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/nfc/V1_0/android.hardware.nfc_1.0_17270843854.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/nfc/V1_0/android.hardware.nfc_1.0_17261139999.vts.trace"/>
         <option name="hal-hidl-package-name" value="android.hardware.nfc@1.0"/>
         <option name="precondition-lshal" value="android.hardware.nfc@1.0"/>
         <option name="test-timeout" value="15m"/>
diff --git a/tests/versioning/V2_2/Android.bp b/oemlock/Android.bp
similarity index 91%
copy from tests/versioning/V2_2/Android.bp
copy to oemlock/Android.bp
index 995dd5b..cdc8905 100644
--- a/tests/versioning/V2_2/Android.bp
+++ b/oemlock/Android.bp
@@ -2,5 +2,5 @@
 // Use test/vts-testcase/hal/update_makefiles.py to generate this file.
 
 subdirs = [
-    "*",
+    "V1_0",
 ]
diff --git a/tests/versioning/V1_0/Android.bp b/oemlock/V1_0/Android.bp
similarity index 100%
copy from tests/versioning/V1_0/Android.bp
copy to oemlock/V1_0/Android.bp
diff --git a/oemlock/V1_0/build/Android.bp b/oemlock/V1_0/build/Android.bp
new file mode 100644
index 0000000..3dfaa93
--- /dev/null
+++ b/oemlock/V1_0/build/Android.bp
@@ -0,0 +1,136 @@
+// This file was auto-generated. Do not edit manually.
+// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.oemlock@1.0-vts.spec",
+    srcs: [
+        ":android.hardware.oemlock@1.0_hal",
+    ],
+    out: [
+        "android/hardware/oemlock/1.0/OemLock.vts",
+        "android/hardware/oemlock/1.0/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.oemlock@1.0-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.oemlock@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/oemlock/1.0/ $(genDir)/android/hardware/oemlock/1.0/",
+    srcs: [
+        ":android.hardware.oemlock@1.0_hal",
+    ],
+    out: [
+        "android/hardware/oemlock/1.0/OemLock.vts.cpp",
+        "android/hardware/oemlock/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.oemlock@1.0-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.oemlock@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/oemlock/1.0/ $(genDir)/android/hardware/oemlock/1.0/",
+    srcs: [
+        ":android.hardware.oemlock@1.0_hal",
+    ],
+    out: [
+        "android/hardware/oemlock/1.0/OemLock.vts.h",
+        "android/hardware/oemlock/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.oemlock@1.0-vts.driver",
+    generated_sources: ["android.hardware.oemlock@1.0-vts.driver_genc++"],
+    generated_headers: ["android.hardware.oemlock@1.0-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.oemlock@1.0-vts.driver_genc++_headers"],
+    shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libprotobuf-cpp-full",
+        "libutils",
+        "libvts_common",
+        "libvts_datatype",
+        "libvts_drivercomm",
+        "libvts_measurement",
+        "libvts_multidevice_proto",
+        "android.hidl.allocator@1.0",
+        "android.hardware.oemlock@1.0",
+        
+    ],
+    export_shared_lib_headers: [
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.oemlock@1.0-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.oemlock@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/oemlock/1.0/ $(genDir)/android/hardware/oemlock/1.0/",
+    srcs: [
+        ":android.hardware.oemlock@1.0_hal",
+    ],
+    out: [
+        "android/hardware/oemlock/1.0/OemLock.vts.cpp",
+        "android/hardware/oemlock/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.oemlock@1.0-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.oemlock@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/oemlock/1.0/ $(genDir)/android/hardware/oemlock/1.0/",
+    srcs: [
+        ":android.hardware.oemlock@1.0_hal",
+    ],
+    out: [
+        "android/hardware/oemlock/1.0/OemLock.vts.h",
+        "android/hardware/oemlock/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.oemlock@1.0-vts.profiler",
+    generated_sources: ["android.hardware.oemlock@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.oemlock@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.oemlock@1.0-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_common",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hardware.oemlock@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
diff --git a/wifi/V1_0/target/base/Android.mk b/oemlock/V1_0/target/Android.mk
similarity index 87%
copy from wifi/V1_0/target/base/Android.mk
copy to oemlock/V1_0/target/Android.mk
index c07841b..d66d3b5 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/oemlock/V1_0/target/Android.mk
@@ -18,6 +18,7 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalOemLockV1_0Target
+VTS_CONFIG_SRC_DIR := testcases/hal/oemlock/V1_0/target
 include test/vts/tools/build/Android.host_config.mk
+
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/oemlock/V1_0/target/AndroidTest.xml
similarity index 69%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to oemlock/V1_0/target/AndroidTest.xml
index 4108231..0ad4189 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/oemlock/V1_0/target/AndroidTest.xml
@@ -13,7 +13,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
+<configuration description="Config for VtsHalOemLockV1_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"/>
@@ -21,16 +21,12 @@
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalOemLockV1_0Target"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalOemLockV1_0TargetTest/VtsHalOemLockV1_0TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalOemLockV1_0TargetTest/VtsHalOemLockV1_0TargetTest"/>
         <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.wifi@1.0"/>
-        <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" />
+        <option name="precondition-lshal" value="android.hardware.oemlock@1.0"/>
+        <option name="test-timeout" value="5m"/>
     </test>
 </configuration>
diff --git a/wifi/V1_0/target/base/Android.mk b/oemlock/V1_0/target_profiling/Android.mk
similarity index 85%
copy from wifi/V1_0/target/base/Android.mk
copy to oemlock/V1_0/target_profiling/Android.mk
index c07841b..b6163f8 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/oemlock/V1_0/target_profiling/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalOemLockV1_0TargetProfiling
+VTS_CONFIG_SRC_DIR := testcases/hal/oemlock/V1_0/target_profiling
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/oemlock/V1_0/target_profiling/AndroidTest.xml
similarity index 62%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to oemlock/V1_0/target_profiling/AndroidTest.xml
index 4108231..ec03c93 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/oemlock/V1_0/target_profiling/AndroidTest.xml
@@ -13,24 +13,25 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-hal" />
+<configuration description="Config for VTS VtsHalOemLockV1_0TargetProfiling test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-hal-profiling" />
     <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"/>
+        <option name="push-group" value="HalHidlTargetProfilingTest.push"/>
+        <option name="cleanup" value="true"/>
+        <option name="push" value="DATA/lib/android.hardware.oemlock@1.0-vts.profiler.so->/data/local/tmp/32/android.hardware.oemlock@1.0-vts.profiler.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.oemlock@1.0-vts.profiler.so->/data/local/tmp/64/android.hardware.oemlock@1.0-vts.profiler.so"/>
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalOemLockV1_0TargetProfiling"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalOemLockV1_0TargetTest/VtsHalOemLockV1_0TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalOemLockV1_0TargetTest/VtsHalOemLockV1_0TargetTest"/>
         <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.wifi@1.0"/>
-        <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" />
+        <option name="enable-profiling" value="true"/>
+        <option name="precondition-lshal" value="android.hardware.oemlock@1.0"/>
+        <option name="test-timeout" value="5m"/>
     </test>
 </configuration>
diff --git a/power/Android.bp b/power/Android.bp
index cdc8905..2e98897 100644
--- a/power/Android.bp
+++ b/power/Android.bp
@@ -3,4 +3,5 @@
 
 subdirs = [
     "V1_0",
+    "V1_1",
 ]
diff --git a/power/V1_0/build/Android.bp b/power/V1_0/build/Android.bp
index 6ca778d..a2c74b8 100644
--- a/power/V1_0/build/Android.bp
+++ b/power/V1_0/build/Android.bp
@@ -46,24 +46,35 @@
     generated_headers: ["android.hardware.power@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.power@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.power@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -101,13 +112,25 @@
     export_generated_headers: ["android.hardware.power@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.power@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/power/V1_0/target_replay/Android.mk b/power/V1_0/target_replay/Android.mk
index aed74e5..aac686a 100644
--- a/power/V1_0/target_replay/Android.mk
+++ b/power/V1_0/target_replay/Android.mk
@@ -19,5 +19,5 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := VtsHalPowerV1_0TargetReplay
-VTS_CONFIG_SRC_DIR := testcases/hal/power/V1_0/target
+VTS_CONFIG_SRC_DIR := testcases/hal/power/V1_0/target_replay
 include test/vts/tools/build/Android.host_config.mk
diff --git a/power/V1_0/target_replay/AndroidTest.xml b/power/V1_0/target_replay/AndroidTest.xml
index bfaf9fd..95d6d31 100644
--- a/power/V1_0/target_replay/AndroidTest.xml
+++ b/power/V1_0/target_replay/AndroidTest.xml
@@ -18,17 +18,22 @@
     <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="cleanup" value="true" />
-        <option name="push" value="spec/hardware/interfaces/power/1.0/vts/Power.vts->/data/local/tmp/spec/target.vts" />
+        <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"/>
         <option name="push" value="DATA/lib/android.hardware.power@1.0-vts.driver.so->/data/local/tmp/32/android.hardware.power@1.0-vts.driver.so"/>
         <option name="push" value="DATA/lib64/android.hardware.power@1.0-vts.driver.so->/data/local/tmp/64/android.hardware.power@1.0-vts.driver.so"/>
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalPowerV1_0TargetReplay"/>
-        <option name="binary-test-type" value="hal_hidl_replay_test" />
-        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/power/V1_0/android.hardware.power@1.0_sailfish_1.vts.trace" />
-        <option name="hal-hidl-package-name" value="android.hardware.power@1.0" />
+        <option name="binary-test-type" value="hal_hidl_replay_test"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/power/V1_0/android.hardware.power_1.0_16087527018.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/power/V1_0/android.hardware.power_1.0_16558631751.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/power/V1_0/android.hardware.power_1.0_16053566180.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/power/V1_0/android.hardware.power_1.0_16273110837.vts.trace"/>
+        <option name="hal-hidl-package-name" value="android.hardware.power@1.0"/>
+        <option name="precondition-lshal" value="android.hardware.power@1.0"/>
         <option name="test-timeout" value="5m"/>
     </test>
 </configuration>
diff --git a/automotive/vehicle/V2_1/Android.bp b/power/V1_1/Android.bp
similarity index 100%
rename from automotive/vehicle/V2_1/Android.bp
rename to power/V1_1/Android.bp
diff --git a/power/V1_1/build/Android.bp b/power/V1_1/build/Android.bp
new file mode 100644
index 0000000..6e9ab9e
--- /dev/null
+++ b/power/V1_1/build/Android.bp
@@ -0,0 +1,139 @@
+// This file was auto-generated. Do not edit manually.
+// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.power@1.1-vts.spec",
+    srcs: [
+        ":android.hardware.power@1.1_hal",
+    ],
+    out: [
+        "android/hardware/power/1.1/Power.vts",
+        "android/hardware/power/1.1/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.power@1.1-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.power@1.1 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/power/1.1/ $(genDir)/android/hardware/power/1.1/",
+    srcs: [
+        ":android.hardware.power@1.1_hal",
+    ],
+    out: [
+        "android/hardware/power/1.1/Power.vts.cpp",
+        "android/hardware/power/1.1/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.power@1.1-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.power@1.1 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/power/1.1/ $(genDir)/android/hardware/power/1.1/",
+    srcs: [
+        ":android.hardware.power@1.1_hal",
+    ],
+    out: [
+        "android/hardware/power/1.1/Power.vts.h",
+        "android/hardware/power/1.1/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.power@1.1-vts.driver",
+    generated_sources: ["android.hardware.power@1.1-vts.driver_genc++"],
+    generated_headers: ["android.hardware.power@1.1-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.power@1.1-vts.driver_genc++_headers"],
+    shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libprotobuf-cpp-full",
+        "libutils",
+        "libvts_common",
+        "libvts_datatype",
+        "libvts_drivercomm",
+        "libvts_measurement",
+        "libvts_multidevice_proto",
+        "android.hidl.allocator@1.0",
+        "android.hardware.power@1.1",
+        "android.hardware.power@1.0",
+        "android.hardware.power@1.0-vts.driver",
+    ],
+    export_shared_lib_headers: [
+        "android.hardware.power@1.0",
+        "android.hardware.power@1.0-vts.driver",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.power@1.1-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.power@1.1 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/power/1.1/ $(genDir)/android/hardware/power/1.1/",
+    srcs: [
+        ":android.hardware.power@1.1_hal",
+    ],
+    out: [
+        "android/hardware/power/1.1/Power.vts.cpp",
+        "android/hardware/power/1.1/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.power@1.1-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.power@1.1 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/power/1.1/ $(genDir)/android/hardware/power/1.1/",
+    srcs: [
+        ":android.hardware.power@1.1_hal",
+    ],
+    out: [
+        "android/hardware/power/1.1/Power.vts.h",
+        "android/hardware/power/1.1/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.power@1.1-vts.profiler",
+    generated_sources: ["android.hardware.power@1.1-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.power@1.1-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.power@1.1-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_common",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hardware.power@1.1",
+        "android.hardware.power@1.0",
+        "android.hardware.power@1.0-vts.profiler",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
diff --git a/wifi/V1_0/target/base/Android.mk b/power/V1_1/target/Android.mk
similarity index 87%
copy from wifi/V1_0/target/base/Android.mk
copy to power/V1_1/target/Android.mk
index c07841b..c7f3216 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/power/V1_1/target/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalPowerV1_1Target
+VTS_CONFIG_SRC_DIR := testcases/hal/power/V1_1/target
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/power/V1_1/target/AndroidTest.xml
similarity index 72%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to power/V1_1/target/AndroidTest.xml
index 4108231..530d3ef 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/power/V1_1/target/AndroidTest.xml
@@ -13,7 +13,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
+<configuration description="Config for VTS VtsHalPowerV1_1Target 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"/>
@@ -21,16 +21,13 @@
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalPowerV1_1Target"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalPowerV1_1TargetTest/VtsHalPowerV1_1TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalPowerV1_1TargetTest/VtsHalPowerV1_1TargetTest"/>
         <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.wifi@1.0"/>
-        <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" />
+        <option name="precondition-lshal" value="android.hardware.power@1.1"/>
+        <option name="test-timeout" value="5m"/>
     </test>
 </configuration>
diff --git a/wifi/V1_0/target/base/Android.mk b/power/V1_1/target_profiling/Android.mk
similarity index 86%
copy from wifi/V1_0/target/base/Android.mk
copy to power/V1_1/target_profiling/Android.mk
index c07841b..a337e81 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/power/V1_1/target_profiling/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalPowerV1_1TargetProfiling
+VTS_CONFIG_SRC_DIR := testcases/hal/power/V1_1/target_profiling
 include test/vts/tools/build/Android.host_config.mk
diff --git a/power/V1_1/target_profiling/AndroidTest.xml b/power/V1_1/target_profiling/AndroidTest.xml
new file mode 100644
index 0000000..7a6aa6f
--- /dev/null
+++ b/power/V1_1/target_profiling/AndroidTest.xml
@@ -0,0 +1,39 @@
+<?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 VtsHalPowerV1_1TargetProfiling test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-hal-profiling" />
+    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
+        <option name="abort-on-push-failure" value="false"/>
+        <option name="push-group" value="HalHidlTargetProfilingTest.push"/>
+        <option name="cleanup" value="true"/>
+        <option name="push" value="DATA/lib/android.hardware.power@1.0-vts.profiler.so->/data/local/tmp/32/android.hardware.power@1.0-vts.profiler.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.power@1.0-vts.profiler.so->/data/local/tmp/64/android.hardware.power@1.0-vts.profiler.so"/>
+        <option name="push" value="DATA/lib/android.hardware.power@1.1-vts.profiler.so->/data/local/tmp/32/android.hardware.power@1.1-vts.profiler.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.power@1.1-vts.profiler.so->/data/local/tmp/64/android.hardware.power@1.1-vts.profiler.so"/>
+    </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="VtsHalPowerV1_1TargetProfiling"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalPowerV1_1TargetTest/VtsHalPowerV1_1TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalPowerV1_1TargetTest/VtsHalPowerV1_1TargetTest"/>
+        <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="enable-profiling" value="true"/>
+        <option name="precondition-lshal" value="android.hardware.power@1.1"/>
+        <option name="test-timeout" value="5m"/>
+    </test>
+</configuration>
diff --git a/radio/Android.bp b/radio/Android.bp
index 080b361..af8e475 100644
--- a/radio/Android.bp
+++ b/radio/Android.bp
@@ -3,5 +3,6 @@
 
 subdirs = [
     "V1_0",
+    "V1_1",
     "deprecated/V1_0",
 ]
diff --git a/radio/V1_0/build/Android.bp b/radio/V1_0/build/Android.bp
index 0b9d4c7..e6f03ef 100644
--- a/radio/V1_0/build/Android.bp
+++ b/radio/V1_0/build/Android.bp
@@ -58,24 +58,35 @@
     generated_headers: ["android.hardware.radio@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.radio@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.radio@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -121,13 +132,25 @@
     export_generated_headers: ["android.hardware.radio@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.radio@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/radio/V1_0/host/VtsHalRadioV1_0HostTest.py b/radio/V1_0/host/VtsHalRadioV1_0HostTest.py
index 2e6c540..f295c72 100644
--- a/radio/V1_0/host/VtsHalRadioV1_0HostTest.py
+++ b/radio/V1_0/host/VtsHalRadioV1_0HostTest.py
@@ -48,7 +48,7 @@
             target_version=1.0,
             target_package="android.hardware.radio",
             target_component_name="IRadio",
-            hw_binder_service_name="Radio",
+            hw_binder_service_name="slot1",
             bits=int(self.abi_bitness))
 
         self.radio = self.dut.hal.radio  # shortcut
diff --git a/radio/V1_0/target/radio/AndroidTest.xml b/radio/V1_0/target/radio/AndroidTest.xml
index e2b1471..66640aa 100644
--- a/radio/V1_0/target/radio/AndroidTest.xml
+++ b/radio/V1_0/target/radio/AndroidTest.xml
@@ -28,13 +28,8 @@
         <option name="binary-test-disable-framework" value="true"/>
         <option name="binary-test-stop-native-servers" value="true"/>
         <option name="precondition-lshal" value="android.hardware.radio@1.0"/>
-        <option name="exclude-filter" value="RadioHidlTest.getDataCallList" />
-        <option name="exclude-filter" value="RadioHidlTest.setRadioCapability" />
-        <option name="exclude-filter" value="RadioHidlTest.sendCDMAFeatureCode" />
-        <option name="exclude-filter" value="RadioHidlTest.setSimCardPower" />
-        <option name="exclude-filter" value="RadioHidlTest.dial" />
+        <option name="test-timeout" value="15m"/>
         <!-- The following test is disabled due to b/64734869 -->
         <option name="exclude-filter" value="RadioHidlTest.requestShutdown" />
-        <option name="test-timeout" value="15m"/>
     </test>
 </configuration>
diff --git a/radio/V1_0/target_profiling/sap/AndroidTest.xml b/radio/V1_0/target_profiling/sap/AndroidTest.xml
index 5ea14c8..52d310c 100644
--- a/radio/V1_0/target_profiling/sap/AndroidTest.xml
+++ b/radio/V1_0/target_profiling/sap/AndroidTest.xml
@@ -14,7 +14,7 @@
      limitations under the License.
 -->
 <configuration description="Config for VTS VtsHalSapV1_0TargetProfiling test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-hal-profiling" />
+    <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="HalHidlTargetProfilingTest.push"/>
diff --git a/automotive/vehicle/V2_1/Android.bp b/radio/V1_1/Android.bp
similarity index 100%
copy from automotive/vehicle/V2_1/Android.bp
copy to radio/V1_1/Android.bp
diff --git a/radio/V1_1/build/Android.bp b/radio/V1_1/build/Android.bp
new file mode 100644
index 0000000..2689191
--- /dev/null
+++ b/radio/V1_1/build/Android.bp
@@ -0,0 +1,154 @@
+// This file was auto-generated. Do not edit manually.
+// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.radio@1.1-vts.spec",
+    srcs: [
+        ":android.hardware.radio@1.1_hal",
+    ],
+    out: [
+        "android/hardware/radio/1.1/Radio.vts",
+        "android/hardware/radio/1.1/RadioIndication.vts",
+        "android/hardware/radio/1.1/RadioResponse.vts",
+        "android/hardware/radio/1.1/Sap.vts",
+        "android/hardware/radio/1.1/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.radio@1.1-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.1 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/radio/1.1/ $(genDir)/android/hardware/radio/1.1/",
+    srcs: [
+        ":android.hardware.radio@1.1_hal",
+    ],
+    out: [
+        "android/hardware/radio/1.1/Radio.vts.cpp",
+        "android/hardware/radio/1.1/RadioIndication.vts.cpp",
+        "android/hardware/radio/1.1/RadioResponse.vts.cpp",
+        "android/hardware/radio/1.1/Sap.vts.cpp",
+        "android/hardware/radio/1.1/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio@1.1-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.1 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/radio/1.1/ $(genDir)/android/hardware/radio/1.1/",
+    srcs: [
+        ":android.hardware.radio@1.1_hal",
+    ],
+    out: [
+        "android/hardware/radio/1.1/Radio.vts.h",
+        "android/hardware/radio/1.1/RadioIndication.vts.h",
+        "android/hardware/radio/1.1/RadioResponse.vts.h",
+        "android/hardware/radio/1.1/Sap.vts.h",
+        "android/hardware/radio/1.1/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.radio@1.1-vts.driver",
+    generated_sources: ["android.hardware.radio@1.1-vts.driver_genc++"],
+    generated_headers: ["android.hardware.radio@1.1-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.radio@1.1-vts.driver_genc++_headers"],
+    shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libprotobuf-cpp-full",
+        "libutils",
+        "libvts_common",
+        "libvts_datatype",
+        "libvts_drivercomm",
+        "libvts_measurement",
+        "libvts_multidevice_proto",
+        "android.hidl.allocator@1.0",
+        "android.hardware.radio@1.1",
+        "android.hardware.radio@1.0",
+        "android.hardware.radio@1.0-vts.driver",
+    ],
+    export_shared_lib_headers: [
+        "android.hardware.radio@1.0",
+        "android.hardware.radio@1.0-vts.driver",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.radio@1.1-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.1 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/radio/1.1/ $(genDir)/android/hardware/radio/1.1/",
+    srcs: [
+        ":android.hardware.radio@1.1_hal",
+    ],
+    out: [
+        "android/hardware/radio/1.1/Radio.vts.cpp",
+        "android/hardware/radio/1.1/RadioIndication.vts.cpp",
+        "android/hardware/radio/1.1/RadioResponse.vts.cpp",
+        "android/hardware/radio/1.1/Sap.vts.cpp",
+        "android/hardware/radio/1.1/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio@1.1-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.1 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/radio/1.1/ $(genDir)/android/hardware/radio/1.1/",
+    srcs: [
+        ":android.hardware.radio@1.1_hal",
+    ],
+    out: [
+        "android/hardware/radio/1.1/Radio.vts.h",
+        "android/hardware/radio/1.1/RadioIndication.vts.h",
+        "android/hardware/radio/1.1/RadioResponse.vts.h",
+        "android/hardware/radio/1.1/Sap.vts.h",
+        "android/hardware/radio/1.1/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.radio@1.1-vts.profiler",
+    generated_sources: ["android.hardware.radio@1.1-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.radio@1.1-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.radio@1.1-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_common",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hardware.radio@1.1",
+        "android.hardware.radio@1.0",
+        "android.hardware.radio@1.0-vts.profiler",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
diff --git a/wifi/V1_0/target/base/Android.mk b/radio/V1_1/target/Android.mk
similarity index 87%
copy from wifi/V1_0/target/base/Android.mk
copy to radio/V1_1/target/Android.mk
index c07841b..bd1a0f1 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/radio/V1_1/target/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalRadioV1_1Target
+VTS_CONFIG_SRC_DIR := testcases/hal/radio/V1_1/target
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/radio/V1_1/target/AndroidTest.xml
similarity index 75%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to radio/V1_1/target/AndroidTest.xml
index 4108231..76b339d 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/radio/V1_1/target/AndroidTest.xml
@@ -13,7 +13,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
+<configuration description="Config for VTS VtsHalRadioV1_1Target 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"/>
@@ -21,16 +21,13 @@
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalRadioV1_1Target"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalRadioV1_1TargetTest/VtsHalRadioV1_1TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalRadioV1_1TargetTest/VtsHalRadioV1_1TargetTest"/>
         <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.wifi@1.0"/>
+        <option name="precondition-lshal" value="android.hardware.radio@1.1"/>
         <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>
diff --git a/radio/deprecated/V1_0/build/Android.bp b/radio/deprecated/V1_0/build/Android.bp
index ae76eb3..da9ffc2 100644
--- a/radio/deprecated/V1_0/build/Android.bp
+++ b/radio/deprecated/V1_0/build/Android.bp
@@ -49,28 +49,37 @@
     generated_headers: ["android.hardware.radio.deprecated@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.radio.deprecated@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.radio.deprecated@1.0",
         "android.hardware.radio@1.0",
         "android.hardware.radio@1.0-vts.driver",
-        "android.hidl.base@1.0",
     ],
     export_shared_lib_headers: [
         "android.hardware.radio@1.0",
         "android.hardware.radio@1.0-vts.driver",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -110,15 +119,26 @@
     export_generated_headers: ["android.hardware.radio.deprecated@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.radio.deprecated@1.0",
         "android.hardware.radio@1.0",
         "android.hardware.radio@1.0-vts.profiler",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/renderscript/V1_0/build/Android.bp b/renderscript/V1_0/build/Android.bp
index ed07378..32e4db8 100644
--- a/renderscript/V1_0/build/Android.bp
+++ b/renderscript/V1_0/build/Android.bp
@@ -49,24 +49,35 @@
     generated_headers: ["android.hardware.renderscript@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.renderscript@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.renderscript@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -106,13 +117,25 @@
     export_generated_headers: ["android.hardware.renderscript@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.renderscript@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/wifi/V1_0/target/base/Android.mk b/renderscript/V1_0/target_profiling/Android.mk
similarity index 84%
copy from wifi/V1_0/target/base/Android.mk
copy to renderscript/V1_0/target_profiling/Android.mk
index c07841b..fcf1e57 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/renderscript/V1_0/target_profiling/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalRenderscriptV1_0TargetProfiling
+VTS_CONFIG_SRC_DIR := testcases/hal/renderscript/V1_0/target_profiling
 include test/vts/tools/build/Android.host_config.mk
diff --git a/renderscript/V1_0/target_profiling/AndroidTest.xml b/renderscript/V1_0/target_profiling/AndroidTest.xml
new file mode 100644
index 0000000..fc787e1
--- /dev/null
+++ b/renderscript/V1_0/target_profiling/AndroidTest.xml
@@ -0,0 +1,35 @@
+<?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 VtsHalRenderscriptV1_0TargetProfiling test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-hal-profiling" />
+    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
+        <option name="abort-on-push-failure" value="false"/>
+        <option name="push-group" value="HalHidlTargetProfilingTest.push"/>
+        <option name="cleanup" value="true"/>
+        <option name="push" value="DATA/lib/android.hardware.renderscript@1.0-vts.profiler.so->/data/local/tmp/32/android.hardware.renderscript@1.0-vts.profiler.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.renderscript@1.0-vts.profiler.so->/data/local/tmp/64/android.hardware.renderscript@1.0-vts.profiler.so"/>
+    </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="VtsHalRenderscriptV1_0TargetProfiling"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalRenderscriptV1_0TargetTest/VtsHalRenderscriptV1_0TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalRenderscriptV1_0TargetTest/VtsHalRenderscriptV1_0TargetTest"/>
+        <option name="binary-test-type" value="hal_hidl_gtest"/>
+        <option name="enable-profiling" value="true"/>
+        <option name="precondition-lshal" value="android.hardware.renderscript@1.0"/>
+        <option name="test-timeout" value="5m"/>
+    </test>
+</configuration>
diff --git a/script/build/build_rule_gen.py b/script/build/build_rule_gen.py
old mode 100644
new mode 100755
index a3b72c2..afcf5ad
--- a/script/build/build_rule_gen.py
+++ b/script/build/build_rule_gen.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3.4
+#!/usr/bin/env python
 #
 # Copyright (C) 2017 The Android Open Source Project
 #
@@ -168,6 +168,9 @@
             """
             result = []
             for package in imported_packages:
+                if package in ["android.hidl.base@1.0",
+                               "android.hidl.manager@1.0"]:
+                    continue
                 prefix = 'android.hardware.'
                 if package.startswith(prefix):
                     # TODO(b/36475863)
diff --git a/script/build/template/vts_build_template.bp b/script/build/template/vts_build_template.bp
index bf474b4..a9070f9 100644
--- a/script/build/template/vts_build_template.bp
+++ b/script/build/template/vts_build_template.bp
@@ -40,25 +40,36 @@
     generated_headers: ["android.hardware.{HAL_NAME}@{HAL_VERSION}-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.{HAL_NAME}@{HAL_VERSION}-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.{HAL_NAME}@{HAL_VERSION}",
         {IMPORTED_DRIVER_PACKAGES}
     ],
     export_shared_lib_headers: [
         {IMPORTED_DRIVER_PACKAGES}
     ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
 }
 
 // Build VTS profiler.
@@ -93,13 +104,25 @@
     export_generated_headers: ["android.hardware.{HAL_NAME}@{HAL_VERSION}-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.{HAL_NAME}@{HAL_VERSION}",
         {IMPORTED_PROFILER_PACKAGES}
     ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
 }
 
diff --git a/script/build/vts_spec_parser.py b/script/build/vts_spec_parser.py
index 96d7074..7554fe6 100644
--- a/script/build/vts_spec_parser.py
+++ b/script/build/vts_spec_parser.py
@@ -101,12 +101,8 @@
             return
         hidl_gen_cmd = (
             'hidl-gen -o {TEMP_DIR} -L vts '
-            '-r android.hardware:{HW_IFACE_DIR} '
-            '-r android.hidl:{ANDROID_BUILD_TOP}/system/libhidl/transport '
             'android.hardware.{HAL_NAME}@{HAL_VERSION}').format(
                 TEMP_DIR=self._tmp_dir,
-                HW_IFACE_DIR=self.HW_IFACE_DIR,
-                ANDROID_BUILD_TOP=ANDROID_BUILD_TOP,
                 HAL_NAME=hal_name,
                 HAL_VERSION=hal_version)
         subprocess.call(hidl_gen_cmd, shell=True)
diff --git a/script/update_hal_tests.py b/script/update_hal_tests.py
new file mode 100755
index 0000000..733254a
--- /dev/null
+++ b/script/update_hal_tests.py
@@ -0,0 +1,111 @@
+#!/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/sensors/V1_0/build/Android.bp b/sensors/V1_0/build/Android.bp
index a8b6236..100ac11 100644
--- a/sensors/V1_0/build/Android.bp
+++ b/sensors/V1_0/build/Android.bp
@@ -46,24 +46,35 @@
     generated_headers: ["android.hardware.sensors@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.sensors@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.sensors@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -101,13 +112,25 @@
     export_generated_headers: ["android.hardware.sensors@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.sensors@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/soundtrigger/V2_0/build/Android.bp b/soundtrigger/V2_0/build/Android.bp
index 9fe9b0a..3c9f435 100644
--- a/soundtrigger/V2_0/build/Android.bp
+++ b/soundtrigger/V2_0/build/Android.bp
@@ -49,28 +49,37 @@
     generated_headers: ["android.hardware.soundtrigger@2.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.soundtrigger@2.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.soundtrigger@2.0",
         "android.hardware.audio.common@2.0",
         "android.hardware.audio.common@2.0-vts.driver",
-        "android.hidl.base@1.0",
     ],
     export_shared_lib_headers: [
         "android.hardware.audio.common@2.0",
         "android.hardware.audio.common@2.0-vts.driver",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -110,15 +119,26 @@
     export_generated_headers: ["android.hardware.soundtrigger@2.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.soundtrigger@2.0",
         "android.hardware.audio.common@2.0",
         "android.hardware.audio.common@2.0-vts.profiler",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/soundtrigger/V2_0/target/AndroidTest.xml b/soundtrigger/V2_0/target/AndroidTest.xml
index 9a08ba1..2f833d0 100644
--- a/soundtrigger/V2_0/target/AndroidTest.xml
+++ b/soundtrigger/V2_0/target/AndroidTest.xml
@@ -29,7 +29,6 @@
         <option name="binary-test-stop-native-servers" value="true"/>
         <option name="precondition-lshal" value="android.hardware.soundtrigger@2.0"/>
         <option name="precondition-file-path-prefix" value="/*/lib/hw/sound_trigger.primary." />
-        <option name="skip-on-64bit-abi" value="true" />
         <option name="test-timeout" value="5m"/>
     </test>
 </configuration>
diff --git a/soundtrigger/V2_0/target_profiling/AndroidTest.xml b/soundtrigger/V2_0/target_profiling/AndroidTest.xml
index fe17c13..919678a 100644
--- a/soundtrigger/V2_0/target_profiling/AndroidTest.xml
+++ b/soundtrigger/V2_0/target_profiling/AndroidTest.xml
@@ -35,7 +35,6 @@
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.soundtrigger@2.0"/>
         <option name="precondition-file-path-prefix" value="/*/lib/hw/sound_trigger.primary." />
-        <option name="skip-on-64bit-abi" value="true" />
         <option name="test-timeout" value="5m"/>
     </test>
 </configuration>
diff --git a/tests/Android.bp b/tests/Android.bp
index 97d8a6b..8347b83 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -12,9 +12,6 @@
     "libhwbinder/V1_0",
     "memory/V1_0",
     "msgq/V1_0",
+    "multithread/V1_0",
     "pointer/V1_0",
-    "versioning/V1_0",
-    "versioning/V2_2",
-    "versioning/V2_3",
-    "versioning/V2_4",
 ]
diff --git a/tests/bar/V1_0/build/Android.bp b/tests/bar/V1_0/build/Android.bp
index 5d90f04..dfc5408 100644
--- a/tests/bar/V1_0/build/Android.bp
+++ b/tests/bar/V1_0/build/Android.bp
@@ -58,28 +58,37 @@
     generated_headers: ["android.hardware.tests.bar@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.tests.bar@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.tests.bar@1.0",
         "android.hardware.tests.foo@1.0",
         "android.hardware.tests.foo@1.0-vts.driver",
-        "android.hidl.base@1.0",
     ],
     export_shared_lib_headers: [
         "android.hardware.tests.foo@1.0",
         "android.hardware.tests.foo@1.0-vts.driver",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -125,15 +134,26 @@
     export_generated_headers: ["android.hardware.tests.bar@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.tests.bar@1.0",
         "android.hardware.tests.foo@1.0",
         "android.hardware.tests.foo@1.0-vts.profiler",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/tests/baz/V1_0/build/Android.bp b/tests/baz/V1_0/build/Android.bp
index 9bab25d..db0a36e 100644
--- a/tests/baz/V1_0/build/Android.bp
+++ b/tests/baz/V1_0/build/Android.bp
@@ -55,24 +55,35 @@
     generated_headers: ["android.hardware.tests.baz@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.tests.baz@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.tests.baz@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -116,13 +127,25 @@
     export_generated_headers: ["android.hardware.tests.baz@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.tests.baz@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/tests/expression/V1_0/build/Android.bp b/tests/expression/V1_0/build/Android.bp
index f273d81..9e2de50 100644
--- a/tests/expression/V1_0/build/Android.bp
+++ b/tests/expression/V1_0/build/Android.bp
@@ -46,24 +46,35 @@
     generated_headers: ["android.hardware.tests.expression@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.tests.expression@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.tests.expression@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -101,13 +112,25 @@
     export_generated_headers: ["android.hardware.tests.expression@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.tests.expression@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/tests/extension/light/V2_0/build/Android.bp b/tests/extension/light/V2_0/build/Android.bp
index bb45d2c..542a023 100644
--- a/tests/extension/light/V2_0/build/Android.bp
+++ b/tests/extension/light/V2_0/build/Android.bp
@@ -46,28 +46,37 @@
     generated_headers: ["android.hardware.tests.extension.light@2.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.tests.extension.light@2.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.tests.extension.light@2.0",
         "android.hardware.light@2.0",
         "android.hardware.light@2.0-vts.driver",
-        "android.hidl.base@1.0",
     ],
     export_shared_lib_headers: [
         "android.hardware.light@2.0",
         "android.hardware.light@2.0-vts.driver",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -105,15 +114,26 @@
     export_generated_headers: ["android.hardware.tests.extension.light@2.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.tests.extension.light@2.0",
         "android.hardware.light@2.0",
         "android.hardware.light@2.0-vts.profiler",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/tests/foo/V1_0/build/Android.bp b/tests/foo/V1_0/build/Android.bp
index a80cf76..7cbdc9b 100644
--- a/tests/foo/V1_0/build/Android.bp
+++ b/tests/foo/V1_0/build/Android.bp
@@ -58,24 +58,35 @@
     generated_headers: ["android.hardware.tests.foo@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.tests.foo@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.tests.foo@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -121,13 +132,25 @@
     export_generated_headers: ["android.hardware.tests.foo@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.tests.foo@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/tests/hash/V1_0/build/Android.bp b/tests/hash/V1_0/build/Android.bp
index bf4c8ad..dec5e2d 100644
--- a/tests/hash/V1_0/build/Android.bp
+++ b/tests/hash/V1_0/build/Android.bp
@@ -43,24 +43,35 @@
     generated_headers: ["android.hardware.tests.hash@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.tests.hash@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.tests.hash@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -96,13 +107,25 @@
     export_generated_headers: ["android.hardware.tests.hash@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.tests.hash@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/tests/inheritance/V1_0/build/Android.bp b/tests/inheritance/V1_0/build/Android.bp
index 084a5db..771aa05 100644
--- a/tests/inheritance/V1_0/build/Android.bp
+++ b/tests/inheritance/V1_0/build/Android.bp
@@ -52,24 +52,35 @@
     generated_headers: ["android.hardware.tests.inheritance@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.tests.inheritance@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.tests.inheritance@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -111,13 +122,25 @@
     export_generated_headers: ["android.hardware.tests.inheritance@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.tests.inheritance@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/tests/libhwbinder/V1_0/build/Android.bp b/tests/libhwbinder/V1_0/build/Android.bp
index ed7430f..c627bca 100644
--- a/tests/libhwbinder/V1_0/build/Android.bp
+++ b/tests/libhwbinder/V1_0/build/Android.bp
@@ -46,24 +46,35 @@
     generated_headers: ["android.hardware.tests.libhwbinder@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.tests.libhwbinder@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.tests.libhwbinder@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -101,13 +112,25 @@
     export_generated_headers: ["android.hardware.tests.libhwbinder@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.tests.libhwbinder@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/tests/memory/V1_0/build/Android.bp b/tests/memory/V1_0/build/Android.bp
index 625b270..73cea09 100644
--- a/tests/memory/V1_0/build/Android.bp
+++ b/tests/memory/V1_0/build/Android.bp
@@ -43,24 +43,35 @@
     generated_headers: ["android.hardware.tests.memory@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.tests.memory@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.tests.memory@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -96,13 +107,25 @@
     export_generated_headers: ["android.hardware.tests.memory@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.tests.memory@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/tests/msgq/V1_0/build/Android.bp b/tests/msgq/V1_0/build/Android.bp
index fc6f8c0..5957117 100644
--- a/tests/msgq/V1_0/build/Android.bp
+++ b/tests/msgq/V1_0/build/Android.bp
@@ -46,24 +46,35 @@
     generated_headers: ["android.hardware.tests.msgq@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.tests.msgq@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.tests.msgq@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -101,13 +112,25 @@
     export_generated_headers: ["android.hardware.tests.msgq@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.tests.msgq@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/tests/versioning/V1_0/Android.bp b/tests/multithread/V1_0/Android.bp
similarity index 100%
rename from tests/versioning/V1_0/Android.bp
rename to tests/multithread/V1_0/Android.bp
diff --git a/tests/multithread/V1_0/build/Android.bp b/tests/multithread/V1_0/build/Android.bp
new file mode 100644
index 0000000..0b95f02
--- /dev/null
+++ b/tests/multithread/V1_0/build/Android.bp
@@ -0,0 +1,131 @@
+// This file was auto-generated. Do not edit manually.
+// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.tests.multithread@1.0-vts.spec",
+    srcs: [
+        ":android.hardware.tests.multithread@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/multithread/1.0/Multithread.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.tests.multithread@1.0-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.multithread@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/tests/multithread/1.0/ $(genDir)/android/hardware/tests/multithread/1.0/",
+    srcs: [
+        ":android.hardware.tests.multithread@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/multithread/1.0/Multithread.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.multithread@1.0-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.multithread@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/tests/multithread/1.0/ $(genDir)/android/hardware/tests/multithread/1.0/",
+    srcs: [
+        ":android.hardware.tests.multithread@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/multithread/1.0/Multithread.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.tests.multithread@1.0-vts.driver",
+    generated_sources: ["android.hardware.tests.multithread@1.0-vts.driver_genc++"],
+    generated_headers: ["android.hardware.tests.multithread@1.0-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.tests.multithread@1.0-vts.driver_genc++_headers"],
+    shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libprotobuf-cpp-full",
+        "libutils",
+        "libvts_common",
+        "libvts_datatype",
+        "libvts_drivercomm",
+        "libvts_measurement",
+        "libvts_multidevice_proto",
+        "android.hidl.allocator@1.0",
+        "android.hardware.tests.multithread@1.0",
+        
+    ],
+    export_shared_lib_headers: [
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.tests.multithread@1.0-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.multithread@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/tests/multithread/1.0/ $(genDir)/android/hardware/tests/multithread/1.0/",
+    srcs: [
+        ":android.hardware.tests.multithread@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/multithread/1.0/Multithread.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.multithread@1.0-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.multithread@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/tests/multithread/1.0/ $(genDir)/android/hardware/tests/multithread/1.0/",
+    srcs: [
+        ":android.hardware.tests.multithread@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/multithread/1.0/Multithread.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.tests.multithread@1.0-vts.profiler",
+    generated_sources: ["android.hardware.tests.multithread@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.tests.multithread@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.tests.multithread@1.0-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_common",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hardware.tests.multithread@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
diff --git a/tests/pointer/V1_0/build/Android.bp b/tests/pointer/V1_0/build/Android.bp
index 5605206..e9a4d86 100644
--- a/tests/pointer/V1_0/build/Android.bp
+++ b/tests/pointer/V1_0/build/Android.bp
@@ -46,24 +46,35 @@
     generated_headers: ["android.hardware.tests.pointer@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.tests.pointer@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.tests.pointer@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -101,13 +112,25 @@
     export_generated_headers: ["android.hardware.tests.pointer@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.tests.pointer@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/tests/versioning/V1_0/build/Android.bp b/tests/versioning/V1_0/build/Android.bp
deleted file mode 100644
index f134d45..0000000
--- a/tests/versioning/V1_0/build/Android.bp
+++ /dev/null
@@ -1,108 +0,0 @@
-// This file was auto-generated. Do not edit manually.
-// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
-
-// Generate .vts spec files.
-hal2vts {
-    name: "android.hardware.tests.versioning@1.0-vts.spec",
-    srcs: [
-        ":android.hardware.tests.versioning@1.0_hal",
-    ],
-    out: [
-        "android/hardware/tests/versioning/1.0/Foo.vts",
-    ],
-}
-
-// Build VTS driver.
-genrule {
-    name: "android.hardware.tests.versioning@1.0-vts.driver_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/tests/versioning/1.0/ $(genDir)/android/hardware/tests/versioning/1.0/",
-    srcs: [
-        ":android.hardware.tests.versioning@1.0_hal",
-    ],
-    out: [
-        "android/hardware/tests/versioning/1.0/Foo.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.tests.versioning@1.0-vts.driver_genc++_headers",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/tests/versioning/1.0/ $(genDir)/android/hardware/tests/versioning/1.0/",
-    srcs: [
-        ":android.hardware.tests.versioning@1.0_hal",
-    ],
-    out: [
-        "android/hardware/tests/versioning/1.0/Foo.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.tests.versioning@1.0-vts.driver",
-    generated_sources: ["android.hardware.tests.versioning@1.0-vts.driver_genc++"],
-    generated_headers: ["android.hardware.tests.versioning@1.0-vts.driver_genc++_headers"],
-    export_generated_headers: ["android.hardware.tests.versioning@1.0-vts.driver_genc++_headers"],
-    shared_libs: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "liblog",
-        "libutils",
-        "libcutils",
-        "libvts_common",
-        "libvts_datatype",
-        "libvts_drivercomm",
-        "libvts_measurement",
-        "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
-        "android.hardware.tests.versioning@1.0",
-        "android.hidl.base@1.0",
-    ],
-    export_shared_lib_headers: [
-        "android.hidl.base@1.0",
-    ],
-}
-
-// Build VTS profiler.
-genrule {
-    name: "android.hardware.tests.versioning@1.0-vts.profiler_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/tests/versioning/1.0/ $(genDir)/android/hardware/tests/versioning/1.0/",
-    srcs: [
-        ":android.hardware.tests.versioning@1.0_hal",
-    ],
-    out: [
-        "android/hardware/tests/versioning/1.0/Foo.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.tests.versioning@1.0-vts.profiler_genc++_headers",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/tests/versioning/1.0/ $(genDir)/android/hardware/tests/versioning/1.0/",
-    srcs: [
-        ":android.hardware.tests.versioning@1.0_hal",
-    ],
-    out: [
-        "android/hardware/tests/versioning/1.0/Foo.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.tests.versioning@1.0-vts.profiler",
-    generated_sources: ["android.hardware.tests.versioning@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.tests.versioning@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.tests.versioning@1.0-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.tests.versioning@1.0",
-        "android.hidl.base@1.0",
-    ],
-}
-
diff --git a/tests/versioning/V2_2/build/Android.bp b/tests/versioning/V2_2/build/Android.bp
deleted file mode 100644
index 7593a60..0000000
--- a/tests/versioning/V2_2/build/Android.bp
+++ /dev/null
@@ -1,113 +0,0 @@
-// This file was auto-generated. Do not edit manually.
-// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
-
-// Generate .vts spec files.
-hal2vts {
-    name: "android.hardware.tests.versioning@2.2-vts.spec",
-    srcs: [
-        ":android.hardware.tests.versioning@2.2_hal",
-    ],
-    out: [
-        "android/hardware/tests/versioning/2.2/Bar.vts",
-        "android/hardware/tests/versioning/2.2/Foo.vts",
-    ],
-}
-
-// Build VTS driver.
-genrule {
-    name: "android.hardware.tests.versioning@2.2-vts.driver_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@2.2 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/tests/versioning/2.2/ $(genDir)/android/hardware/tests/versioning/2.2/",
-    srcs: [
-        ":android.hardware.tests.versioning@2.2_hal",
-    ],
-    out: [
-        "android/hardware/tests/versioning/2.2/Bar.vts.cpp",
-        "android/hardware/tests/versioning/2.2/Foo.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.tests.versioning@2.2-vts.driver_genc++_headers",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@2.2 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/tests/versioning/2.2/ $(genDir)/android/hardware/tests/versioning/2.2/",
-    srcs: [
-        ":android.hardware.tests.versioning@2.2_hal",
-    ],
-    out: [
-        "android/hardware/tests/versioning/2.2/Bar.vts.h",
-        "android/hardware/tests/versioning/2.2/Foo.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.tests.versioning@2.2-vts.driver",
-    generated_sources: ["android.hardware.tests.versioning@2.2-vts.driver_genc++"],
-    generated_headers: ["android.hardware.tests.versioning@2.2-vts.driver_genc++_headers"],
-    export_generated_headers: ["android.hardware.tests.versioning@2.2-vts.driver_genc++_headers"],
-    shared_libs: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "liblog",
-        "libutils",
-        "libcutils",
-        "libvts_common",
-        "libvts_datatype",
-        "libvts_drivercomm",
-        "libvts_measurement",
-        "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
-        "android.hardware.tests.versioning@2.2",
-        "android.hidl.base@1.0",
-    ],
-    export_shared_lib_headers: [
-        "android.hidl.base@1.0",
-    ],
-}
-
-// Build VTS profiler.
-genrule {
-    name: "android.hardware.tests.versioning@2.2-vts.profiler_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@2.2 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/tests/versioning/2.2/ $(genDir)/android/hardware/tests/versioning/2.2/",
-    srcs: [
-        ":android.hardware.tests.versioning@2.2_hal",
-    ],
-    out: [
-        "android/hardware/tests/versioning/2.2/Bar.vts.cpp",
-        "android/hardware/tests/versioning/2.2/Foo.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.tests.versioning@2.2-vts.profiler_genc++_headers",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@2.2 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/tests/versioning/2.2/ $(genDir)/android/hardware/tests/versioning/2.2/",
-    srcs: [
-        ":android.hardware.tests.versioning@2.2_hal",
-    ],
-    out: [
-        "android/hardware/tests/versioning/2.2/Bar.vts.h",
-        "android/hardware/tests/versioning/2.2/Foo.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.tests.versioning@2.2-vts.profiler",
-    generated_sources: ["android.hardware.tests.versioning@2.2-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.tests.versioning@2.2-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.tests.versioning@2.2-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.tests.versioning@2.2",
-        "android.hidl.base@1.0",
-    ],
-}
-
diff --git a/tests/versioning/V2_3/build/Android.bp b/tests/versioning/V2_3/build/Android.bp
deleted file mode 100644
index c24b9e7..0000000
--- a/tests/versioning/V2_3/build/Android.bp
+++ /dev/null
@@ -1,130 +0,0 @@
-// This file was auto-generated. Do not edit manually.
-// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
-
-// Generate .vts spec files.
-hal2vts {
-    name: "android.hardware.tests.versioning@2.3-vts.spec",
-    srcs: [
-        ":android.hardware.tests.versioning@2.3_hal",
-    ],
-    out: [
-        "android/hardware/tests/versioning/2.3/Bar.vts",
-        "android/hardware/tests/versioning/2.3/Baz.vts",
-        "android/hardware/tests/versioning/2.3/Foo.vts",
-    ],
-}
-
-// Build VTS driver.
-genrule {
-    name: "android.hardware.tests.versioning@2.3-vts.driver_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@2.3 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/tests/versioning/2.3/ $(genDir)/android/hardware/tests/versioning/2.3/",
-    srcs: [
-        ":android.hardware.tests.versioning@2.3_hal",
-    ],
-    out: [
-        "android/hardware/tests/versioning/2.3/Bar.vts.cpp",
-        "android/hardware/tests/versioning/2.3/Baz.vts.cpp",
-        "android/hardware/tests/versioning/2.3/Foo.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.tests.versioning@2.3-vts.driver_genc++_headers",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@2.3 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/tests/versioning/2.3/ $(genDir)/android/hardware/tests/versioning/2.3/",
-    srcs: [
-        ":android.hardware.tests.versioning@2.3_hal",
-    ],
-    out: [
-        "android/hardware/tests/versioning/2.3/Bar.vts.h",
-        "android/hardware/tests/versioning/2.3/Baz.vts.h",
-        "android/hardware/tests/versioning/2.3/Foo.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.tests.versioning@2.3-vts.driver",
-    generated_sources: ["android.hardware.tests.versioning@2.3-vts.driver_genc++"],
-    generated_headers: ["android.hardware.tests.versioning@2.3-vts.driver_genc++_headers"],
-    export_generated_headers: ["android.hardware.tests.versioning@2.3-vts.driver_genc++_headers"],
-    shared_libs: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "liblog",
-        "libutils",
-        "libcutils",
-        "libvts_common",
-        "libvts_datatype",
-        "libvts_drivercomm",
-        "libvts_measurement",
-        "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
-        "android.hardware.tests.versioning@2.3",
-        "android.hardware.tests.versioning@1.0",
-        "android.hardware.tests.versioning@1.0-vts.driver",
-        "android.hardware.tests.versioning@2.2",
-        "android.hardware.tests.versioning@2.2-vts.driver",
-        "android.hidl.base@1.0",
-    ],
-    export_shared_lib_headers: [
-        "android.hardware.tests.versioning@1.0",
-        "android.hardware.tests.versioning@1.0-vts.driver",
-        "android.hardware.tests.versioning@2.2",
-        "android.hardware.tests.versioning@2.2-vts.driver",
-        "android.hidl.base@1.0",
-    ],
-}
-
-// Build VTS profiler.
-genrule {
-    name: "android.hardware.tests.versioning@2.3-vts.profiler_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@2.3 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/tests/versioning/2.3/ $(genDir)/android/hardware/tests/versioning/2.3/",
-    srcs: [
-        ":android.hardware.tests.versioning@2.3_hal",
-    ],
-    out: [
-        "android/hardware/tests/versioning/2.3/Bar.vts.cpp",
-        "android/hardware/tests/versioning/2.3/Baz.vts.cpp",
-        "android/hardware/tests/versioning/2.3/Foo.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.tests.versioning@2.3-vts.profiler_genc++_headers",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@2.3 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/tests/versioning/2.3/ $(genDir)/android/hardware/tests/versioning/2.3/",
-    srcs: [
-        ":android.hardware.tests.versioning@2.3_hal",
-    ],
-    out: [
-        "android/hardware/tests/versioning/2.3/Bar.vts.h",
-        "android/hardware/tests/versioning/2.3/Baz.vts.h",
-        "android/hardware/tests/versioning/2.3/Foo.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.tests.versioning@2.3-vts.profiler",
-    generated_sources: ["android.hardware.tests.versioning@2.3-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.tests.versioning@2.3-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.tests.versioning@2.3-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.tests.versioning@2.3",
-        "android.hardware.tests.versioning@1.0",
-        "android.hardware.tests.versioning@1.0-vts.profiler",
-        "android.hardware.tests.versioning@2.2",
-        "android.hardware.tests.versioning@2.2-vts.profiler",
-        "android.hidl.base@1.0",
-    ],
-}
-
diff --git a/tests/versioning/V2_4/Android.bp b/tests/versioning/V2_4/Android.bp
deleted file mode 100644
index 995dd5b..0000000
--- a/tests/versioning/V2_4/Android.bp
+++ /dev/null
@@ -1,6 +0,0 @@
-// This file was auto-generated. Do not edit manually.
-// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
-
-subdirs = [
-    "*",
-]
diff --git a/tests/versioning/V2_4/build/Android.bp b/tests/versioning/V2_4/build/Android.bp
deleted file mode 100644
index 1a83f31..0000000
--- a/tests/versioning/V2_4/build/Android.bp
+++ /dev/null
@@ -1,120 +0,0 @@
-// This file was auto-generated. Do not edit manually.
-// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
-
-// Generate .vts spec files.
-hal2vts {
-    name: "android.hardware.tests.versioning@2.4-vts.spec",
-    srcs: [
-        ":android.hardware.tests.versioning@2.4_hal",
-    ],
-    out: [
-        "android/hardware/tests/versioning/2.4/Foo.vts",
-    ],
-}
-
-// Build VTS driver.
-genrule {
-    name: "android.hardware.tests.versioning@2.4-vts.driver_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@2.4 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/tests/versioning/2.4/ $(genDir)/android/hardware/tests/versioning/2.4/",
-    srcs: [
-        ":android.hardware.tests.versioning@2.4_hal",
-    ],
-    out: [
-        "android/hardware/tests/versioning/2.4/Foo.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.tests.versioning@2.4-vts.driver_genc++_headers",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@2.4 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/tests/versioning/2.4/ $(genDir)/android/hardware/tests/versioning/2.4/",
-    srcs: [
-        ":android.hardware.tests.versioning@2.4_hal",
-    ],
-    out: [
-        "android/hardware/tests/versioning/2.4/Foo.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.tests.versioning@2.4-vts.driver",
-    generated_sources: ["android.hardware.tests.versioning@2.4-vts.driver_genc++"],
-    generated_headers: ["android.hardware.tests.versioning@2.4-vts.driver_genc++_headers"],
-    export_generated_headers: ["android.hardware.tests.versioning@2.4-vts.driver_genc++_headers"],
-    shared_libs: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "liblog",
-        "libutils",
-        "libcutils",
-        "libvts_common",
-        "libvts_datatype",
-        "libvts_drivercomm",
-        "libvts_measurement",
-        "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
-        "android.hardware.tests.versioning@2.4",
-        "android.hardware.tests.versioning@2.2",
-        "android.hardware.tests.versioning@2.2-vts.driver",
-        "android.hardware.tests.versioning@2.3",
-        "android.hardware.tests.versioning@2.3-vts.driver",
-        "android.hidl.base@1.0",
-    ],
-    export_shared_lib_headers: [
-        "android.hardware.tests.versioning@2.2",
-        "android.hardware.tests.versioning@2.2-vts.driver",
-        "android.hardware.tests.versioning@2.3",
-        "android.hardware.tests.versioning@2.3-vts.driver",
-        "android.hidl.base@1.0",
-    ],
-}
-
-// Build VTS profiler.
-genrule {
-    name: "android.hardware.tests.versioning@2.4-vts.profiler_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@2.4 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/tests/versioning/2.4/ $(genDir)/android/hardware/tests/versioning/2.4/",
-    srcs: [
-        ":android.hardware.tests.versioning@2.4_hal",
-    ],
-    out: [
-        "android/hardware/tests/versioning/2.4/Foo.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.tests.versioning@2.4-vts.profiler_genc++_headers",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.versioning@2.4 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/tests/versioning/2.4/ $(genDir)/android/hardware/tests/versioning/2.4/",
-    srcs: [
-        ":android.hardware.tests.versioning@2.4_hal",
-    ],
-    out: [
-        "android/hardware/tests/versioning/2.4/Foo.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.tests.versioning@2.4-vts.profiler",
-    generated_sources: ["android.hardware.tests.versioning@2.4-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.tests.versioning@2.4-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.tests.versioning@2.4-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.tests.versioning@2.4",
-        "android.hardware.tests.versioning@2.2",
-        "android.hardware.tests.versioning@2.2-vts.profiler",
-        "android.hardware.tests.versioning@2.3",
-        "android.hardware.tests.versioning@2.3-vts.profiler",
-        "android.hidl.base@1.0",
-    ],
-}
-
diff --git a/tests/versioning/V2_2/Android.bp b/tetheroffload/Android.bp
similarity index 78%
copy from tests/versioning/V2_2/Android.bp
copy to tetheroffload/Android.bp
index 995dd5b..3d48b18 100644
--- a/tests/versioning/V2_2/Android.bp
+++ b/tetheroffload/Android.bp
@@ -2,5 +2,6 @@
 // Use test/vts-testcase/hal/update_makefiles.py to generate this file.
 
 subdirs = [
-    "*",
+    "config/V1_0",
+    "control/V1_0",
 ]
diff --git a/tests/versioning/V1_0/Android.bp b/tetheroffload/config/V1_0/Android.bp
similarity index 100%
copy from tests/versioning/V1_0/Android.bp
copy to tetheroffload/config/V1_0/Android.bp
diff --git a/tetheroffload/config/V1_0/build/Android.bp b/tetheroffload/config/V1_0/build/Android.bp
new file mode 100644
index 0000000..ac1d51c
--- /dev/null
+++ b/tetheroffload/config/V1_0/build/Android.bp
@@ -0,0 +1,131 @@
+// This file was auto-generated. Do not edit manually.
+// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.tetheroffload.config@1.0-vts.spec",
+    srcs: [
+        ":android.hardware.tetheroffload.config@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tetheroffload/config/1.0/OffloadConfig.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.tetheroffload.config@1.0-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tetheroffload.config@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/tetheroffload/config/1.0/ $(genDir)/android/hardware/tetheroffload/config/1.0/",
+    srcs: [
+        ":android.hardware.tetheroffload.config@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tetheroffload/config/1.0/OffloadConfig.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tetheroffload.config@1.0-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tetheroffload.config@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/tetheroffload/config/1.0/ $(genDir)/android/hardware/tetheroffload/config/1.0/",
+    srcs: [
+        ":android.hardware.tetheroffload.config@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tetheroffload/config/1.0/OffloadConfig.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.tetheroffload.config@1.0-vts.driver",
+    generated_sources: ["android.hardware.tetheroffload.config@1.0-vts.driver_genc++"],
+    generated_headers: ["android.hardware.tetheroffload.config@1.0-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.tetheroffload.config@1.0-vts.driver_genc++_headers"],
+    shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libprotobuf-cpp-full",
+        "libutils",
+        "libvts_common",
+        "libvts_datatype",
+        "libvts_drivercomm",
+        "libvts_measurement",
+        "libvts_multidevice_proto",
+        "android.hidl.allocator@1.0",
+        "android.hardware.tetheroffload.config@1.0",
+        
+    ],
+    export_shared_lib_headers: [
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.tetheroffload.config@1.0-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tetheroffload.config@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/tetheroffload/config/1.0/ $(genDir)/android/hardware/tetheroffload/config/1.0/",
+    srcs: [
+        ":android.hardware.tetheroffload.config@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tetheroffload/config/1.0/OffloadConfig.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tetheroffload.config@1.0-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tetheroffload.config@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/tetheroffload/config/1.0/ $(genDir)/android/hardware/tetheroffload/config/1.0/",
+    srcs: [
+        ":android.hardware.tetheroffload.config@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tetheroffload/config/1.0/OffloadConfig.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.tetheroffload.config@1.0-vts.profiler",
+    generated_sources: ["android.hardware.tetheroffload.config@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.tetheroffload.config@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.tetheroffload.config@1.0-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_common",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hardware.tetheroffload.config@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
diff --git a/wifi/V1_0/target/base/Android.mk b/tetheroffload/config/V1_0/target/Android.mk
similarity index 85%
copy from wifi/V1_0/target/base/Android.mk
copy to tetheroffload/config/V1_0/target/Android.mk
index c07841b..c025bd9 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/tetheroffload/config/V1_0/target/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalTetherOffloadConfigV1_0Target
+VTS_CONFIG_SRC_DIR := testcases/hal/tetheroffload/config/V1_0/target
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/tetheroffload/config/V1_0/target/AndroidTest.xml
similarity index 69%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to tetheroffload/config/V1_0/target/AndroidTest.xml
index 4108231..6cb15b9 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/tetheroffload/config/V1_0/target/AndroidTest.xml
@@ -13,7 +13,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
+<configuration description="Config for VTS VtsHalTetherOffloadConfigV1_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"/>
@@ -21,16 +21,13 @@
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalTetherOffloadConfigV1_0Target"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalTetheroffloadConfigV1_0TargetTest/VtsHalTetheroffloadConfigV1_0TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalTetheroffloadConfigV1_0TargetTest/VtsHalTetheroffloadConfigV1_0TargetTest"/>
         <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.wifi@1.0"/>
-        <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" />
+        <option name="precondition-lshal" value="android.hardware.tetheroffload.config@1.0"/>
+        <option name="test-timeout" value="5m"/>
+        <option name="runtime-hint" value="2m"/>
     </test>
 </configuration>
diff --git a/wifi/V1_0/target/base/Android.mk b/tetheroffload/config/V1_0/target_profiling/Android.mk
similarity index 83%
copy from wifi/V1_0/target/base/Android.mk
copy to tetheroffload/config/V1_0/target_profiling/Android.mk
index c07841b..ecb4cad 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/tetheroffload/config/V1_0/target_profiling/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalTetherOffloadConfigV1_0TargetProfiling
+VTS_CONFIG_SRC_DIR := testcases/hal/tetheroffload/config/V1_0/target_profiling
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/tetheroffload/config/V1_0/target_profiling/AndroidTest.xml
similarity index 60%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to tetheroffload/config/V1_0/target_profiling/AndroidTest.xml
index 4108231..a5d1057 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/tetheroffload/config/V1_0/target_profiling/AndroidTest.xml
@@ -13,24 +13,24 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-hal" />
+<configuration description="Config for VTS VtsHalTetherOffloadConfigV1_0TargetProfiling test cases">
+    <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="HalHidlTargetTest.push"/>
+        <option name="push-group" value="HalHidlTargetProfilingTest.push"/>
+        <option name="cleanup" value="true"/>
+        <option name="push" value="DATA/lib/android.hardware.tetheroffload.config@1.0-vts.profiler.so->/data/local/tmp/32/android.hardware.tetheroffload.config@1.0-vts.profiler.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.tetheroffload.config@1.0-vts.profiler.so->/data/local/tmp/64/android.hardware.tetheroffload.config@1.0-vts.profiler.so"/>
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalTetherOffloadConfigV1_0TargetProfiling"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalTetheroffloadConfigV1_0TargetTest/VtsHalTetheroffloadConfigV1_0TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalTetheroffloadConfigV1_0TargetTest/VtsHalTetheroffloadConfigV1_0TargetTest"/>
         <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.wifi@1.0"/>
+        <option name="enable-profiling" value="true"/>
+        <option name="precondition-lshal" value="android.hardware.tetheroffload.config@1.0"/>
         <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>
diff --git a/tests/versioning/V1_0/Android.bp b/tetheroffload/control/V1_0/Android.bp
similarity index 100%
copy from tests/versioning/V1_0/Android.bp
copy to tetheroffload/control/V1_0/Android.bp
diff --git a/tetheroffload/control/V1_0/build/Android.bp b/tetheroffload/control/V1_0/build/Android.bp
new file mode 100644
index 0000000..d2d55b3
--- /dev/null
+++ b/tetheroffload/control/V1_0/build/Android.bp
@@ -0,0 +1,141 @@
+// This file was auto-generated. Do not edit manually.
+// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.tetheroffload.control@1.0-vts.spec",
+    srcs: [
+        ":android.hardware.tetheroffload.control@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tetheroffload/control/1.0/OffloadControl.vts",
+        "android/hardware/tetheroffload/control/1.0/TetheringOffloadCallback.vts",
+        "android/hardware/tetheroffload/control/1.0/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.tetheroffload.control@1.0-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tetheroffload.control@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/tetheroffload/control/1.0/ $(genDir)/android/hardware/tetheroffload/control/1.0/",
+    srcs: [
+        ":android.hardware.tetheroffload.control@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tetheroffload/control/1.0/OffloadControl.vts.cpp",
+        "android/hardware/tetheroffload/control/1.0/TetheringOffloadCallback.vts.cpp",
+        "android/hardware/tetheroffload/control/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tetheroffload.control@1.0-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tetheroffload.control@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/tetheroffload/control/1.0/ $(genDir)/android/hardware/tetheroffload/control/1.0/",
+    srcs: [
+        ":android.hardware.tetheroffload.control@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tetheroffload/control/1.0/OffloadControl.vts.h",
+        "android/hardware/tetheroffload/control/1.0/TetheringOffloadCallback.vts.h",
+        "android/hardware/tetheroffload/control/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.tetheroffload.control@1.0-vts.driver",
+    generated_sources: ["android.hardware.tetheroffload.control@1.0-vts.driver_genc++"],
+    generated_headers: ["android.hardware.tetheroffload.control@1.0-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.tetheroffload.control@1.0-vts.driver_genc++_headers"],
+    shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libprotobuf-cpp-full",
+        "libutils",
+        "libvts_common",
+        "libvts_datatype",
+        "libvts_drivercomm",
+        "libvts_measurement",
+        "libvts_multidevice_proto",
+        "android.hidl.allocator@1.0",
+        "android.hardware.tetheroffload.control@1.0",
+        
+    ],
+    export_shared_lib_headers: [
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.tetheroffload.control@1.0-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tetheroffload.control@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/tetheroffload/control/1.0/ $(genDir)/android/hardware/tetheroffload/control/1.0/",
+    srcs: [
+        ":android.hardware.tetheroffload.control@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tetheroffload/control/1.0/OffloadControl.vts.cpp",
+        "android/hardware/tetheroffload/control/1.0/TetheringOffloadCallback.vts.cpp",
+        "android/hardware/tetheroffload/control/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tetheroffload.control@1.0-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tetheroffload.control@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/tetheroffload/control/1.0/ $(genDir)/android/hardware/tetheroffload/control/1.0/",
+    srcs: [
+        ":android.hardware.tetheroffload.control@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tetheroffload/control/1.0/OffloadControl.vts.h",
+        "android/hardware/tetheroffload/control/1.0/TetheringOffloadCallback.vts.h",
+        "android/hardware/tetheroffload/control/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.tetheroffload.control@1.0-vts.profiler",
+    generated_sources: ["android.hardware.tetheroffload.control@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.tetheroffload.control@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.tetheroffload.control@1.0-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_common",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hardware.tetheroffload.control@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
diff --git a/wifi/V1_0/target/base/Android.mk b/tetheroffload/control/V1_0/target/Android.mk
similarity index 84%
copy from wifi/V1_0/target/base/Android.mk
copy to tetheroffload/control/V1_0/target/Android.mk
index c07841b..b5b34ce 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/tetheroffload/control/V1_0/target/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalTetherOffloadControlV1_0Target
+VTS_CONFIG_SRC_DIR := testcases/hal/tetheroffload/control/V1_0/target
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/tetheroffload/control/V1_0/target/AndroidTest.xml
similarity index 70%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to tetheroffload/control/V1_0/target/AndroidTest.xml
index 4108231..6d9bec6 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/tetheroffload/control/V1_0/target/AndroidTest.xml
@@ -13,7 +13,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
+<configuration description="Config for VTS VtsHalTetherOffloadControlV1_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"/>
@@ -21,16 +21,15 @@
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalTetherOffloadControlV1_0Target"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalTetheroffloadControlV1_0TargetTest/VtsHalTetheroffloadControlV1_0TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalTetheroffloadControlV1_0TargetTest/VtsHalTetheroffloadControlV1_0TargetTest"/>
         <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.wifi@1.0"/>
+        <option name="precondition-lshal" value="android.hardware.tetheroffload.control@1.0"/>
         <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" />
+        <option name="runtime-hint" value="6m"/>
+        <option name="exclude-filter" value="OffloadControlHidlTest.SetDataLimitNonZeroOk"/>
+        <option name="exclude-filter" value="OffloadControlHidlTest.SetDataLimitZeroOk"/>
     </test>
 </configuration>
diff --git a/wifi/V1_0/target/base/Android.mk b/tetheroffload/control/V1_0/target_profiling/Android.mk
similarity index 82%
copy from wifi/V1_0/target/base/Android.mk
copy to tetheroffload/control/V1_0/target_profiling/Android.mk
index c07841b..03ca4c3 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/tetheroffload/control/V1_0/target_profiling/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalTetherOffloadControlV1_0TargetProfiling
+VTS_CONFIG_SRC_DIR := testcases/hal/tetheroffload/control/V1_0/target_profiling
 include test/vts/tools/build/Android.host_config.mk
diff --git a/tetheroffload/control/V1_0/target_profiling/AndroidTest.xml b/tetheroffload/control/V1_0/target_profiling/AndroidTest.xml
new file mode 100644
index 0000000..11a63c0
--- /dev/null
+++ b/tetheroffload/control/V1_0/target_profiling/AndroidTest.xml
@@ -0,0 +1,38 @@
+<?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 VtsHalTetherOffloadConfigV1_0TargetProfiling test cases">
+    <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="HalHidlTargetProfilingTest.push"/>
+        <option name="cleanup" value="true"/>
+        <option name="push" value="DATA/lib/android.hardware.tetheroffload.control@1.0-vts.profiler.so->/data/local/tmp/32/android.hardware.tetheroffload.control@1.0-vts.profiler.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.tetheroffload.control@1.0-vts.profiler.so->/data/local/tmp/64/android.hardware.tetheroffload.control@1.0-vts.profiler.so"/>
+    </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="VtsHalTetherOffloadControlV1_0TargetProfiling"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalTetheroffloadControlV1_0TargetTest/VtsHalTetheroffloadControlV1_0TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalTetheroffloadControlV1_0TargetTest/VtsHalTetheroffloadControlV1_0TargetTest"/>
+        <option name="binary-test-type" value="hal_hidl_gtest"/>
+        <option name="binary-test-disable-framework" value="true"/>
+        <option name="enable-profiling" value="true"/>
+        <option name="precondition-lshal" value="android.hardware.tetheroffload.control@1.0"/>
+        <option name="test-timeout" value="30m"/>
+        <option name="exclude-filter" value="OffloadControlHidlTest.SetDataLimitNonZeroOk"/>
+        <option name="exclude-filter" value="OffloadControlHidlTest.SetDataLimitZeroOk"/>
+    </test>
+</configuration>
diff --git a/thermal/Android.bp b/thermal/Android.bp
index cdc8905..2e98897 100644
--- a/thermal/Android.bp
+++ b/thermal/Android.bp
@@ -3,4 +3,5 @@
 
 subdirs = [
     "V1_0",
+    "V1_1",
 ]
diff --git a/thermal/V1_0/build/Android.bp b/thermal/V1_0/build/Android.bp
index 1fd9dd9..aee3411 100644
--- a/thermal/V1_0/build/Android.bp
+++ b/thermal/V1_0/build/Android.bp
@@ -46,24 +46,35 @@
     generated_headers: ["android.hardware.thermal@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.thermal@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.thermal@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -101,13 +112,25 @@
     export_generated_headers: ["android.hardware.thermal@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.thermal@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/wifi/V1_0/target/base/Android.mk b/thermal/V1_0/target_replay/Android.mk
similarity index 86%
copy from wifi/V1_0/target/base/Android.mk
copy to thermal/V1_0/target_replay/Android.mk
index c07841b..afe0919 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/thermal/V1_0/target_replay/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalThermalV1_0TargetReplay
+VTS_CONFIG_SRC_DIR := testcases/hal/thermal/V1_0/target_replay
 include test/vts/tools/build/Android.host_config.mk
diff --git a/thermal/V1_0/target_replay/AndroidTest.xml b/thermal/V1_0/target_replay/AndroidTest.xml
new file mode 100644
index 0000000..ca1b0f0
--- /dev/null
+++ b/thermal/V1_0/target_replay/AndroidTest.xml
@@ -0,0 +1,36 @@
+<?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 VtsHalThermalV1_0TargetReplay test cases">
+    <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="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"/>
+        <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"/>
+    </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="VtsHalThermalV1_0TargetReplay"/>
+        <option name="binary-test-type" value="hal_hidl_replay_test"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/thermal/V1_0/android.hardware.thermal_1.0_414823138144.vts.trace"/>
+        <option name="hal-hidl-package-name" value="android.hardware.thermal@1.0"/>
+        <option name="precondition-lshal" value="android.hardware.thermal@1.0"/>
+        <option name="test-timeout" value="5m"/>
+    </test>
+</configuration>
diff --git a/automotive/vehicle/V2_1/Android.bp b/thermal/V1_1/Android.bp
similarity index 100%
copy from automotive/vehicle/V2_1/Android.bp
copy to thermal/V1_1/Android.bp
diff --git a/thermal/V1_1/build/Android.bp b/thermal/V1_1/build/Android.bp
new file mode 100644
index 0000000..ecd29b4
--- /dev/null
+++ b/thermal/V1_1/build/Android.bp
@@ -0,0 +1,139 @@
+// This file was auto-generated. Do not edit manually.
+// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.thermal@1.1-vts.spec",
+    srcs: [
+        ":android.hardware.thermal@1.1_hal",
+    ],
+    out: [
+        "android/hardware/thermal/1.1/Thermal.vts",
+        "android/hardware/thermal/1.1/ThermalCallback.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.thermal@1.1-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.thermal@1.1 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/thermal/1.1/ $(genDir)/android/hardware/thermal/1.1/",
+    srcs: [
+        ":android.hardware.thermal@1.1_hal",
+    ],
+    out: [
+        "android/hardware/thermal/1.1/Thermal.vts.cpp",
+        "android/hardware/thermal/1.1/ThermalCallback.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.thermal@1.1-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.thermal@1.1 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/thermal/1.1/ $(genDir)/android/hardware/thermal/1.1/",
+    srcs: [
+        ":android.hardware.thermal@1.1_hal",
+    ],
+    out: [
+        "android/hardware/thermal/1.1/Thermal.vts.h",
+        "android/hardware/thermal/1.1/ThermalCallback.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.thermal@1.1-vts.driver",
+    generated_sources: ["android.hardware.thermal@1.1-vts.driver_genc++"],
+    generated_headers: ["android.hardware.thermal@1.1-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.thermal@1.1-vts.driver_genc++_headers"],
+    shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libprotobuf-cpp-full",
+        "libutils",
+        "libvts_common",
+        "libvts_datatype",
+        "libvts_drivercomm",
+        "libvts_measurement",
+        "libvts_multidevice_proto",
+        "android.hidl.allocator@1.0",
+        "android.hardware.thermal@1.1",
+        "android.hardware.thermal@1.0",
+        "android.hardware.thermal@1.0-vts.driver",
+    ],
+    export_shared_lib_headers: [
+        "android.hardware.thermal@1.0",
+        "android.hardware.thermal@1.0-vts.driver",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.thermal@1.1-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.thermal@1.1 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/thermal/1.1/ $(genDir)/android/hardware/thermal/1.1/",
+    srcs: [
+        ":android.hardware.thermal@1.1_hal",
+    ],
+    out: [
+        "android/hardware/thermal/1.1/Thermal.vts.cpp",
+        "android/hardware/thermal/1.1/ThermalCallback.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.thermal@1.1-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.thermal@1.1 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/thermal/1.1/ $(genDir)/android/hardware/thermal/1.1/",
+    srcs: [
+        ":android.hardware.thermal@1.1_hal",
+    ],
+    out: [
+        "android/hardware/thermal/1.1/Thermal.vts.h",
+        "android/hardware/thermal/1.1/ThermalCallback.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.thermal@1.1-vts.profiler",
+    generated_sources: ["android.hardware.thermal@1.1-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.thermal@1.1-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.thermal@1.1-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_common",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hardware.thermal@1.1",
+        "android.hardware.thermal@1.0",
+        "android.hardware.thermal@1.0-vts.profiler",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
diff --git a/wifi/V1_0/target/base/Android.mk b/thermal/V1_1/target/Android.mk
similarity index 87%
copy from wifi/V1_0/target/base/Android.mk
copy to thermal/V1_1/target/Android.mk
index c07841b..1d209ea 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/thermal/V1_1/target/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalThermalV1_1Target
+VTS_CONFIG_SRC_DIR := testcases/hal/thermal/V1_1/target
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/thermal/V1_1/target/AndroidTest.xml
similarity index 75%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to thermal/V1_1/target/AndroidTest.xml
index 4108231..16d55dd 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/thermal/V1_1/target/AndroidTest.xml
@@ -13,7 +13,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
+<configuration description="Config for VTS VtsHalThermalV1_1Target 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"/>
@@ -21,16 +21,13 @@
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalThermalV1_1Target"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalThermalV1_1TargetTest/VtsHalThermalV1_1TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalThermalV1_1TargetTest/VtsHalThermalV1_1TargetTest"/>
         <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.wifi@1.0"/>
+        <option name="precondition-lshal" value="android.hardware.thermal@1.1"/>
         <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>
diff --git a/wifi/V1_0/target/base/Android.mk b/thermal/V1_1/target_profiling/Android.mk
similarity index 85%
copy from wifi/V1_0/target/base/Android.mk
copy to thermal/V1_1/target_profiling/Android.mk
index c07841b..29257c3 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/thermal/V1_1/target_profiling/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalThermalV1_1TargetProfiling
+VTS_CONFIG_SRC_DIR := testcases/hal/thermal/V1_1/target_profiling
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/thermal/V1_1/target_profiling/AndroidTest.xml
similarity index 64%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to thermal/V1_1/target_profiling/AndroidTest.xml
index 4108231..17a5abd 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/thermal/V1_1/target_profiling/AndroidTest.xml
@@ -13,24 +13,25 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-hal" />
+<configuration description="Config for VTS VtsHalThermalV1_1TargetProfiling test cases">
+    <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="HalHidlTargetTest.push"/>
+        <option name="push-group" value="HalHidlTargetProfilingTest.push"/>
+        <option name="cleanup" value="true"/>
+        <option name="push" value="DATA/lib/android.hardware.thermal@1.1-vts.profiler.so->/data/local/tmp/32/android.hardware.thermal@1.1-vts.profiler.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.thermal@1.1-vts.profiler.so->/data/local/tmp/64/android.hardware.thermal@1.1-vts.profiler.so"/>
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalThermalV1_1TargetProfiling"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalThermalV1_1TargetTest/VtsHalThermalV1_1TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalThermalV1_1TargetTest/VtsHalThermalV1_1TargetTest"/>
         <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.wifi@1.0"/>
+        <option name="enable-profiling" value="true"/>
+        <option name="precondition-lshal" value="android.hardware.thermal@1.1"/>
         <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>
diff --git a/wifi/V1_0/target/base/Android.mk b/treble/hidl_shim/Android.mk
similarity index 87%
copy from wifi/V1_0/target/base/Android.mk
copy to treble/hidl_shim/Android.mk
index c07841b..01bacd7 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/treble/hidl_shim/Android.mk
@@ -18,6 +18,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
-include test/vts/tools/build/Android.host_config.mk
+LOCAL_MODULE := VtsTrebleHidlShim
+include test/vts/tools/build/Android.host_config.mk
\ No newline at end of file
diff --git a/treble/hidl_shim/AndroidTest.xml b/treble/hidl_shim/AndroidTest.xml
new file mode 100644
index 0000000..dd4d385
--- /dev/null
+++ b/treble/hidl_shim/AndroidTest.xml
@@ -0,0 +1,27 @@
+<?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 VtsTrebleHidlShim">
+    <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>
+    <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer">
+    </target_preparer>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="VtsTrebleHidlShim" />
+        <option name="test-case-path" value="vts/testcases/hal/treble/hidl_shim/VtsTrebleHidlShimTest" />
+    </test>
+</configuration>
diff --git a/treble/hidl_shim/VtsTrebleHidlShimTest.py b/treble/hidl_shim/VtsTrebleHidlShimTest.py
new file mode 100644
index 0000000..f05a44e
--- /dev/null
+++ b/treble/hidl_shim/VtsTrebleHidlShimTest.py
@@ -0,0 +1,89 @@
+#!/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 test_runner
+from vts.utils.python.common import vintf_utils
+from vts.utils.python.controllers import android_device
+from vts.utils.python.file import target_file_utils
+from vts.utils.python.os import path_utils
+
+
+class VtsTrebleHidlShimTest(base_test.BaseTestClass):
+    """Ensures existence of at least one HIDL shim library (32 or 64-bit)."""
+
+    VENDOR_MANIFEST_FILE_PATH = '/vendor/manifest.xml'
+    SHIM_DIRS = [
+        '/system/lib/', '/system/lib64/', '/vendor/lib/', '/vendor/lib64/'
+    ]
+
+    def setUpClass(self):
+        self.dut = self.registerController(android_device)[0]
+        self.dut.shell.InvokeTerminal(
+            'VtsTrebleHidlShim')  # creates a remote shell instance.
+        self.shell = self.dut.shell.VtsTrebleHidlShim
+
+    def missingHidlShims(self, hal_dictionary):
+        """Finds HALs listed in hal_dictionary that are missing shims on device.
+
+        Args:
+            hal_dictionary:
+                {key: hal_name@version, value: vintf_utils.HalDescription object}
+        Returns:
+            a list of the hal_keys (hal_name@version) for which no HIDL shim was
+            found on device
+        """
+        missing_hidl_shims = []
+        for hal_key, hal_info in hal_dictionary.iteritems():
+            for shim_dir in self.SHIM_DIRS:
+                hidl_shim_path = path_utils.JoinTargetPath(
+                    shim_dir, hal_key + '.so')
+                found = target_file_utils.Exists(hidl_shim_path, self.shell)
+                if found:
+                    break
+            if not found:
+                missing_hidl_shims.append(hal_key)
+        return missing_hidl_shims
+
+    def testHidlShimExists(self):
+        """Checks that at least one HIDL shim (32 or 64-bit) exists on device.
+
+        For all HALs registered in /vendor/manifest.xml, at least one HIDL shim
+        must exist on device under one of the dirs listed in self.SHIM_DIRS.
+        """
+        vendor_manifest_xml = target_file_utils.ReadFileContent(
+            self.VENDOR_MANIFEST_FILE_PATH, self.shell)
+        manifest_hwbinder_hals, manifest_passthrough_hals = vintf_utils.GetHalDescriptions(
+            vendor_manifest_xml)
+
+        missing_hidl_shims_hwbinder = self.missingHidlShims(
+            manifest_hwbinder_hals)
+        missing_hidl_shims_passthrough = self.missingHidlShims(
+            manifest_passthrough_hals)
+
+        asserts.assertTrue(
+            len(missing_hidl_shims_hwbinder) == 0 and
+            len(missing_hidl_shims_passthrough) == 0,
+            ('No HIDL shim library (neither 32 or 64-bit) was found on device for the following HALs: %s, %s'
+             ) % (missing_hidl_shims_hwbinder, missing_hidl_shims_passthrough))
+
+
+if __name__ == "__main__":
+    test_runner.main()
diff --git a/treble/hidl_shim/__init__.py b/treble/hidl_shim/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/treble/hidl_shim/__init__.py
diff --git a/treble/vintf/Android.bp b/treble/vintf/Android.bp
index 658ede6..173ad43 100644
--- a/treble/vintf/Android.bp
+++ b/treble/vintf/Android.bp
@@ -25,13 +25,20 @@
     ],
     shared_libs: [
         "libbase",
-        "libutils",
+        "libcutils",
         "libhidlbase",
         "libhidltransport",
+        "liblog",
+        "libutils",
+        "libz",
+    ],
+    static_libs: [
         "libhidl-gen-hash",
         "libhidl-gen-utils",
+        "libselinux",
+        "libtinyxml2",
         "libvintf",
-        "android.hidl.manager@1.0",
     ],
+    group_static_libs: true,
 }
 
diff --git a/treble/vintf/VintfObjectWithOdm.cpp b/treble/vintf/VintfObjectWithOdm.cpp
index 17ec914..282e84c 100644
--- a/treble/vintf/VintfObjectWithOdm.cpp
+++ b/treble/vintf/VintfObjectWithOdm.cpp
@@ -113,9 +113,9 @@
 }
 
 // static
-int32_t VintfObject::CheckCompatibility(
-        const std::vector<std::string> &xmls, std::string *error) {
-    return vintf::VintfObject::CheckCompatibility(xmls, error);
+int32_t VintfObject::CheckCompatibility(const std::vector<std::string>& xmls, std::string* error,
+                                        DisabledChecks disabledChecks) {
+    return vintf::VintfObject::CheckCompatibility(xmls, error, disabledChecks);
 }
 
 
diff --git a/treble/vintf/VintfObjectWithOdm.h b/treble/vintf/VintfObjectWithOdm.h
index 2469033..336f178 100644
--- a/treble/vintf/VintfObjectWithOdm.h
+++ b/treble/vintf/VintfObjectWithOdm.h
@@ -20,6 +20,7 @@
 #include <vintf/CompatibilityMatrix.h>
 #include <vintf/HalManifest.h>
 #include <vintf/RuntimeInfo.h>
+#include <vintf/DisabledChecks.h>
 
 namespace android {
 namespace vintf_with_odm {
@@ -86,14 +87,16 @@
      *
      * @param packageInfo a list of XMLs of HalManifest /
      * CompatibilityMatrix objects.
+     * @param error error message
+     * @param disabledChecks flags to disable certain checks. See DisabledChecks.
      *
      * @return = 0 if success (compatible)
      *         > 0 if incompatible
      *         < 0 if any error (mount partition fails, illformed XML, etc.)
      */
-    static int32_t CheckCompatibility(
-            const std::vector<std::string> &packageInfo,
-            std::string *error = nullptr);
+    static int32_t CheckCompatibility(const std::vector<std::string>& packageInfo,
+                                      std::string* error = nullptr,
+                                      DisabledChecks disabledChecks = ENABLE_ALL_CHECKS);
 };
 
 } // namespace vintf
diff --git a/treble/vintf/vts_treble_vintf_test.cpp b/treble/vintf/vts_treble_vintf_test.cpp
index 802b89d..15b63d1 100644
--- a/treble/vintf/vts_treble_vintf_test.cpp
+++ b/treble/vintf/vts_treble_vintf_test.cpp
@@ -14,12 +14,15 @@
  * limitations under the License.
  */
 
+#include <chrono>
 #include <functional>
+#include <future>
 #include <iostream>
 #include <map>
 #include <set>
 #include <sstream>
 #include <string>
+#include <thread>
 #include <vector>
 
 #include <android/hidl/manager/1.0/IServiceManager.h>
@@ -28,6 +31,7 @@
 #include <hidl-util/FQName.h>
 #include <hidl/ServiceManagement.h>
 #include <vintf/HalManifest.h>
+#include <vintf/parse_xml.h>    // b/77293161
 #include "VintfObjectWithOdm.h" // b/77293161
 
 using android::FQName;
@@ -40,6 +44,7 @@
 using android::vintf::HalManifest;
 using android::vintf::Transport;
 using android::vintf::Version;
+using android::vintf_with_odm::VintfObject;
 
 using std::cout;
 using std::endl;
@@ -89,11 +94,8 @@
 
 // Returns true iff HAL interface is exempt from following rules:
 // 1. If an interface is declared in VINTF, it has to be served on the device.
-// TODO(b/62547028): remove these exemptions in O-DR.
 static bool IsExempt(const FQName &fq_iface_name) {
-  static const set<string> exempt_hals_ = {
-      "android.hardware.radio", "android.hardware.radio.deprecated",
-  };
+  static const set<string> exempt_hals_ = {};
   string hal_name = fq_iface_name.package();
   // Radio-releated and non-Google HAL interfaces are given exemptions.
   return exempt_hals_.find(hal_name) != exempt_hals_.end() ||
@@ -122,8 +124,8 @@
     ASSERT_NE(passthrough_manager_, nullptr)
         << "Failed to get passthrough service manager." << endl;
 
-    vendor_manifest_ = ::android::vintf_with_odm::VintfObject::GetDeviceHalManifest();
-    ASSERT_NE(passthrough_manager_, nullptr)
+    vendor_manifest_ = VintfObject::GetDeviceHalManifest();
+    ASSERT_NE(vendor_manifest_, nullptr)
         << "Failed to get vendor HAL manifest." << endl;
   }
 
@@ -155,7 +157,15 @@
           string minor_ver = std::to_string(version.minorVer);
           string full_ver = major_ver + "." + minor_ver;
           FQName fq_name{hal_name, full_ver, iface_name};
-          fn(fq_name, instance_name);
+
+          auto future_result =
+              std::async([&]() { fn(fq_name, instance_name); });
+          auto timeout = std::chrono::milliseconds(500);
+          std::future_status status = future_result.wait_for(timeout);
+          if (status != std::future_status::ready) {
+            cout << "Timed out on: " << fq_name.string() << " " << instance_name
+                 << endl;
+          }
         }
       }
     }
@@ -183,24 +193,6 @@
   return hal_service;
 }
 
-// Tests that all HAL entries in VINTF has all required fields filled out.
-TEST_F(VtsTrebleVintfTest, HalEntriesAreComplete) {
-  auto hal_names = vendor_manifest_->getHalNames();
-  for (const auto &hal_name : hal_names) {
-    auto versions = vendor_manifest_->getSupportedVersions(hal_name);
-    EXPECT_FALSE(versions.empty())
-        << hal_name << " has no version specified in VINTF.";
-    auto iface_names = vendor_manifest_->getInterfaceNames(hal_name);
-    EXPECT_FALSE(iface_names.empty())
-        << hal_name << " has no interface specified in VINTF.";
-    for (const auto &iface_name : iface_names) {
-      auto instances = vendor_manifest_->getInstances(hal_name, iface_name);
-      EXPECT_FALSE(instances.empty())
-          << hal_name << " has no instance specified in VINTF.";
-    }
-  }
-}
-
 // Tests that no HAL outside of the allowed set is specified as passthrough in
 // VINTF.
 TEST_F(VtsTrebleVintfTest, HalsAreBinderized) {
@@ -242,7 +234,7 @@
     sp<android::hidl::base::V1_0::IBase> hal_service =
         GetHalService(fq_name, instance_name);
     EXPECT_NE(hal_service, nullptr)
-        << fq_name.package() << " not available." << endl;
+        << fq_name.string() << " not available." << endl;
   };
 
   ForEachHalInstance(is_available);
@@ -302,6 +294,32 @@
   ForEachHalInstance(is_released);
 }
 
+// Tests that vendor and framework are compatible.
+TEST(CompatiblityTest, VendorFrameworkCompatibility) {
+  string error;
+
+  EXPECT_TRUE(VintfObject::GetDeviceHalManifest()->checkCompatibility(
+      *VintfObject::GetFrameworkCompatibilityMatrix(), &error))
+      << error;
+
+  EXPECT_TRUE(VintfObject::GetFrameworkHalManifest()->checkCompatibility(
+      *VintfObject::GetDeviceCompatibilityMatrix(), &error))
+      << error;
+
+  // AVB version is not a compliance requirement.
+  EXPECT_TRUE(VintfObject::GetRuntimeInfo()->checkCompatibility(
+      *VintfObject::GetFrameworkCompatibilityMatrix(), &error,
+      ::android::vintf::DISABLE_AVB_CHECK))
+      << error;
+
+  const std::string &deviceManifest = ::android::vintf::gHalManifestConverter(
+      *VintfObject::GetDeviceHalManifest());
+  EXPECT_EQ(
+      0, VintfObject::CheckCompatibility({deviceManifest}, &error,
+                                         ::android::vintf::DISABLE_AVB_CHECK))
+      << error;
+}
+
 int main(int argc, char **argv) {
   ::testing::InitGoogleTest(&argc, argv);
   return RUN_ALL_TESTS();
diff --git a/tv/cec/V1_0/build/Android.bp b/tv/cec/V1_0/build/Android.bp
index 1e8265a..8c4cd99 100644
--- a/tv/cec/V1_0/build/Android.bp
+++ b/tv/cec/V1_0/build/Android.bp
@@ -49,24 +49,35 @@
     generated_headers: ["android.hardware.tv.cec@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.tv.cec@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.tv.cec@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -106,13 +117,25 @@
     export_generated_headers: ["android.hardware.tv.cec@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.tv.cec@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/tv/input/V1_0/build/Android.bp b/tv/input/V1_0/build/Android.bp
index d9bb7bf..99edc91 100644
--- a/tv/input/V1_0/build/Android.bp
+++ b/tv/input/V1_0/build/Android.bp
@@ -49,28 +49,37 @@
     generated_headers: ["android.hardware.tv.input@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.tv.input@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.tv.input@1.0",
         "android.hardware.audio.common@2.0",
         "android.hardware.audio.common@2.0-vts.driver",
-        "android.hidl.base@1.0",
     ],
     export_shared_lib_headers: [
         "android.hardware.audio.common@2.0",
         "android.hardware.audio.common@2.0-vts.driver",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -110,15 +119,26 @@
     export_generated_headers: ["android.hardware.tv.input@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.tv.input@1.0",
         "android.hardware.audio.common@2.0",
         "android.hardware.audio.common@2.0-vts.profiler",
-        "android.hidl.base@1.0",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/usb/Android.bp b/usb/Android.bp
index cdc8905..2e98897 100644
--- a/usb/Android.bp
+++ b/usb/Android.bp
@@ -3,4 +3,5 @@
 
 subdirs = [
     "V1_0",
+    "V1_1",
 ]
diff --git a/usb/V1_0/build/Android.bp b/usb/V1_0/build/Android.bp
index 9911089..9f7ce78 100644
--- a/usb/V1_0/build/Android.bp
+++ b/usb/V1_0/build/Android.bp
@@ -49,24 +49,35 @@
     generated_headers: ["android.hardware.usb@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.usb@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.usb@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -106,13 +117,25 @@
     export_generated_headers: ["android.hardware.usb@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.usb@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/usb/V1_0/target_replay/AndroidTest.xml b/usb/V1_0/target_replay/AndroidTest.xml
index b5d56d8..8f166e4 100644
--- a/usb/V1_0/target_replay/AndroidTest.xml
+++ b/usb/V1_0/target_replay/AndroidTest.xml
@@ -29,7 +29,7 @@
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalUsbV1_0TargetReplay"/>
         <option name="binary-test-type" value="hal_hidl_replay_test"/>
-        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/usb/V1_0/android.hardware.usb@1.0_sailfish_1.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/usb/V1_0/android.hardware.usb_1.0_704343228913.vts.trace"/>
         <option name="hal-hidl-package-name" value="android.hardware.usb@1.0"/>
         <option name="precondition-lshal" value="android.hardware.usb@1.0"/>
         <option name="exclude-filter" value="UsbHidlTest.switchModetoDFP" />
diff --git a/automotive/vehicle/V2_1/Android.bp b/usb/V1_1/Android.bp
similarity index 100%
copy from automotive/vehicle/V2_1/Android.bp
copy to usb/V1_1/Android.bp
diff --git a/usb/V1_1/build/Android.bp b/usb/V1_1/build/Android.bp
new file mode 100644
index 0000000..8288d41
--- /dev/null
+++ b/usb/V1_1/build/Android.bp
@@ -0,0 +1,144 @@
+// This file was auto-generated. Do not edit manually.
+// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.usb@1.1-vts.spec",
+    srcs: [
+        ":android.hardware.usb@1.1_hal",
+    ],
+    out: [
+        "android/hardware/usb/1.1/Usb.vts",
+        "android/hardware/usb/1.1/UsbCallback.vts",
+        "android/hardware/usb/1.1/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.usb@1.1-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.usb@1.1 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/usb/1.1/ $(genDir)/android/hardware/usb/1.1/",
+    srcs: [
+        ":android.hardware.usb@1.1_hal",
+    ],
+    out: [
+        "android/hardware/usb/1.1/Usb.vts.cpp",
+        "android/hardware/usb/1.1/UsbCallback.vts.cpp",
+        "android/hardware/usb/1.1/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.usb@1.1-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.usb@1.1 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/usb/1.1/ $(genDir)/android/hardware/usb/1.1/",
+    srcs: [
+        ":android.hardware.usb@1.1_hal",
+    ],
+    out: [
+        "android/hardware/usb/1.1/Usb.vts.h",
+        "android/hardware/usb/1.1/UsbCallback.vts.h",
+        "android/hardware/usb/1.1/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.usb@1.1-vts.driver",
+    generated_sources: ["android.hardware.usb@1.1-vts.driver_genc++"],
+    generated_headers: ["android.hardware.usb@1.1-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.usb@1.1-vts.driver_genc++_headers"],
+    shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libprotobuf-cpp-full",
+        "libutils",
+        "libvts_common",
+        "libvts_datatype",
+        "libvts_drivercomm",
+        "libvts_measurement",
+        "libvts_multidevice_proto",
+        "android.hidl.allocator@1.0",
+        "android.hardware.usb@1.1",
+        "android.hardware.usb@1.0",
+        "android.hardware.usb@1.0-vts.driver",
+    ],
+    export_shared_lib_headers: [
+        "android.hardware.usb@1.0",
+        "android.hardware.usb@1.0-vts.driver",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.usb@1.1-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.usb@1.1 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/usb/1.1/ $(genDir)/android/hardware/usb/1.1/",
+    srcs: [
+        ":android.hardware.usb@1.1_hal",
+    ],
+    out: [
+        "android/hardware/usb/1.1/Usb.vts.cpp",
+        "android/hardware/usb/1.1/UsbCallback.vts.cpp",
+        "android/hardware/usb/1.1/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.usb@1.1-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.usb@1.1 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/usb/1.1/ $(genDir)/android/hardware/usb/1.1/",
+    srcs: [
+        ":android.hardware.usb@1.1_hal",
+    ],
+    out: [
+        "android/hardware/usb/1.1/Usb.vts.h",
+        "android/hardware/usb/1.1/UsbCallback.vts.h",
+        "android/hardware/usb/1.1/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.usb@1.1-vts.profiler",
+    generated_sources: ["android.hardware.usb@1.1-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.usb@1.1-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.usb@1.1-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_common",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hardware.usb@1.1",
+        "android.hardware.usb@1.0",
+        "android.hardware.usb@1.0-vts.profiler",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
diff --git a/wifi/V1_0/target/base/Android.mk b/usb/V1_1/target/Android.mk
similarity index 87%
copy from wifi/V1_0/target/base/Android.mk
copy to usb/V1_1/target/Android.mk
index c07841b..f7e4333 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/usb/V1_1/target/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalUsbV1_1Target
+VTS_CONFIG_SRC_DIR := testcases/hal/usb/V1_1/target
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/usb/V1_1/target/AndroidTest.xml
similarity index 75%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to usb/V1_1/target/AndroidTest.xml
index 4108231..4d2dc2f 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/usb/V1_1/target/AndroidTest.xml
@@ -13,7 +13,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
+<configuration description="Config for VTS VtsHalUsbV1_1Target 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"/>
@@ -21,16 +21,13 @@
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalUsbV1_1Target"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalUsbV1_1TargetTest/VtsHalUsbV1_1TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalUsbV1_1TargetTest/VtsHalUsbV1_1TargetTest"/>
         <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.wifi@1.0"/>
+        <option name="precondition-lshal" value="android.hardware.usb@1.1"/>
         <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>
diff --git a/vibrator/Android.bp b/vibrator/Android.bp
index cdc8905..2e98897 100644
--- a/vibrator/Android.bp
+++ b/vibrator/Android.bp
@@ -3,4 +3,5 @@
 
 subdirs = [
     "V1_0",
+    "V1_1",
 ]
diff --git a/vibrator/V1_0/build/Android.bp b/vibrator/V1_0/build/Android.bp
index a314c7c..0ee0a8c 100644
--- a/vibrator/V1_0/build/Android.bp
+++ b/vibrator/V1_0/build/Android.bp
@@ -46,24 +46,35 @@
     generated_headers: ["android.hardware.vibrator@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.vibrator@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.vibrator@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -101,13 +112,25 @@
     export_generated_headers: ["android.hardware.vibrator@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.vibrator@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/vibrator/V1_0/target_replay/Android.mk b/vibrator/V1_0/target_replay/Android.mk
index 449fd95..dff0176 100644
--- a/vibrator/V1_0/target_replay/Android.mk
+++ b/vibrator/V1_0/target_replay/Android.mk
@@ -19,5 +19,5 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := VtsHalVibratorV1_0TargetReplay
-VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/V1_0/target
+VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/V1_0/target_replay
 include test/vts/tools/build/Android.host_config.mk
diff --git a/vibrator/V1_0/target_replay/AndroidTest.xml b/vibrator/V1_0/target_replay/AndroidTest.xml
index b8bbbe9..fbaa4f6 100644
--- a/vibrator/V1_0/target_replay/AndroidTest.xml
+++ b/vibrator/V1_0/target_replay/AndroidTest.xml
@@ -18,17 +18,29 @@
     <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="cleanup" value="true" />
-        <option name="push" value="spec/hardware/interfaces/vibrator/1.0/vts/Vibrator.vts->/data/local/tmp/spec/target.vts" />
+        <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"/>
         <option name="push" value="DATA/lib/android.hardware.vibrator@1.0-vts.driver.so->/data/local/tmp/32/android.hardware.vibrator@1.0-vts.driver.so"/>
         <option name="push" value="DATA/lib64/android.hardware.vibrator@1.0-vts.driver.so->/data/local/tmp/64/android.hardware.vibrator@1.0-vts.driver.so"/>
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalVibratorV1_0TargetReplay"/>
-        <option name="binary-test-type" value="hal_hidl_replay_test" />
-        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/vibrator/V1_0/android.hardware.vibrator@1.0_sailfish_1.vts.trace" />
-        <option name="hal-hidl-package-name" value="android.hardware.vibrator@1.0" />
+        <option name="binary-test-type" value="hal_hidl_replay_test"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/vibrator/V1_0/android.hardware.vibrator_1.0_21738995445.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/vibrator/V1_0/android.hardware.vibrator_1.0_21228695967.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/vibrator/V1_0/android.hardware.vibrator_1.0_18909153496.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/vibrator/V1_0/android.hardware.vibrator_1.0_357011271760.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/vibrator/V1_0/android.hardware.vibrator_1.0_617631802097.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/vibrator/V1_0/android.hardware.vibrator_1.0_74324590214.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/vibrator/V1_0/android.hardware.vibrator_1.0_242337727264.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/vibrator/V1_0/android.hardware.vibrator_1.0_21852157903.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/vibrator/V1_0/android.hardware.vibrator_1.0_106577312906.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/vibrator/V1_0/android.hardware.vibrator_1.0_23569480470.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/vibrator/V1_0/android.hardware.vibrator_1.0_3442286814892.vts.trace"/>
+        <option name="hal-hidl-package-name" value="android.hardware.vibrator@1.0"/>
+        <option name="precondition-lshal" value="android.hardware.vibrator@1.0"/>
         <option name="test-timeout" value="5m"/>
     </test>
 </configuration>
diff --git a/automotive/vehicle/V2_1/Android.bp b/vibrator/V1_1/Android.bp
similarity index 100%
copy from automotive/vehicle/V2_1/Android.bp
copy to vibrator/V1_1/Android.bp
diff --git a/vibrator/V1_1/build/Android.bp b/vibrator/V1_1/build/Android.bp
new file mode 100644
index 0000000..2c8e8d6
--- /dev/null
+++ b/vibrator/V1_1/build/Android.bp
@@ -0,0 +1,139 @@
+// This file was auto-generated. Do not edit manually.
+// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.vibrator@1.1-vts.spec",
+    srcs: [
+        ":android.hardware.vibrator@1.1_hal",
+    ],
+    out: [
+        "android/hardware/vibrator/1.1/Vibrator.vts",
+        "android/hardware/vibrator/1.1/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.vibrator@1.1-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.vibrator@1.1 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/vibrator/1.1/ $(genDir)/android/hardware/vibrator/1.1/",
+    srcs: [
+        ":android.hardware.vibrator@1.1_hal",
+    ],
+    out: [
+        "android/hardware/vibrator/1.1/Vibrator.vts.cpp",
+        "android/hardware/vibrator/1.1/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.vibrator@1.1-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.vibrator@1.1 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/vibrator/1.1/ $(genDir)/android/hardware/vibrator/1.1/",
+    srcs: [
+        ":android.hardware.vibrator@1.1_hal",
+    ],
+    out: [
+        "android/hardware/vibrator/1.1/Vibrator.vts.h",
+        "android/hardware/vibrator/1.1/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.vibrator@1.1-vts.driver",
+    generated_sources: ["android.hardware.vibrator@1.1-vts.driver_genc++"],
+    generated_headers: ["android.hardware.vibrator@1.1-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.vibrator@1.1-vts.driver_genc++_headers"],
+    shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libprotobuf-cpp-full",
+        "libutils",
+        "libvts_common",
+        "libvts_datatype",
+        "libvts_drivercomm",
+        "libvts_measurement",
+        "libvts_multidevice_proto",
+        "android.hidl.allocator@1.0",
+        "android.hardware.vibrator@1.1",
+        "android.hardware.vibrator@1.0",
+        "android.hardware.vibrator@1.0-vts.driver",
+    ],
+    export_shared_lib_headers: [
+        "android.hardware.vibrator@1.0",
+        "android.hardware.vibrator@1.0-vts.driver",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.vibrator@1.1-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.vibrator@1.1 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/vibrator/1.1/ $(genDir)/android/hardware/vibrator/1.1/",
+    srcs: [
+        ":android.hardware.vibrator@1.1_hal",
+    ],
+    out: [
+        "android/hardware/vibrator/1.1/Vibrator.vts.cpp",
+        "android/hardware/vibrator/1.1/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.vibrator@1.1-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.vibrator@1.1 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/vibrator/1.1/ $(genDir)/android/hardware/vibrator/1.1/",
+    srcs: [
+        ":android.hardware.vibrator@1.1_hal",
+    ],
+    out: [
+        "android/hardware/vibrator/1.1/Vibrator.vts.h",
+        "android/hardware/vibrator/1.1/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.vibrator@1.1-vts.profiler",
+    generated_sources: ["android.hardware.vibrator@1.1-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.vibrator@1.1-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.vibrator@1.1-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_common",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hardware.vibrator@1.1",
+        "android.hardware.vibrator@1.0",
+        "android.hardware.vibrator@1.0-vts.profiler",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
diff --git a/wifi/V1_0/target/base/Android.mk b/vibrator/V1_1/target/Android.mk
similarity index 87%
copy from wifi/V1_0/target/base/Android.mk
copy to vibrator/V1_1/target/Android.mk
index c07841b..a621f01 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/vibrator/V1_1/target/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalVibratorV1_1Target
+VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/V1_1/target
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/vibrator/V1_1/target/AndroidTest.xml
similarity index 72%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to vibrator/V1_1/target/AndroidTest.xml
index 4108231..bf93f3c 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/vibrator/V1_1/target/AndroidTest.xml
@@ -13,7 +13,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
+<configuration description="Config for VTS VtsHalVibratorV1_1Target 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"/>
@@ -21,16 +21,13 @@
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalVibratorV1_1Target"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalVibratorV1_1TargetTest/VtsHalVibratorV1_1TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalVibratorV1_1TargetTest/VtsHalVibratorV1_1TargetTest"/>
         <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.wifi@1.0"/>
-        <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" />
+        <option name="precondition-lshal" value="android.hardware.vibrator@1.1"/>
+        <option name="test-timeout" value="5m"/>
     </test>
 </configuration>
diff --git a/vr/V1_0/build/Android.bp b/vr/V1_0/build/Android.bp
index cac6326..1497c9c 100644
--- a/vr/V1_0/build/Android.bp
+++ b/vr/V1_0/build/Android.bp
@@ -43,24 +43,35 @@
     generated_headers: ["android.hardware.vr@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.vr@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.vr@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -96,13 +107,25 @@
     export_generated_headers: ["android.hardware.vr@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.vr@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/vr/V1_0/target/AndroidTest.xml b/vr/V1_0/target/AndroidTest.xml
index dd2fbb0..ffa3ad7 100644
--- a/vr/V1_0/target/AndroidTest.xml
+++ b/vr/V1_0/target/AndroidTest.xml
@@ -27,10 +27,6 @@
         <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"/>
-        <!-- Uncomment this and comment 'precondition-feature' to run this test
-          only on devices using binderized VR HALs.
-        <option name="precondition-hwbinder-service" value="android.hardware.vr" /> -->
-        <option name="precondition-feature" value="android.hardware.vr.high_performance" />
         <option name="precondition-lshal" value="android.hardware.vr@1.0"/>
         <option name="test-config-path" value="vts/testcases/hal/vr/V1_0/target/VrHidlTargetTest.config" />
         <option name="test-timeout" value="5m"/>
diff --git a/vr/V1_0/target_replay/AndroidTest.xml b/vr/V1_0/target_replay/AndroidTest.xml
index f054b25..ede2267 100644
--- a/vr/V1_0/target_replay/AndroidTest.xml
+++ b/vr/V1_0/target_replay/AndroidTest.xml
@@ -27,7 +27,9 @@
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalVrV1_0TargetReplay"/>
         <option name="binary-test-type" value="hal_hidl_replay_test"/>
-        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/vr/V1_0/android.hardware.vr@1.0_sailfish_1.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/vr/V1_0/android.hardware.vr_1.0_414639701250.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/vr/V1_0/android.hardware.vr_1.0_703509813153.vts.trace"/>
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/vr/V1_0/android.hardware.vr_1.0_45605331051.vts.trace"/>
         <option name="hal-hidl-package-name" value="android.hardware.vr@1.0"/>
         <option name="precondition-lshal" value="android.hardware.vr@1.0"/>
         <option name="test-timeout" value="5m"/>
diff --git a/tests/versioning/V2_2/Android.bp b/weaver/Android.bp
similarity index 91%
copy from tests/versioning/V2_2/Android.bp
copy to weaver/Android.bp
index 995dd5b..cdc8905 100644
--- a/tests/versioning/V2_2/Android.bp
+++ b/weaver/Android.bp
@@ -2,5 +2,5 @@
 // Use test/vts-testcase/hal/update_makefiles.py to generate this file.
 
 subdirs = [
-    "*",
+    "V1_0",
 ]
diff --git a/tests/versioning/V1_0/Android.bp b/weaver/V1_0/Android.bp
similarity index 100%
copy from tests/versioning/V1_0/Android.bp
copy to weaver/V1_0/Android.bp
diff --git a/weaver/V1_0/build/Android.bp b/weaver/V1_0/build/Android.bp
new file mode 100644
index 0000000..dd9da7d
--- /dev/null
+++ b/weaver/V1_0/build/Android.bp
@@ -0,0 +1,136 @@
+// This file was auto-generated. Do not edit manually.
+// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.weaver@1.0-vts.spec",
+    srcs: [
+        ":android.hardware.weaver@1.0_hal",
+    ],
+    out: [
+        "android/hardware/weaver/1.0/Weaver.vts",
+        "android/hardware/weaver/1.0/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.weaver@1.0-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.weaver@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/weaver/1.0/ $(genDir)/android/hardware/weaver/1.0/",
+    srcs: [
+        ":android.hardware.weaver@1.0_hal",
+    ],
+    out: [
+        "android/hardware/weaver/1.0/Weaver.vts.cpp",
+        "android/hardware/weaver/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.weaver@1.0-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.weaver@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/weaver/1.0/ $(genDir)/android/hardware/weaver/1.0/",
+    srcs: [
+        ":android.hardware.weaver@1.0_hal",
+    ],
+    out: [
+        "android/hardware/weaver/1.0/Weaver.vts.h",
+        "android/hardware/weaver/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.weaver@1.0-vts.driver",
+    generated_sources: ["android.hardware.weaver@1.0-vts.driver_genc++"],
+    generated_headers: ["android.hardware.weaver@1.0-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.weaver@1.0-vts.driver_genc++_headers"],
+    shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libprotobuf-cpp-full",
+        "libutils",
+        "libvts_common",
+        "libvts_datatype",
+        "libvts_drivercomm",
+        "libvts_measurement",
+        "libvts_multidevice_proto",
+        "android.hidl.allocator@1.0",
+        "android.hardware.weaver@1.0",
+        
+    ],
+    export_shared_lib_headers: [
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.weaver@1.0-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.weaver@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/weaver/1.0/ $(genDir)/android/hardware/weaver/1.0/",
+    srcs: [
+        ":android.hardware.weaver@1.0_hal",
+    ],
+    out: [
+        "android/hardware/weaver/1.0/Weaver.vts.cpp",
+        "android/hardware/weaver/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.weaver@1.0-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.weaver@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/weaver/1.0/ $(genDir)/android/hardware/weaver/1.0/",
+    srcs: [
+        ":android.hardware.weaver@1.0_hal",
+    ],
+    out: [
+        "android/hardware/weaver/1.0/Weaver.vts.h",
+        "android/hardware/weaver/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.weaver@1.0-vts.profiler",
+    generated_sources: ["android.hardware.weaver@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.weaver@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.weaver@1.0-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_common",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hardware.weaver@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
diff --git a/wifi/V1_0/target/base/Android.mk b/weaver/V1_0/target/Android.mk
similarity index 87%
copy from wifi/V1_0/target/base/Android.mk
copy to weaver/V1_0/target/Android.mk
index c07841b..d43ddba 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/weaver/V1_0/target/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalWeaverV1_0Target
+VTS_CONFIG_SRC_DIR := testcases/hal/weaver/V1_0/target
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/weaver/V1_0/target/AndroidTest.xml
similarity index 69%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to weaver/V1_0/target/AndroidTest.xml
index 4108231..ddca9a0 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/weaver/V1_0/target/AndroidTest.xml
@@ -13,7 +13,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
+<configuration description="Config for VtsHalWeaverV1_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"/>
@@ -21,16 +21,12 @@
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalWeaverV1_0Target"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWeaverV1_0TargetTest/VtsHalWeaverV1_0TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWeaverV1_0TargetTest/VtsHalWeaverV1_0TargetTest"/>
         <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.wifi@1.0"/>
-        <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" />
+        <option name="precondition-lshal" value="android.hardware.weaver@1.0"/>
+        <option name="test-timeout" value="5m"/>
     </test>
 </configuration>
diff --git a/wifi/V1_0/target/base/Android.mk b/weaver/V1_0/target_profiling/Android.mk
similarity index 85%
copy from wifi/V1_0/target/base/Android.mk
copy to weaver/V1_0/target_profiling/Android.mk
index c07841b..83cf51e 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/weaver/V1_0/target_profiling/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalWeaverV1_0TargetProfiling
+VTS_CONFIG_SRC_DIR := testcases/hal/weaver/V1_0/target_profiling
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/weaver/V1_0/target_profiling/AndroidTest.xml
similarity index 62%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to weaver/V1_0/target_profiling/AndroidTest.xml
index 4108231..0cd55fb 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/weaver/V1_0/target_profiling/AndroidTest.xml
@@ -13,24 +13,25 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-hal" />
+<configuration description="Config for VTS VtsHalWeaverV1_0TargetProfiling test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-hal-profiling" />
     <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"/>
+        <option name="push-group" value="HalHidlTargetProfilingTest.push"/>
+        <option name="cleanup" value="true"/>
+        <option name="push" value="DATA/lib/android.hardware.weaver@1.0-vts.profiler.so->/data/local/tmp/32/android.hardware.weaver@1.0-vts.profiler.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.weaver@1.0-vts.profiler.so->/data/local/tmp/64/android.hardware.weaver@1.0-vts.profiler.so"/>
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalWeaverV1_0TargetProfiling"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWeaverV1_0TargetTest/VtsHalWeaverV1_0TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWeaverV1_0TargetTest/VtsHalWeaverV1_0TargetTest"/>
         <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.wifi@1.0"/>
-        <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" />
+        <option name="enable-profiling" value="true"/>
+        <option name="precondition-lshal" value="android.hardware.weaver@1.0"/>
+        <option name="test-timeout" value="5m"/>
     </test>
 </configuration>
diff --git a/wifi/Android.bp b/wifi/Android.bp
index 0246948..9a6ba16 100644
--- a/wifi/Android.bp
+++ b/wifi/Android.bp
@@ -3,5 +3,7 @@
 
 subdirs = [
     "V1_0",
+    "V1_1",
+    "offload/V1_0",
     "supplicant/V1_0",
 ]
diff --git a/wifi/V1_0/__init__.py b/wifi/V1_0/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wifi/V1_0/__init__.py
diff --git a/wifi/V1_0/build/Android.bp b/wifi/V1_0/build/Android.bp
index 69f070c..1951f58 100644
--- a/wifi/V1_0/build/Android.bp
+++ b/wifi/V1_0/build/Android.bp
@@ -82,24 +82,35 @@
     generated_headers: ["android.hardware.wifi@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.wifi@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.wifi@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -161,13 +172,25 @@
     export_generated_headers: ["android.hardware.wifi@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.wifi@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
diff --git a/wifi/V1_0/target/base/Android.mk b/wifi/V1_0/host/Android.mk
similarity index 87%
copy from wifi/V1_0/target/base/Android.mk
copy to wifi/V1_0/host/Android.mk
index c07841b..aafaebb 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/wifi/V1_0/host/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalWifiV1_0Host
+VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/host
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/wifi/V1_0/host/AndroidTest.xml
similarity index 70%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to wifi/V1_0/host/AndroidTest.xml
index 4108231..08a3de9 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/wifi/V1_0/host/AndroidTest.xml
@@ -13,24 +13,22 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
+<configuration description="Config for VTS VtsHalWifiV1_0Host 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"/>
+        <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.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
+        <option name="test-module-name" value="VtsHalWifiV1_0Host"/>
+        <option name="test-case-path" value="vts/testcases/hal/wifi/V1_0/host/VtsHalWifiV1_0HostTest"/>
         <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
         <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <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.wifi@1.0"/>
-        <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" />
+        <option name="test-timeout" value="10m"/>
     </test>
 </configuration>
diff --git a/wifi/V1_0/host/VtsHalWifiV1_0HostTest.py b/wifi/V1_0/host/VtsHalWifiV1_0HostTest.py
new file mode 100644
index 0000000..c2c313d
--- /dev/null
+++ b/wifi/V1_0/host/VtsHalWifiV1_0HostTest.py
@@ -0,0 +1,60 @@
+#!/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 const
+from vts.runners.host import test_runner
+from vts.testcases.template.hal_hidl_gtest import hal_hidl_gtest
+from vts.testcases.hal.wifi.V1_0.host import VtsHalWifiV1_0TestCase as wifi_test_case
+
+
+class VtsHalWifiV1_0Host(hal_hidl_gtest.HidlHalGTest):
+    """Host test class to run the WiFi V1.0 HAL's VTS tests."""
+
+    WIFI_AWARE_FEATURE_NAME = "android.hardware.wifi.aware"
+
+    def CreateTestCases(self):
+        """Get all registered test components and create test case objects."""
+        pm_list = self.shell.Execute("pm list features")
+        self._nan_on = self.WIFI_AWARE_FEATURE_NAME in pm_list[const.STDOUT][0]
+        logging.info("Wifi NaN Feature Supported: %s", self._nan_on)
+        super(VtsHalWifiV1_0Host, self).CreateTestCases()
+
+    # @Override
+    def CreateTestCase(self, path, tag=''):
+        """Create a list of VtsHalWifiV1_0TestCase objects.
+
+        Args:
+            path: string, absolute path of a gtest binary on device
+            tag: string, a tag that will be appended to the end of test name
+
+        Returns:
+            A list of VtsHalWifiV1_0TestCase objects
+        """
+        gtest_cases = super(VtsHalWifiV1_0Host, self).CreateTestCase(path, tag)
+        test_cases = []
+        for gtest_case in gtest_cases:
+            test_case = wifi_test_case.VtsHalWifiV1_0TestCase(
+                self._nan_on, gtest_case.full_name, gtest_case.test_name, path)
+            test_cases.append(test_case)
+        logging.info("num of test_testcases: %s", len(test_cases))
+        return test_cases
+
+
+if __name__ == "__main__":
+    test_runner.main()
diff --git a/wifi/V1_0/host/VtsHalWifiV1_0TestCase.py b/wifi/V1_0/host/VtsHalWifiV1_0TestCase.py
new file mode 100644
index 0000000..bc8af65
--- /dev/null
+++ b/wifi/V1_0/host/VtsHalWifiV1_0TestCase.py
@@ -0,0 +1,38 @@
+#
+# 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.
+#
+
+from vts.testcases.template.gtest_binary_test import gtest_test_case
+
+class VtsHalWifiV1_0TestCase(gtest_test_case.GtestTestCase):
+    """A class to represent a WiFi HAL VTS test case.
+
+    Attributes:
+        _nan: boolean, whether WiFi NAN feature is supported on the device.
+    """
+
+    def __init__(self, nan, *args, **kwargs):
+        super(VtsHalWifiV1_0TestCase, self).__init__(*args, **kwargs)
+        self._nan = nan
+
+    # @Override
+    def GetRunCommand(self):
+        """Get the command to run the test. """
+        orig_cmds = super(VtsHalWifiV1_0TestCase,
+                          self).GetRunCommand(test_name=self.test_suite),
+        new_cmd = [('{cmd}{nan_on}').format(
+            cmd=orig_cmds[0][0], nan_on=" --nan_on" if self._nan else ""),
+            orig_cmds[0][1]]
+        return new_cmd
diff --git a/wifi/V1_0/host/__init__.py b/wifi/V1_0/host/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wifi/V1_0/host/__init__.py
diff --git a/wifi/V1_0/target/nan/AndroidTest.xml b/wifi/V1_0/target/nan/AndroidTest.xml
index 8435382..f251669 100644
--- a/wifi/V1_0/target/nan/AndroidTest.xml
+++ b/wifi/V1_0/target/nan/AndroidTest.xml
@@ -25,6 +25,8 @@
         <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiNanV1_0TargetTest/VtsHalWifiNanV1_0TargetTest" />
         <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiNanV1_0TargetTest/VtsHalWifiNanV1_0TargetTest" />
         <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-feature" value="android.hardware.wifi.aware" />
         <option name="test-timeout" value="15m"/>
     </test>
diff --git a/automotive/vehicle/V2_1/Android.bp b/wifi/V1_1/Android.bp
similarity index 100%
copy from automotive/vehicle/V2_1/Android.bp
copy to wifi/V1_1/Android.bp
diff --git a/wifi/V1_1/build/Android.bp b/wifi/V1_1/build/Android.bp
new file mode 100644
index 0000000..5d30b7a
--- /dev/null
+++ b/wifi/V1_1/build/Android.bp
@@ -0,0 +1,139 @@
+// This file was auto-generated. Do not edit manually.
+// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.wifi@1.1-vts.spec",
+    srcs: [
+        ":android.hardware.wifi@1.1_hal",
+    ],
+    out: [
+        "android/hardware/wifi/1.1/Wifi.vts",
+        "android/hardware/wifi/1.1/WifiChip.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.wifi@1.1-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.wifi@1.1 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/wifi/1.1/ $(genDir)/android/hardware/wifi/1.1/",
+    srcs: [
+        ":android.hardware.wifi@1.1_hal",
+    ],
+    out: [
+        "android/hardware/wifi/1.1/Wifi.vts.cpp",
+        "android/hardware/wifi/1.1/WifiChip.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.wifi@1.1-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.wifi@1.1 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/wifi/1.1/ $(genDir)/android/hardware/wifi/1.1/",
+    srcs: [
+        ":android.hardware.wifi@1.1_hal",
+    ],
+    out: [
+        "android/hardware/wifi/1.1/Wifi.vts.h",
+        "android/hardware/wifi/1.1/WifiChip.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.wifi@1.1-vts.driver",
+    generated_sources: ["android.hardware.wifi@1.1-vts.driver_genc++"],
+    generated_headers: ["android.hardware.wifi@1.1-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.wifi@1.1-vts.driver_genc++_headers"],
+    shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libprotobuf-cpp-full",
+        "libutils",
+        "libvts_common",
+        "libvts_datatype",
+        "libvts_drivercomm",
+        "libvts_measurement",
+        "libvts_multidevice_proto",
+        "android.hidl.allocator@1.0",
+        "android.hardware.wifi@1.1",
+        "android.hardware.wifi@1.0",
+        "android.hardware.wifi@1.0-vts.driver",
+    ],
+    export_shared_lib_headers: [
+        "android.hardware.wifi@1.0",
+        "android.hardware.wifi@1.0-vts.driver",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.wifi@1.1-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.wifi@1.1 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/wifi/1.1/ $(genDir)/android/hardware/wifi/1.1/",
+    srcs: [
+        ":android.hardware.wifi@1.1_hal",
+    ],
+    out: [
+        "android/hardware/wifi/1.1/Wifi.vts.cpp",
+        "android/hardware/wifi/1.1/WifiChip.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.wifi@1.1-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.wifi@1.1 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/wifi/1.1/ $(genDir)/android/hardware/wifi/1.1/",
+    srcs: [
+        ":android.hardware.wifi@1.1_hal",
+    ],
+    out: [
+        "android/hardware/wifi/1.1/Wifi.vts.h",
+        "android/hardware/wifi/1.1/WifiChip.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.wifi@1.1-vts.profiler",
+    generated_sources: ["android.hardware.wifi@1.1-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.wifi@1.1-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.wifi@1.1-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_common",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hardware.wifi@1.1",
+        "android.hardware.wifi@1.0",
+        "android.hardware.wifi@1.0-vts.profiler",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
diff --git a/wifi/V1_0/target/base/Android.mk b/wifi/V1_1/target/base/Android.mk
similarity index 88%
rename from wifi/V1_0/target/base/Android.mk
rename to wifi/V1_1/target/base/Android.mk
index c07841b..fe7cc16 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/wifi/V1_1/target/base/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalWifiV1_1Target
+VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_1/target/base
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/wifi/V1_1/target/base/AndroidTest.xml
similarity index 87%
rename from wifi/V1_0/target/base/AndroidTest.xml
rename to wifi/V1_1/target/base/AndroidTest.xml
index 4108231..f871102 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/wifi/V1_1/target/base/AndroidTest.xml
@@ -13,7 +13,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
+<configuration description="Config for VTS VtsHalWifiV1_1Target 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"/>
@@ -21,13 +21,13 @@
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalWifiV1_1Target"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_1TargetTest/VtsHalWifiV1_1TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_1TargetTest/VtsHalWifiV1_1TargetTest" />
         <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.wifi@1.0"/>
+        <option name="precondition-lshal" value="android.hardware.wifi@1.1"/>
         <option name="test-timeout" value="15m"/>
         <option name="runtime-hint" value="5m"/>
         <!-- b/114117679: VtsHalWifiV1_0Target 2 failed test cases (waiver) -->
diff --git a/wifi/V1_0/target/base/Android.mk b/wifi/V1_1/target_profiling/base/Android.mk
similarity index 85%
copy from wifi/V1_0/target/base/Android.mk
copy to wifi/V1_1/target_profiling/base/Android.mk
index c07841b..07726c3 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/wifi/V1_1/target_profiling/base/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalWifiV1_1TargetProfiling
+VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_1/target_profiling/base
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/wifi/V1_1/target_profiling/base/AndroidTest.xml
similarity index 65%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to wifi/V1_1/target_profiling/base/AndroidTest.xml
index 4108231..c934478 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/wifi/V1_1/target_profiling/base/AndroidTest.xml
@@ -13,24 +13,25 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-hal" />
+<configuration description="Config for VTS VtsHalWifiV1_1TargetProfiling test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-hal-profiling" />
     <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"/>
+        <option name="push-group" value="HalHidlTargetProfilingTest.push"/>
+        <option name="cleanup" value="true"/>
+        <option name="push" value="DATA/lib/android.hardware.wifi@1.1-vts.profiler.so->/data/local/tmp/32/android.hardware.wifi@1.1-vts.profiler.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.wifi@1.1-vts.profiler.so->/data/local/tmp/64/android.hardware.wifi@1.1-vts.profiler.so"/>
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalWifiV1_1TargetProfiling"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_1TargetTest/VtsHalWifiV1_1TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_1TargetTest/VtsHalWifiV1_1TargetTest" />
         <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.wifi@1.0"/>
+        <option name="enable-profiling" value="true"/>
+        <option name="precondition-lshal" value="android.hardware.wifi@1.1"/>
         <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>
diff --git a/wifi/__init__.py b/wifi/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wifi/__init__.py
diff --git a/tests/versioning/V1_0/Android.bp b/wifi/offload/V1_0/Android.bp
similarity index 100%
copy from tests/versioning/V1_0/Android.bp
copy to wifi/offload/V1_0/Android.bp
diff --git a/wifi/offload/V1_0/build/Android.bp b/wifi/offload/V1_0/build/Android.bp
new file mode 100644
index 0000000..d64f0b4
--- /dev/null
+++ b/wifi/offload/V1_0/build/Android.bp
@@ -0,0 +1,141 @@
+// This file was auto-generated. Do not edit manually.
+// Use test/vts-testcase/hal/update_makefiles.py to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.wifi.offload@1.0-vts.spec",
+    srcs: [
+        ":android.hardware.wifi.offload@1.0_hal",
+    ],
+    out: [
+        "android/hardware/wifi/offload/1.0/Offload.vts",
+        "android/hardware/wifi/offload/1.0/OffloadCallback.vts",
+        "android/hardware/wifi/offload/1.0/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.wifi.offload@1.0-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.wifi.offload@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/wifi/offload/1.0/ $(genDir)/android/hardware/wifi/offload/1.0/",
+    srcs: [
+        ":android.hardware.wifi.offload@1.0_hal",
+    ],
+    out: [
+        "android/hardware/wifi/offload/1.0/Offload.vts.cpp",
+        "android/hardware/wifi/offload/1.0/OffloadCallback.vts.cpp",
+        "android/hardware/wifi/offload/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.wifi.offload@1.0-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.wifi.offload@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/wifi/offload/1.0/ $(genDir)/android/hardware/wifi/offload/1.0/",
+    srcs: [
+        ":android.hardware.wifi.offload@1.0_hal",
+    ],
+    out: [
+        "android/hardware/wifi/offload/1.0/Offload.vts.h",
+        "android/hardware/wifi/offload/1.0/OffloadCallback.vts.h",
+        "android/hardware/wifi/offload/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.wifi.offload@1.0-vts.driver",
+    generated_sources: ["android.hardware.wifi.offload@1.0-vts.driver_genc++"],
+    generated_headers: ["android.hardware.wifi.offload@1.0-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.wifi.offload@1.0-vts.driver_genc++_headers"],
+    shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libprotobuf-cpp-full",
+        "libutils",
+        "libvts_common",
+        "libvts_datatype",
+        "libvts_drivercomm",
+        "libvts_measurement",
+        "libvts_multidevice_proto",
+        "android.hidl.allocator@1.0",
+        "android.hardware.wifi.offload@1.0",
+        
+    ],
+    export_shared_lib_headers: [
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.wifi.offload@1.0-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.wifi.offload@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/wifi/offload/1.0/ $(genDir)/android/hardware/wifi/offload/1.0/",
+    srcs: [
+        ":android.hardware.wifi.offload@1.0_hal",
+    ],
+    out: [
+        "android/hardware/wifi/offload/1.0/Offload.vts.cpp",
+        "android/hardware/wifi/offload/1.0/OffloadCallback.vts.cpp",
+        "android/hardware/wifi/offload/1.0/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.wifi.offload@1.0-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.wifi.offload@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/wifi/offload/1.0/ $(genDir)/android/hardware/wifi/offload/1.0/",
+    srcs: [
+        ":android.hardware.wifi.offload@1.0_hal",
+    ],
+    out: [
+        "android/hardware/wifi/offload/1.0/Offload.vts.h",
+        "android/hardware/wifi/offload/1.0/OffloadCallback.vts.h",
+        "android/hardware/wifi/offload/1.0/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.wifi.offload@1.0-vts.profiler",
+    generated_sources: ["android.hardware.wifi.offload@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.wifi.offload@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.wifi.offload@1.0-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libcutils",
+        "libfmq",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_common",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hardware.wifi.offload@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
+    ],
+}
+
diff --git a/wifi/V1_0/target/base/Android.mk b/wifi/offload/V1_0/target/Android.mk
similarity index 86%
copy from wifi/V1_0/target/base/Android.mk
copy to wifi/offload/V1_0/target/Android.mk
index c07841b..b53ece1 100644
--- a/wifi/V1_0/target/base/Android.mk
+++ b/wifi/offload/V1_0/target/Android.mk
@@ -18,6 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiV1_0Target
-VTS_CONFIG_SRC_DIR := testcases/hal/wifi/V1_0/target/base
+LOCAL_MODULE := VtsHalWifiOffloadV1_0Target
+VTS_CONFIG_SRC_DIR := testcases/hal/wifi/offload/V1_0/target
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/V1_0/target/base/AndroidTest.xml b/wifi/offload/V1_0/target/AndroidTest.xml
similarity index 72%
copy from wifi/V1_0/target/base/AndroidTest.xml
copy to wifi/offload/V1_0/target/AndroidTest.xml
index 4108231..aff2581 100644
--- a/wifi/V1_0/target/base/AndroidTest.xml
+++ b/wifi/offload/V1_0/target/AndroidTest.xml
@@ -13,7 +13,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiV1_0Target test cases">
+<configuration description="Config for VTS VtsHalWifiOffloadV1_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"/>
@@ -21,16 +21,13 @@
     </target_preparer>
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="test-module-name" value="VtsHalWifiOffloadV1_0Target"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiOffloadV1_0TargetTest/VtsHalWifiOffloadV1_0TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiOffloadV1_0TargetTest/VtsHalWifiOffloadV1_0TargetTest"/>
         <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.wifi@1.0"/>
-        <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" />
+        <option name="precondition-lshal" value="android.hardware.wifi.offload@1.0"/>
+        <option name="test-timeout" value="1m"/>
     </test>
 </configuration>
diff --git a/wifi/supplicant/V1_0/build/Android.bp b/wifi/supplicant/V1_0/build/Android.bp
index 169634a..ef5841c 100644
--- a/wifi/supplicant/V1_0/build/Android.bp
+++ b/wifi/supplicant/V1_0/build/Android.bp
@@ -79,24 +79,35 @@
     generated_headers: ["android.hardware.wifi.supplicant@1.0-vts.driver_genc++_headers"],
     export_generated_headers: ["android.hardware.wifi.supplicant@1.0-vts.driver_genc++_headers"],
     shared_libs: [
+        "libcamera_metadata",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
         "libhwbinder",
         "liblog",
+        "libprotobuf-cpp-full",
         "libutils",
-        "libcutils",
         "libvts_common",
         "libvts_datatype",
         "libvts_drivercomm",
         "libvts_measurement",
         "libvts_multidevice_proto",
-        "libcamera_metadata",
-        "libprotobuf-cpp-full",
+        "android.hidl.allocator@1.0",
         "android.hardware.wifi.supplicant@1.0",
-        "android.hidl.base@1.0",
+        
     ],
     export_shared_lib_headers: [
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }
 
@@ -156,13 +167,25 @@
     export_generated_headers: ["android.hardware.wifi.supplicant@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
+        "libcutils",
+        "libfmq",
         "libhidlbase",
         "libhidltransport",
+        "libvts_common",
         "libvts_profiling",
         "libvts_multidevice_proto",
         "libprotobuf-cpp-full",
         "android.hardware.wifi.supplicant@1.0",
-        "android.hidl.base@1.0",
+        
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+
+        // These warnings are in code generated with vtsc
+        // b/31362043
+        "-Wno-duplicate-decl-specifier",
+        "-Wno-implicitly-unsigned-literal",
     ],
 }