Migrate driver/profiler to test/vts-testcase/hal.

Bug: 34893894
Test: mmma hardware/interfaces

Change-Id: Ic72716577a5f93700c5056986aff55a76b170b5d
diff --git a/audio/2.0/Android.bp b/audio/2.0/Android.bp
index 1d4515d..007dc8a 100644
--- a/audio/2.0/Android.bp
+++ b/audio/2.0/Android.bp
@@ -1,5 +1,19 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.audio@2.0_hal",
+    srcs: [
+        "types.hal",
+        "IDevice.hal",
+        "IDevicesFactory.hal",
+        "IPrimaryDevice.hal",
+        "IStream.hal",
+        "IStreamIn.hal",
+        "IStreamOut.hal",
+        "IStreamOutCallback.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.audio@2.0_genc++",
     tools: ["hidl-gen"],
@@ -104,157 +118,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.audio.vts.driver@2.0_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.audio@2.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/audio/2.0/ $(genDir)/android/hardware/audio/2.0/",
-    srcs: [
-        "types.hal",
-        "IDevice.hal",
-        "IDevicesFactory.hal",
-        "IPrimaryDevice.hal",
-        "IStream.hal",
-        "IStreamIn.hal",
-        "IStreamOut.hal",
-        "IStreamOutCallback.hal",
-    ],
-    out: [
-        "android/hardware/audio/2.0/types.vts.cpp",
-        "android/hardware/audio/2.0/Device.vts.cpp",
-        "android/hardware/audio/2.0/DevicesFactory.vts.cpp",
-        "android/hardware/audio/2.0/PrimaryDevice.vts.cpp",
-        "android/hardware/audio/2.0/Stream.vts.cpp",
-        "android/hardware/audio/2.0/StreamIn.vts.cpp",
-        "android/hardware/audio/2.0/StreamOut.vts.cpp",
-        "android/hardware/audio/2.0/StreamOutCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.audio.vts.driver@2.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.audio@2.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/audio/2.0/ $(genDir)/android/hardware/audio/2.0/",
-    srcs: [
-        "types.hal",
-        "IDevice.hal",
-        "IDevicesFactory.hal",
-        "IPrimaryDevice.hal",
-        "IStream.hal",
-        "IStreamIn.hal",
-        "IStreamOut.hal",
-        "IStreamOutCallback.hal",
-    ],
-    out: [
-        "android/hardware/audio/2.0/types.vts.h",
-        "android/hardware/audio/2.0/Device.vts.h",
-        "android/hardware/audio/2.0/DevicesFactory.vts.h",
-        "android/hardware/audio/2.0/PrimaryDevice.vts.h",
-        "android/hardware/audio/2.0/Stream.vts.h",
-        "android/hardware/audio/2.0/StreamIn.vts.h",
-        "android/hardware/audio/2.0/StreamOut.vts.h",
-        "android/hardware/audio/2.0/StreamOutCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.audio.vts.driver@2.0",
-    generated_sources: ["android.hardware.audio.vts.driver@2.0_genc++"],
-    generated_headers: ["android.hardware.audio.vts.driver@2.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.audio.vts.driver@2.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.hardware.audio.common@2.0",
-        "android.hidl.base@1.0",
-        "android.hardware.audio@2.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hardware.audio.common@2.0",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.audio@2.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.audio@2.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/audio/2.0/ $(genDir)/android/hardware/audio/2.0/",
-    srcs: [
-        "types.hal",
-        "IDevice.hal",
-        "IDevicesFactory.hal",
-        "IPrimaryDevice.hal",
-        "IStream.hal",
-        "IStreamIn.hal",
-        "IStreamOut.hal",
-        "IStreamOutCallback.hal",
-    ],
-    out: [
-        "android/hardware/audio/2.0/types.vts.cpp",
-        "android/hardware/audio/2.0/Device.vts.cpp",
-        "android/hardware/audio/2.0/DevicesFactory.vts.cpp",
-        "android/hardware/audio/2.0/PrimaryDevice.vts.cpp",
-        "android/hardware/audio/2.0/Stream.vts.cpp",
-        "android/hardware/audio/2.0/StreamIn.vts.cpp",
-        "android/hardware/audio/2.0/StreamOut.vts.cpp",
-        "android/hardware/audio/2.0/StreamOutCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.audio@2.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.audio@2.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/audio/2.0/ $(genDir)/android/hardware/audio/2.0/",
-    srcs: [
-        "types.hal",
-        "IDevice.hal",
-        "IDevicesFactory.hal",
-        "IPrimaryDevice.hal",
-        "IStream.hal",
-        "IStreamIn.hal",
-        "IStreamOut.hal",
-        "IStreamOutCallback.hal",
-    ],
-    out: [
-        "android/hardware/audio/2.0/types.vts.h",
-        "android/hardware/audio/2.0/Device.vts.h",
-        "android/hardware/audio/2.0/DevicesFactory.vts.h",
-        "android/hardware/audio/2.0/PrimaryDevice.vts.h",
-        "android/hardware/audio/2.0/Stream.vts.h",
-        "android/hardware/audio/2.0/StreamIn.vts.h",
-        "android/hardware/audio/2.0/StreamOut.vts.h",
-        "android/hardware/audio/2.0/StreamOutCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.audio@2.0-vts.profiler",
-    generated_sources: ["android.hardware.audio@2.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.audio@2.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.audio@2.0-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.audio.common@2.0",
-        "android.hidl.base@1.0",
-        "android.hardware.audio@2.0",
-    ],
-}
diff --git a/audio/common/2.0/Android.bp b/audio/common/2.0/Android.bp
index 284766c..8c14995 100644
--- a/audio/common/2.0/Android.bp
+++ b/audio/common/2.0/Android.bp
@@ -1,5 +1,12 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.audio.common@2.0_hal",
+    srcs: [
+        "types.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.audio.common@2.0_genc++",
     tools: ["hidl-gen"],
@@ -44,95 +51,3 @@
         "libutils",
     ],
 }
-
-genrule {
-    name: "android.hardware.audio.common.vts.driver@2.0_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.audio.common@2.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/audio/common/2.0/ $(genDir)/android/hardware/audio/common/2.0/",
-    srcs: [
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/audio/common/2.0/types.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.audio.common.vts.driver@2.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.audio.common@2.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/audio/common/2.0/ $(genDir)/android/hardware/audio/common/2.0/",
-    srcs: [
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/audio/common/2.0/types.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.audio.common.vts.driver@2.0",
-    generated_sources: ["android.hardware.audio.common.vts.driver@2.0_genc++"],
-    generated_headers: ["android.hardware.audio.common.vts.driver@2.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.audio.common.vts.driver@2.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.hardware.audio.common@2.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-    ],
-}
-
-genrule {
-    name: "android.hardware.audio.common@2.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.audio.common@2.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/audio/common/2.0/ $(genDir)/android/hardware/audio/common/2.0/",
-    srcs: [
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/audio/common/2.0/types.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.audio.common@2.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.audio.common@2.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/audio/common/2.0/ $(genDir)/android/hardware/audio/common/2.0/",
-    srcs: [
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/audio/common/2.0/types.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.audio.common@2.0-vts.profiler",
-    generated_sources: ["android.hardware.audio.common@2.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.audio.common@2.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.audio.common@2.0-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.audio.common@2.0",
-    ],
-}
diff --git a/audio/effect/2.0/Android.bp b/audio/effect/2.0/Android.bp
index 98d6cfe..29bc890 100644
--- a/audio/effect/2.0/Android.bp
+++ b/audio/effect/2.0/Android.bp
@@ -1,5 +1,26 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.audio.effect@2.0_hal",
+    srcs: [
+        "types.hal",
+        "IAcousticEchoCancelerEffect.hal",
+        "IAutomaticGainControlEffect.hal",
+        "IBassBoostEffect.hal",
+        "IDownmixEffect.hal",
+        "IEffect.hal",
+        "IEffectBufferProviderCallback.hal",
+        "IEffectsFactory.hal",
+        "IEnvironmentalReverbEffect.hal",
+        "IEqualizerEffect.hal",
+        "ILoudnessEnhancerEffect.hal",
+        "INoiseSuppressionEffect.hal",
+        "IPresetReverbEffect.hal",
+        "IVirtualizerEffect.hal",
+        "IVisualizerEffect.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.audio.effect@2.0_genc++",
     tools: ["hidl-gen"],
@@ -160,213 +181,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.audio.effect.vts.driver@2.0_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.audio.effect@2.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/audio/effect/2.0/ $(genDir)/android/hardware/audio/effect/2.0/",
-    srcs: [
-        "types.hal",
-        "IAcousticEchoCancelerEffect.hal",
-        "IAutomaticGainControlEffect.hal",
-        "IBassBoostEffect.hal",
-        "IDownmixEffect.hal",
-        "IEffect.hal",
-        "IEffectBufferProviderCallback.hal",
-        "IEffectsFactory.hal",
-        "IEnvironmentalReverbEffect.hal",
-        "IEqualizerEffect.hal",
-        "ILoudnessEnhancerEffect.hal",
-        "INoiseSuppressionEffect.hal",
-        "IPresetReverbEffect.hal",
-        "IVirtualizerEffect.hal",
-        "IVisualizerEffect.hal",
-    ],
-    out: [
-        "android/hardware/audio/effect/2.0/types.vts.cpp",
-        "android/hardware/audio/effect/2.0/AcousticEchoCancelerEffect.vts.cpp",
-        "android/hardware/audio/effect/2.0/AutomaticGainControlEffect.vts.cpp",
-        "android/hardware/audio/effect/2.0/BassBoostEffect.vts.cpp",
-        "android/hardware/audio/effect/2.0/DownmixEffect.vts.cpp",
-        "android/hardware/audio/effect/2.0/Effect.vts.cpp",
-        "android/hardware/audio/effect/2.0/EffectBufferProviderCallback.vts.cpp",
-        "android/hardware/audio/effect/2.0/EffectsFactory.vts.cpp",
-        "android/hardware/audio/effect/2.0/EnvironmentalReverbEffect.vts.cpp",
-        "android/hardware/audio/effect/2.0/EqualizerEffect.vts.cpp",
-        "android/hardware/audio/effect/2.0/LoudnessEnhancerEffect.vts.cpp",
-        "android/hardware/audio/effect/2.0/NoiseSuppressionEffect.vts.cpp",
-        "android/hardware/audio/effect/2.0/PresetReverbEffect.vts.cpp",
-        "android/hardware/audio/effect/2.0/VirtualizerEffect.vts.cpp",
-        "android/hardware/audio/effect/2.0/VisualizerEffect.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.audio.effect.vts.driver@2.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.audio.effect@2.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/audio/effect/2.0/ $(genDir)/android/hardware/audio/effect/2.0/",
-    srcs: [
-        "types.hal",
-        "IAcousticEchoCancelerEffect.hal",
-        "IAutomaticGainControlEffect.hal",
-        "IBassBoostEffect.hal",
-        "IDownmixEffect.hal",
-        "IEffect.hal",
-        "IEffectBufferProviderCallback.hal",
-        "IEffectsFactory.hal",
-        "IEnvironmentalReverbEffect.hal",
-        "IEqualizerEffect.hal",
-        "ILoudnessEnhancerEffect.hal",
-        "INoiseSuppressionEffect.hal",
-        "IPresetReverbEffect.hal",
-        "IVirtualizerEffect.hal",
-        "IVisualizerEffect.hal",
-    ],
-    out: [
-        "android/hardware/audio/effect/2.0/types.vts.h",
-        "android/hardware/audio/effect/2.0/AcousticEchoCancelerEffect.vts.h",
-        "android/hardware/audio/effect/2.0/AutomaticGainControlEffect.vts.h",
-        "android/hardware/audio/effect/2.0/BassBoostEffect.vts.h",
-        "android/hardware/audio/effect/2.0/DownmixEffect.vts.h",
-        "android/hardware/audio/effect/2.0/Effect.vts.h",
-        "android/hardware/audio/effect/2.0/EffectBufferProviderCallback.vts.h",
-        "android/hardware/audio/effect/2.0/EffectsFactory.vts.h",
-        "android/hardware/audio/effect/2.0/EnvironmentalReverbEffect.vts.h",
-        "android/hardware/audio/effect/2.0/EqualizerEffect.vts.h",
-        "android/hardware/audio/effect/2.0/LoudnessEnhancerEffect.vts.h",
-        "android/hardware/audio/effect/2.0/NoiseSuppressionEffect.vts.h",
-        "android/hardware/audio/effect/2.0/PresetReverbEffect.vts.h",
-        "android/hardware/audio/effect/2.0/VirtualizerEffect.vts.h",
-        "android/hardware/audio/effect/2.0/VisualizerEffect.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.audio.effect.vts.driver@2.0",
-    generated_sources: ["android.hardware.audio.effect.vts.driver@2.0_genc++"],
-    generated_headers: ["android.hardware.audio.effect.vts.driver@2.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.audio.effect.vts.driver@2.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.hardware.audio.common@2.0",
-        "android.hidl.base@1.0",
-        "android.hardware.audio.effect@2.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hardware.audio.common@2.0",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.audio.effect@2.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.audio.effect@2.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/audio/effect/2.0/ $(genDir)/android/hardware/audio/effect/2.0/",
-    srcs: [
-        "types.hal",
-        "IAcousticEchoCancelerEffect.hal",
-        "IAutomaticGainControlEffect.hal",
-        "IBassBoostEffect.hal",
-        "IDownmixEffect.hal",
-        "IEffect.hal",
-        "IEffectBufferProviderCallback.hal",
-        "IEffectsFactory.hal",
-        "IEnvironmentalReverbEffect.hal",
-        "IEqualizerEffect.hal",
-        "ILoudnessEnhancerEffect.hal",
-        "INoiseSuppressionEffect.hal",
-        "IPresetReverbEffect.hal",
-        "IVirtualizerEffect.hal",
-        "IVisualizerEffect.hal",
-    ],
-    out: [
-        "android/hardware/audio/effect/2.0/types.vts.cpp",
-        "android/hardware/audio/effect/2.0/AcousticEchoCancelerEffect.vts.cpp",
-        "android/hardware/audio/effect/2.0/AutomaticGainControlEffect.vts.cpp",
-        "android/hardware/audio/effect/2.0/BassBoostEffect.vts.cpp",
-        "android/hardware/audio/effect/2.0/DownmixEffect.vts.cpp",
-        "android/hardware/audio/effect/2.0/Effect.vts.cpp",
-        "android/hardware/audio/effect/2.0/EffectBufferProviderCallback.vts.cpp",
-        "android/hardware/audio/effect/2.0/EffectsFactory.vts.cpp",
-        "android/hardware/audio/effect/2.0/EnvironmentalReverbEffect.vts.cpp",
-        "android/hardware/audio/effect/2.0/EqualizerEffect.vts.cpp",
-        "android/hardware/audio/effect/2.0/LoudnessEnhancerEffect.vts.cpp",
-        "android/hardware/audio/effect/2.0/NoiseSuppressionEffect.vts.cpp",
-        "android/hardware/audio/effect/2.0/PresetReverbEffect.vts.cpp",
-        "android/hardware/audio/effect/2.0/VirtualizerEffect.vts.cpp",
-        "android/hardware/audio/effect/2.0/VisualizerEffect.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.audio.effect@2.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.audio.effect@2.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/audio/effect/2.0/ $(genDir)/android/hardware/audio/effect/2.0/",
-    srcs: [
-        "types.hal",
-        "IAcousticEchoCancelerEffect.hal",
-        "IAutomaticGainControlEffect.hal",
-        "IBassBoostEffect.hal",
-        "IDownmixEffect.hal",
-        "IEffect.hal",
-        "IEffectBufferProviderCallback.hal",
-        "IEffectsFactory.hal",
-        "IEnvironmentalReverbEffect.hal",
-        "IEqualizerEffect.hal",
-        "ILoudnessEnhancerEffect.hal",
-        "INoiseSuppressionEffect.hal",
-        "IPresetReverbEffect.hal",
-        "IVirtualizerEffect.hal",
-        "IVisualizerEffect.hal",
-    ],
-    out: [
-        "android/hardware/audio/effect/2.0/types.vts.h",
-        "android/hardware/audio/effect/2.0/AcousticEchoCancelerEffect.vts.h",
-        "android/hardware/audio/effect/2.0/AutomaticGainControlEffect.vts.h",
-        "android/hardware/audio/effect/2.0/BassBoostEffect.vts.h",
-        "android/hardware/audio/effect/2.0/DownmixEffect.vts.h",
-        "android/hardware/audio/effect/2.0/Effect.vts.h",
-        "android/hardware/audio/effect/2.0/EffectBufferProviderCallback.vts.h",
-        "android/hardware/audio/effect/2.0/EffectsFactory.vts.h",
-        "android/hardware/audio/effect/2.0/EnvironmentalReverbEffect.vts.h",
-        "android/hardware/audio/effect/2.0/EqualizerEffect.vts.h",
-        "android/hardware/audio/effect/2.0/LoudnessEnhancerEffect.vts.h",
-        "android/hardware/audio/effect/2.0/NoiseSuppressionEffect.vts.h",
-        "android/hardware/audio/effect/2.0/PresetReverbEffect.vts.h",
-        "android/hardware/audio/effect/2.0/VirtualizerEffect.vts.h",
-        "android/hardware/audio/effect/2.0/VisualizerEffect.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.audio.effect@2.0-vts.profiler",
-    generated_sources: ["android.hardware.audio.effect@2.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.audio.effect@2.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.audio.effect@2.0-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.audio.common@2.0",
-        "android.hidl.base@1.0",
-        "android.hardware.audio.effect@2.0",
-    ],
-}
diff --git a/automotive/vehicle/2.0/Android.bp b/automotive/vehicle/2.0/Android.bp
index 3f378f2..3f5b383 100644
--- a/automotive/vehicle/2.0/Android.bp
+++ b/automotive/vehicle/2.0/Android.bp
@@ -1,5 +1,14 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.automotive.vehicle@2.0_hal",
+    srcs: [
+        "types.hal",
+        "IVehicle.hal",
+        "IVehicleCallback.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.automotive.vehicle@2.0_genc++",
     tools: ["hidl-gen"],
@@ -62,114 +71,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.automotive.vehicle.vts.driver@2.0_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.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/automotive/vehicle/2.0/ $(genDir)/android/hardware/automotive/vehicle/2.0/",
-    srcs: [
-        "types.hal",
-        "IVehicle.hal",
-        "IVehicleCallback.hal",
-    ],
-    out: [
-        "android/hardware/automotive/vehicle/2.0/types.vts.cpp",
-        "android/hardware/automotive/vehicle/2.0/Vehicle.vts.cpp",
-        "android/hardware/automotive/vehicle/2.0/VehicleCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.automotive.vehicle.vts.driver@2.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.automotive.vehicle@2.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/automotive/vehicle/2.0/ $(genDir)/android/hardware/automotive/vehicle/2.0/",
-    srcs: [
-        "types.hal",
-        "IVehicle.hal",
-        "IVehicleCallback.hal",
-    ],
-    out: [
-        "android/hardware/automotive/vehicle/2.0/types.vts.h",
-        "android/hardware/automotive/vehicle/2.0/Vehicle.vts.h",
-        "android/hardware/automotive/vehicle/2.0/VehicleCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.automotive.vehicle.vts.driver@2.0",
-    generated_sources: ["android.hardware.automotive.vehicle.vts.driver@2.0_genc++"],
-    generated_headers: ["android.hardware.automotive.vehicle.vts.driver@2.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.automotive.vehicle.vts.driver@2.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.automotive.vehicle@2.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.automotive.vehicle@2.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.automotive.vehicle@2.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/automotive/vehicle/2.0/ $(genDir)/android/hardware/automotive/vehicle/2.0/",
-    srcs: [
-        "types.hal",
-        "IVehicle.hal",
-        "IVehicleCallback.hal",
-    ],
-    out: [
-        "android/hardware/automotive/vehicle/2.0/types.vts.cpp",
-        "android/hardware/automotive/vehicle/2.0/Vehicle.vts.cpp",
-        "android/hardware/automotive/vehicle/2.0/VehicleCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.automotive.vehicle@2.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.automotive.vehicle@2.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/automotive/vehicle/2.0/ $(genDir)/android/hardware/automotive/vehicle/2.0/",
-    srcs: [
-        "types.hal",
-        "IVehicle.hal",
-        "IVehicleCallback.hal",
-    ],
-    out: [
-        "android/hardware/automotive/vehicle/2.0/types.vts.h",
-        "android/hardware/automotive/vehicle/2.0/Vehicle.vts.h",
-        "android/hardware/automotive/vehicle/2.0/VehicleCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.automotive.vehicle@2.0-vts.profiler",
-    generated_sources: ["android.hardware.automotive.vehicle@2.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.automotive.vehicle@2.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.automotive.vehicle@2.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.automotive.vehicle@2.0",
-    ],
-}
diff --git a/biometrics/fingerprint/2.1/Android.bp b/biometrics/fingerprint/2.1/Android.bp
index ea148aa..f285f16 100644
--- a/biometrics/fingerprint/2.1/Android.bp
+++ b/biometrics/fingerprint/2.1/Android.bp
@@ -1,5 +1,14 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.biometrics.fingerprint@2.1_hal",
+    srcs: [
+        "types.hal",
+        "IBiometricsFingerprint.hal",
+        "IBiometricsFingerprintClientCallback.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.biometrics.fingerprint@2.1_genc++",
     tools: ["hidl-gen"],
@@ -62,114 +71,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.biometrics.fingerprint.vts.driver@2.1_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.biometrics.fingerprint@2.1 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/biometrics/fingerprint/2.1/ $(genDir)/android/hardware/biometrics/fingerprint/2.1/",
-    srcs: [
-        "types.hal",
-        "IBiometricsFingerprint.hal",
-        "IBiometricsFingerprintClientCallback.hal",
-    ],
-    out: [
-        "android/hardware/biometrics/fingerprint/2.1/types.vts.cpp",
-        "android/hardware/biometrics/fingerprint/2.1/BiometricsFingerprint.vts.cpp",
-        "android/hardware/biometrics/fingerprint/2.1/BiometricsFingerprintClientCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.biometrics.fingerprint.vts.driver@2.1_genc++_headers",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.biometrics.fingerprint@2.1 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/biometrics/fingerprint/2.1/ $(genDir)/android/hardware/biometrics/fingerprint/2.1/",
-    srcs: [
-        "types.hal",
-        "IBiometricsFingerprint.hal",
-        "IBiometricsFingerprintClientCallback.hal",
-    ],
-    out: [
-        "android/hardware/biometrics/fingerprint/2.1/types.vts.h",
-        "android/hardware/biometrics/fingerprint/2.1/BiometricsFingerprint.vts.h",
-        "android/hardware/biometrics/fingerprint/2.1/BiometricsFingerprintClientCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.biometrics.fingerprint.vts.driver@2.1",
-    generated_sources: ["android.hardware.biometrics.fingerprint.vts.driver@2.1_genc++"],
-    generated_headers: ["android.hardware.biometrics.fingerprint.vts.driver@2.1_genc++_headers"],
-    export_generated_headers: ["android.hardware.biometrics.fingerprint.vts.driver@2.1_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.biometrics.fingerprint@2.1",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.biometrics.fingerprint@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.biometrics.fingerprint@2.1 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/biometrics/fingerprint/2.1/ $(genDir)/android/hardware/biometrics/fingerprint/2.1/",
-    srcs: [
-        "types.hal",
-        "IBiometricsFingerprint.hal",
-        "IBiometricsFingerprintClientCallback.hal",
-    ],
-    out: [
-        "android/hardware/biometrics/fingerprint/2.1/types.vts.cpp",
-        "android/hardware/biometrics/fingerprint/2.1/BiometricsFingerprint.vts.cpp",
-        "android/hardware/biometrics/fingerprint/2.1/BiometricsFingerprintClientCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.biometrics.fingerprint@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.biometrics.fingerprint@2.1 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/biometrics/fingerprint/2.1/ $(genDir)/android/hardware/biometrics/fingerprint/2.1/",
-    srcs: [
-        "types.hal",
-        "IBiometricsFingerprint.hal",
-        "IBiometricsFingerprintClientCallback.hal",
-    ],
-    out: [
-        "android/hardware/biometrics/fingerprint/2.1/types.vts.h",
-        "android/hardware/biometrics/fingerprint/2.1/BiometricsFingerprint.vts.h",
-        "android/hardware/biometrics/fingerprint/2.1/BiometricsFingerprintClientCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.biometrics.fingerprint@2.1-vts.profiler",
-    generated_sources: ["android.hardware.biometrics.fingerprint@2.1-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.biometrics.fingerprint@2.1-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.biometrics.fingerprint@2.1-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hidl.base@1.0",
-        "android.hardware.biometrics.fingerprint@2.1",
-    ],
-}
diff --git a/broadcastradio/1.0/Android.bp b/broadcastradio/1.0/Android.bp
index 51cfbe9..a58fbe1 100644
--- a/broadcastradio/1.0/Android.bp
+++ b/broadcastradio/1.0/Android.bp
@@ -1,5 +1,16 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.broadcastradio@1.0_hal",
+    srcs: [
+        "types.hal",
+        "IBroadcastRadio.hal",
+        "IBroadcastRadioFactory.hal",
+        "ITuner.hal",
+        "ITunerCallback.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.broadcastradio@1.0_genc++",
     tools: ["hidl-gen"],
@@ -78,130 +89,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.broadcastradio.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.broadcastradio@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/broadcastradio/1.0/ $(genDir)/android/hardware/broadcastradio/1.0/",
-    srcs: [
-        "types.hal",
-        "IBroadcastRadio.hal",
-        "IBroadcastRadioFactory.hal",
-        "ITuner.hal",
-        "ITunerCallback.hal",
-    ],
-    out: [
-        "android/hardware/broadcastradio/1.0/types.vts.cpp",
-        "android/hardware/broadcastradio/1.0/BroadcastRadio.vts.cpp",
-        "android/hardware/broadcastradio/1.0/BroadcastRadioFactory.vts.cpp",
-        "android/hardware/broadcastradio/1.0/Tuner.vts.cpp",
-        "android/hardware/broadcastradio/1.0/TunerCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.broadcastradio.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.broadcastradio@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/broadcastradio/1.0/ $(genDir)/android/hardware/broadcastradio/1.0/",
-    srcs: [
-        "types.hal",
-        "IBroadcastRadio.hal",
-        "IBroadcastRadioFactory.hal",
-        "ITuner.hal",
-        "ITunerCallback.hal",
-    ],
-    out: [
-        "android/hardware/broadcastradio/1.0/types.vts.h",
-        "android/hardware/broadcastradio/1.0/BroadcastRadio.vts.h",
-        "android/hardware/broadcastradio/1.0/BroadcastRadioFactory.vts.h",
-        "android/hardware/broadcastradio/1.0/Tuner.vts.h",
-        "android/hardware/broadcastradio/1.0/TunerCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.broadcastradio.vts.driver@1.0",
-    generated_sources: ["android.hardware.broadcastradio.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.broadcastradio.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.broadcastradio.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.broadcastradio@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.broadcastradio@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.broadcastradio@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/broadcastradio/1.0/ $(genDir)/android/hardware/broadcastradio/1.0/",
-    srcs: [
-        "types.hal",
-        "IBroadcastRadio.hal",
-        "IBroadcastRadioFactory.hal",
-        "ITuner.hal",
-        "ITunerCallback.hal",
-    ],
-    out: [
-        "android/hardware/broadcastradio/1.0/types.vts.cpp",
-        "android/hardware/broadcastradio/1.0/BroadcastRadio.vts.cpp",
-        "android/hardware/broadcastradio/1.0/BroadcastRadioFactory.vts.cpp",
-        "android/hardware/broadcastradio/1.0/Tuner.vts.cpp",
-        "android/hardware/broadcastradio/1.0/TunerCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.broadcastradio@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.broadcastradio@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/broadcastradio/1.0/ $(genDir)/android/hardware/broadcastradio/1.0/",
-    srcs: [
-        "types.hal",
-        "IBroadcastRadio.hal",
-        "IBroadcastRadioFactory.hal",
-        "ITuner.hal",
-        "ITunerCallback.hal",
-    ],
-    out: [
-        "android/hardware/broadcastradio/1.0/types.vts.h",
-        "android/hardware/broadcastradio/1.0/BroadcastRadio.vts.h",
-        "android/hardware/broadcastradio/1.0/BroadcastRadioFactory.vts.h",
-        "android/hardware/broadcastradio/1.0/Tuner.vts.h",
-        "android/hardware/broadcastradio/1.0/TunerCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.broadcastradio@1.0-vts.profiler",
-    generated_sources: ["android.hardware.broadcastradio@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.broadcastradio@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.broadcastradio@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.broadcastradio@1.0",
-    ],
-}
diff --git a/camera/common/1.0/Android.bp b/camera/common/1.0/Android.bp
index 7ab4ea9..9717963 100644
--- a/camera/common/1.0/Android.bp
+++ b/camera/common/1.0/Android.bp
@@ -1,5 +1,12 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.camera.common@1.0_hal",
+    srcs: [
+        "types.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.camera.common@1.0_genc++",
     tools: ["hidl-gen"],
@@ -44,95 +51,3 @@
         "libutils",
     ],
 }
-
-genrule {
-    name: "android.hardware.camera.common.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.camera.common@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/camera/common/1.0/ $(genDir)/android/hardware/camera/common/1.0/",
-    srcs: [
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/camera/common/1.0/types.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.camera.common.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.camera.common@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/camera/common/1.0/ $(genDir)/android/hardware/camera/common/1.0/",
-    srcs: [
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/camera/common/1.0/types.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.camera.common.vts.driver@1.0",
-    generated_sources: ["android.hardware.camera.common.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.camera.common.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.camera.common.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.hardware.camera.common@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-    ],
-}
-
-genrule {
-    name: "android.hardware.camera.common@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.camera.common@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/camera/common/1.0/ $(genDir)/android/hardware/camera/common/1.0/",
-    srcs: [
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/camera/common/1.0/types.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.camera.common@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.camera.common@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/camera/common/1.0/ $(genDir)/android/hardware/camera/common/1.0/",
-    srcs: [
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/camera/common/1.0/types.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.camera.common@1.0-vts.profiler",
-    generated_sources: ["android.hardware.camera.common@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.camera.common@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.camera.common@1.0-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.camera.common@1.0",
-    ],
-}
diff --git a/camera/device/1.0/Android.bp b/camera/device/1.0/Android.bp
index 16b3de4..b285ee0 100644
--- a/camera/device/1.0/Android.bp
+++ b/camera/device/1.0/Android.bp
@@ -1,5 +1,15 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.camera.device@1.0_hal",
+    srcs: [
+        "types.hal",
+        "ICameraDevice.hal",
+        "ICameraDeviceCallback.hal",
+        "ICameraDevicePreviewCallback.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.camera.device@1.0_genc++",
     tools: ["hidl-gen"],
@@ -76,131 +86,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.camera.device.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.camera.device@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/camera/device/1.0/ $(genDir)/android/hardware/camera/device/1.0/",
-    srcs: [
-        "types.hal",
-        "ICameraDevice.hal",
-        "ICameraDeviceCallback.hal",
-        "ICameraDevicePreviewCallback.hal",
-    ],
-    out: [
-        "android/hardware/camera/device/1.0/types.vts.cpp",
-        "android/hardware/camera/device/1.0/CameraDevice.vts.cpp",
-        "android/hardware/camera/device/1.0/CameraDeviceCallback.vts.cpp",
-        "android/hardware/camera/device/1.0/CameraDevicePreviewCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.camera.device.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.camera.device@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/camera/device/1.0/ $(genDir)/android/hardware/camera/device/1.0/",
-    srcs: [
-        "types.hal",
-        "ICameraDevice.hal",
-        "ICameraDeviceCallback.hal",
-        "ICameraDevicePreviewCallback.hal",
-    ],
-    out: [
-        "android/hardware/camera/device/1.0/types.vts.h",
-        "android/hardware/camera/device/1.0/CameraDevice.vts.h",
-        "android/hardware/camera/device/1.0/CameraDeviceCallback.vts.h",
-        "android/hardware/camera/device/1.0/CameraDevicePreviewCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.camera.device.vts.driver@1.0",
-    generated_sources: ["android.hardware.camera.device.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.camera.device.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.camera.device.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.hardware.camera.common@1.0",
-        "android.hardware.graphics.allocator@2.0",
-        "android.hardware.graphics.common@1.0",
-        "android.hidl.base@1.0",
-        "android.hardware.camera.device@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hardware.camera.common@1.0",
-        "android.hardware.graphics.allocator@2.0",
-        "android.hardware.graphics.common@1.0",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.camera.device@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.camera.device@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/camera/device/1.0/ $(genDir)/android/hardware/camera/device/1.0/",
-    srcs: [
-        "types.hal",
-        "ICameraDevice.hal",
-        "ICameraDeviceCallback.hal",
-        "ICameraDevicePreviewCallback.hal",
-    ],
-    out: [
-        "android/hardware/camera/device/1.0/types.vts.cpp",
-        "android/hardware/camera/device/1.0/CameraDevice.vts.cpp",
-        "android/hardware/camera/device/1.0/CameraDeviceCallback.vts.cpp",
-        "android/hardware/camera/device/1.0/CameraDevicePreviewCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.camera.device@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.camera.device@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/camera/device/1.0/ $(genDir)/android/hardware/camera/device/1.0/",
-    srcs: [
-        "types.hal",
-        "ICameraDevice.hal",
-        "ICameraDeviceCallback.hal",
-        "ICameraDevicePreviewCallback.hal",
-    ],
-    out: [
-        "android/hardware/camera/device/1.0/types.vts.h",
-        "android/hardware/camera/device/1.0/CameraDevice.vts.h",
-        "android/hardware/camera/device/1.0/CameraDeviceCallback.vts.h",
-        "android/hardware/camera/device/1.0/CameraDevicePreviewCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.camera.device@1.0-vts.profiler",
-    generated_sources: ["android.hardware.camera.device@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.camera.device@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.camera.device@1.0-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.camera.common@1.0",
-        "android.hardware.graphics.allocator@2.0",
-        "android.hardware.graphics.common@1.0",
-        "android.hidl.base@1.0",
-        "android.hardware.camera.device@1.0",
-    ],
-}
diff --git a/camera/device/3.2/Android.bp b/camera/device/3.2/Android.bp
index 7c740ae..1bc11ed 100644
--- a/camera/device/3.2/Android.bp
+++ b/camera/device/3.2/Android.bp
@@ -1,5 +1,15 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.camera.device@3.2_hal",
+    srcs: [
+        "types.hal",
+        "ICameraDevice.hal",
+        "ICameraDeviceCallback.hal",
+        "ICameraDeviceSession.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.camera.device@3.2_genc++",
     tools: ["hidl-gen"],
@@ -76,131 +86,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.camera.device.vts.driver@3.2_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.2 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/camera/device/3.2/ $(genDir)/android/hardware/camera/device/3.2/",
-    srcs: [
-        "types.hal",
-        "ICameraDevice.hal",
-        "ICameraDeviceCallback.hal",
-        "ICameraDeviceSession.hal",
-    ],
-    out: [
-        "android/hardware/camera/device/3.2/types.vts.cpp",
-        "android/hardware/camera/device/3.2/CameraDevice.vts.cpp",
-        "android/hardware/camera/device/3.2/CameraDeviceCallback.vts.cpp",
-        "android/hardware/camera/device/3.2/CameraDeviceSession.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.camera.device.vts.driver@3.2_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.2 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/camera/device/3.2/ $(genDir)/android/hardware/camera/device/3.2/",
-    srcs: [
-        "types.hal",
-        "ICameraDevice.hal",
-        "ICameraDeviceCallback.hal",
-        "ICameraDeviceSession.hal",
-    ],
-    out: [
-        "android/hardware/camera/device/3.2/types.vts.h",
-        "android/hardware/camera/device/3.2/CameraDevice.vts.h",
-        "android/hardware/camera/device/3.2/CameraDeviceCallback.vts.h",
-        "android/hardware/camera/device/3.2/CameraDeviceSession.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.camera.device.vts.driver@3.2",
-    generated_sources: ["android.hardware.camera.device.vts.driver@3.2_genc++"],
-    generated_headers: ["android.hardware.camera.device.vts.driver@3.2_genc++_headers"],
-    export_generated_headers: ["android.hardware.camera.device.vts.driver@3.2_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.hardware.camera.common@1.0",
-        "android.hardware.graphics.allocator@2.0",
-        "android.hardware.graphics.common@1.0",
-        "android.hidl.base@1.0",
-        "android.hardware.camera.device@3.2",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hardware.camera.common@1.0",
-        "android.hardware.graphics.allocator@2.0",
-        "android.hardware.graphics.common@1.0",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.camera.device@3.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.camera.device@3.2 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/camera/device/3.2/ $(genDir)/android/hardware/camera/device/3.2/",
-    srcs: [
-        "types.hal",
-        "ICameraDevice.hal",
-        "ICameraDeviceCallback.hal",
-        "ICameraDeviceSession.hal",
-    ],
-    out: [
-        "android/hardware/camera/device/3.2/types.vts.cpp",
-        "android/hardware/camera/device/3.2/CameraDevice.vts.cpp",
-        "android/hardware/camera/device/3.2/CameraDeviceCallback.vts.cpp",
-        "android/hardware/camera/device/3.2/CameraDeviceSession.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.camera.device@3.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.camera.device@3.2 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/camera/device/3.2/ $(genDir)/android/hardware/camera/device/3.2/",
-    srcs: [
-        "types.hal",
-        "ICameraDevice.hal",
-        "ICameraDeviceCallback.hal",
-        "ICameraDeviceSession.hal",
-    ],
-    out: [
-        "android/hardware/camera/device/3.2/types.vts.h",
-        "android/hardware/camera/device/3.2/CameraDevice.vts.h",
-        "android/hardware/camera/device/3.2/CameraDeviceCallback.vts.h",
-        "android/hardware/camera/device/3.2/CameraDeviceSession.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.camera.device@3.2-vts.profiler",
-    generated_sources: ["android.hardware.camera.device@3.2-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.camera.device@3.2-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.camera.device@3.2-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.camera.common@1.0",
-        "android.hardware.graphics.allocator@2.0",
-        "android.hardware.graphics.common@1.0",
-        "android.hidl.base@1.0",
-        "android.hardware.camera.device@3.2",
-    ],
-}
diff --git a/camera/metadata/3.2/Android.bp b/camera/metadata/3.2/Android.bp
index 448c655..fa319e9 100644
--- a/camera/metadata/3.2/Android.bp
+++ b/camera/metadata/3.2/Android.bp
@@ -1,5 +1,12 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.camera.metadata@3.2_hal",
+    srcs: [
+        "types.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.camera.metadata@3.2_genc++",
     tools: ["hidl-gen"],
@@ -44,95 +51,3 @@
         "libutils",
     ],
 }
-
-genrule {
-    name: "android.hardware.camera.metadata.vts.driver@3.2_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.metadata@3.2 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/camera/metadata/3.2/ $(genDir)/android/hardware/camera/metadata/3.2/",
-    srcs: [
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/camera/metadata/3.2/types.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.camera.metadata.vts.driver@3.2_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.metadata@3.2 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/camera/metadata/3.2/ $(genDir)/android/hardware/camera/metadata/3.2/",
-    srcs: [
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/camera/metadata/3.2/types.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.camera.metadata.vts.driver@3.2",
-    generated_sources: ["android.hardware.camera.metadata.vts.driver@3.2_genc++"],
-    generated_headers: ["android.hardware.camera.metadata.vts.driver@3.2_genc++_headers"],
-    export_generated_headers: ["android.hardware.camera.metadata.vts.driver@3.2_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.hardware.camera.metadata@3.2",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-    ],
-}
-
-genrule {
-    name: "android.hardware.camera.metadata@3.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.camera.metadata@3.2 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/camera/metadata/3.2/ $(genDir)/android/hardware/camera/metadata/3.2/",
-    srcs: [
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/camera/metadata/3.2/types.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.camera.metadata@3.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.camera.metadata@3.2 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/camera/metadata/3.2/ $(genDir)/android/hardware/camera/metadata/3.2/",
-    srcs: [
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/camera/metadata/3.2/types.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.camera.metadata@3.2-vts.profiler",
-    generated_sources: ["android.hardware.camera.metadata@3.2-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.camera.metadata@3.2-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.camera.metadata@3.2-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.camera.metadata@3.2",
-    ],
-}
diff --git a/camera/provider/2.4/Android.bp b/camera/provider/2.4/Android.bp
index 3705086..1874cd5 100644
--- a/camera/provider/2.4/Android.bp
+++ b/camera/provider/2.4/Android.bp
@@ -1,5 +1,13 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.camera.provider@2.4_hal",
+    srcs: [
+        "ICameraProvider.hal",
+        "ICameraProviderCallback.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.camera.provider@2.4_genc++",
     tools: ["hidl-gen"],
@@ -64,115 +72,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.camera.provider.vts.driver@2.4_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.provider@2.4 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/camera/provider/2.4/ $(genDir)/android/hardware/camera/provider/2.4/",
-    srcs: [
-        "ICameraProvider.hal",
-        "ICameraProviderCallback.hal",
-    ],
-    out: [
-        "android/hardware/camera/provider/2.4/CameraProvider.vts.cpp",
-        "android/hardware/camera/provider/2.4/CameraProviderCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.camera.provider.vts.driver@2.4_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.provider@2.4 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/camera/provider/2.4/ $(genDir)/android/hardware/camera/provider/2.4/",
-    srcs: [
-        "ICameraProvider.hal",
-        "ICameraProviderCallback.hal",
-    ],
-    out: [
-        "android/hardware/camera/provider/2.4/CameraProvider.vts.h",
-        "android/hardware/camera/provider/2.4/CameraProviderCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.camera.provider.vts.driver@2.4",
-    generated_sources: ["android.hardware.camera.provider.vts.driver@2.4_genc++"],
-    generated_headers: ["android.hardware.camera.provider.vts.driver@2.4_genc++_headers"],
-    export_generated_headers: ["android.hardware.camera.provider.vts.driver@2.4_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.hardware.camera.common@1.0",
-        "android.hardware.camera.device@1.0",
-        "android.hardware.camera.device@3.2",
-        "android.hidl.base@1.0",
-        "android.hardware.camera.provider@2.4",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hardware.camera.common@1.0",
-        "android.hardware.camera.device@1.0",
-        "android.hardware.camera.device@3.2",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.camera.provider@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.camera.provider@2.4 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/camera/provider/2.4/ $(genDir)/android/hardware/camera/provider/2.4/",
-    srcs: [
-        "ICameraProvider.hal",
-        "ICameraProviderCallback.hal",
-    ],
-    out: [
-        "android/hardware/camera/provider/2.4/CameraProvider.vts.cpp",
-        "android/hardware/camera/provider/2.4/CameraProviderCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.camera.provider@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.camera.provider@2.4 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/camera/provider/2.4/ $(genDir)/android/hardware/camera/provider/2.4/",
-    srcs: [
-        "ICameraProvider.hal",
-        "ICameraProviderCallback.hal",
-    ],
-    out: [
-        "android/hardware/camera/provider/2.4/CameraProvider.vts.h",
-        "android/hardware/camera/provider/2.4/CameraProviderCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.camera.provider@2.4-vts.profiler",
-    generated_sources: ["android.hardware.camera.provider@2.4-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.camera.provider@2.4-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.camera.provider@2.4-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.camera.common@1.0",
-        "android.hardware.camera.device@1.0",
-        "android.hardware.camera.device@3.2",
-        "android.hidl.base@1.0",
-        "android.hardware.camera.provider@2.4",
-    ],
-}
diff --git a/configstore/1.0/Android.bp b/configstore/1.0/Android.bp
index d0e3122..5b3242e 100644
--- a/configstore/1.0/Android.bp
+++ b/configstore/1.0/Android.bp
@@ -1,5 +1,13 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.configstore@1.0_hal",
+    srcs: [
+        "types.hal",
+        "ISurfaceFlingerConfigs.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.configstore@1.0_genc++",
     tools: ["hidl-gen"],
@@ -54,106 +62,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.configstore.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.configstore@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/configstore/1.0/ $(genDir)/android/hardware/configstore/1.0/",
-    srcs: [
-        "types.hal",
-        "ISurfaceFlingerConfigs.hal",
-    ],
-    out: [
-        "android/hardware/configstore/1.0/types.vts.cpp",
-        "android/hardware/configstore/1.0/SurfaceFlingerConfigs.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.configstore.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.configstore@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/configstore/1.0/ $(genDir)/android/hardware/configstore/1.0/",
-    srcs: [
-        "types.hal",
-        "ISurfaceFlingerConfigs.hal",
-    ],
-    out: [
-        "android/hardware/configstore/1.0/types.vts.h",
-        "android/hardware/configstore/1.0/SurfaceFlingerConfigs.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.configstore.vts.driver@1.0",
-    generated_sources: ["android.hardware.configstore.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.configstore.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.configstore.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.configstore@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.configstore@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.configstore@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/configstore/1.0/ $(genDir)/android/hardware/configstore/1.0/",
-    srcs: [
-        "types.hal",
-        "ISurfaceFlingerConfigs.hal",
-    ],
-    out: [
-        "android/hardware/configstore/1.0/types.vts.cpp",
-        "android/hardware/configstore/1.0/SurfaceFlingerConfigs.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.configstore@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.configstore@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/configstore/1.0/ $(genDir)/android/hardware/configstore/1.0/",
-    srcs: [
-        "types.hal",
-        "ISurfaceFlingerConfigs.hal",
-    ],
-    out: [
-        "android/hardware/configstore/1.0/types.vts.h",
-        "android/hardware/configstore/1.0/SurfaceFlingerConfigs.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.configstore@1.0-vts.profiler",
-    generated_sources: ["android.hardware.configstore@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.configstore@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.configstore@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.configstore@1.0",
-    ],
-}
diff --git a/contexthub/1.0/Android.bp b/contexthub/1.0/Android.bp
index e25c70d..556894d 100644
--- a/contexthub/1.0/Android.bp
+++ b/contexthub/1.0/Android.bp
@@ -1,5 +1,14 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.contexthub@1.0_hal",
+    srcs: [
+        "types.hal",
+        "IContexthub.hal",
+        "IContexthubCallback.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.contexthub@1.0_genc++",
     tools: ["hidl-gen"],
@@ -62,114 +71,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.contexthub.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.contexthub@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/contexthub/1.0/ $(genDir)/android/hardware/contexthub/1.0/",
-    srcs: [
-        "types.hal",
-        "IContexthub.hal",
-        "IContexthubCallback.hal",
-    ],
-    out: [
-        "android/hardware/contexthub/1.0/types.vts.cpp",
-        "android/hardware/contexthub/1.0/Contexthub.vts.cpp",
-        "android/hardware/contexthub/1.0/ContexthubCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.contexthub.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.contexthub@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/contexthub/1.0/ $(genDir)/android/hardware/contexthub/1.0/",
-    srcs: [
-        "types.hal",
-        "IContexthub.hal",
-        "IContexthubCallback.hal",
-    ],
-    out: [
-        "android/hardware/contexthub/1.0/types.vts.h",
-        "android/hardware/contexthub/1.0/Contexthub.vts.h",
-        "android/hardware/contexthub/1.0/ContexthubCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.contexthub.vts.driver@1.0",
-    generated_sources: ["android.hardware.contexthub.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.contexthub.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.contexthub.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.contexthub@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.contexthub@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.contexthub@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/contexthub/1.0/ $(genDir)/android/hardware/contexthub/1.0/",
-    srcs: [
-        "types.hal",
-        "IContexthub.hal",
-        "IContexthubCallback.hal",
-    ],
-    out: [
-        "android/hardware/contexthub/1.0/types.vts.cpp",
-        "android/hardware/contexthub/1.0/Contexthub.vts.cpp",
-        "android/hardware/contexthub/1.0/ContexthubCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.contexthub@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.contexthub@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/contexthub/1.0/ $(genDir)/android/hardware/contexthub/1.0/",
-    srcs: [
-        "types.hal",
-        "IContexthub.hal",
-        "IContexthubCallback.hal",
-    ],
-    out: [
-        "android/hardware/contexthub/1.0/types.vts.h",
-        "android/hardware/contexthub/1.0/Contexthub.vts.h",
-        "android/hardware/contexthub/1.0/ContexthubCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.contexthub@1.0-vts.profiler",
-    generated_sources: ["android.hardware.contexthub@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.contexthub@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.contexthub@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.contexthub@1.0",
-    ],
-}
diff --git a/drm/1.0/Android.bp b/drm/1.0/Android.bp
index 19060d8..d96ba14 100644
--- a/drm/1.0/Android.bp
+++ b/drm/1.0/Android.bp
@@ -1,5 +1,17 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.drm@1.0_hal",
+    srcs: [
+        "types.hal",
+        "ICryptoFactory.hal",
+        "ICryptoPlugin.hal",
+        "IDrmFactory.hal",
+        "IDrmPlugin.hal",
+        "IDrmPluginListener.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.drm@1.0_genc++",
     tools: ["hidl-gen"],
@@ -86,138 +98,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.drm.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.drm@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/drm/1.0/ $(genDir)/android/hardware/drm/1.0/",
-    srcs: [
-        "types.hal",
-        "ICryptoFactory.hal",
-        "ICryptoPlugin.hal",
-        "IDrmFactory.hal",
-        "IDrmPlugin.hal",
-        "IDrmPluginListener.hal",
-    ],
-    out: [
-        "android/hardware/drm/1.0/types.vts.cpp",
-        "android/hardware/drm/1.0/CryptoFactory.vts.cpp",
-        "android/hardware/drm/1.0/CryptoPlugin.vts.cpp",
-        "android/hardware/drm/1.0/DrmFactory.vts.cpp",
-        "android/hardware/drm/1.0/DrmPlugin.vts.cpp",
-        "android/hardware/drm/1.0/DrmPluginListener.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.drm.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.drm@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/drm/1.0/ $(genDir)/android/hardware/drm/1.0/",
-    srcs: [
-        "types.hal",
-        "ICryptoFactory.hal",
-        "ICryptoPlugin.hal",
-        "IDrmFactory.hal",
-        "IDrmPlugin.hal",
-        "IDrmPluginListener.hal",
-    ],
-    out: [
-        "android/hardware/drm/1.0/types.vts.h",
-        "android/hardware/drm/1.0/CryptoFactory.vts.h",
-        "android/hardware/drm/1.0/CryptoPlugin.vts.h",
-        "android/hardware/drm/1.0/DrmFactory.vts.h",
-        "android/hardware/drm/1.0/DrmPlugin.vts.h",
-        "android/hardware/drm/1.0/DrmPluginListener.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.drm.vts.driver@1.0",
-    generated_sources: ["android.hardware.drm.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.drm.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.drm.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.drm@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.drm@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.drm@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/drm/1.0/ $(genDir)/android/hardware/drm/1.0/",
-    srcs: [
-        "types.hal",
-        "ICryptoFactory.hal",
-        "ICryptoPlugin.hal",
-        "IDrmFactory.hal",
-        "IDrmPlugin.hal",
-        "IDrmPluginListener.hal",
-    ],
-    out: [
-        "android/hardware/drm/1.0/types.vts.cpp",
-        "android/hardware/drm/1.0/CryptoFactory.vts.cpp",
-        "android/hardware/drm/1.0/CryptoPlugin.vts.cpp",
-        "android/hardware/drm/1.0/DrmFactory.vts.cpp",
-        "android/hardware/drm/1.0/DrmPlugin.vts.cpp",
-        "android/hardware/drm/1.0/DrmPluginListener.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.drm@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.drm@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/drm/1.0/ $(genDir)/android/hardware/drm/1.0/",
-    srcs: [
-        "types.hal",
-        "ICryptoFactory.hal",
-        "ICryptoPlugin.hal",
-        "IDrmFactory.hal",
-        "IDrmPlugin.hal",
-        "IDrmPluginListener.hal",
-    ],
-    out: [
-        "android/hardware/drm/1.0/types.vts.h",
-        "android/hardware/drm/1.0/CryptoFactory.vts.h",
-        "android/hardware/drm/1.0/CryptoPlugin.vts.h",
-        "android/hardware/drm/1.0/DrmFactory.vts.h",
-        "android/hardware/drm/1.0/DrmPlugin.vts.h",
-        "android/hardware/drm/1.0/DrmPluginListener.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.drm@1.0-vts.profiler",
-    generated_sources: ["android.hardware.drm@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.drm@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.drm@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.drm@1.0",
-    ],
-}
diff --git a/dumpstate/1.0/Android.bp b/dumpstate/1.0/Android.bp
index 24fa1f8..127b22a 100644
--- a/dumpstate/1.0/Android.bp
+++ b/dumpstate/1.0/Android.bp
@@ -1,5 +1,12 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.dumpstate@1.0_hal",
+    srcs: [
+        "IDumpstateDevice.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.dumpstate@1.0_genc++",
     tools: ["hidl-gen"],
@@ -50,98 +57,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.dumpstate.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.dumpstate@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/dumpstate/1.0/ $(genDir)/android/hardware/dumpstate/1.0/",
-    srcs: [
-        "IDumpstateDevice.hal",
-    ],
-    out: [
-        "android/hardware/dumpstate/1.0/DumpstateDevice.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.dumpstate.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.dumpstate@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/dumpstate/1.0/ $(genDir)/android/hardware/dumpstate/1.0/",
-    srcs: [
-        "IDumpstateDevice.hal",
-    ],
-    out: [
-        "android/hardware/dumpstate/1.0/DumpstateDevice.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.dumpstate.vts.driver@1.0",
-    generated_sources: ["android.hardware.dumpstate.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.dumpstate.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.dumpstate.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.dumpstate@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.dumpstate@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.dumpstate@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/dumpstate/1.0/ $(genDir)/android/hardware/dumpstate/1.0/",
-    srcs: [
-        "IDumpstateDevice.hal",
-    ],
-    out: [
-        "android/hardware/dumpstate/1.0/DumpstateDevice.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.dumpstate@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.dumpstate@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/dumpstate/1.0/ $(genDir)/android/hardware/dumpstate/1.0/",
-    srcs: [
-        "IDumpstateDevice.hal",
-    ],
-    out: [
-        "android/hardware/dumpstate/1.0/DumpstateDevice.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.dumpstate@1.0-vts.profiler",
-    generated_sources: ["android.hardware.dumpstate@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.dumpstate@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.dumpstate@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.dumpstate@1.0",
-    ],
-}
diff --git a/evs/1.0/Android.bp b/evs/1.0/Android.bp
index a92caf8..7c23996 100644
--- a/evs/1.0/Android.bp
+++ b/evs/1.0/Android.bp
@@ -1,5 +1,16 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.evs@1.0_hal",
+    srcs: [
+        "types.hal",
+        "IEvsCamera.hal",
+        "IEvsCameraStream.hal",
+        "IEvsDisplay.hal",
+        "IEvsEnumerator.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.evs@1.0_genc++",
     tools: ["hidl-gen"],
@@ -78,130 +89,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.evs.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.evs@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/evs/1.0/ $(genDir)/android/hardware/evs/1.0/",
-    srcs: [
-        "types.hal",
-        "IEvsCamera.hal",
-        "IEvsCameraStream.hal",
-        "IEvsDisplay.hal",
-        "IEvsEnumerator.hal",
-    ],
-    out: [
-        "android/hardware/evs/1.0/types.vts.cpp",
-        "android/hardware/evs/1.0/EvsCamera.vts.cpp",
-        "android/hardware/evs/1.0/EvsCameraStream.vts.cpp",
-        "android/hardware/evs/1.0/EvsDisplay.vts.cpp",
-        "android/hardware/evs/1.0/EvsEnumerator.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.evs.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.evs@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/evs/1.0/ $(genDir)/android/hardware/evs/1.0/",
-    srcs: [
-        "types.hal",
-        "IEvsCamera.hal",
-        "IEvsCameraStream.hal",
-        "IEvsDisplay.hal",
-        "IEvsEnumerator.hal",
-    ],
-    out: [
-        "android/hardware/evs/1.0/types.vts.h",
-        "android/hardware/evs/1.0/EvsCamera.vts.h",
-        "android/hardware/evs/1.0/EvsCameraStream.vts.h",
-        "android/hardware/evs/1.0/EvsDisplay.vts.h",
-        "android/hardware/evs/1.0/EvsEnumerator.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.evs.vts.driver@1.0",
-    generated_sources: ["android.hardware.evs.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.evs.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.evs.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.evs@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.evs@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.evs@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/evs/1.0/ $(genDir)/android/hardware/evs/1.0/",
-    srcs: [
-        "types.hal",
-        "IEvsCamera.hal",
-        "IEvsCameraStream.hal",
-        "IEvsDisplay.hal",
-        "IEvsEnumerator.hal",
-    ],
-    out: [
-        "android/hardware/evs/1.0/types.vts.cpp",
-        "android/hardware/evs/1.0/EvsCamera.vts.cpp",
-        "android/hardware/evs/1.0/EvsCameraStream.vts.cpp",
-        "android/hardware/evs/1.0/EvsDisplay.vts.cpp",
-        "android/hardware/evs/1.0/EvsEnumerator.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.evs@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.evs@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/evs/1.0/ $(genDir)/android/hardware/evs/1.0/",
-    srcs: [
-        "types.hal",
-        "IEvsCamera.hal",
-        "IEvsCameraStream.hal",
-        "IEvsDisplay.hal",
-        "IEvsEnumerator.hal",
-    ],
-    out: [
-        "android/hardware/evs/1.0/types.vts.h",
-        "android/hardware/evs/1.0/EvsCamera.vts.h",
-        "android/hardware/evs/1.0/EvsCameraStream.vts.h",
-        "android/hardware/evs/1.0/EvsDisplay.vts.h",
-        "android/hardware/evs/1.0/EvsEnumerator.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.evs@1.0-vts.profiler",
-    generated_sources: ["android.hardware.evs@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.evs@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.evs@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.evs@1.0",
-    ],
-}
diff --git a/example/extension/light/2.0/Android.bp b/example/extension/light/2.0/Android.bp
index 2289040..a658356 100644
--- a/example/extension/light/2.0/Android.bp
+++ b/example/extension/light/2.0/Android.bp
@@ -1,5 +1,13 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.example.extension.light@2.0_hal",
+    srcs: [
+        "types.hal",
+        "IExtLight.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.example.extension.light@2.0_genc++",
     tools: ["hidl-gen"],
@@ -54,106 +62,3 @@
         "android.hardware.light@2.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.example.extension.light.vts.driver@2.0_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.example.extension.light@2.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/example/extension/light/2.0/ $(genDir)/android/hardware/example/extension/light/2.0/",
-    srcs: [
-        "types.hal",
-        "IExtLight.hal",
-    ],
-    out: [
-        "android/hardware/example/extension/light/2.0/types.vts.cpp",
-        "android/hardware/example/extension/light/2.0/ExtLight.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.example.extension.light.vts.driver@2.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.example.extension.light@2.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/example/extension/light/2.0/ $(genDir)/android/hardware/example/extension/light/2.0/",
-    srcs: [
-        "types.hal",
-        "IExtLight.hal",
-    ],
-    out: [
-        "android/hardware/example/extension/light/2.0/types.vts.h",
-        "android/hardware/example/extension/light/2.0/ExtLight.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.example.extension.light.vts.driver@2.0",
-    generated_sources: ["android.hardware.example.extension.light.vts.driver@2.0_genc++"],
-    generated_headers: ["android.hardware.example.extension.light.vts.driver@2.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.example.extension.light.vts.driver@2.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.hardware.light@2.0",
-        "android.hardware.example.extension.light@2.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hardware.light@2.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.example.extension.light@2.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.example.extension.light@2.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/example/extension/light/2.0/ $(genDir)/android/hardware/example/extension/light/2.0/",
-    srcs: [
-        "types.hal",
-        "IExtLight.hal",
-    ],
-    out: [
-        "android/hardware/example/extension/light/2.0/types.vts.cpp",
-        "android/hardware/example/extension/light/2.0/ExtLight.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.example.extension.light@2.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.example.extension.light@2.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/example/extension/light/2.0/ $(genDir)/android/hardware/example/extension/light/2.0/",
-    srcs: [
-        "types.hal",
-        "IExtLight.hal",
-    ],
-    out: [
-        "android/hardware/example/extension/light/2.0/types.vts.h",
-        "android/hardware/example/extension/light/2.0/ExtLight.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.example.extension.light@2.0-vts.profiler",
-    generated_sources: ["android.hardware.example.extension.light@2.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.example.extension.light@2.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.example.extension.light@2.0-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.light@2.0",
-        "android.hardware.example.extension.light@2.0",
-    ],
-}
diff --git a/gatekeeper/1.0/Android.bp b/gatekeeper/1.0/Android.bp
index 9e2203b..89e2f39 100644
--- a/gatekeeper/1.0/Android.bp
+++ b/gatekeeper/1.0/Android.bp
@@ -1,5 +1,13 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.gatekeeper@1.0_hal",
+    srcs: [
+        "types.hal",
+        "IGatekeeper.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.gatekeeper@1.0_genc++",
     tools: ["hidl-gen"],
@@ -54,106 +62,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.gatekeeper.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.gatekeeper@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/gatekeeper/1.0/ $(genDir)/android/hardware/gatekeeper/1.0/",
-    srcs: [
-        "types.hal",
-        "IGatekeeper.hal",
-    ],
-    out: [
-        "android/hardware/gatekeeper/1.0/types.vts.cpp",
-        "android/hardware/gatekeeper/1.0/Gatekeeper.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.gatekeeper.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.gatekeeper@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/gatekeeper/1.0/ $(genDir)/android/hardware/gatekeeper/1.0/",
-    srcs: [
-        "types.hal",
-        "IGatekeeper.hal",
-    ],
-    out: [
-        "android/hardware/gatekeeper/1.0/types.vts.h",
-        "android/hardware/gatekeeper/1.0/Gatekeeper.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.gatekeeper.vts.driver@1.0",
-    generated_sources: ["android.hardware.gatekeeper.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.gatekeeper.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.gatekeeper.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.gatekeeper@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.gatekeeper@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.gatekeeper@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/gatekeeper/1.0/ $(genDir)/android/hardware/gatekeeper/1.0/",
-    srcs: [
-        "types.hal",
-        "IGatekeeper.hal",
-    ],
-    out: [
-        "android/hardware/gatekeeper/1.0/types.vts.cpp",
-        "android/hardware/gatekeeper/1.0/Gatekeeper.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.gatekeeper@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.gatekeeper@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/gatekeeper/1.0/ $(genDir)/android/hardware/gatekeeper/1.0/",
-    srcs: [
-        "types.hal",
-        "IGatekeeper.hal",
-    ],
-    out: [
-        "android/hardware/gatekeeper/1.0/types.vts.h",
-        "android/hardware/gatekeeper/1.0/Gatekeeper.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.gatekeeper@1.0-vts.profiler",
-    generated_sources: ["android.hardware.gatekeeper@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.gatekeeper@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.gatekeeper@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.gatekeeper@1.0",
-    ],
-}
diff --git a/gnss/1.0/Android.bp b/gnss/1.0/Android.bp
index 4fc3038..b76b4c5 100644
--- a/gnss/1.0/Android.bp
+++ b/gnss/1.0/Android.bp
@@ -1,5 +1,32 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.gnss@1.0_hal",
+    srcs: [
+        "types.hal",
+        "IAGnss.hal",
+        "IAGnssCallback.hal",
+        "IAGnssRil.hal",
+        "IAGnssRilCallback.hal",
+        "IGnss.hal",
+        "IGnssBatching.hal",
+        "IGnssBatchingCallback.hal",
+        "IGnssCallback.hal",
+        "IGnssConfiguration.hal",
+        "IGnssDebug.hal",
+        "IGnssGeofenceCallback.hal",
+        "IGnssGeofencing.hal",
+        "IGnssMeasurement.hal",
+        "IGnssMeasurementCallback.hal",
+        "IGnssNavigationMessage.hal",
+        "IGnssNavigationMessageCallback.hal",
+        "IGnssNi.hal",
+        "IGnssNiCallback.hal",
+        "IGnssXtra.hal",
+        "IGnssXtraCallback.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.gnss@1.0_genc++",
     tools: ["hidl-gen"],
@@ -206,258 +233,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.gnss.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.gnss@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/gnss/1.0/ $(genDir)/android/hardware/gnss/1.0/",
-    srcs: [
-        "types.hal",
-        "IAGnss.hal",
-        "IAGnssCallback.hal",
-        "IAGnssRil.hal",
-        "IAGnssRilCallback.hal",
-        "IGnss.hal",
-        "IGnssBatching.hal",
-        "IGnssBatchingCallback.hal",
-        "IGnssCallback.hal",
-        "IGnssConfiguration.hal",
-        "IGnssDebug.hal",
-        "IGnssGeofenceCallback.hal",
-        "IGnssGeofencing.hal",
-        "IGnssMeasurement.hal",
-        "IGnssMeasurementCallback.hal",
-        "IGnssNavigationMessage.hal",
-        "IGnssNavigationMessageCallback.hal",
-        "IGnssNi.hal",
-        "IGnssNiCallback.hal",
-        "IGnssXtra.hal",
-        "IGnssXtraCallback.hal",
-    ],
-    out: [
-        "android/hardware/gnss/1.0/types.vts.cpp",
-        "android/hardware/gnss/1.0/AGnss.vts.cpp",
-        "android/hardware/gnss/1.0/AGnssCallback.vts.cpp",
-        "android/hardware/gnss/1.0/AGnssRil.vts.cpp",
-        "android/hardware/gnss/1.0/AGnssRilCallback.vts.cpp",
-        "android/hardware/gnss/1.0/Gnss.vts.cpp",
-        "android/hardware/gnss/1.0/GnssBatching.vts.cpp",
-        "android/hardware/gnss/1.0/GnssBatchingCallback.vts.cpp",
-        "android/hardware/gnss/1.0/GnssCallback.vts.cpp",
-        "android/hardware/gnss/1.0/GnssConfiguration.vts.cpp",
-        "android/hardware/gnss/1.0/GnssDebug.vts.cpp",
-        "android/hardware/gnss/1.0/GnssGeofenceCallback.vts.cpp",
-        "android/hardware/gnss/1.0/GnssGeofencing.vts.cpp",
-        "android/hardware/gnss/1.0/GnssMeasurement.vts.cpp",
-        "android/hardware/gnss/1.0/GnssMeasurementCallback.vts.cpp",
-        "android/hardware/gnss/1.0/GnssNavigationMessage.vts.cpp",
-        "android/hardware/gnss/1.0/GnssNavigationMessageCallback.vts.cpp",
-        "android/hardware/gnss/1.0/GnssNi.vts.cpp",
-        "android/hardware/gnss/1.0/GnssNiCallback.vts.cpp",
-        "android/hardware/gnss/1.0/GnssXtra.vts.cpp",
-        "android/hardware/gnss/1.0/GnssXtraCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.gnss.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.gnss@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/gnss/1.0/ $(genDir)/android/hardware/gnss/1.0/",
-    srcs: [
-        "types.hal",
-        "IAGnss.hal",
-        "IAGnssCallback.hal",
-        "IAGnssRil.hal",
-        "IAGnssRilCallback.hal",
-        "IGnss.hal",
-        "IGnssBatching.hal",
-        "IGnssBatchingCallback.hal",
-        "IGnssCallback.hal",
-        "IGnssConfiguration.hal",
-        "IGnssDebug.hal",
-        "IGnssGeofenceCallback.hal",
-        "IGnssGeofencing.hal",
-        "IGnssMeasurement.hal",
-        "IGnssMeasurementCallback.hal",
-        "IGnssNavigationMessage.hal",
-        "IGnssNavigationMessageCallback.hal",
-        "IGnssNi.hal",
-        "IGnssNiCallback.hal",
-        "IGnssXtra.hal",
-        "IGnssXtraCallback.hal",
-    ],
-    out: [
-        "android/hardware/gnss/1.0/types.vts.h",
-        "android/hardware/gnss/1.0/AGnss.vts.h",
-        "android/hardware/gnss/1.0/AGnssCallback.vts.h",
-        "android/hardware/gnss/1.0/AGnssRil.vts.h",
-        "android/hardware/gnss/1.0/AGnssRilCallback.vts.h",
-        "android/hardware/gnss/1.0/Gnss.vts.h",
-        "android/hardware/gnss/1.0/GnssBatching.vts.h",
-        "android/hardware/gnss/1.0/GnssBatchingCallback.vts.h",
-        "android/hardware/gnss/1.0/GnssCallback.vts.h",
-        "android/hardware/gnss/1.0/GnssConfiguration.vts.h",
-        "android/hardware/gnss/1.0/GnssDebug.vts.h",
-        "android/hardware/gnss/1.0/GnssGeofenceCallback.vts.h",
-        "android/hardware/gnss/1.0/GnssGeofencing.vts.h",
-        "android/hardware/gnss/1.0/GnssMeasurement.vts.h",
-        "android/hardware/gnss/1.0/GnssMeasurementCallback.vts.h",
-        "android/hardware/gnss/1.0/GnssNavigationMessage.vts.h",
-        "android/hardware/gnss/1.0/GnssNavigationMessageCallback.vts.h",
-        "android/hardware/gnss/1.0/GnssNi.vts.h",
-        "android/hardware/gnss/1.0/GnssNiCallback.vts.h",
-        "android/hardware/gnss/1.0/GnssXtra.vts.h",
-        "android/hardware/gnss/1.0/GnssXtraCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.gnss.vts.driver@1.0",
-    generated_sources: ["android.hardware.gnss.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.gnss.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.gnss.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.gnss@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.gnss@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.gnss@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/gnss/1.0/ $(genDir)/android/hardware/gnss/1.0/",
-    srcs: [
-        "types.hal",
-        "IAGnss.hal",
-        "IAGnssCallback.hal",
-        "IAGnssRil.hal",
-        "IAGnssRilCallback.hal",
-        "IGnss.hal",
-        "IGnssBatching.hal",
-        "IGnssBatchingCallback.hal",
-        "IGnssCallback.hal",
-        "IGnssConfiguration.hal",
-        "IGnssDebug.hal",
-        "IGnssGeofenceCallback.hal",
-        "IGnssGeofencing.hal",
-        "IGnssMeasurement.hal",
-        "IGnssMeasurementCallback.hal",
-        "IGnssNavigationMessage.hal",
-        "IGnssNavigationMessageCallback.hal",
-        "IGnssNi.hal",
-        "IGnssNiCallback.hal",
-        "IGnssXtra.hal",
-        "IGnssXtraCallback.hal",
-    ],
-    out: [
-        "android/hardware/gnss/1.0/types.vts.cpp",
-        "android/hardware/gnss/1.0/AGnss.vts.cpp",
-        "android/hardware/gnss/1.0/AGnssCallback.vts.cpp",
-        "android/hardware/gnss/1.0/AGnssRil.vts.cpp",
-        "android/hardware/gnss/1.0/AGnssRilCallback.vts.cpp",
-        "android/hardware/gnss/1.0/Gnss.vts.cpp",
-        "android/hardware/gnss/1.0/GnssBatching.vts.cpp",
-        "android/hardware/gnss/1.0/GnssBatchingCallback.vts.cpp",
-        "android/hardware/gnss/1.0/GnssCallback.vts.cpp",
-        "android/hardware/gnss/1.0/GnssConfiguration.vts.cpp",
-        "android/hardware/gnss/1.0/GnssDebug.vts.cpp",
-        "android/hardware/gnss/1.0/GnssGeofenceCallback.vts.cpp",
-        "android/hardware/gnss/1.0/GnssGeofencing.vts.cpp",
-        "android/hardware/gnss/1.0/GnssMeasurement.vts.cpp",
-        "android/hardware/gnss/1.0/GnssMeasurementCallback.vts.cpp",
-        "android/hardware/gnss/1.0/GnssNavigationMessage.vts.cpp",
-        "android/hardware/gnss/1.0/GnssNavigationMessageCallback.vts.cpp",
-        "android/hardware/gnss/1.0/GnssNi.vts.cpp",
-        "android/hardware/gnss/1.0/GnssNiCallback.vts.cpp",
-        "android/hardware/gnss/1.0/GnssXtra.vts.cpp",
-        "android/hardware/gnss/1.0/GnssXtraCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.gnss@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.gnss@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/gnss/1.0/ $(genDir)/android/hardware/gnss/1.0/",
-    srcs: [
-        "types.hal",
-        "IAGnss.hal",
-        "IAGnssCallback.hal",
-        "IAGnssRil.hal",
-        "IAGnssRilCallback.hal",
-        "IGnss.hal",
-        "IGnssBatching.hal",
-        "IGnssBatchingCallback.hal",
-        "IGnssCallback.hal",
-        "IGnssConfiguration.hal",
-        "IGnssDebug.hal",
-        "IGnssGeofenceCallback.hal",
-        "IGnssGeofencing.hal",
-        "IGnssMeasurement.hal",
-        "IGnssMeasurementCallback.hal",
-        "IGnssNavigationMessage.hal",
-        "IGnssNavigationMessageCallback.hal",
-        "IGnssNi.hal",
-        "IGnssNiCallback.hal",
-        "IGnssXtra.hal",
-        "IGnssXtraCallback.hal",
-    ],
-    out: [
-        "android/hardware/gnss/1.0/types.vts.h",
-        "android/hardware/gnss/1.0/AGnss.vts.h",
-        "android/hardware/gnss/1.0/AGnssCallback.vts.h",
-        "android/hardware/gnss/1.0/AGnssRil.vts.h",
-        "android/hardware/gnss/1.0/AGnssRilCallback.vts.h",
-        "android/hardware/gnss/1.0/Gnss.vts.h",
-        "android/hardware/gnss/1.0/GnssBatching.vts.h",
-        "android/hardware/gnss/1.0/GnssBatchingCallback.vts.h",
-        "android/hardware/gnss/1.0/GnssCallback.vts.h",
-        "android/hardware/gnss/1.0/GnssConfiguration.vts.h",
-        "android/hardware/gnss/1.0/GnssDebug.vts.h",
-        "android/hardware/gnss/1.0/GnssGeofenceCallback.vts.h",
-        "android/hardware/gnss/1.0/GnssGeofencing.vts.h",
-        "android/hardware/gnss/1.0/GnssMeasurement.vts.h",
-        "android/hardware/gnss/1.0/GnssMeasurementCallback.vts.h",
-        "android/hardware/gnss/1.0/GnssNavigationMessage.vts.h",
-        "android/hardware/gnss/1.0/GnssNavigationMessageCallback.vts.h",
-        "android/hardware/gnss/1.0/GnssNi.vts.h",
-        "android/hardware/gnss/1.0/GnssNiCallback.vts.h",
-        "android/hardware/gnss/1.0/GnssXtra.vts.h",
-        "android/hardware/gnss/1.0/GnssXtraCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.gnss@1.0-vts.profiler",
-    generated_sources: ["android.hardware.gnss@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.gnss@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.gnss@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.gnss@1.0",
-    ],
-}
diff --git a/graphics/allocator/2.0/Android.bp b/graphics/allocator/2.0/Android.bp
index 16d8f91..b481fde 100644
--- a/graphics/allocator/2.0/Android.bp
+++ b/graphics/allocator/2.0/Android.bp
@@ -1,5 +1,14 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.graphics.allocator@2.0_hal",
+    srcs: [
+        "types.hal",
+        "IAllocator.hal",
+        "IAllocatorClient.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.graphics.allocator@2.0_genc++",
     tools: ["hidl-gen"],
@@ -64,117 +73,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.graphics.allocator.vts.driver@2.0_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.allocator@2.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/graphics/allocator/2.0/ $(genDir)/android/hardware/graphics/allocator/2.0/",
-    srcs: [
-        "types.hal",
-        "IAllocator.hal",
-        "IAllocatorClient.hal",
-    ],
-    out: [
-        "android/hardware/graphics/allocator/2.0/types.vts.cpp",
-        "android/hardware/graphics/allocator/2.0/Allocator.vts.cpp",
-        "android/hardware/graphics/allocator/2.0/AllocatorClient.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.graphics.allocator.vts.driver@2.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.graphics.allocator@2.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/graphics/allocator/2.0/ $(genDir)/android/hardware/graphics/allocator/2.0/",
-    srcs: [
-        "types.hal",
-        "IAllocator.hal",
-        "IAllocatorClient.hal",
-    ],
-    out: [
-        "android/hardware/graphics/allocator/2.0/types.vts.h",
-        "android/hardware/graphics/allocator/2.0/Allocator.vts.h",
-        "android/hardware/graphics/allocator/2.0/AllocatorClient.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.graphics.allocator.vts.driver@2.0",
-    generated_sources: ["android.hardware.graphics.allocator.vts.driver@2.0_genc++"],
-    generated_headers: ["android.hardware.graphics.allocator.vts.driver@2.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.graphics.allocator.vts.driver@2.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.hardware.graphics.common@1.0",
-        "android.hidl.base@1.0",
-        "android.hardware.graphics.allocator@2.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hardware.graphics.common@1.0",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.graphics.allocator@2.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.graphics.allocator@2.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/graphics/allocator/2.0/ $(genDir)/android/hardware/graphics/allocator/2.0/",
-    srcs: [
-        "types.hal",
-        "IAllocator.hal",
-        "IAllocatorClient.hal",
-    ],
-    out: [
-        "android/hardware/graphics/allocator/2.0/types.vts.cpp",
-        "android/hardware/graphics/allocator/2.0/Allocator.vts.cpp",
-        "android/hardware/graphics/allocator/2.0/AllocatorClient.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.graphics.allocator@2.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.graphics.allocator@2.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/graphics/allocator/2.0/ $(genDir)/android/hardware/graphics/allocator/2.0/",
-    srcs: [
-        "types.hal",
-        "IAllocator.hal",
-        "IAllocatorClient.hal",
-    ],
-    out: [
-        "android/hardware/graphics/allocator/2.0/types.vts.h",
-        "android/hardware/graphics/allocator/2.0/Allocator.vts.h",
-        "android/hardware/graphics/allocator/2.0/AllocatorClient.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.graphics.allocator@2.0-vts.profiler",
-    generated_sources: ["android.hardware.graphics.allocator@2.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.graphics.allocator@2.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.graphics.allocator@2.0-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.graphics.common@1.0",
-        "android.hidl.base@1.0",
-        "android.hardware.graphics.allocator@2.0",
-    ],
-}
diff --git a/graphics/common/1.0/Android.bp b/graphics/common/1.0/Android.bp
index 1d00506..4524e3a 100644
--- a/graphics/common/1.0/Android.bp
+++ b/graphics/common/1.0/Android.bp
@@ -1,5 +1,12 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.graphics.common@1.0_hal",
+    srcs: [
+        "types.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.graphics.common@1.0_genc++",
     tools: ["hidl-gen"],
@@ -44,95 +51,3 @@
         "libutils",
     ],
 }
-
-genrule {
-    name: "android.hardware.graphics.common.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.graphics.common@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/graphics/common/1.0/ $(genDir)/android/hardware/graphics/common/1.0/",
-    srcs: [
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/graphics/common/1.0/types.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.graphics.common.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.graphics.common@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/graphics/common/1.0/ $(genDir)/android/hardware/graphics/common/1.0/",
-    srcs: [
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/graphics/common/1.0/types.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.graphics.common.vts.driver@1.0",
-    generated_sources: ["android.hardware.graphics.common.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.graphics.common.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.graphics.common.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.hardware.graphics.common@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-    ],
-}
-
-genrule {
-    name: "android.hardware.graphics.common@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.graphics.common@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/graphics/common/1.0/ $(genDir)/android/hardware/graphics/common/1.0/",
-    srcs: [
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/graphics/common/1.0/types.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.graphics.common@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.graphics.common@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/graphics/common/1.0/ $(genDir)/android/hardware/graphics/common/1.0/",
-    srcs: [
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/graphics/common/1.0/types.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.graphics.common@1.0-vts.profiler",
-    generated_sources: ["android.hardware.graphics.common@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.graphics.common@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.graphics.common@1.0-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.graphics.common@1.0",
-    ],
-}
diff --git a/graphics/composer/2.1/Android.bp b/graphics/composer/2.1/Android.bp
index bda8aae..9cd753a 100644
--- a/graphics/composer/2.1/Android.bp
+++ b/graphics/composer/2.1/Android.bp
@@ -1,5 +1,15 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.graphics.composer@2.1_hal",
+    srcs: [
+        "types.hal",
+        "IComposer.hal",
+        "IComposerCallback.hal",
+        "IComposerClient.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.graphics.composer@2.1_genc++",
     tools: ["hidl-gen"],
@@ -72,125 +82,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.graphics.composer.vts.driver@2.1_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.composer@2.1 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/graphics/composer/2.1/ $(genDir)/android/hardware/graphics/composer/2.1/",
-    srcs: [
-        "types.hal",
-        "IComposer.hal",
-        "IComposerCallback.hal",
-        "IComposerClient.hal",
-    ],
-    out: [
-        "android/hardware/graphics/composer/2.1/types.vts.cpp",
-        "android/hardware/graphics/composer/2.1/Composer.vts.cpp",
-        "android/hardware/graphics/composer/2.1/ComposerCallback.vts.cpp",
-        "android/hardware/graphics/composer/2.1/ComposerClient.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.graphics.composer.vts.driver@2.1_genc++_headers",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.composer@2.1 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/graphics/composer/2.1/ $(genDir)/android/hardware/graphics/composer/2.1/",
-    srcs: [
-        "types.hal",
-        "IComposer.hal",
-        "IComposerCallback.hal",
-        "IComposerClient.hal",
-    ],
-    out: [
-        "android/hardware/graphics/composer/2.1/types.vts.h",
-        "android/hardware/graphics/composer/2.1/Composer.vts.h",
-        "android/hardware/graphics/composer/2.1/ComposerCallback.vts.h",
-        "android/hardware/graphics/composer/2.1/ComposerClient.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.graphics.composer.vts.driver@2.1",
-    generated_sources: ["android.hardware.graphics.composer.vts.driver@2.1_genc++"],
-    generated_headers: ["android.hardware.graphics.composer.vts.driver@2.1_genc++_headers"],
-    export_generated_headers: ["android.hardware.graphics.composer.vts.driver@2.1_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.hardware.graphics.common@1.0",
-        "android.hidl.base@1.0",
-        "android.hardware.graphics.composer@2.1",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hardware.graphics.common@1.0",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.graphics.composer@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.graphics.composer@2.1 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/graphics/composer/2.1/ $(genDir)/android/hardware/graphics/composer/2.1/",
-    srcs: [
-        "types.hal",
-        "IComposer.hal",
-        "IComposerCallback.hal",
-        "IComposerClient.hal",
-    ],
-    out: [
-        "android/hardware/graphics/composer/2.1/types.vts.cpp",
-        "android/hardware/graphics/composer/2.1/Composer.vts.cpp",
-        "android/hardware/graphics/composer/2.1/ComposerCallback.vts.cpp",
-        "android/hardware/graphics/composer/2.1/ComposerClient.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.graphics.composer@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.graphics.composer@2.1 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/graphics/composer/2.1/ $(genDir)/android/hardware/graphics/composer/2.1/",
-    srcs: [
-        "types.hal",
-        "IComposer.hal",
-        "IComposerCallback.hal",
-        "IComposerClient.hal",
-    ],
-    out: [
-        "android/hardware/graphics/composer/2.1/types.vts.h",
-        "android/hardware/graphics/composer/2.1/Composer.vts.h",
-        "android/hardware/graphics/composer/2.1/ComposerCallback.vts.h",
-        "android/hardware/graphics/composer/2.1/ComposerClient.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.graphics.composer@2.1-vts.profiler",
-    generated_sources: ["android.hardware.graphics.composer@2.1-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.graphics.composer@2.1-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.graphics.composer@2.1-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.graphics.common@1.0",
-        "android.hidl.base@1.0",
-        "android.hardware.graphics.composer@2.1",
-    ],
-}
diff --git a/graphics/mapper/2.0/Android.bp b/graphics/mapper/2.0/Android.bp
index 938ff8b..f53759c 100644
--- a/graphics/mapper/2.0/Android.bp
+++ b/graphics/mapper/2.0/Android.bp
@@ -1,5 +1,13 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.graphics.mapper@2.0_hal",
+    srcs: [
+        "types.hal",
+        "IMapper.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.graphics.mapper@2.0_genc++",
     tools: ["hidl-gen"],
@@ -58,112 +66,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.graphics.mapper.vts.driver@2.0_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.mapper@2.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/graphics/mapper/2.0/ $(genDir)/android/hardware/graphics/mapper/2.0/",
-    srcs: [
-        "types.hal",
-        "IMapper.hal",
-    ],
-    out: [
-        "android/hardware/graphics/mapper/2.0/types.vts.cpp",
-        "android/hardware/graphics/mapper/2.0/Mapper.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.graphics.mapper.vts.driver@2.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.graphics.mapper@2.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/graphics/mapper/2.0/ $(genDir)/android/hardware/graphics/mapper/2.0/",
-    srcs: [
-        "types.hal",
-        "IMapper.hal",
-    ],
-    out: [
-        "android/hardware/graphics/mapper/2.0/types.vts.h",
-        "android/hardware/graphics/mapper/2.0/Mapper.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.graphics.mapper.vts.driver@2.0",
-    generated_sources: ["android.hardware.graphics.mapper.vts.driver@2.0_genc++"],
-    generated_headers: ["android.hardware.graphics.mapper.vts.driver@2.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.graphics.mapper.vts.driver@2.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.hardware.graphics.allocator@2.0",
-        "android.hardware.graphics.common@1.0",
-        "android.hidl.base@1.0",
-        "android.hardware.graphics.mapper@2.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hardware.graphics.allocator@2.0",
-        "android.hardware.graphics.common@1.0",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.graphics.mapper@2.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.graphics.mapper@2.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/graphics/mapper/2.0/ $(genDir)/android/hardware/graphics/mapper/2.0/",
-    srcs: [
-        "types.hal",
-        "IMapper.hal",
-    ],
-    out: [
-        "android/hardware/graphics/mapper/2.0/types.vts.cpp",
-        "android/hardware/graphics/mapper/2.0/Mapper.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.graphics.mapper@2.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.graphics.mapper@2.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/graphics/mapper/2.0/ $(genDir)/android/hardware/graphics/mapper/2.0/",
-    srcs: [
-        "types.hal",
-        "IMapper.hal",
-    ],
-    out: [
-        "android/hardware/graphics/mapper/2.0/types.vts.h",
-        "android/hardware/graphics/mapper/2.0/Mapper.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.graphics.mapper@2.0-vts.profiler",
-    generated_sources: ["android.hardware.graphics.mapper@2.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.graphics.mapper@2.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.graphics.mapper@2.0-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.graphics.allocator@2.0",
-        "android.hardware.graphics.common@1.0",
-        "android.hidl.base@1.0",
-        "android.hardware.graphics.mapper@2.0",
-    ],
-}
diff --git a/health/1.0/Android.bp b/health/1.0/Android.bp
index 4e16231..189cb3d 100644
--- a/health/1.0/Android.bp
+++ b/health/1.0/Android.bp
@@ -1,5 +1,13 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.health@1.0_hal",
+    srcs: [
+        "types.hal",
+        "IHealth.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.health@1.0_genc++",
     tools: ["hidl-gen"],
@@ -54,106 +62,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.health.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.health@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/health/1.0/ $(genDir)/android/hardware/health/1.0/",
-    srcs: [
-        "types.hal",
-        "IHealth.hal",
-    ],
-    out: [
-        "android/hardware/health/1.0/types.vts.cpp",
-        "android/hardware/health/1.0/Health.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.health.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.health@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/health/1.0/ $(genDir)/android/hardware/health/1.0/",
-    srcs: [
-        "types.hal",
-        "IHealth.hal",
-    ],
-    out: [
-        "android/hardware/health/1.0/types.vts.h",
-        "android/hardware/health/1.0/Health.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.health.vts.driver@1.0",
-    generated_sources: ["android.hardware.health.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.health.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.health.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.health@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.health@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.health@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/health/1.0/ $(genDir)/android/hardware/health/1.0/",
-    srcs: [
-        "types.hal",
-        "IHealth.hal",
-    ],
-    out: [
-        "android/hardware/health/1.0/types.vts.cpp",
-        "android/hardware/health/1.0/Health.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.health@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.health@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/health/1.0/ $(genDir)/android/hardware/health/1.0/",
-    srcs: [
-        "types.hal",
-        "IHealth.hal",
-    ],
-    out: [
-        "android/hardware/health/1.0/types.vts.h",
-        "android/hardware/health/1.0/Health.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.health@1.0-vts.profiler",
-    generated_sources: ["android.hardware.health@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.health@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.health@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.health@1.0",
-    ],
-}
diff --git a/keymaster/3.0/Android.bp b/keymaster/3.0/Android.bp
index e9a4985..ec56292 100644
--- a/keymaster/3.0/Android.bp
+++ b/keymaster/3.0/Android.bp
@@ -1,5 +1,13 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.keymaster@3.0_hal",
+    srcs: [
+        "types.hal",
+        "IKeymasterDevice.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.keymaster@3.0_genc++",
     tools: ["hidl-gen"],
@@ -54,106 +62,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.keymaster.vts.driver@3.0_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.keymaster@3.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/keymaster/3.0/ $(genDir)/android/hardware/keymaster/3.0/",
-    srcs: [
-        "types.hal",
-        "IKeymasterDevice.hal",
-    ],
-    out: [
-        "android/hardware/keymaster/3.0/types.vts.cpp",
-        "android/hardware/keymaster/3.0/KeymasterDevice.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.keymaster.vts.driver@3.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.keymaster@3.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/keymaster/3.0/ $(genDir)/android/hardware/keymaster/3.0/",
-    srcs: [
-        "types.hal",
-        "IKeymasterDevice.hal",
-    ],
-    out: [
-        "android/hardware/keymaster/3.0/types.vts.h",
-        "android/hardware/keymaster/3.0/KeymasterDevice.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.keymaster.vts.driver@3.0",
-    generated_sources: ["android.hardware.keymaster.vts.driver@3.0_genc++"],
-    generated_headers: ["android.hardware.keymaster.vts.driver@3.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.keymaster.vts.driver@3.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.keymaster@3.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.keymaster@3.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.keymaster@3.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/keymaster/3.0/ $(genDir)/android/hardware/keymaster/3.0/",
-    srcs: [
-        "types.hal",
-        "IKeymasterDevice.hal",
-    ],
-    out: [
-        "android/hardware/keymaster/3.0/types.vts.cpp",
-        "android/hardware/keymaster/3.0/KeymasterDevice.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.keymaster@3.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.keymaster@3.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/keymaster/3.0/ $(genDir)/android/hardware/keymaster/3.0/",
-    srcs: [
-        "types.hal",
-        "IKeymasterDevice.hal",
-    ],
-    out: [
-        "android/hardware/keymaster/3.0/types.vts.h",
-        "android/hardware/keymaster/3.0/KeymasterDevice.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.keymaster@3.0-vts.profiler",
-    generated_sources: ["android.hardware.keymaster@3.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.keymaster@3.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.keymaster@3.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.keymaster@3.0",
-    ],
-}
diff --git a/light/2.0/Android.bp b/light/2.0/Android.bp
index 928f1c3..74c8e50 100644
--- a/light/2.0/Android.bp
+++ b/light/2.0/Android.bp
@@ -1,5 +1,13 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.light@2.0_hal",
+    srcs: [
+        "types.hal",
+        "ILight.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.light@2.0_genc++",
     tools: ["hidl-gen"],
@@ -54,106 +62,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.light.vts.driver@2.0_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.light@2.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/light/2.0/ $(genDir)/android/hardware/light/2.0/",
-    srcs: [
-        "types.hal",
-        "ILight.hal",
-    ],
-    out: [
-        "android/hardware/light/2.0/types.vts.cpp",
-        "android/hardware/light/2.0/Light.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.light.vts.driver@2.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.light@2.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/light/2.0/ $(genDir)/android/hardware/light/2.0/",
-    srcs: [
-        "types.hal",
-        "ILight.hal",
-    ],
-    out: [
-        "android/hardware/light/2.0/types.vts.h",
-        "android/hardware/light/2.0/Light.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.light.vts.driver@2.0",
-    generated_sources: ["android.hardware.light.vts.driver@2.0_genc++"],
-    generated_headers: ["android.hardware.light.vts.driver@2.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.light.vts.driver@2.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.light@2.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.light@2.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.light@2.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/light/2.0/ $(genDir)/android/hardware/light/2.0/",
-    srcs: [
-        "types.hal",
-        "ILight.hal",
-    ],
-    out: [
-        "android/hardware/light/2.0/types.vts.cpp",
-        "android/hardware/light/2.0/Light.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.light@2.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.light@2.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/light/2.0/ $(genDir)/android/hardware/light/2.0/",
-    srcs: [
-        "types.hal",
-        "ILight.hal",
-    ],
-    out: [
-        "android/hardware/light/2.0/types.vts.h",
-        "android/hardware/light/2.0/Light.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.light@2.0-vts.profiler",
-    generated_sources: ["android.hardware.light@2.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.light@2.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.light@2.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.light@2.0",
-    ],
-}
diff --git a/media/1.0/Android.bp b/media/1.0/Android.bp
index 5f81ca0..36e9eff 100644
--- a/media/1.0/Android.bp
+++ b/media/1.0/Android.bp
@@ -1,5 +1,12 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.media@1.0_hal",
+    srcs: [
+        "types.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.media@1.0_genc++",
     tools: ["hidl-gen"],
@@ -46,98 +53,3 @@
         "android.hardware.graphics.common@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.media.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.media@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/media/1.0/ $(genDir)/android/hardware/media/1.0/",
-    srcs: [
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/media/1.0/types.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.media.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.media@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/media/1.0/ $(genDir)/android/hardware/media/1.0/",
-    srcs: [
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/media/1.0/types.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.media.vts.driver@1.0",
-    generated_sources: ["android.hardware.media.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.media.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.media.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.hardware.graphics.common@1.0",
-        "android.hardware.media@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hardware.graphics.common@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.media@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.media@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/media/1.0/ $(genDir)/android/hardware/media/1.0/",
-    srcs: [
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/media/1.0/types.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.media@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.media@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/media/1.0/ $(genDir)/android/hardware/media/1.0/",
-    srcs: [
-        "types.hal",
-    ],
-    out: [
-        "android/hardware/media/1.0/types.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.media@1.0-vts.profiler",
-    generated_sources: ["android.hardware.media@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.media@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.media@1.0-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.graphics.common@1.0",
-        "android.hardware.media@1.0",
-    ],
-}
diff --git a/media/omx/1.0/Android.bp b/media/omx/1.0/Android.bp
index 6a27a34..e042e5d 100644
--- a/media/omx/1.0/Android.bp
+++ b/media/omx/1.0/Android.bp
@@ -1,5 +1,19 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.media.omx@1.0_hal",
+    srcs: [
+        "types.hal",
+        "IGraphicBufferSource.hal",
+        "IOmx.hal",
+        "IOmxBufferProducer.hal",
+        "IOmxBufferSource.hal",
+        "IOmxNode.hal",
+        "IOmxObserver.hal",
+        "IOmxProducerListener.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.media.omx@1.0_genc++",
     tools: ["hidl-gen"],
@@ -106,160 +120,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.media.omx.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.media.omx@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/media/omx/1.0/ $(genDir)/android/hardware/media/omx/1.0/",
-    srcs: [
-        "types.hal",
-        "IGraphicBufferSource.hal",
-        "IOmx.hal",
-        "IOmxBufferProducer.hal",
-        "IOmxBufferSource.hal",
-        "IOmxNode.hal",
-        "IOmxObserver.hal",
-        "IOmxProducerListener.hal",
-    ],
-    out: [
-        "android/hardware/media/omx/1.0/types.vts.cpp",
-        "android/hardware/media/omx/1.0/GraphicBufferSource.vts.cpp",
-        "android/hardware/media/omx/1.0/Omx.vts.cpp",
-        "android/hardware/media/omx/1.0/OmxBufferProducer.vts.cpp",
-        "android/hardware/media/omx/1.0/OmxBufferSource.vts.cpp",
-        "android/hardware/media/omx/1.0/OmxNode.vts.cpp",
-        "android/hardware/media/omx/1.0/OmxObserver.vts.cpp",
-        "android/hardware/media/omx/1.0/OmxProducerListener.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.media.omx.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.media.omx@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/media/omx/1.0/ $(genDir)/android/hardware/media/omx/1.0/",
-    srcs: [
-        "types.hal",
-        "IGraphicBufferSource.hal",
-        "IOmx.hal",
-        "IOmxBufferProducer.hal",
-        "IOmxBufferSource.hal",
-        "IOmxNode.hal",
-        "IOmxObserver.hal",
-        "IOmxProducerListener.hal",
-    ],
-    out: [
-        "android/hardware/media/omx/1.0/types.vts.h",
-        "android/hardware/media/omx/1.0/GraphicBufferSource.vts.h",
-        "android/hardware/media/omx/1.0/Omx.vts.h",
-        "android/hardware/media/omx/1.0/OmxBufferProducer.vts.h",
-        "android/hardware/media/omx/1.0/OmxBufferSource.vts.h",
-        "android/hardware/media/omx/1.0/OmxNode.vts.h",
-        "android/hardware/media/omx/1.0/OmxObserver.vts.h",
-        "android/hardware/media/omx/1.0/OmxProducerListener.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.media.omx.vts.driver@1.0",
-    generated_sources: ["android.hardware.media.omx.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.media.omx.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.media.omx.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.hardware.graphics.common@1.0",
-        "android.hardware.media@1.0",
-        "android.hidl.base@1.0",
-        "android.hardware.media.omx@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hardware.graphics.common@1.0",
-        "android.hardware.media@1.0",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.media.omx@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.media.omx@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/media/omx/1.0/ $(genDir)/android/hardware/media/omx/1.0/",
-    srcs: [
-        "types.hal",
-        "IGraphicBufferSource.hal",
-        "IOmx.hal",
-        "IOmxBufferProducer.hal",
-        "IOmxBufferSource.hal",
-        "IOmxNode.hal",
-        "IOmxObserver.hal",
-        "IOmxProducerListener.hal",
-    ],
-    out: [
-        "android/hardware/media/omx/1.0/types.vts.cpp",
-        "android/hardware/media/omx/1.0/GraphicBufferSource.vts.cpp",
-        "android/hardware/media/omx/1.0/Omx.vts.cpp",
-        "android/hardware/media/omx/1.0/OmxBufferProducer.vts.cpp",
-        "android/hardware/media/omx/1.0/OmxBufferSource.vts.cpp",
-        "android/hardware/media/omx/1.0/OmxNode.vts.cpp",
-        "android/hardware/media/omx/1.0/OmxObserver.vts.cpp",
-        "android/hardware/media/omx/1.0/OmxProducerListener.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.media.omx@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.media.omx@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/media/omx/1.0/ $(genDir)/android/hardware/media/omx/1.0/",
-    srcs: [
-        "types.hal",
-        "IGraphicBufferSource.hal",
-        "IOmx.hal",
-        "IOmxBufferProducer.hal",
-        "IOmxBufferSource.hal",
-        "IOmxNode.hal",
-        "IOmxObserver.hal",
-        "IOmxProducerListener.hal",
-    ],
-    out: [
-        "android/hardware/media/omx/1.0/types.vts.h",
-        "android/hardware/media/omx/1.0/GraphicBufferSource.vts.h",
-        "android/hardware/media/omx/1.0/Omx.vts.h",
-        "android/hardware/media/omx/1.0/OmxBufferProducer.vts.h",
-        "android/hardware/media/omx/1.0/OmxBufferSource.vts.h",
-        "android/hardware/media/omx/1.0/OmxNode.vts.h",
-        "android/hardware/media/omx/1.0/OmxObserver.vts.h",
-        "android/hardware/media/omx/1.0/OmxProducerListener.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.media.omx@1.0-vts.profiler",
-    generated_sources: ["android.hardware.media.omx@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.media.omx@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.media.omx@1.0-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.graphics.common@1.0",
-        "android.hardware.media@1.0",
-        "android.hidl.base@1.0",
-        "android.hardware.media.omx@1.0",
-    ],
-}
diff --git a/memtrack/1.0/Android.bp b/memtrack/1.0/Android.bp
index 3a2db14..9a1b84a 100644
--- a/memtrack/1.0/Android.bp
+++ b/memtrack/1.0/Android.bp
@@ -1,5 +1,13 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.memtrack@1.0_hal",
+    srcs: [
+        "types.hal",
+        "IMemtrack.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.memtrack@1.0_genc++",
     tools: ["hidl-gen"],
@@ -54,106 +62,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.memtrack.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.memtrack@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/memtrack/1.0/ $(genDir)/android/hardware/memtrack/1.0/",
-    srcs: [
-        "types.hal",
-        "IMemtrack.hal",
-    ],
-    out: [
-        "android/hardware/memtrack/1.0/types.vts.cpp",
-        "android/hardware/memtrack/1.0/Memtrack.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.memtrack.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.memtrack@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/memtrack/1.0/ $(genDir)/android/hardware/memtrack/1.0/",
-    srcs: [
-        "types.hal",
-        "IMemtrack.hal",
-    ],
-    out: [
-        "android/hardware/memtrack/1.0/types.vts.h",
-        "android/hardware/memtrack/1.0/Memtrack.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.memtrack.vts.driver@1.0",
-    generated_sources: ["android.hardware.memtrack.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.memtrack.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.memtrack.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.memtrack@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.memtrack@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.memtrack@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/memtrack/1.0/ $(genDir)/android/hardware/memtrack/1.0/",
-    srcs: [
-        "types.hal",
-        "IMemtrack.hal",
-    ],
-    out: [
-        "android/hardware/memtrack/1.0/types.vts.cpp",
-        "android/hardware/memtrack/1.0/Memtrack.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.memtrack@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.memtrack@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/memtrack/1.0/ $(genDir)/android/hardware/memtrack/1.0/",
-    srcs: [
-        "types.hal",
-        "IMemtrack.hal",
-    ],
-    out: [
-        "android/hardware/memtrack/1.0/types.vts.h",
-        "android/hardware/memtrack/1.0/Memtrack.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.memtrack@1.0-vts.profiler",
-    generated_sources: ["android.hardware.memtrack@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.memtrack@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.memtrack@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.memtrack@1.0",
-    ],
-}
diff --git a/power/1.0/Android.bp b/power/1.0/Android.bp
index 33caa8d..62e03ea 100644
--- a/power/1.0/Android.bp
+++ b/power/1.0/Android.bp
@@ -1,5 +1,13 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.power@1.0_hal",
+    srcs: [
+        "types.hal",
+        "IPower.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.power@1.0_genc++",
     tools: ["hidl-gen"],
@@ -54,106 +62,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.power.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.power@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/power/1.0/ $(genDir)/android/hardware/power/1.0/",
-    srcs: [
-        "types.hal",
-        "IPower.hal",
-    ],
-    out: [
-        "android/hardware/power/1.0/types.vts.cpp",
-        "android/hardware/power/1.0/Power.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.power.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.power@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/power/1.0/ $(genDir)/android/hardware/power/1.0/",
-    srcs: [
-        "types.hal",
-        "IPower.hal",
-    ],
-    out: [
-        "android/hardware/power/1.0/types.vts.h",
-        "android/hardware/power/1.0/Power.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.power.vts.driver@1.0",
-    generated_sources: ["android.hardware.power.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.power.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.power.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.power@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.power@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.power@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/power/1.0/ $(genDir)/android/hardware/power/1.0/",
-    srcs: [
-        "types.hal",
-        "IPower.hal",
-    ],
-    out: [
-        "android/hardware/power/1.0/types.vts.cpp",
-        "android/hardware/power/1.0/Power.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.power@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.power@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/power/1.0/ $(genDir)/android/hardware/power/1.0/",
-    srcs: [
-        "types.hal",
-        "IPower.hal",
-    ],
-    out: [
-        "android/hardware/power/1.0/types.vts.h",
-        "android/hardware/power/1.0/Power.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.power@1.0-vts.profiler",
-    generated_sources: ["android.hardware.power@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.power@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.power@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.power@1.0",
-    ],
-}
diff --git a/radio/1.0/Android.mk b/radio/1.0/Android.mk
index 82bde55..704ea08 100644
--- a/radio/1.0/Android.mk
+++ b/radio/1.0/Android.mk
@@ -55,6 +55,25 @@
 LOCAL_GENERATED_SOURCES += $(GEN)
 
 #
+# Build types.hal (ApnTypes)
+#
+GEN := $(intermediates)/android/hardware/radio/V1_0/ApnTypes.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+        -Ljava \
+        -randroid.hardware:hardware/interfaces \
+        -randroid.hidl:system/libhidl/transport \
+        android.hardware.radio@1.0::types.ApnTypes
+
+$(GEN): $(LOCAL_PATH)/types.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
 # Build types.hal (AppState)
 #
 GEN := $(intermediates)/android/hardware/radio/V1_0/AppState.java
@@ -1290,6 +1309,25 @@
 LOCAL_GENERATED_SOURCES += $(GEN)
 
 #
+# Build types.hal (DeviceStateType)
+#
+GEN := $(intermediates)/android/hardware/radio/V1_0/DeviceStateType.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+        -Ljava \
+        -randroid.hardware:hardware/interfaces \
+        -randroid.hidl:system/libhidl/transport \
+        android.hardware.radio@1.0::types.DeviceStateType
+
+$(GEN): $(LOCAL_PATH)/types.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
 # Build types.hal (Dial)
 #
 GEN := $(intermediates)/android/hardware/radio/V1_0/Dial.java
@@ -1537,6 +1575,25 @@
 LOCAL_GENERATED_SOURCES += $(GEN)
 
 #
+# Build types.hal (IndicationFilter)
+#
+GEN := $(intermediates)/android/hardware/radio/V1_0/IndicationFilter.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+        -Ljava \
+        -randroid.hardware:hardware/interfaces \
+        -randroid.hidl:system/libhidl/transport \
+        android.hardware.radio@1.0::types.IndicationFilter
+
+$(GEN): $(LOCAL_PATH)/types.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
 # Build types.hal (LastCallFailCause)
 #
 GEN := $(intermediates)/android/hardware/radio/V1_0/LastCallFailCause.java
@@ -1651,6 +1708,25 @@
 LOCAL_GENERATED_SOURCES += $(GEN)
 
 #
+# Build types.hal (MvnoType)
+#
+GEN := $(intermediates)/android/hardware/radio/V1_0/MvnoType.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+        -Ljava \
+        -randroid.hardware:hardware/interfaces \
+        -randroid.hidl:system/libhidl/transport \
+        android.hardware.radio@1.0::types.MvnoType
+
+$(GEN): $(LOCAL_PATH)/types.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
 # Build types.hal (NeighboringCell)
 #
 GEN := $(intermediates)/android/hardware/radio/V1_0/NeighboringCell.java
@@ -2828,83 +2904,6 @@
 	$(transform-generated-source)
 LOCAL_GENERATED_SOURCES += $(GEN)
 
-
-#
-# Build types.hal (MvnoType)
-#
-GEN := $(intermediates)/android/hardware/radio/V1_0/MvnoType.java
-$(GEN): $(HIDL)
-$(GEN): PRIVATE_HIDL := $(HIDL)
-$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
-$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
-$(GEN): PRIVATE_CUSTOM_TOOL = \
-        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
-        -Ljava \
-        -randroid.hardware:hardware/interfaces \
-        -randroid.hidl:system/libhidl/transport \
-        android.hardware.radio@1.0::types.MvnoType
-
-$(GEN): $(LOCAL_PATH)/types.hal
-	$(transform-generated-source)
-LOCAL_GENERATED_SOURCES += $(GEN)
-
-#
-# Build types.hal (ApnTypes)
-#
-GEN := $(intermediates)/android/hardware/radio/V1_0/ApnTypes.java
-$(GEN): $(HIDL)
-$(GEN): PRIVATE_HIDL := $(HIDL)
-$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
-$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
-$(GEN): PRIVATE_CUSTOM_TOOL = \
-        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
-        -Ljava \
-        -randroid.hardware:hardware/interfaces \
-        -randroid.hidl:system/libhidl/transport \
-        android.hardware.radio@1.0::types.ApnTypes
-
-$(GEN): $(LOCAL_PATH)/types.hal
-	$(transform-generated-source)
-LOCAL_GENERATED_SOURCES += $(GEN)
-
-#
-# Build types.hal (IndicationFilter)
-#
-GEN := $(intermediates)/android/hardware/radio/V1_0/IndicationFilter.java
-$(GEN): $(HIDL)
-$(GEN): PRIVATE_HIDL := $(HIDL)
-$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
-$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
-$(GEN): PRIVATE_CUSTOM_TOOL = \
-        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
-        -Ljava \
-        -randroid.hardware:hardware/interfaces \
-        -randroid.hidl:system/libhidl/transport \
-        android.hardware.radio@1.0::types.IndicationFilter
-
-$(GEN): $(LOCAL_PATH)/types.hal
-	$(transform-generated-source)
-LOCAL_GENERATED_SOURCES += $(GEN)
-
-#
-# Build types.hal (DeviceStateType)
-#
-GEN := $(intermediates)/android/hardware/radio/V1_0/DeviceStateType.java
-$(GEN): $(HIDL)
-$(GEN): PRIVATE_HIDL := $(HIDL)
-$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
-$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
-$(GEN): PRIVATE_CUSTOM_TOOL = \
-        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
-        -Ljava \
-        -randroid.hardware:hardware/interfaces \
-        -randroid.hidl:system/libhidl/transport \
-        android.hardware.radio@1.0::types.DeviceStateType
-
-$(GEN): $(LOCAL_PATH)/types.hal
-	$(transform-generated-source)
-LOCAL_GENERATED_SOURCES += $(GEN)
-
 #
 # Build IRadio.hal
 #
@@ -3071,6 +3070,25 @@
 LOCAL_GENERATED_SOURCES += $(GEN)
 
 #
+# Build types.hal (ApnTypes)
+#
+GEN := $(intermediates)/android/hardware/radio/V1_0/ApnTypes.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+        -Ljava \
+        -randroid.hardware:hardware/interfaces \
+        -randroid.hidl:system/libhidl/transport \
+        android.hardware.radio@1.0::types.ApnTypes
+
+$(GEN): $(LOCAL_PATH)/types.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
 # Build types.hal (AppState)
 #
 GEN := $(intermediates)/android/hardware/radio/V1_0/AppState.java
@@ -4306,6 +4324,25 @@
 LOCAL_GENERATED_SOURCES += $(GEN)
 
 #
+# Build types.hal (DeviceStateType)
+#
+GEN := $(intermediates)/android/hardware/radio/V1_0/DeviceStateType.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+        -Ljava \
+        -randroid.hardware:hardware/interfaces \
+        -randroid.hidl:system/libhidl/transport \
+        android.hardware.radio@1.0::types.DeviceStateType
+
+$(GEN): $(LOCAL_PATH)/types.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
 # Build types.hal (Dial)
 #
 GEN := $(intermediates)/android/hardware/radio/V1_0/Dial.java
@@ -4553,6 +4590,25 @@
 LOCAL_GENERATED_SOURCES += $(GEN)
 
 #
+# Build types.hal (IndicationFilter)
+#
+GEN := $(intermediates)/android/hardware/radio/V1_0/IndicationFilter.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+        -Ljava \
+        -randroid.hardware:hardware/interfaces \
+        -randroid.hidl:system/libhidl/transport \
+        android.hardware.radio@1.0::types.IndicationFilter
+
+$(GEN): $(LOCAL_PATH)/types.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
 # Build types.hal (LastCallFailCause)
 #
 GEN := $(intermediates)/android/hardware/radio/V1_0/LastCallFailCause.java
@@ -4667,6 +4723,25 @@
 LOCAL_GENERATED_SOURCES += $(GEN)
 
 #
+# Build types.hal (MvnoType)
+#
+GEN := $(intermediates)/android/hardware/radio/V1_0/MvnoType.java
+$(GEN): $(HIDL)
+$(GEN): PRIVATE_HIDL := $(HIDL)
+$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
+$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
+$(GEN): PRIVATE_CUSTOM_TOOL = \
+        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
+        -Ljava \
+        -randroid.hardware:hardware/interfaces \
+        -randroid.hidl:system/libhidl/transport \
+        android.hardware.radio@1.0::types.MvnoType
+
+$(GEN): $(LOCAL_PATH)/types.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
 # Build types.hal (NeighboringCell)
 #
 GEN := $(intermediates)/android/hardware/radio/V1_0/NeighboringCell.java
@@ -5845,82 +5920,6 @@
 LOCAL_GENERATED_SOURCES += $(GEN)
 
 #
-# Build types.hal (MvnoType)
-#
-GEN := $(intermediates)/android/hardware/radio/V1_0/MvnoType.java
-$(GEN): $(HIDL)
-$(GEN): PRIVATE_HIDL := $(HIDL)
-$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
-$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
-$(GEN): PRIVATE_CUSTOM_TOOL = \
-        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
-        -Ljava \
-        -randroid.hardware:hardware/interfaces \
-        -randroid.hidl:system/libhidl/transport \
-        android.hardware.radio@1.0::types.MvnoType
-
-$(GEN): $(LOCAL_PATH)/types.hal
-	$(transform-generated-source)
-LOCAL_GENERATED_SOURCES += $(GEN)
-
-#
-# Build types.hal (ApnTypes)
-#
-GEN := $(intermediates)/android/hardware/radio/V1_0/ApnTypes.java
-$(GEN): $(HIDL)
-$(GEN): PRIVATE_HIDL := $(HIDL)
-$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
-$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
-$(GEN): PRIVATE_CUSTOM_TOOL = \
-        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
-        -Ljava \
-        -randroid.hardware:hardware/interfaces \
-        -randroid.hidl:system/libhidl/transport \
-        android.hardware.radio@1.0::types.ApnTypes
-
-$(GEN): $(LOCAL_PATH)/types.hal
-	$(transform-generated-source)
-LOCAL_GENERATED_SOURCES += $(GEN)
-
-#
-# Build types.hal (IndicationFilter)
-#
-GEN := $(intermediates)/android/hardware/radio/V1_0/IndicationFilter.java
-$(GEN): $(HIDL)
-$(GEN): PRIVATE_HIDL := $(HIDL)
-$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
-$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
-$(GEN): PRIVATE_CUSTOM_TOOL = \
-        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
-        -Ljava \
-        -randroid.hardware:hardware/interfaces \
-        -randroid.hidl:system/libhidl/transport \
-        android.hardware.radio@1.0::types.IndicationFilter
-
-$(GEN): $(LOCAL_PATH)/types.hal
-	$(transform-generated-source)
-LOCAL_GENERATED_SOURCES += $(GEN)
-
-#
-# Build types.hal (DeviceStateType)
-#
-GEN := $(intermediates)/android/hardware/radio/V1_0/DeviceStateType.java
-$(GEN): $(HIDL)
-$(GEN): PRIVATE_HIDL := $(HIDL)
-$(GEN): PRIVATE_DEPS := $(LOCAL_PATH)/types.hal
-$(GEN): PRIVATE_OUTPUT_DIR := $(intermediates)
-$(GEN): PRIVATE_CUSTOM_TOOL = \
-        $(PRIVATE_HIDL) -o $(PRIVATE_OUTPUT_DIR) \
-        -Ljava \
-        -randroid.hardware:hardware/interfaces \
-        -randroid.hidl:system/libhidl/transport \
-        android.hardware.radio@1.0::types.DeviceStateType
-
-$(GEN): $(LOCAL_PATH)/types.hal
-	$(transform-generated-source)
-LOCAL_GENERATED_SOURCES += $(GEN)
-
-#
 # Build IRadio.hal
 #
 GEN := $(intermediates)/android/hardware/radio/V1_0/IRadio.java
diff --git a/sensors/1.0/Android.bp b/sensors/1.0/Android.bp
index d4ebe98..1ddb50c 100644
--- a/sensors/1.0/Android.bp
+++ b/sensors/1.0/Android.bp
@@ -1,5 +1,13 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.sensors@1.0_hal",
+    srcs: [
+        "types.hal",
+        "ISensors.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.sensors@1.0_genc++",
     tools: ["hidl-gen"],
@@ -54,106 +62,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.sensors.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.sensors@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/sensors/1.0/ $(genDir)/android/hardware/sensors/1.0/",
-    srcs: [
-        "types.hal",
-        "ISensors.hal",
-    ],
-    out: [
-        "android/hardware/sensors/1.0/types.vts.cpp",
-        "android/hardware/sensors/1.0/Sensors.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.sensors.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.sensors@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/sensors/1.0/ $(genDir)/android/hardware/sensors/1.0/",
-    srcs: [
-        "types.hal",
-        "ISensors.hal",
-    ],
-    out: [
-        "android/hardware/sensors/1.0/types.vts.h",
-        "android/hardware/sensors/1.0/Sensors.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.sensors.vts.driver@1.0",
-    generated_sources: ["android.hardware.sensors.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.sensors.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.sensors.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.sensors@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.sensors@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.sensors@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/sensors/1.0/ $(genDir)/android/hardware/sensors/1.0/",
-    srcs: [
-        "types.hal",
-        "ISensors.hal",
-    ],
-    out: [
-        "android/hardware/sensors/1.0/types.vts.cpp",
-        "android/hardware/sensors/1.0/Sensors.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.sensors@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.sensors@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/sensors/1.0/ $(genDir)/android/hardware/sensors/1.0/",
-    srcs: [
-        "types.hal",
-        "ISensors.hal",
-    ],
-    out: [
-        "android/hardware/sensors/1.0/types.vts.h",
-        "android/hardware/sensors/1.0/Sensors.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.sensors@1.0-vts.profiler",
-    generated_sources: ["android.hardware.sensors@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.sensors@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.sensors@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.sensors@1.0",
-    ],
-}
diff --git a/soundtrigger/2.0/Android.bp b/soundtrigger/2.0/Android.bp
index a11cbe6..1473776 100644
--- a/soundtrigger/2.0/Android.bp
+++ b/soundtrigger/2.0/Android.bp
@@ -1,5 +1,14 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.soundtrigger@2.0_hal",
+    srcs: [
+        "types.hal",
+        "ISoundTriggerHw.hal",
+        "ISoundTriggerHwCallback.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.soundtrigger@2.0_genc++",
     tools: ["hidl-gen"],
@@ -64,117 +73,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.soundtrigger.vts.driver@2.0_genc++",
-    tools: ["hidl-gen", "vtsc"],
-    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.soundtrigger@2.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/soundtrigger/2.0/ $(genDir)/android/hardware/soundtrigger/2.0/",
-    srcs: [
-        "types.hal",
-        "ISoundTriggerHw.hal",
-        "ISoundTriggerHwCallback.hal",
-    ],
-    out: [
-        "android/hardware/soundtrigger/2.0/types.vts.cpp",
-        "android/hardware/soundtrigger/2.0/SoundTriggerHw.vts.cpp",
-        "android/hardware/soundtrigger/2.0/SoundTriggerHwCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.soundtrigger.vts.driver@2.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.soundtrigger@2.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/soundtrigger/2.0/ $(genDir)/android/hardware/soundtrigger/2.0/",
-    srcs: [
-        "types.hal",
-        "ISoundTriggerHw.hal",
-        "ISoundTriggerHwCallback.hal",
-    ],
-    out: [
-        "android/hardware/soundtrigger/2.0/types.vts.h",
-        "android/hardware/soundtrigger/2.0/SoundTriggerHw.vts.h",
-        "android/hardware/soundtrigger/2.0/SoundTriggerHwCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.soundtrigger.vts.driver@2.0",
-    generated_sources: ["android.hardware.soundtrigger.vts.driver@2.0_genc++"],
-    generated_headers: ["android.hardware.soundtrigger.vts.driver@2.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.soundtrigger.vts.driver@2.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.hardware.audio.common@2.0",
-        "android.hidl.base@1.0",
-        "android.hardware.soundtrigger@2.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hardware.audio.common@2.0",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.soundtrigger@2.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.soundtrigger@2.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/soundtrigger/2.0/ $(genDir)/android/hardware/soundtrigger/2.0/",
-    srcs: [
-        "types.hal",
-        "ISoundTriggerHw.hal",
-        "ISoundTriggerHwCallback.hal",
-    ],
-    out: [
-        "android/hardware/soundtrigger/2.0/types.vts.cpp",
-        "android/hardware/soundtrigger/2.0/SoundTriggerHw.vts.cpp",
-        "android/hardware/soundtrigger/2.0/SoundTriggerHwCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.soundtrigger@2.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.soundtrigger@2.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/soundtrigger/2.0/ $(genDir)/android/hardware/soundtrigger/2.0/",
-    srcs: [
-        "types.hal",
-        "ISoundTriggerHw.hal",
-        "ISoundTriggerHwCallback.hal",
-    ],
-    out: [
-        "android/hardware/soundtrigger/2.0/types.vts.h",
-        "android/hardware/soundtrigger/2.0/SoundTriggerHw.vts.h",
-        "android/hardware/soundtrigger/2.0/SoundTriggerHwCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.soundtrigger@2.0-vts.profiler",
-    generated_sources: ["android.hardware.soundtrigger@2.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.soundtrigger@2.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.soundtrigger@2.0-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.audio.common@2.0",
-        "android.hidl.base@1.0",
-        "android.hardware.soundtrigger@2.0",
-    ],
-}
diff --git a/thermal/1.0/Android.bp b/thermal/1.0/Android.bp
index fc44ff1..c4b6d39 100644
--- a/thermal/1.0/Android.bp
+++ b/thermal/1.0/Android.bp
@@ -1,5 +1,13 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.thermal@1.0_hal",
+    srcs: [
+        "types.hal",
+        "IThermal.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.thermal@1.0_genc++",
     tools: ["hidl-gen"],
@@ -54,106 +62,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.thermal.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.thermal@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/thermal/1.0/ $(genDir)/android/hardware/thermal/1.0/",
-    srcs: [
-        "types.hal",
-        "IThermal.hal",
-    ],
-    out: [
-        "android/hardware/thermal/1.0/types.vts.cpp",
-        "android/hardware/thermal/1.0/Thermal.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.thermal.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.thermal@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/thermal/1.0/ $(genDir)/android/hardware/thermal/1.0/",
-    srcs: [
-        "types.hal",
-        "IThermal.hal",
-    ],
-    out: [
-        "android/hardware/thermal/1.0/types.vts.h",
-        "android/hardware/thermal/1.0/Thermal.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.thermal.vts.driver@1.0",
-    generated_sources: ["android.hardware.thermal.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.thermal.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.thermal.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.thermal@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.thermal@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.thermal@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/thermal/1.0/ $(genDir)/android/hardware/thermal/1.0/",
-    srcs: [
-        "types.hal",
-        "IThermal.hal",
-    ],
-    out: [
-        "android/hardware/thermal/1.0/types.vts.cpp",
-        "android/hardware/thermal/1.0/Thermal.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.thermal@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.thermal@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/thermal/1.0/ $(genDir)/android/hardware/thermal/1.0/",
-    srcs: [
-        "types.hal",
-        "IThermal.hal",
-    ],
-    out: [
-        "android/hardware/thermal/1.0/types.vts.h",
-        "android/hardware/thermal/1.0/Thermal.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.thermal@1.0-vts.profiler",
-    generated_sources: ["android.hardware.thermal@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.thermal@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.thermal@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.thermal@1.0",
-    ],
-}
diff --git a/tv/cec/1.0/Android.bp b/tv/cec/1.0/Android.bp
index 0096589..d2eee14 100644
--- a/tv/cec/1.0/Android.bp
+++ b/tv/cec/1.0/Android.bp
@@ -1,5 +1,14 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.tv.cec@1.0_hal",
+    srcs: [
+        "types.hal",
+        "IHdmiCec.hal",
+        "IHdmiCecCallback.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.tv.cec@1.0_genc++",
     tools: ["hidl-gen"],
@@ -62,114 +71,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.tv.cec.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.tv.cec@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/tv/cec/1.0/ $(genDir)/android/hardware/tv/cec/1.0/",
-    srcs: [
-        "types.hal",
-        "IHdmiCec.hal",
-        "IHdmiCecCallback.hal",
-    ],
-    out: [
-        "android/hardware/tv/cec/1.0/types.vts.cpp",
-        "android/hardware/tv/cec/1.0/HdmiCec.vts.cpp",
-        "android/hardware/tv/cec/1.0/HdmiCecCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.tv.cec.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.tv.cec@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/tv/cec/1.0/ $(genDir)/android/hardware/tv/cec/1.0/",
-    srcs: [
-        "types.hal",
-        "IHdmiCec.hal",
-        "IHdmiCecCallback.hal",
-    ],
-    out: [
-        "android/hardware/tv/cec/1.0/types.vts.h",
-        "android/hardware/tv/cec/1.0/HdmiCec.vts.h",
-        "android/hardware/tv/cec/1.0/HdmiCecCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.tv.cec.vts.driver@1.0",
-    generated_sources: ["android.hardware.tv.cec.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.tv.cec.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.tv.cec.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.tv.cec@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.tv.cec@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.tv.cec@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/tv/cec/1.0/ $(genDir)/android/hardware/tv/cec/1.0/",
-    srcs: [
-        "types.hal",
-        "IHdmiCec.hal",
-        "IHdmiCecCallback.hal",
-    ],
-    out: [
-        "android/hardware/tv/cec/1.0/types.vts.cpp",
-        "android/hardware/tv/cec/1.0/HdmiCec.vts.cpp",
-        "android/hardware/tv/cec/1.0/HdmiCecCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.tv.cec@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.tv.cec@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/tv/cec/1.0/ $(genDir)/android/hardware/tv/cec/1.0/",
-    srcs: [
-        "types.hal",
-        "IHdmiCec.hal",
-        "IHdmiCecCallback.hal",
-    ],
-    out: [
-        "android/hardware/tv/cec/1.0/types.vts.h",
-        "android/hardware/tv/cec/1.0/HdmiCec.vts.h",
-        "android/hardware/tv/cec/1.0/HdmiCecCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.tv.cec@1.0-vts.profiler",
-    generated_sources: ["android.hardware.tv.cec@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.tv.cec@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.tv.cec@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.tv.cec@1.0",
-    ],
-}
diff --git a/tv/input/1.0/Android.bp b/tv/input/1.0/Android.bp
index a71cdc5..3666b85 100644
--- a/tv/input/1.0/Android.bp
+++ b/tv/input/1.0/Android.bp
@@ -1,5 +1,14 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.tv.input@1.0_hal",
+    srcs: [
+        "types.hal",
+        "ITvInput.hal",
+        "ITvInputCallback.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.tv.input@1.0_genc++",
     tools: ["hidl-gen"],
@@ -64,117 +73,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.tv.input.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.tv.input@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/tv/input/1.0/ $(genDir)/android/hardware/tv/input/1.0/",
-    srcs: [
-        "types.hal",
-        "ITvInput.hal",
-        "ITvInputCallback.hal",
-    ],
-    out: [
-        "android/hardware/tv/input/1.0/types.vts.cpp",
-        "android/hardware/tv/input/1.0/TvInput.vts.cpp",
-        "android/hardware/tv/input/1.0/TvInputCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.tv.input.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.tv.input@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/tv/input/1.0/ $(genDir)/android/hardware/tv/input/1.0/",
-    srcs: [
-        "types.hal",
-        "ITvInput.hal",
-        "ITvInputCallback.hal",
-    ],
-    out: [
-        "android/hardware/tv/input/1.0/types.vts.h",
-        "android/hardware/tv/input/1.0/TvInput.vts.h",
-        "android/hardware/tv/input/1.0/TvInputCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.tv.input.vts.driver@1.0",
-    generated_sources: ["android.hardware.tv.input.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.tv.input.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.tv.input.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.hardware.audio.common@2.0",
-        "android.hidl.base@1.0",
-        "android.hardware.tv.input@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hardware.audio.common@2.0",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.tv.input@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.tv.input@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/tv/input/1.0/ $(genDir)/android/hardware/tv/input/1.0/",
-    srcs: [
-        "types.hal",
-        "ITvInput.hal",
-        "ITvInputCallback.hal",
-    ],
-    out: [
-        "android/hardware/tv/input/1.0/types.vts.cpp",
-        "android/hardware/tv/input/1.0/TvInput.vts.cpp",
-        "android/hardware/tv/input/1.0/TvInputCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.tv.input@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.tv.input@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/tv/input/1.0/ $(genDir)/android/hardware/tv/input/1.0/",
-    srcs: [
-        "types.hal",
-        "ITvInput.hal",
-        "ITvInputCallback.hal",
-    ],
-    out: [
-        "android/hardware/tv/input/1.0/types.vts.h",
-        "android/hardware/tv/input/1.0/TvInput.vts.h",
-        "android/hardware/tv/input/1.0/TvInputCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.tv.input@1.0-vts.profiler",
-    generated_sources: ["android.hardware.tv.input@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.tv.input@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.tv.input@1.0-vts.profiler_genc++_headers"],
-    shared_libs: [
-        "libbase",
-        "libhidlbase",
-        "libhidltransport",
-        "libvts_profiling",
-        "libvts_multidevice_proto",
-        "libprotobuf-cpp-full",
-        "android.hardware.audio.common@2.0",
-        "android.hidl.base@1.0",
-        "android.hardware.tv.input@1.0",
-    ],
-}
diff --git a/usb/1.0/Android.bp b/usb/1.0/Android.bp
index a23f46e..3505ded 100644
--- a/usb/1.0/Android.bp
+++ b/usb/1.0/Android.bp
@@ -1,5 +1,14 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.usb@1.0_hal",
+    srcs: [
+        "types.hal",
+        "IUsb.hal",
+        "IUsbCallback.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.usb@1.0_genc++",
     tools: ["hidl-gen"],
@@ -62,114 +71,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.usb.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.usb@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/usb/1.0/ $(genDir)/android/hardware/usb/1.0/",
-    srcs: [
-        "types.hal",
-        "IUsb.hal",
-        "IUsbCallback.hal",
-    ],
-    out: [
-        "android/hardware/usb/1.0/types.vts.cpp",
-        "android/hardware/usb/1.0/Usb.vts.cpp",
-        "android/hardware/usb/1.0/UsbCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.usb.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.usb@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/usb/1.0/ $(genDir)/android/hardware/usb/1.0/",
-    srcs: [
-        "types.hal",
-        "IUsb.hal",
-        "IUsbCallback.hal",
-    ],
-    out: [
-        "android/hardware/usb/1.0/types.vts.h",
-        "android/hardware/usb/1.0/Usb.vts.h",
-        "android/hardware/usb/1.0/UsbCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.usb.vts.driver@1.0",
-    generated_sources: ["android.hardware.usb.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.usb.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.usb.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.usb@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.usb@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.usb@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/usb/1.0/ $(genDir)/android/hardware/usb/1.0/",
-    srcs: [
-        "types.hal",
-        "IUsb.hal",
-        "IUsbCallback.hal",
-    ],
-    out: [
-        "android/hardware/usb/1.0/types.vts.cpp",
-        "android/hardware/usb/1.0/Usb.vts.cpp",
-        "android/hardware/usb/1.0/UsbCallback.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.usb@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.usb@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/usb/1.0/ $(genDir)/android/hardware/usb/1.0/",
-    srcs: [
-        "types.hal",
-        "IUsb.hal",
-        "IUsbCallback.hal",
-    ],
-    out: [
-        "android/hardware/usb/1.0/types.vts.h",
-        "android/hardware/usb/1.0/Usb.vts.h",
-        "android/hardware/usb/1.0/UsbCallback.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.usb@1.0-vts.profiler",
-    generated_sources: ["android.hardware.usb@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.usb@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.usb@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.usb@1.0",
-    ],
-}
diff --git a/vibrator/1.0/Android.bp b/vibrator/1.0/Android.bp
index e752d38..aeefb5d 100644
--- a/vibrator/1.0/Android.bp
+++ b/vibrator/1.0/Android.bp
@@ -1,5 +1,13 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.vibrator@1.0_hal",
+    srcs: [
+        "types.hal",
+        "IVibrator.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.vibrator@1.0_genc++",
     tools: ["hidl-gen"],
@@ -54,106 +62,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.vibrator.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.vibrator@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/vibrator/1.0/ $(genDir)/android/hardware/vibrator/1.0/",
-    srcs: [
-        "types.hal",
-        "IVibrator.hal",
-    ],
-    out: [
-        "android/hardware/vibrator/1.0/types.vts.cpp",
-        "android/hardware/vibrator/1.0/Vibrator.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.vibrator.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.vibrator@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/vibrator/1.0/ $(genDir)/android/hardware/vibrator/1.0/",
-    srcs: [
-        "types.hal",
-        "IVibrator.hal",
-    ],
-    out: [
-        "android/hardware/vibrator/1.0/types.vts.h",
-        "android/hardware/vibrator/1.0/Vibrator.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.vibrator.vts.driver@1.0",
-    generated_sources: ["android.hardware.vibrator.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.vibrator.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.vibrator.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.vibrator@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.vibrator@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.vibrator@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/vibrator/1.0/ $(genDir)/android/hardware/vibrator/1.0/",
-    srcs: [
-        "types.hal",
-        "IVibrator.hal",
-    ],
-    out: [
-        "android/hardware/vibrator/1.0/types.vts.cpp",
-        "android/hardware/vibrator/1.0/Vibrator.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.vibrator@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.vibrator@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/vibrator/1.0/ $(genDir)/android/hardware/vibrator/1.0/",
-    srcs: [
-        "types.hal",
-        "IVibrator.hal",
-    ],
-    out: [
-        "android/hardware/vibrator/1.0/types.vts.h",
-        "android/hardware/vibrator/1.0/Vibrator.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.vibrator@1.0-vts.profiler",
-    generated_sources: ["android.hardware.vibrator@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.vibrator@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.vibrator@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.vibrator@1.0",
-    ],
-}
diff --git a/vr/1.0/Android.bp b/vr/1.0/Android.bp
index f0644a1..ab318f0 100644
--- a/vr/1.0/Android.bp
+++ b/vr/1.0/Android.bp
@@ -1,5 +1,12 @@
 // This file is autogenerated by hidl-gen. Do not edit manually.
 
+filegroup {
+    name: "android.hardware.vr@1.0_hal",
+    srcs: [
+        "IVr.hal",
+    ],
+}
+
 genrule {
     name: "android.hardware.vr@1.0_genc++",
     tools: ["hidl-gen"],
@@ -50,98 +57,3 @@
         "android.hidl.base@1.0",
     ],
 }
-
-genrule {
-    name: "android.hardware.vr.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.vr@1.0 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/vr/1.0/ $(genDir)/android/hardware/vr/1.0/",
-    srcs: [
-        "IVr.hal",
-    ],
-    out: [
-        "android/hardware/vr/1.0/Vr.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.vr.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.vr@1.0 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/vr/1.0/ $(genDir)/android/hardware/vr/1.0/",
-    srcs: [
-        "IVr.hal",
-    ],
-    out: [
-        "android/hardware/vr/1.0/Vr.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.vr.vts.driver@1.0",
-    generated_sources: ["android.hardware.vr.vts.driver@1.0_genc++"],
-    generated_headers: ["android.hardware.vr.vts.driver@1.0_genc++_headers"],
-    export_generated_headers: ["android.hardware.vr.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.vr@1.0",
-    ],
-    export_shared_lib_headers: [
-        "libhidlbase",
-        "libhidltransport",
-        "libhwbinder",
-        "libutils",
-        "android.hidl.base@1.0",
-    ],
-}
-
-genrule {
-    name: "android.hardware.vr@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.vr@1.0 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/vr/1.0/ $(genDir)/android/hardware/vr/1.0/",
-    srcs: [
-        "IVr.hal",
-    ],
-    out: [
-        "android/hardware/vr/1.0/Vr.vts.cpp",
-    ],
-}
-
-genrule {
-    name: "android.hardware.vr@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.vr@1.0 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/vr/1.0/ $(genDir)/android/hardware/vr/1.0/",
-    srcs: [
-        "IVr.hal",
-    ],
-    out: [
-        "android/hardware/vr/1.0/Vr.vts.h",
-    ],
-}
-
-cc_library_shared {
-    name: "android.hardware.vr@1.0-vts.profiler",
-    generated_sources: ["android.hardware.vr@1.0-vts.profiler_genc++"],
-    generated_headers: ["android.hardware.vr@1.0-vts.profiler_genc++_headers"],
-    export_generated_headers: ["android.hardware.vr@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.vr@1.0",
-    ],
-}