Update Andriod.bp for hals.

* Add driver/profiler build rule for all hals.

Test: mma
Change-Id: I98325f7af14fec7dd1bb64b1668de8c7c20ace92
diff --git a/camera/common/1.0/Android.bp b/camera/common/1.0/Android.bp
index 49098c4..7ab4ea9 100644
--- a/camera/common/1.0/Android.bp
+++ b/camera/common/1.0/Android.bp
@@ -44,3 +44,95 @@
         "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 9a6941a..16b3de4 100644
--- a/camera/device/1.0/Android.bp
+++ b/camera/device/1.0/Android.bp
@@ -76,3 +76,131 @@
         "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 8b72d5b..7c740ae 100644
--- a/camera/device/3.2/Android.bp
+++ b/camera/device/3.2/Android.bp
@@ -76,3 +76,131 @@
         "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 2625026..448c655 100644
--- a/camera/metadata/3.2/Android.bp
+++ b/camera/metadata/3.2/Android.bp
@@ -44,3 +44,95 @@
         "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/metadata/3.2/Android.mk b/camera/metadata/3.2/Android.mk
index 083fb6b..6604ccd 100644
--- a/camera/metadata/3.2/Android.mk
+++ b/camera/metadata/3.2/Android.mk
@@ -355,6 +355,25 @@
 LOCAL_GENERATED_SOURCES += $(GEN)
 
 #
+# Build types.hal (CameraMetadataEnumAndroidControlEnableZsl)
+#
+GEN := $(intermediates)/android/hardware/camera/metadata/V3_2/CameraMetadataEnumAndroidControlEnableZsl.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.camera.metadata@3.2::types.CameraMetadataEnumAndroidControlEnableZsl
+
+$(GEN): $(LOCAL_PATH)/types.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
 # Build types.hal (CameraMetadataEnumAndroidControlMode)
 #
 GEN := $(intermediates)/android/hardware/camera/metadata/V3_2/CameraMetadataEnumAndroidControlMode.java
@@ -1564,6 +1583,25 @@
 LOCAL_GENERATED_SOURCES += $(GEN)
 
 #
+# Build types.hal (CameraMetadataEnumAndroidControlEnableZsl)
+#
+GEN := $(intermediates)/android/hardware/camera/metadata/V3_2/CameraMetadataEnumAndroidControlEnableZsl.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.camera.metadata@3.2::types.CameraMetadataEnumAndroidControlEnableZsl
+
+$(GEN): $(LOCAL_PATH)/types.hal
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN)
+
+#
 # Build types.hal (CameraMetadataEnumAndroidControlMode)
 #
 GEN := $(intermediates)/android/hardware/camera/metadata/V3_2/CameraMetadataEnumAndroidControlMode.java
diff --git a/camera/provider/2.4/Android.bp b/camera/provider/2.4/Android.bp
index f5f10de..3705086 100644
--- a/camera/provider/2.4/Android.bp
+++ b/camera/provider/2.4/Android.bp
@@ -64,3 +64,115 @@
         "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",
+    ],
+}