Support driver/profiler for all hals.

* Update the make file to generate driver/profiler for hals.

Test: mma
Change-Id: I2a91d913b05beb8e1ecf28a205852f848ef1f5ee
diff --git a/benchmarks/msgq/1.0/Android.bp b/benchmarks/msgq/1.0/Android.bp
index b6f4bfd..8c853d8 100644
--- a/benchmarks/msgq/1.0/Android.bp
+++ b/benchmarks/msgq/1.0/Android.bp
@@ -50,3 +50,98 @@
         "android.hidl.base@1.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.benchmarks.msgq.vts.driver@1.0_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.benchmarks.msgq@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/benchmarks/msgq/1.0/ $(genDir)/android/hardware/benchmarks/msgq/1.0/",
+    srcs: [
+        "IBenchmarkMsgQ.hal",
+    ],
+    out: [
+        "android/hardware/benchmarks/msgq/1.0/BenchmarkMsgQ.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.benchmarks.msgq.vts.driver@1.0_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.benchmarks.msgq@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/benchmarks/msgq/1.0/ $(genDir)/android/hardware/benchmarks/msgq/1.0/",
+    srcs: [
+        "IBenchmarkMsgQ.hal",
+    ],
+    out: [
+        "android/hardware/benchmarks/msgq/1.0/BenchmarkMsgQ.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.benchmarks.msgq.vts.driver@1.0",
+    generated_sources: ["android.hardware.benchmarks.msgq.vts.driver@1.0_genc++"],
+    generated_headers: ["android.hardware.benchmarks.msgq.vts.driver@1.0_genc++_headers"],
+    export_generated_headers: ["android.hardware.benchmarks.msgq.vts.driver@1.0_genc++_headers"],
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libvts_common",
+        "libvts_datatype",
+        "libvts_measurement",
+        "libvts_multidevice_proto",
+        "libcamera_metadata",
+        "libprotobuf-cpp-full",
+        "android.hidl.base@1.0",
+        "android.hardware.benchmarks.msgq@1.0",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "android.hidl.base@1.0",
+    ],
+}
+
+genrule {
+    name: "android.hardware.benchmarks.msgq@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.benchmarks.msgq@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/benchmarks/msgq/1.0/ $(genDir)/android/hardware/benchmarks/msgq/1.0/",
+    srcs: [
+        "IBenchmarkMsgQ.hal",
+    ],
+    out: [
+        "android/hardware/benchmarks/msgq/1.0/BenchmarkMsgQ.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.benchmarks.msgq@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.benchmarks.msgq@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/benchmarks/msgq/1.0/ $(genDir)/android/hardware/benchmarks/msgq/1.0/",
+    srcs: [
+        "IBenchmarkMsgQ.hal",
+    ],
+    out: [
+        "android/hardware/benchmarks/msgq/1.0/BenchmarkMsgQ.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.benchmarks.msgq@1.0-vts.profiler",
+    generated_sources: ["android.hardware.benchmarks.msgq@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.benchmarks.msgq@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.benchmarks.msgq@1.0-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hidl.base@1.0",
+        "android.hardware.benchmarks.msgq@1.0",
+    ],
+}
diff --git a/bluetooth/1.0/Android.bp b/bluetooth/1.0/Android.bp
index 7928fb6..f3e5a62 100644
--- a/bluetooth/1.0/Android.bp
+++ b/bluetooth/1.0/Android.bp
@@ -62,3 +62,114 @@
         "android.hidl.base@1.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.bluetooth.vts.driver@1.0_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.bluetooth@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/bluetooth/1.0/ $(genDir)/android/hardware/bluetooth/1.0/",
+    srcs: [
+        "types.hal",
+        "IBluetoothHci.hal",
+        "IBluetoothHciCallbacks.hal",
+    ],
+    out: [
+        "android/hardware/bluetooth/1.0/types.vts.cpp",
+        "android/hardware/bluetooth/1.0/BluetoothHci.vts.cpp",
+        "android/hardware/bluetooth/1.0/BluetoothHciCallbacks.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.bluetooth.vts.driver@1.0_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.bluetooth@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/bluetooth/1.0/ $(genDir)/android/hardware/bluetooth/1.0/",
+    srcs: [
+        "types.hal",
+        "IBluetoothHci.hal",
+        "IBluetoothHciCallbacks.hal",
+    ],
+    out: [
+        "android/hardware/bluetooth/1.0/types.vts.h",
+        "android/hardware/bluetooth/1.0/BluetoothHci.vts.h",
+        "android/hardware/bluetooth/1.0/BluetoothHciCallbacks.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.bluetooth.vts.driver@1.0",
+    generated_sources: ["android.hardware.bluetooth.vts.driver@1.0_genc++"],
+    generated_headers: ["android.hardware.bluetooth.vts.driver@1.0_genc++_headers"],
+    export_generated_headers: ["android.hardware.bluetooth.vts.driver@1.0_genc++_headers"],
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libvts_common",
+        "libvts_datatype",
+        "libvts_measurement",
+        "libvts_multidevice_proto",
+        "libcamera_metadata",
+        "libprotobuf-cpp-full",
+        "android.hidl.base@1.0",
+        "android.hardware.bluetooth@1.0",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "android.hidl.base@1.0",
+    ],
+}
+
+genrule {
+    name: "android.hardware.bluetooth@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.bluetooth@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/bluetooth/1.0/ $(genDir)/android/hardware/bluetooth/1.0/",
+    srcs: [
+        "types.hal",
+        "IBluetoothHci.hal",
+        "IBluetoothHciCallbacks.hal",
+    ],
+    out: [
+        "android/hardware/bluetooth/1.0/types.vts.cpp",
+        "android/hardware/bluetooth/1.0/BluetoothHci.vts.cpp",
+        "android/hardware/bluetooth/1.0/BluetoothHciCallbacks.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.bluetooth@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.bluetooth@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/bluetooth/1.0/ $(genDir)/android/hardware/bluetooth/1.0/",
+    srcs: [
+        "types.hal",
+        "IBluetoothHci.hal",
+        "IBluetoothHciCallbacks.hal",
+    ],
+    out: [
+        "android/hardware/bluetooth/1.0/types.vts.h",
+        "android/hardware/bluetooth/1.0/BluetoothHci.vts.h",
+        "android/hardware/bluetooth/1.0/BluetoothHciCallbacks.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.bluetooth@1.0-vts.profiler",
+    generated_sources: ["android.hardware.bluetooth@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.bluetooth@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.bluetooth@1.0-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hidl.base@1.0",
+        "android.hardware.bluetooth@1.0",
+    ],
+}
diff --git a/boot/1.0/Android.bp b/boot/1.0/Android.bp
index 8e62c89..2ac5498 100644
--- a/boot/1.0/Android.bp
+++ b/boot/1.0/Android.bp
@@ -114,38 +114,38 @@
 }
 
 genrule {
-    name: "android.hardware.boot@1.0-IBootControl-vts.profiler_genc++",
+    name: "android.hardware.boot@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.boot@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/boot/1.0/ $(genDir)/android/hardware/boot/1.0/",
     srcs: [
-        "IBootControl.hal",
         "types.hal",
+        "IBootControl.hal",
     ],
     out: [
-        "android/hardware/boot/1.0/BootControl.vts.cpp",
         "android/hardware/boot/1.0/types.vts.cpp",
+        "android/hardware/boot/1.0/BootControl.vts.cpp",
     ],
 }
 
 genrule {
-    name: "android.hardware.boot@1.0-IBootControl-vts.profiler_genc++_headers",
+    name: "android.hardware.boot@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.boot@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/boot/1.0/ $(genDir)/android/hardware/boot/1.0/",
     srcs: [
-        "IBootControl.hal",
         "types.hal",
+        "IBootControl.hal",
     ],
     out: [
-        "android/hardware/boot/1.0/BootControl.vts.h",
         "android/hardware/boot/1.0/types.vts.h",
+        "android/hardware/boot/1.0/BootControl.vts.h",
     ],
 }
 
 cc_library_shared {
-    name: "android.hardware.boot@1.0-IBootControl-vts.profiler",
-    generated_sources: ["android.hardware.boot@1.0-IBootControl-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.boot@1.0-IBootControl-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.boot@1.0-IBootControl-vts.profiler_genc++_headers"],
+    name: "android.hardware.boot@1.0-vts.profiler",
+    generated_sources: ["android.hardware.boot@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.boot@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.boot@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
         "libhidlbase",
diff --git a/ir/1.0/Android.bp b/ir/1.0/Android.bp
index fb9f070..45e308a 100644
--- a/ir/1.0/Android.bp
+++ b/ir/1.0/Android.bp
@@ -114,38 +114,38 @@
 }
 
 genrule {
-    name: "android.hardware.ir@1.0-IConsumerIr-vts.profiler_genc++",
+    name: "android.hardware.ir@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.ir@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/ir/1.0/ $(genDir)/android/hardware/ir/1.0/",
     srcs: [
-        "IConsumerIr.hal",
         "types.hal",
+        "IConsumerIr.hal",
     ],
     out: [
-        "android/hardware/ir/1.0/ConsumerIr.vts.cpp",
         "android/hardware/ir/1.0/types.vts.cpp",
+        "android/hardware/ir/1.0/ConsumerIr.vts.cpp",
     ],
 }
 
 genrule {
-    name: "android.hardware.ir@1.0-IConsumerIr-vts.profiler_genc++_headers",
+    name: "android.hardware.ir@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.ir@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/ir/1.0/ $(genDir)/android/hardware/ir/1.0/",
     srcs: [
-        "IConsumerIr.hal",
         "types.hal",
+        "IConsumerIr.hal",
     ],
     out: [
-        "android/hardware/ir/1.0/ConsumerIr.vts.h",
         "android/hardware/ir/1.0/types.vts.h",
+        "android/hardware/ir/1.0/ConsumerIr.vts.h",
     ],
 }
 
 cc_library_shared {
-    name: "android.hardware.ir@1.0-IConsumerIr-vts.profiler",
-    generated_sources: ["android.hardware.ir@1.0-IConsumerIr-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.ir@1.0-IConsumerIr-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.ir@1.0-IConsumerIr-vts.profiler_genc++_headers"],
+    name: "android.hardware.ir@1.0-vts.profiler",
+    generated_sources: ["android.hardware.ir@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.ir@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.ir@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
         "libhidlbase",
diff --git a/nfc/1.0/Android.bp b/nfc/1.0/Android.bp
index 0fda103..e1c06c6 100644
--- a/nfc/1.0/Android.bp
+++ b/nfc/1.0/Android.bp
@@ -126,83 +126,42 @@
 }
 
 genrule {
-    name: "android.hardware.nfc@1.0-INfc-vts.profiler_genc++",
+    name: "android.hardware.nfc@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.nfc@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/nfc/1.0/ $(genDir)/android/hardware/nfc/1.0/",
     srcs: [
-        "INfc.hal",
         "types.hal",
+        "INfc.hal",
+        "INfcClientCallback.hal",
     ],
     out: [
+        "android/hardware/nfc/1.0/types.vts.cpp",
         "android/hardware/nfc/1.0/Nfc.vts.cpp",
-        "android/hardware/nfc/1.0/types.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.nfc@1.0-INfc-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.nfc@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/nfc/1.0/ $(genDir)/android/hardware/nfc/1.0/",
-    srcs: [
-        "INfc.hal",
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/nfc/1.0/Nfc.vts.h",
-        "android/hardware/nfc/1.0/types.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.nfc@1.0-INfc-vts.profiler",
-    generated_sources: ["android.hardware.nfc@1.0-INfc-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.nfc@1.0-INfc-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.nfc@1.0-INfc-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hidl.base@1.0",
-        "android.hardware.nfc@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.nfc@1.0-INfcClientCallback-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.nfc@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/nfc/1.0/ $(genDir)/android/hardware/nfc/1.0/",
-    srcs: [
-        "INfcClientCallback.hal",
-        "types.hal",
-    ],
-    out: [
         "android/hardware/nfc/1.0/NfcClientCallback.vts.cpp",
-        "android/hardware/nfc/1.0/types.vts.cpp",
     ],
 }
 
 genrule {
-    name: "android.hardware.nfc@1.0-INfcClientCallback-vts.profiler_genc++_headers",
+    name: "android.hardware.nfc@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.nfc@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/nfc/1.0/ $(genDir)/android/hardware/nfc/1.0/",
     srcs: [
-        "INfcClientCallback.hal",
         "types.hal",
+        "INfc.hal",
+        "INfcClientCallback.hal",
     ],
     out: [
-        "android/hardware/nfc/1.0/NfcClientCallback.vts.h",
         "android/hardware/nfc/1.0/types.vts.h",
+        "android/hardware/nfc/1.0/Nfc.vts.h",
+        "android/hardware/nfc/1.0/NfcClientCallback.vts.h",
     ],
 }
 
 cc_library_shared {
-    name: "android.hardware.nfc@1.0-INfcClientCallback-vts.profiler",
-    generated_sources: ["android.hardware.nfc@1.0-INfcClientCallback-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.nfc@1.0-INfcClientCallback-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.nfc@1.0-INfcClientCallback-vts.profiler_genc++_headers"],
+    name: "android.hardware.nfc@1.0-vts.profiler",
+    generated_sources: ["android.hardware.nfc@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.nfc@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.nfc@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
         "libhidlbase",
diff --git a/radio/1.0/Android.bp b/radio/1.0/Android.bp
index e17d949..7bff574 100644
--- a/radio/1.0/Android.bp
+++ b/radio/1.0/Android.bp
@@ -162,218 +162,54 @@
 }
 
 genrule {
-    name: "android.hardware.radio@1.0-IRadio-vts.profiler_genc++",
+    name: "android.hardware.radio@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.radio@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
     srcs: [
-        "IRadio.hal",
         "types.hal",
+        "IRadio.hal",
+        "IRadioIndication.hal",
+        "IRadioResponse.hal",
+        "ISap.hal",
+        "ISapCallback.hal",
     ],
     out: [
+        "android/hardware/radio/1.0/types.vts.cpp",
         "android/hardware/radio/1.0/Radio.vts.cpp",
-        "android/hardware/radio/1.0/types.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.radio@1.0-IRadio-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.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
-    srcs: [
-        "IRadio.hal",
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/radio/1.0/Radio.vts.h",
-        "android/hardware/radio/1.0/types.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.radio@1.0-IRadio-vts.profiler",
-    generated_sources: ["android.hardware.radio@1.0-IRadio-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.radio@1.0-IRadio-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.radio@1.0-IRadio-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hidl.base@1.0",
-        "android.hardware.radio@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.radio@1.0-IRadioIndication-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.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
-    srcs: [
-        "IRadioIndication.hal",
-        "types.hal",
-    ],
-    out: [
         "android/hardware/radio/1.0/RadioIndication.vts.cpp",
-        "android/hardware/radio/1.0/types.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.radio@1.0-IRadioIndication-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.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
-    srcs: [
-        "IRadioIndication.hal",
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/radio/1.0/RadioIndication.vts.h",
-        "android/hardware/radio/1.0/types.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.radio@1.0-IRadioIndication-vts.profiler",
-    generated_sources: ["android.hardware.radio@1.0-IRadioIndication-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.radio@1.0-IRadioIndication-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.radio@1.0-IRadioIndication-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hidl.base@1.0",
-        "android.hardware.radio@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.radio@1.0-IRadioResponse-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.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
-    srcs: [
-        "IRadioResponse.hal",
-        "types.hal",
-    ],
-    out: [
         "android/hardware/radio/1.0/RadioResponse.vts.cpp",
-        "android/hardware/radio/1.0/types.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.radio@1.0-IRadioResponse-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.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
-    srcs: [
-        "IRadioResponse.hal",
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/radio/1.0/RadioResponse.vts.h",
-        "android/hardware/radio/1.0/types.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.radio@1.0-IRadioResponse-vts.profiler",
-    generated_sources: ["android.hardware.radio@1.0-IRadioResponse-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.radio@1.0-IRadioResponse-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.radio@1.0-IRadioResponse-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hidl.base@1.0",
-        "android.hardware.radio@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.radio@1.0-ISap-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.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
-    srcs: [
-        "ISap.hal",
-        "types.hal",
-    ],
-    out: [
         "android/hardware/radio/1.0/Sap.vts.cpp",
-        "android/hardware/radio/1.0/types.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.radio@1.0-ISap-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.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
-    srcs: [
-        "ISap.hal",
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/radio/1.0/Sap.vts.h",
-        "android/hardware/radio/1.0/types.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.radio@1.0-ISap-vts.profiler",
-    generated_sources: ["android.hardware.radio@1.0-ISap-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.radio@1.0-ISap-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.radio@1.0-ISap-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hidl.base@1.0",
-        "android.hardware.radio@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.radio@1.0-ISapCallback-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.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
-    srcs: [
-        "ISapCallback.hal",
-        "types.hal",
-    ],
-    out: [
         "android/hardware/radio/1.0/SapCallback.vts.cpp",
-        "android/hardware/radio/1.0/types.vts.cpp",
     ],
 }
 
 genrule {
-    name: "android.hardware.radio@1.0-ISapCallback-vts.profiler_genc++_headers",
+    name: "android.hardware.radio@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.radio@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/radio/1.0/ $(genDir)/android/hardware/radio/1.0/",
     srcs: [
-        "ISapCallback.hal",
         "types.hal",
+        "IRadio.hal",
+        "IRadioIndication.hal",
+        "IRadioResponse.hal",
+        "ISap.hal",
+        "ISapCallback.hal",
     ],
     out: [
-        "android/hardware/radio/1.0/SapCallback.vts.h",
         "android/hardware/radio/1.0/types.vts.h",
+        "android/hardware/radio/1.0/Radio.vts.h",
+        "android/hardware/radio/1.0/RadioIndication.vts.h",
+        "android/hardware/radio/1.0/RadioResponse.vts.h",
+        "android/hardware/radio/1.0/Sap.vts.h",
+        "android/hardware/radio/1.0/SapCallback.vts.h",
     ],
 }
 
 cc_library_shared {
-    name: "android.hardware.radio@1.0-ISapCallback-vts.profiler",
-    generated_sources: ["android.hardware.radio@1.0-ISapCallback-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.radio@1.0-ISapCallback-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.radio@1.0-ISapCallback-vts.profiler_genc++_headers"],
+    name: "android.hardware.radio@1.0-vts.profiler",
+    generated_sources: ["android.hardware.radio@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.radio@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.radio@1.0-vts.profiler_genc++_headers"],
     shared_libs: [
         "libbase",
         "libhidlbase",
diff --git a/wifi/1.0/Android.bp b/wifi/1.0/Android.bp
index 049d5d7..135cd2f 100644
--- a/wifi/1.0/Android.bp
+++ b/wifi/1.0/Android.bp
@@ -150,3 +150,202 @@
         "android.hidl.base@1.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.wifi.vts.driver@1.0_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.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/wifi/1.0/ $(genDir)/android/hardware/wifi/1.0/",
+    srcs: [
+        "types.hal",
+        "IWifi.hal",
+        "IWifiApIface.hal",
+        "IWifiChip.hal",
+        "IWifiChipEventCallback.hal",
+        "IWifiEventCallback.hal",
+        "IWifiIface.hal",
+        "IWifiNanIface.hal",
+        "IWifiNanIfaceEventCallback.hal",
+        "IWifiP2pIface.hal",
+        "IWifiRttController.hal",
+        "IWifiRttControllerEventCallback.hal",
+        "IWifiStaIface.hal",
+        "IWifiStaIfaceEventCallback.hal",
+    ],
+    out: [
+        "android/hardware/wifi/1.0/types.vts.cpp",
+        "android/hardware/wifi/1.0/Wifi.vts.cpp",
+        "android/hardware/wifi/1.0/WifiApIface.vts.cpp",
+        "android/hardware/wifi/1.0/WifiChip.vts.cpp",
+        "android/hardware/wifi/1.0/WifiChipEventCallback.vts.cpp",
+        "android/hardware/wifi/1.0/WifiEventCallback.vts.cpp",
+        "android/hardware/wifi/1.0/WifiIface.vts.cpp",
+        "android/hardware/wifi/1.0/WifiNanIface.vts.cpp",
+        "android/hardware/wifi/1.0/WifiNanIfaceEventCallback.vts.cpp",
+        "android/hardware/wifi/1.0/WifiP2pIface.vts.cpp",
+        "android/hardware/wifi/1.0/WifiRttController.vts.cpp",
+        "android/hardware/wifi/1.0/WifiRttControllerEventCallback.vts.cpp",
+        "android/hardware/wifi/1.0/WifiStaIface.vts.cpp",
+        "android/hardware/wifi/1.0/WifiStaIfaceEventCallback.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.wifi.vts.driver@1.0_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.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/wifi/1.0/ $(genDir)/android/hardware/wifi/1.0/",
+    srcs: [
+        "types.hal",
+        "IWifi.hal",
+        "IWifiApIface.hal",
+        "IWifiChip.hal",
+        "IWifiChipEventCallback.hal",
+        "IWifiEventCallback.hal",
+        "IWifiIface.hal",
+        "IWifiNanIface.hal",
+        "IWifiNanIfaceEventCallback.hal",
+        "IWifiP2pIface.hal",
+        "IWifiRttController.hal",
+        "IWifiRttControllerEventCallback.hal",
+        "IWifiStaIface.hal",
+        "IWifiStaIfaceEventCallback.hal",
+    ],
+    out: [
+        "android/hardware/wifi/1.0/types.vts.h",
+        "android/hardware/wifi/1.0/Wifi.vts.h",
+        "android/hardware/wifi/1.0/WifiApIface.vts.h",
+        "android/hardware/wifi/1.0/WifiChip.vts.h",
+        "android/hardware/wifi/1.0/WifiChipEventCallback.vts.h",
+        "android/hardware/wifi/1.0/WifiEventCallback.vts.h",
+        "android/hardware/wifi/1.0/WifiIface.vts.h",
+        "android/hardware/wifi/1.0/WifiNanIface.vts.h",
+        "android/hardware/wifi/1.0/WifiNanIfaceEventCallback.vts.h",
+        "android/hardware/wifi/1.0/WifiP2pIface.vts.h",
+        "android/hardware/wifi/1.0/WifiRttController.vts.h",
+        "android/hardware/wifi/1.0/WifiRttControllerEventCallback.vts.h",
+        "android/hardware/wifi/1.0/WifiStaIface.vts.h",
+        "android/hardware/wifi/1.0/WifiStaIfaceEventCallback.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.wifi.vts.driver@1.0",
+    generated_sources: ["android.hardware.wifi.vts.driver@1.0_genc++"],
+    generated_headers: ["android.hardware.wifi.vts.driver@1.0_genc++_headers"],
+    export_generated_headers: ["android.hardware.wifi.vts.driver@1.0_genc++_headers"],
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libvts_common",
+        "libvts_datatype",
+        "libvts_measurement",
+        "libvts_multidevice_proto",
+        "libcamera_metadata",
+        "libprotobuf-cpp-full",
+        "android.hidl.base@1.0",
+        "android.hardware.wifi@1.0",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "android.hidl.base@1.0",
+    ],
+}
+
+genrule {
+    name: "android.hardware.wifi@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@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/wifi/1.0/ $(genDir)/android/hardware/wifi/1.0/",
+    srcs: [
+        "types.hal",
+        "IWifi.hal",
+        "IWifiApIface.hal",
+        "IWifiChip.hal",
+        "IWifiChipEventCallback.hal",
+        "IWifiEventCallback.hal",
+        "IWifiIface.hal",
+        "IWifiNanIface.hal",
+        "IWifiNanIfaceEventCallback.hal",
+        "IWifiP2pIface.hal",
+        "IWifiRttController.hal",
+        "IWifiRttControllerEventCallback.hal",
+        "IWifiStaIface.hal",
+        "IWifiStaIfaceEventCallback.hal",
+    ],
+    out: [
+        "android/hardware/wifi/1.0/types.vts.cpp",
+        "android/hardware/wifi/1.0/Wifi.vts.cpp",
+        "android/hardware/wifi/1.0/WifiApIface.vts.cpp",
+        "android/hardware/wifi/1.0/WifiChip.vts.cpp",
+        "android/hardware/wifi/1.0/WifiChipEventCallback.vts.cpp",
+        "android/hardware/wifi/1.0/WifiEventCallback.vts.cpp",
+        "android/hardware/wifi/1.0/WifiIface.vts.cpp",
+        "android/hardware/wifi/1.0/WifiNanIface.vts.cpp",
+        "android/hardware/wifi/1.0/WifiNanIfaceEventCallback.vts.cpp",
+        "android/hardware/wifi/1.0/WifiP2pIface.vts.cpp",
+        "android/hardware/wifi/1.0/WifiRttController.vts.cpp",
+        "android/hardware/wifi/1.0/WifiRttControllerEventCallback.vts.cpp",
+        "android/hardware/wifi/1.0/WifiStaIface.vts.cpp",
+        "android/hardware/wifi/1.0/WifiStaIfaceEventCallback.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.wifi@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@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/wifi/1.0/ $(genDir)/android/hardware/wifi/1.0/",
+    srcs: [
+        "types.hal",
+        "IWifi.hal",
+        "IWifiApIface.hal",
+        "IWifiChip.hal",
+        "IWifiChipEventCallback.hal",
+        "IWifiEventCallback.hal",
+        "IWifiIface.hal",
+        "IWifiNanIface.hal",
+        "IWifiNanIfaceEventCallback.hal",
+        "IWifiP2pIface.hal",
+        "IWifiRttController.hal",
+        "IWifiRttControllerEventCallback.hal",
+        "IWifiStaIface.hal",
+        "IWifiStaIfaceEventCallback.hal",
+    ],
+    out: [
+        "android/hardware/wifi/1.0/types.vts.h",
+        "android/hardware/wifi/1.0/Wifi.vts.h",
+        "android/hardware/wifi/1.0/WifiApIface.vts.h",
+        "android/hardware/wifi/1.0/WifiChip.vts.h",
+        "android/hardware/wifi/1.0/WifiChipEventCallback.vts.h",
+        "android/hardware/wifi/1.0/WifiEventCallback.vts.h",
+        "android/hardware/wifi/1.0/WifiIface.vts.h",
+        "android/hardware/wifi/1.0/WifiNanIface.vts.h",
+        "android/hardware/wifi/1.0/WifiNanIfaceEventCallback.vts.h",
+        "android/hardware/wifi/1.0/WifiP2pIface.vts.h",
+        "android/hardware/wifi/1.0/WifiRttController.vts.h",
+        "android/hardware/wifi/1.0/WifiRttControllerEventCallback.vts.h",
+        "android/hardware/wifi/1.0/WifiStaIface.vts.h",
+        "android/hardware/wifi/1.0/WifiStaIfaceEventCallback.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.wifi@1.0-vts.profiler",
+    generated_sources: ["android.hardware.wifi@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.wifi@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.wifi@1.0-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hidl.base@1.0",
+        "android.hardware.wifi@1.0",
+    ],
+}
diff --git a/wifi/supplicant/1.0/Android.bp b/wifi/supplicant/1.0/Android.bp
index 261d940..565c3d2 100644
--- a/wifi/supplicant/1.0/Android.bp
+++ b/wifi/supplicant/1.0/Android.bp
@@ -142,3 +142,194 @@
         "android.hidl.base@1.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.wifi.supplicant.vts.driver@1.0_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.wifi.supplicant@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/wifi/supplicant/1.0/ $(genDir)/android/hardware/wifi/supplicant/1.0/",
+    srcs: [
+        "types.hal",
+        "ISupplicant.hal",
+        "ISupplicantCallback.hal",
+        "ISupplicantIface.hal",
+        "ISupplicantNetwork.hal",
+        "ISupplicantP2pIface.hal",
+        "ISupplicantP2pIfaceCallback.hal",
+        "ISupplicantP2pNetwork.hal",
+        "ISupplicantP2pNetworkCallback.hal",
+        "ISupplicantStaIface.hal",
+        "ISupplicantStaIfaceCallback.hal",
+        "ISupplicantStaNetwork.hal",
+        "ISupplicantStaNetworkCallback.hal",
+    ],
+    out: [
+        "android/hardware/wifi/supplicant/1.0/types.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/Supplicant.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantCallback.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantIface.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantNetwork.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantP2pIface.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantP2pIfaceCallback.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantP2pNetwork.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantP2pNetworkCallback.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantStaIface.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantStaIfaceCallback.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantStaNetwork.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantStaNetworkCallback.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.wifi.supplicant.vts.driver@1.0_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.supplicant@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/wifi/supplicant/1.0/ $(genDir)/android/hardware/wifi/supplicant/1.0/",
+    srcs: [
+        "types.hal",
+        "ISupplicant.hal",
+        "ISupplicantCallback.hal",
+        "ISupplicantIface.hal",
+        "ISupplicantNetwork.hal",
+        "ISupplicantP2pIface.hal",
+        "ISupplicantP2pIfaceCallback.hal",
+        "ISupplicantP2pNetwork.hal",
+        "ISupplicantP2pNetworkCallback.hal",
+        "ISupplicantStaIface.hal",
+        "ISupplicantStaIfaceCallback.hal",
+        "ISupplicantStaNetwork.hal",
+        "ISupplicantStaNetworkCallback.hal",
+    ],
+    out: [
+        "android/hardware/wifi/supplicant/1.0/types.vts.h",
+        "android/hardware/wifi/supplicant/1.0/Supplicant.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantCallback.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantIface.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantNetwork.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantP2pIface.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantP2pIfaceCallback.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantP2pNetwork.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantP2pNetworkCallback.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantStaIface.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantStaIfaceCallback.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantStaNetwork.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantStaNetworkCallback.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.wifi.supplicant.vts.driver@1.0",
+    generated_sources: ["android.hardware.wifi.supplicant.vts.driver@1.0_genc++"],
+    generated_headers: ["android.hardware.wifi.supplicant.vts.driver@1.0_genc++_headers"],
+    export_generated_headers: ["android.hardware.wifi.supplicant.vts.driver@1.0_genc++_headers"],
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libvts_common",
+        "libvts_datatype",
+        "libvts_measurement",
+        "libvts_multidevice_proto",
+        "libcamera_metadata",
+        "libprotobuf-cpp-full",
+        "android.hidl.base@1.0",
+        "android.hardware.wifi.supplicant@1.0",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "android.hidl.base@1.0",
+    ],
+}
+
+genrule {
+    name: "android.hardware.wifi.supplicant@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.supplicant@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/wifi/supplicant/1.0/ $(genDir)/android/hardware/wifi/supplicant/1.0/",
+    srcs: [
+        "types.hal",
+        "ISupplicant.hal",
+        "ISupplicantCallback.hal",
+        "ISupplicantIface.hal",
+        "ISupplicantNetwork.hal",
+        "ISupplicantP2pIface.hal",
+        "ISupplicantP2pIfaceCallback.hal",
+        "ISupplicantP2pNetwork.hal",
+        "ISupplicantP2pNetworkCallback.hal",
+        "ISupplicantStaIface.hal",
+        "ISupplicantStaIfaceCallback.hal",
+        "ISupplicantStaNetwork.hal",
+        "ISupplicantStaNetworkCallback.hal",
+    ],
+    out: [
+        "android/hardware/wifi/supplicant/1.0/types.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/Supplicant.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantCallback.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantIface.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantNetwork.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantP2pIface.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantP2pIfaceCallback.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantP2pNetwork.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantP2pNetworkCallback.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantStaIface.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantStaIfaceCallback.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantStaNetwork.vts.cpp",
+        "android/hardware/wifi/supplicant/1.0/SupplicantStaNetworkCallback.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.wifi.supplicant@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.supplicant@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/wifi/supplicant/1.0/ $(genDir)/android/hardware/wifi/supplicant/1.0/",
+    srcs: [
+        "types.hal",
+        "ISupplicant.hal",
+        "ISupplicantCallback.hal",
+        "ISupplicantIface.hal",
+        "ISupplicantNetwork.hal",
+        "ISupplicantP2pIface.hal",
+        "ISupplicantP2pIfaceCallback.hal",
+        "ISupplicantP2pNetwork.hal",
+        "ISupplicantP2pNetworkCallback.hal",
+        "ISupplicantStaIface.hal",
+        "ISupplicantStaIfaceCallback.hal",
+        "ISupplicantStaNetwork.hal",
+        "ISupplicantStaNetworkCallback.hal",
+    ],
+    out: [
+        "android/hardware/wifi/supplicant/1.0/types.vts.h",
+        "android/hardware/wifi/supplicant/1.0/Supplicant.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantCallback.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantIface.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantNetwork.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantP2pIface.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantP2pIfaceCallback.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantP2pNetwork.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantP2pNetworkCallback.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantStaIface.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantStaIfaceCallback.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantStaNetwork.vts.h",
+        "android/hardware/wifi/supplicant/1.0/SupplicantStaNetworkCallback.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.wifi.supplicant@1.0-vts.profiler",
+    generated_sources: ["android.hardware.wifi.supplicant@1.0-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.wifi.supplicant@1.0-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.wifi.supplicant@1.0-vts.profiler_genc++_headers"],
+    shared_libs: [
+        "libbase",
+        "libhidlbase",
+        "libhidltransport",
+        "libvts_profiling",
+        "libvts_multidevice_proto",
+        "libprotobuf-cpp-full",
+        "android.hidl.base@1.0",
+        "android.hardware.wifi.supplicant@1.0",
+    ],
+}