diff --git a/wifi/OWNERS b/wifi/OWNERS
new file mode 100644
index 0000000..3d11524
--- /dev/null
+++ b/wifi/OWNERS
@@ -0,0 +1,2 @@
+etancohen@google.com
+rpius@google.com
diff --git a/wifi/supplicant/V1_0/__init__.py b/wifi/supplicant/V1_0/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wifi/supplicant/V1_0/__init__.py
diff --git a/wifi/supplicant/V1_0/target/Android.mk b/wifi/supplicant/V1_0/host/Android.mk
similarity index 86%
rename from wifi/supplicant/V1_0/target/Android.mk
rename to wifi/supplicant/V1_0/host/Android.mk
index 31d2785..e7a2411 100644
--- a/wifi/supplicant/V1_0/target/Android.mk
+++ b/wifi/supplicant/V1_0/host/Android.mk
@@ -18,5 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiSupplicantV1_0Target
+LOCAL_MODULE := VtsHalWifiSupplicantV1_0Host
+VTS_CONFIG_SRC_DIR := testcases/hal/wifi/supplicant/V1_0/host
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/supplicant/V1_0/host/AndroidTest.xml b/wifi/supplicant/V1_0/host/AndroidTest.xml
new file mode 100644
index 0000000..3f1ddcf
--- /dev/null
+++ b/wifi/supplicant/V1_0/host/AndroidTest.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<configuration description="Config for VTS VtsHalWifiSupplicantV1_0Host test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-hal" />
+    <option name="config-descriptor:metadata" key="plan" value="vts-hal-host" />
+    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
+        <option name="abort-on-push-failure" value="true"/>
+        <option name="push-group" value="HalHidlHostTest.push"/>
+        <option name="cleanup" value="true"/>
+        <option name="push" value="spec/hardware/interfaces/wifi/supplicant/1.0/vts/Supplicant.vts->/data/local/tmp/spec/android/hardware/wifi/supplicant/1.0/Supplicant.vts"/>
+        <option name="push" value="spec/hardware/interfaces/wifi/supplicant/1.0/vts/SupplicantCallback.vts->/data/local/tmp/spec/android/hardware/wifi/supplicant/1.0/SupplicantCallback.vts"/>
+        <option name="push" value="spec/hardware/interfaces/wifi/supplicant/1.0/vts/SupplicantIface.vts->/data/local/tmp/spec/android/hardware/wifi/supplicant/1.0/SupplicantIface.vts"/>
+        <option name="push" value="spec/hardware/interfaces/wifi/supplicant/1.0/vts/SupplicantStaIface.vts->/data/local/tmp/spec/android/hardware/wifi/supplicant/1.0/SupplicantStaIface.vts"/>
+        <option name="push" value="spec/hardware/interfaces/wifi/supplicant/1.0/vts/SupplicantP2pIface.vts->/data/local/tmp/spec/android/hardware/wifi/supplicant/1.0/SupplicantP2pIface.vts"/>
+        <option name="push" value="spec/hardware/interfaces/wifi/supplicant/1.0/vts/SupplicantStaIfaceCallback.vts->/data/local/tmp/spec/android/hardware/wifi/supplicant/1.0/SupplicantStaIfaceCallback.vts"/>
+        <option name="push" value="spec/hardware/interfaces/wifi/supplicant/1.0/vts/SupplicantP2pIfaceCallback.vts->/data/local/tmp/spec/android/hardware/wifi/supplicant/1.0/SupplicantP2pIfaceCallback.vts"/>
+        <option name="push" value="spec/hardware/interfaces/wifi/supplicant/1.0/vts/SupplicantNetwork.vts->/data/local/tmp/spec/android/hardware/wifi/supplicant/1.0/SupplicantNetwork.vts"/>
+        <option name="push" value="spec/hardware/interfaces/wifi/supplicant/1.0/vts/SupplicantStaNetwork.vts->/data/local/tmp/spec/android/hardware/wifi/supplicant/1.0/SupplicantStaNetwork.vts"/>
+        <option name="push" value="spec/hardware/interfaces/wifi/supplicant/1.0/vts/SupplicantP2pNetwork.vts->/data/local/tmp/spec/android/hardware/wifi/supplicant/1.0/SupplicantP2pNetwork.vts"/>
+        <option name="push" value="spec/hardware/interfaces/wifi/supplicant/1.0/vts/SupplicantStaNetworkCallback.vts->/data/local/tmp/spec/android/hardware/wifi/supplicant/1.0/SupplicantStaNetworkCallback.vts"/>
+        <option name="push" value="spec/hardware/interfaces/wifi/supplicant/1.0/vts/SupplicantP2pNetworkCallback.vts->/data/local/tmp/spec/android/hardware/wifi/supplicant/1.0/SupplicantP2pNetworkCallback.vts"/>
+        <option name="push" value="spec/hardware/interfaces/wifi/supplicant/1.0/vts/types.vts->/data/local/tmp/spec/android/hardware/wifi/supplicant/1.0/types.vts"/>
+        <option name="push" value="DATA/lib/android.hardware.wifi.supplicant@1.0-vts.driver.so->/data/local/tmp/32/android.hardware.wifi.supplicant@1.0-vts.driver.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.wifi.supplicant@1.0-vts.driver.so->/data/local/tmp/64/android.hardware.wifi.supplicant@1.0-vts.driver.so"/>
+    </target_preparer>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="VtsHalWifiSupplicantV1_0Host"/>
+        <option name="test-case-path" value="vts/testcases/hal/wifi/supplicant/V1_0/host/VtsHalWifiSupplicantV1_0HostTest"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiSupplicantV1_0TargetTest/VtsHalWifiSupplicantV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiSupplicantV1_0TargetTest/VtsHalWifiSupplicantV1_0TargetTest" />
+        <option name="binary-test-stop-native-servers" value="true"/>
+        <option name="test-timeout" value="10m"/>
+    </test>
+</configuration>
diff --git a/wifi/supplicant/V1_0/host/VtsHalWifiSupplicantV1_0HostTest.py b/wifi/supplicant/V1_0/host/VtsHalWifiSupplicantV1_0HostTest.py
new file mode 100644
index 0000000..18e3071
--- /dev/null
+++ b/wifi/supplicant/V1_0/host/VtsHalWifiSupplicantV1_0HostTest.py
@@ -0,0 +1,56 @@
+#!/usr/bin/env python
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import logging
+
+from vts.runners.host import const
+from vts.runners.host import test_runner
+from vts.testcases.template.hal_hidl_gtest import hal_hidl_gtest
+
+
+class VtsHalWifiSupplicantV1_0Host(hal_hidl_gtest.HidlHalGTest):
+    """Host test class to run the WiFi Supplicant V1.0 HAL's VTS tests."""
+
+    WIFI_DIRECT_FEATURE_NAME = "android.hardware.wifi.direct"
+
+    def CreateTestCases(self):
+        """Get all registered test components and create test case objects."""
+        pm_list = self.shell.Execute("pm list features")
+        self._p2p_on = self.WIFI_DIRECT_FEATURE_NAME in pm_list[const.STDOUT][0]
+        logging.info("Wifi P2P Feature Supported: %s", self._p2p_on)
+        super(VtsHalWifiSupplicantV1_0Host, self).CreateTestCases()
+
+    # @Override
+    def CreateTestCase(self, path, tag=''):
+        """Create a list of VtsHalWifiSupplicantV1_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 VtsHalWifiSupplicantV1_0TestCase objects
+        """
+        gtest_cases = super(VtsHalWifiSupplicantV1_0Host, self).CreateTestCase(path, tag)
+        for gtest_case in gtest_cases:
+            if not self._p2p_on:
+                gtest_case.args += " --p2p_off"
+        return gtest_cases
+
+
+if __name__ == "__main__":
+    test_runner.main()
diff --git a/wifi/supplicant/V1_0/host/__init__.py b/wifi/supplicant/V1_0/host/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wifi/supplicant/V1_0/host/__init__.py
diff --git a/wifi/supplicant/V1_0/target/AndroidTest.xml b/wifi/supplicant/V1_0/target/AndroidTest.xml
deleted file mode 100644
index df7ad64..0000000
--- a/wifi/supplicant/V1_0/target/AndroidTest.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<configuration description="Config for VTS VtsHalWifiSupplicantV1_0Target test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-hal" />
-    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
-        <option name="abort-on-push-failure" value="false"/>
-        <option name="push-group" value="HalHidlTargetTest.push"/>
-    </target_preparer>
-    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiSupplicantV1_0Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiSupplicantV1_0TargetTest/VtsHalWifiSupplicantV1_0TargetTest"/>
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiSupplicantV1_0TargetTest/VtsHalWifiSupplicantV1_0TargetTest"/>
-        <option name="binary-test-type" value="hal_hidl_gtest"/>
-        <option name="binary-test-disable-framework" value="true"/>
-        <option name="test-timeout" value="30m"/>
-    </test>
-</configuration>
diff --git a/wifi/supplicant/V1_0/target/Android.mk b/wifi/supplicant/V1_0/target/p2p/Android.mk
similarity index 85%
copy from wifi/supplicant/V1_0/target/Android.mk
copy to wifi/supplicant/V1_0/target/p2p/Android.mk
index 31d2785..b0f5889 100644
--- a/wifi/supplicant/V1_0/target/Android.mk
+++ b/wifi/supplicant/V1_0/target/p2p/Android.mk
@@ -18,5 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiSupplicantV1_0Target
+LOCAL_MODULE := VtsHalWifiSupplicantP2pV1_0Target
+VTS_CONFIG_SRC_DIR := testcases/hal/wifi/supplicant/V1_0/target/p2p
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/supplicant/V1_1/target/AndroidTest.xml b/wifi/supplicant/V1_0/target/p2p/AndroidTest.xml
similarity index 76%
rename from wifi/supplicant/V1_1/target/AndroidTest.xml
rename to wifi/supplicant/V1_0/target/p2p/AndroidTest.xml
index 8dac0e9..0ab69ed 100644
--- a/wifi/supplicant/V1_1/target/AndroidTest.xml
+++ b/wifi/supplicant/V1_0/target/p2p/AndroidTest.xml
@@ -13,19 +13,20 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<configuration description="Config for VTS VtsHalWifiSupplicantV1_1Target test cases">
+<configuration description="Config for VTS VtsHalWifiSupplicantP2pV1_0Target test cases">
     <option name="config-descriptor:metadata" key="plan" value="vts-hal" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="abort-on-push-failure" value="false"/>
         <option name="push-group" value="HalHidlTargetTest.push"/>
     </target_preparer>
-    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalWifiSupplicantV1_1Target"/>
-        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiSupplicantV1_1TargetTest/VtsHalWifiSupplicantV1_1TargetTest"/>
-        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiSupplicantV1_1TargetTest/VtsHalWifiSupplicantV1_1TargetTest"/>
+        <option name="test-module-name" value="VtsHalWifiSupplicantP2pV1_0Target"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiSupplicantP2pV1_0TargetTest/VtsHalWifiSupplicantP2pV1_0TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiSupplicantP2pV1_0TargetTest/VtsHalWifiSupplicantP2pV1_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.direct" />
         <option name="test-timeout" value="30m"/>
     </test>
 </configuration>
diff --git a/wifi/supplicant/V1_1/__init__.py b/wifi/supplicant/V1_1/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wifi/supplicant/V1_1/__init__.py
diff --git a/wifi/supplicant/V1_0/target/Android.mk b/wifi/supplicant/V1_1/host/Android.mk
similarity index 86%
copy from wifi/supplicant/V1_0/target/Android.mk
copy to wifi/supplicant/V1_1/host/Android.mk
index 31d2785..a2a17b9 100644
--- a/wifi/supplicant/V1_0/target/Android.mk
+++ b/wifi/supplicant/V1_1/host/Android.mk
@@ -18,5 +18,6 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalWifiSupplicantV1_0Target
+LOCAL_MODULE := VtsHalWifiSupplicantV1_1Host
+VTS_CONFIG_SRC_DIR := testcases/hal/wifi/supplicant/V1_1/host
 include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/supplicant/V1_1/host/AndroidTest.xml b/wifi/supplicant/V1_1/host/AndroidTest.xml
new file mode 100644
index 0000000..a65b69c
--- /dev/null
+++ b/wifi/supplicant/V1_1/host/AndroidTest.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<configuration description="Config for VTS VtsHalWifiSupplicantV1_1Host test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-hal" />
+    <option name="config-descriptor:metadata" key="plan" value="vts-hal-host" />
+    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
+        <option name="abort-on-push-failure" value="true"/>
+        <option name="push-group" value="HalHidlHostTest.push"/>
+        <option name="cleanup" value="true"/>
+        <option name="push" value="spec/hardware/interfaces/wifi/supplicant/1.1/vts/Supplicant.vts->/data/local/tmp/spec/android/hardware.wifi.supplicant/1.1/Supplicant.vts"/>
+        <option name="push" value="spec/hardware/interfaces/wifi/supplicant/1.1/vts/SupplicantStaIface.vts->/data/local/tmp/spec/android/hardware.wifi.supplicant/1.1/SupplicantStaIface.vts"/>
+        <option name="push" value="spec/hardware/interfaces/wifi/supplicant/1.1/vts/SupplicantStaIfaceCallback.vts->/data/local/tmp/spec/android/hardware.wifi.supplicant/1.1/SupplicantStaIfaceCallback.vts"/>
+        <option name="push" value="spec/hardware/interfaces/wifi/supplicant/1.1/vts/SupplicantStaNetwork.vts->/data/local/tmp/spec/android/hardware.wifi.supplicant/1.1/SupplicantStaNetwork.vts"/>
+        <option name="push" value="DATA/lib/android.hardware.wifi.supplicant@1.1-vts.driver.so->/data/local/tmp/32/android.hardware.wifi.supplicant@1.1-vts.driver.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.wifi.supplicant@1.1-vts.driver.so->/data/local/tmp/64/android.hardware.wifi.supplicant@1.1-vts.driver.so"/>
+    </target_preparer>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="VtsHalWifiSupplicantV1_1Host"/>
+        <option name="test-case-path" value="vts/testcases/hal/wifi/supplicant/V1_1/host/VtsHalWifiSupplicantV1_1HostTest"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiSupplicantV1_1TargetTest/VtsHalWifiSupplicantV1_1TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiSupplicantV1_1TargetTest/VtsHalWifiSupplicantV1_1TargetTest" />
+        <option name="binary-test-stop-native-servers" value="true"/>
+        <option name="test-timeout" value="10m"/>
+    </test>
+</configuration>
diff --git a/wifi/supplicant/V1_1/host/VtsHalWifiSupplicantV1_1HostTest.py b/wifi/supplicant/V1_1/host/VtsHalWifiSupplicantV1_1HostTest.py
new file mode 100644
index 0000000..8f1fa55
--- /dev/null
+++ b/wifi/supplicant/V1_1/host/VtsHalWifiSupplicantV1_1HostTest.py
@@ -0,0 +1,56 @@
+#!/usr/bin/env python
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import logging
+
+from vts.runners.host import const
+from vts.runners.host import test_runner
+from vts.testcases.template.hal_hidl_gtest import hal_hidl_gtest
+
+
+class VtsHalWifiSupplicantV1_1Host(hal_hidl_gtest.HidlHalGTest):
+    """Host test class to run the WiFi Supplicant V1.0 HAL's VTS tests."""
+
+    WIFI_DIRECT_FEATURE_NAME = "android.hardware.wifi.direct"
+
+    def CreateTestCases(self):
+        """Get all registered test components and create test case objects."""
+        pm_list = self.shell.Execute("pm list features")
+        self._p2p_on = self.WIFI_DIRECT_FEATURE_NAME in pm_list[const.STDOUT][0]
+        logging.info("Wifi P2P Feature Supported: %s", self._p2p_on)
+        super(VtsHalWifiSupplicantV1_1Host, self).CreateTestCases()
+
+    # @Override
+    def CreateTestCase(self, path, tag=''):
+        """Create a list of VtsHalWifiSupplicantV1_1TestCase 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 VtsHalWifiSupplicantV1_1TestCase objects
+        """
+        gtest_cases = super(VtsHalWifiSupplicantV1_1Host, self).CreateTestCase(path, tag)
+        for gtest_case in gtest_cases:
+            if not self._p2p_on:
+                gtest_case.args += " --p2p_off"
+        return gtest_cases
+
+
+if __name__ == "__main__":
+    test_runner.main()
diff --git a/wifi/supplicant/V1_1/host/__init__.py b/wifi/supplicant/V1_1/host/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wifi/supplicant/V1_1/host/__init__.py
diff --git a/wifi/supplicant/V1_1/target/Android.mk b/wifi/supplicant/V1_1/target/Android.mk
deleted file mode 100644
index a3acd1f..0000000
--- a/wifi/supplicant/V1_1/target/Android.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Copyright (C) 2017 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := VtsHalWifiSupplicantV1_1Target
-include test/vts/tools/build/Android.host_config.mk
diff --git a/wifi/supplicant/__init__.py b/wifi/supplicant/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wifi/supplicant/__init__.py
