Update makefiles for hidl adapter.

Bug: 37518178
Test: manual
Change-Id: I50e999907d3c64d2b039272b823971998da64d1b
diff --git a/audio/2.0/Android.bp b/audio/2.0/Android.bp
index cdaaa15..1de1cb7 100644
--- a/audio/2.0/Android.bp
+++ b/audio/2.0/Android.bp
@@ -108,3 +108,91 @@
         "android.hardware.audio.common@2.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.audio@2.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.audio@2.0",
+    srcs: [
+        ":android.hardware.audio@2.0_hal",
+    ],
+    out: [
+        "android/hardware/audio/2.0/ADevice.cpp",
+        "android/hardware/audio/2.0/ADevicesFactory.cpp",
+        "android/hardware/audio/2.0/APrimaryDevice.cpp",
+        "android/hardware/audio/2.0/AStream.cpp",
+        "android/hardware/audio/2.0/AStreamIn.cpp",
+        "android/hardware/audio/2.0/AStreamOut.cpp",
+        "android/hardware/audio/2.0/AStreamOutCallback.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.audio@2.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.audio@2.0",
+    srcs: [
+        ":android.hardware.audio@2.0_hal",
+    ],
+    out: [
+        "android/hardware/audio/2.0/ADevice.h",
+        "android/hardware/audio/2.0/ADevicesFactory.h",
+        "android/hardware/audio/2.0/APrimaryDevice.h",
+        "android/hardware/audio/2.0/AStream.h",
+        "android/hardware/audio/2.0/AStreamIn.h",
+        "android/hardware/audio/2.0/AStreamOut.h",
+        "android/hardware/audio/2.0/AStreamOutCallback.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.audio@2.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.audio@2.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.audio@2.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.audio@2.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.audio.common@2.0",
+        "android.hardware.audio@2.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.audio.common@2.0",
+        "android.hardware.audio@2.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.audio@2.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.audio@2.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.audio@2.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.audio.common@2.0",
+        "android.hardware.audio@2.0",
+        "android.hardware.audio@2.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.audio@2.0-adapter_genc++"],
+}
diff --git a/audio/effect/2.0/Android.bp b/audio/effect/2.0/Android.bp
index fd667f0..d1730e0 100644
--- a/audio/effect/2.0/Android.bp
+++ b/audio/effect/2.0/Android.bp
@@ -157,3 +157,105 @@
         "android.hardware.audio.common@2.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.audio.effect@2.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.audio.effect@2.0",
+    srcs: [
+        ":android.hardware.audio.effect@2.0_hal",
+    ],
+    out: [
+        "android/hardware/audio/effect/2.0/AAcousticEchoCancelerEffect.cpp",
+        "android/hardware/audio/effect/2.0/AAutomaticGainControlEffect.cpp",
+        "android/hardware/audio/effect/2.0/ABassBoostEffect.cpp",
+        "android/hardware/audio/effect/2.0/ADownmixEffect.cpp",
+        "android/hardware/audio/effect/2.0/AEffect.cpp",
+        "android/hardware/audio/effect/2.0/AEffectBufferProviderCallback.cpp",
+        "android/hardware/audio/effect/2.0/AEffectsFactory.cpp",
+        "android/hardware/audio/effect/2.0/AEnvironmentalReverbEffect.cpp",
+        "android/hardware/audio/effect/2.0/AEqualizerEffect.cpp",
+        "android/hardware/audio/effect/2.0/ALoudnessEnhancerEffect.cpp",
+        "android/hardware/audio/effect/2.0/ANoiseSuppressionEffect.cpp",
+        "android/hardware/audio/effect/2.0/APresetReverbEffect.cpp",
+        "android/hardware/audio/effect/2.0/AVirtualizerEffect.cpp",
+        "android/hardware/audio/effect/2.0/AVisualizerEffect.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.audio.effect@2.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.audio.effect@2.0",
+    srcs: [
+        ":android.hardware.audio.effect@2.0_hal",
+    ],
+    out: [
+        "android/hardware/audio/effect/2.0/AAcousticEchoCancelerEffect.h",
+        "android/hardware/audio/effect/2.0/AAutomaticGainControlEffect.h",
+        "android/hardware/audio/effect/2.0/ABassBoostEffect.h",
+        "android/hardware/audio/effect/2.0/ADownmixEffect.h",
+        "android/hardware/audio/effect/2.0/AEffect.h",
+        "android/hardware/audio/effect/2.0/AEffectBufferProviderCallback.h",
+        "android/hardware/audio/effect/2.0/AEffectsFactory.h",
+        "android/hardware/audio/effect/2.0/AEnvironmentalReverbEffect.h",
+        "android/hardware/audio/effect/2.0/AEqualizerEffect.h",
+        "android/hardware/audio/effect/2.0/ALoudnessEnhancerEffect.h",
+        "android/hardware/audio/effect/2.0/ANoiseSuppressionEffect.h",
+        "android/hardware/audio/effect/2.0/APresetReverbEffect.h",
+        "android/hardware/audio/effect/2.0/AVirtualizerEffect.h",
+        "android/hardware/audio/effect/2.0/AVisualizerEffect.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.audio.effect@2.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.audio.effect@2.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.audio.effect@2.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.audio.effect@2.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.audio.common@2.0",
+        "android.hardware.audio.effect@2.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.audio.common@2.0",
+        "android.hardware.audio.effect@2.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.audio.effect@2.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.audio.effect@2.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.audio.effect@2.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.audio.common@2.0",
+        "android.hardware.audio.effect@2.0",
+        "android.hardware.audio.effect@2.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.audio.effect@2.0-adapter_genc++"],
+}
diff --git a/automotive/evs/1.0/Android.bp b/automotive/evs/1.0/Android.bp
index 7ae2231..34aa12f 100644
--- a/automotive/evs/1.0/Android.bp
+++ b/automotive/evs/1.0/Android.bp
@@ -85,3 +85,82 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.automotive.evs@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.automotive.evs@1.0",
+    srcs: [
+        ":android.hardware.automotive.evs@1.0_hal",
+    ],
+    out: [
+        "android/hardware/automotive/evs/1.0/AEvsCamera.cpp",
+        "android/hardware/automotive/evs/1.0/AEvsCameraStream.cpp",
+        "android/hardware/automotive/evs/1.0/AEvsDisplay.cpp",
+        "android/hardware/automotive/evs/1.0/AEvsEnumerator.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.automotive.evs@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.automotive.evs@1.0",
+    srcs: [
+        ":android.hardware.automotive.evs@1.0_hal",
+    ],
+    out: [
+        "android/hardware/automotive/evs/1.0/AEvsCamera.h",
+        "android/hardware/automotive/evs/1.0/AEvsCameraStream.h",
+        "android/hardware/automotive/evs/1.0/AEvsDisplay.h",
+        "android/hardware/automotive/evs/1.0/AEvsEnumerator.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.automotive.evs@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.automotive.evs@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.automotive.evs@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.automotive.evs@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.automotive.evs@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.automotive.evs@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.automotive.evs@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.automotive.evs@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.automotive.evs@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.automotive.evs@1.0",
+        "android.hardware.automotive.evs@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.automotive.evs@1.0-adapter_genc++"],
+}
diff --git a/automotive/vehicle/2.0/Android.bp b/automotive/vehicle/2.0/Android.bp
index 879fe0d..6ccaac7 100644
--- a/automotive/vehicle/2.0/Android.bp
+++ b/automotive/vehicle/2.0/Android.bp
@@ -71,3 +71,78 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.automotive.vehicle@2.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.automotive.vehicle@2.0",
+    srcs: [
+        ":android.hardware.automotive.vehicle@2.0_hal",
+    ],
+    out: [
+        "android/hardware/automotive/vehicle/2.0/AVehicle.cpp",
+        "android/hardware/automotive/vehicle/2.0/AVehicleCallback.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.automotive.vehicle@2.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.automotive.vehicle@2.0",
+    srcs: [
+        ":android.hardware.automotive.vehicle@2.0_hal",
+    ],
+    out: [
+        "android/hardware/automotive/vehicle/2.0/AVehicle.h",
+        "android/hardware/automotive/vehicle/2.0/AVehicleCallback.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.automotive.vehicle@2.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.automotive.vehicle@2.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.automotive.vehicle@2.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.automotive.vehicle@2.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.automotive.vehicle@2.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.automotive.vehicle@2.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.automotive.vehicle@2.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.automotive.vehicle@2.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.automotive.vehicle@2.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.automotive.vehicle@2.0",
+        "android.hardware.automotive.vehicle@2.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.automotive.vehicle@2.0-adapter_genc++"],
+}
diff --git a/biometrics/fingerprint/2.1/Android.bp b/biometrics/fingerprint/2.1/Android.bp
index 3898da5..c96bfae 100644
--- a/biometrics/fingerprint/2.1/Android.bp
+++ b/biometrics/fingerprint/2.1/Android.bp
@@ -71,3 +71,78 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.biometrics.fingerprint@2.1-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.biometrics.fingerprint@2.1",
+    srcs: [
+        ":android.hardware.biometrics.fingerprint@2.1_hal",
+    ],
+    out: [
+        "android/hardware/biometrics/fingerprint/2.1/ABiometricsFingerprint.cpp",
+        "android/hardware/biometrics/fingerprint/2.1/ABiometricsFingerprintClientCallback.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.biometrics.fingerprint@2.1-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.biometrics.fingerprint@2.1",
+    srcs: [
+        ":android.hardware.biometrics.fingerprint@2.1_hal",
+    ],
+    out: [
+        "android/hardware/biometrics/fingerprint/2.1/ABiometricsFingerprint.h",
+        "android/hardware/biometrics/fingerprint/2.1/ABiometricsFingerprintClientCallback.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.biometrics.fingerprint@2.1-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.biometrics.fingerprint@2.1-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.biometrics.fingerprint@2.1-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.biometrics.fingerprint@2.1-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.biometrics.fingerprint@2.1",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.biometrics.fingerprint@2.1",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.biometrics.fingerprint@2.1-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.biometrics.fingerprint@2.1",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.biometrics.fingerprint@2.1-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.biometrics.fingerprint@2.1",
+        "android.hardware.biometrics.fingerprint@2.1-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.biometrics.fingerprint@2.1-adapter_genc++"],
+}
diff --git a/bluetooth/1.0/Android.bp b/bluetooth/1.0/Android.bp
index c883c59..222f3e6 100644
--- a/bluetooth/1.0/Android.bp
+++ b/bluetooth/1.0/Android.bp
@@ -71,3 +71,78 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.bluetooth@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.bluetooth@1.0",
+    srcs: [
+        ":android.hardware.bluetooth@1.0_hal",
+    ],
+    out: [
+        "android/hardware/bluetooth/1.0/ABluetoothHci.cpp",
+        "android/hardware/bluetooth/1.0/ABluetoothHciCallbacks.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.bluetooth@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.bluetooth@1.0",
+    srcs: [
+        ":android.hardware.bluetooth@1.0_hal",
+    ],
+    out: [
+        "android/hardware/bluetooth/1.0/ABluetoothHci.h",
+        "android/hardware/bluetooth/1.0/ABluetoothHciCallbacks.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.bluetooth@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.bluetooth@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.bluetooth@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.bluetooth@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.bluetooth@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.bluetooth@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.bluetooth@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.bluetooth@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.bluetooth@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.bluetooth@1.0",
+        "android.hardware.bluetooth@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.bluetooth@1.0-adapter_genc++"],
+}
diff --git a/boot/1.0/Android.bp b/boot/1.0/Android.bp
index 4e4efa3..2f4dcc3 100644
--- a/boot/1.0/Android.bp
+++ b/boot/1.0/Android.bp
@@ -64,3 +64,76 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.boot@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.boot@1.0",
+    srcs: [
+        ":android.hardware.boot@1.0_hal",
+    ],
+    out: [
+        "android/hardware/boot/1.0/ABootControl.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.boot@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.boot@1.0",
+    srcs: [
+        ":android.hardware.boot@1.0_hal",
+    ],
+    out: [
+        "android/hardware/boot/1.0/ABootControl.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.boot@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.boot@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.boot@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.boot@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.boot@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.boot@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.boot@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.boot@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.boot@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.boot@1.0",
+        "android.hardware.boot@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.boot@1.0-adapter_genc++"],
+}
diff --git a/broadcastradio/1.0/Android.bp b/broadcastradio/1.0/Android.bp
index 5b8e239..a81db93 100644
--- a/broadcastradio/1.0/Android.bp
+++ b/broadcastradio/1.0/Android.bp
@@ -85,3 +85,82 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.broadcastradio@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.broadcastradio@1.0",
+    srcs: [
+        ":android.hardware.broadcastradio@1.0_hal",
+    ],
+    out: [
+        "android/hardware/broadcastradio/1.0/ABroadcastRadio.cpp",
+        "android/hardware/broadcastradio/1.0/ABroadcastRadioFactory.cpp",
+        "android/hardware/broadcastradio/1.0/ATuner.cpp",
+        "android/hardware/broadcastradio/1.0/ATunerCallback.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.broadcastradio@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.broadcastradio@1.0",
+    srcs: [
+        ":android.hardware.broadcastradio@1.0_hal",
+    ],
+    out: [
+        "android/hardware/broadcastradio/1.0/ABroadcastRadio.h",
+        "android/hardware/broadcastradio/1.0/ABroadcastRadioFactory.h",
+        "android/hardware/broadcastradio/1.0/ATuner.h",
+        "android/hardware/broadcastradio/1.0/ATunerCallback.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.broadcastradio@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.broadcastradio@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.broadcastradio@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.broadcastradio@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.broadcastradio@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.broadcastradio@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.broadcastradio@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.broadcastradio@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.broadcastradio@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.broadcastradio@1.0",
+        "android.hardware.broadcastradio@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.broadcastradio@1.0-adapter_genc++"],
+}
diff --git a/broadcastradio/1.1/Android.bp b/broadcastradio/1.1/Android.bp
index 12e23d6..6626b52 100644
--- a/broadcastradio/1.1/Android.bp
+++ b/broadcastradio/1.1/Android.bp
@@ -87,3 +87,87 @@
         "android.hardware.broadcastradio@1.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.broadcastradio@1.1-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.broadcastradio@1.1",
+    srcs: [
+        ":android.hardware.broadcastradio@1.1_hal",
+    ],
+    out: [
+        "android/hardware/broadcastradio/1.1/ABroadcastRadio.cpp",
+        "android/hardware/broadcastradio/1.1/ABroadcastRadioFactory.cpp",
+        "android/hardware/broadcastradio/1.1/ATuner.cpp",
+        "android/hardware/broadcastradio/1.1/ATunerCallback.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.broadcastradio@1.1-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.broadcastradio@1.1",
+    srcs: [
+        ":android.hardware.broadcastradio@1.1_hal",
+    ],
+    out: [
+        "android/hardware/broadcastradio/1.1/ABroadcastRadio.h",
+        "android/hardware/broadcastradio/1.1/ABroadcastRadioFactory.h",
+        "android/hardware/broadcastradio/1.1/ATuner.h",
+        "android/hardware/broadcastradio/1.1/ATunerCallback.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.broadcastradio@1.1-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.broadcastradio@1.1-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.broadcastradio@1.1-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.broadcastradio@1.1-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.broadcastradio@1.0",
+        "android.hardware.broadcastradio@1.1",
+        "android.hardware.broadcastradio@1.0-adapter-helper",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.broadcastradio@1.0",
+        "android.hardware.broadcastradio@1.1",
+        "android.hardware.broadcastradio@1.0-adapter-helper",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.broadcastradio@1.1-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.broadcastradio@1.1",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.broadcastradio@1.1-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.broadcastradio@1.0",
+        "android.hardware.broadcastradio@1.1",
+        "android.hardware.broadcastradio@1.1-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.broadcastradio@1.1-adapter_genc++"],
+}
diff --git a/camera/device/1.0/Android.bp b/camera/device/1.0/Android.bp
index b8335f9..e591c62 100644
--- a/camera/device/1.0/Android.bp
+++ b/camera/device/1.0/Android.bp
@@ -82,3 +82,86 @@
         "android.hardware.graphics.common@1.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.camera.device@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.device@1.0",
+    srcs: [
+        ":android.hardware.camera.device@1.0_hal",
+    ],
+    out: [
+        "android/hardware/camera/device/1.0/ACameraDevice.cpp",
+        "android/hardware/camera/device/1.0/ACameraDeviceCallback.cpp",
+        "android/hardware/camera/device/1.0/ACameraDevicePreviewCallback.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.camera.device@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.device@1.0",
+    srcs: [
+        ":android.hardware.camera.device@1.0_hal",
+    ],
+    out: [
+        "android/hardware/camera/device/1.0/ACameraDevice.h",
+        "android/hardware/camera/device/1.0/ACameraDeviceCallback.h",
+        "android/hardware/camera/device/1.0/ACameraDevicePreviewCallback.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.camera.device@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.camera.device@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.camera.device@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.camera.device@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.camera.common@1.0",
+        "android.hardware.camera.device@1.0",
+        "android.hardware.graphics.common@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.camera.common@1.0",
+        "android.hardware.camera.device@1.0",
+        "android.hardware.graphics.common@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.camera.device@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.device@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.camera.device@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.camera.common@1.0",
+        "android.hardware.camera.device@1.0",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.camera.device@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.camera.device@1.0-adapter_genc++"],
+}
diff --git a/camera/device/3.2/Android.bp b/camera/device/3.2/Android.bp
index 24c2151..8eaf7c1 100644
--- a/camera/device/3.2/Android.bp
+++ b/camera/device/3.2/Android.bp
@@ -82,3 +82,86 @@
         "android.hardware.graphics.common@1.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.camera.device@3.2-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.device@3.2",
+    srcs: [
+        ":android.hardware.camera.device@3.2_hal",
+    ],
+    out: [
+        "android/hardware/camera/device/3.2/ACameraDevice.cpp",
+        "android/hardware/camera/device/3.2/ACameraDeviceCallback.cpp",
+        "android/hardware/camera/device/3.2/ACameraDeviceSession.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.camera.device@3.2-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.device@3.2",
+    srcs: [
+        ":android.hardware.camera.device@3.2_hal",
+    ],
+    out: [
+        "android/hardware/camera/device/3.2/ACameraDevice.h",
+        "android/hardware/camera/device/3.2/ACameraDeviceCallback.h",
+        "android/hardware/camera/device/3.2/ACameraDeviceSession.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.camera.device@3.2-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.camera.device@3.2-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.camera.device@3.2-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.camera.device@3.2-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.camera.common@1.0",
+        "android.hardware.camera.device@3.2",
+        "android.hardware.graphics.common@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.camera.common@1.0",
+        "android.hardware.camera.device@3.2",
+        "android.hardware.graphics.common@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.camera.device@3.2-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.device@3.2",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.camera.device@3.2-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.camera.common@1.0",
+        "android.hardware.camera.device@3.2",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.camera.device@3.2-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.camera.device@3.2-adapter_genc++"],
+}
diff --git a/camera/provider/2.4/Android.bp b/camera/provider/2.4/Android.bp
index 82a3a78..93c9806 100644
--- a/camera/provider/2.4/Android.bp
+++ b/camera/provider/2.4/Android.bp
@@ -75,3 +75,94 @@
         "android.hardware.graphics.common@1.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.camera.provider@2.4-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.provider@2.4",
+    srcs: [
+        ":android.hardware.camera.provider@2.4_hal",
+    ],
+    out: [
+        "android/hardware/camera/provider/2.4/ACameraProvider.cpp",
+        "android/hardware/camera/provider/2.4/ACameraProviderCallback.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.camera.provider@2.4-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.provider@2.4",
+    srcs: [
+        ":android.hardware.camera.provider@2.4_hal",
+    ],
+    out: [
+        "android/hardware/camera/provider/2.4/ACameraProvider.h",
+        "android/hardware/camera/provider/2.4/ACameraProviderCallback.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.camera.provider@2.4-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.camera.provider@2.4-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.camera.provider@2.4-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.camera.provider@2.4-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.camera.common@1.0",
+        "android.hardware.camera.device@1.0",
+        "android.hardware.camera.device@3.2",
+        "android.hardware.camera.provider@2.4",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.camera.device@1.0-adapter-helper",
+        "android.hardware.camera.device@3.2-adapter-helper",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.camera.common@1.0",
+        "android.hardware.camera.device@1.0",
+        "android.hardware.camera.device@3.2",
+        "android.hardware.camera.provider@2.4",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.camera.device@1.0-adapter-helper",
+        "android.hardware.camera.device@3.2-adapter-helper",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.camera.provider@2.4-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.camera.provider@2.4",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.camera.provider@2.4-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.camera.common@1.0",
+        "android.hardware.camera.device@1.0",
+        "android.hardware.camera.device@3.2",
+        "android.hardware.camera.provider@2.4",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.camera.provider@2.4-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.camera.provider@2.4-adapter_genc++"],
+}
diff --git a/configstore/1.0/Android.bp b/configstore/1.0/Android.bp
index 96ef00a..d059aae 100644
--- a/configstore/1.0/Android.bp
+++ b/configstore/1.0/Android.bp
@@ -64,3 +64,76 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.configstore@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.configstore@1.0",
+    srcs: [
+        ":android.hardware.configstore@1.0_hal",
+    ],
+    out: [
+        "android/hardware/configstore/1.0/ASurfaceFlingerConfigs.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.configstore@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.configstore@1.0",
+    srcs: [
+        ":android.hardware.configstore@1.0_hal",
+    ],
+    out: [
+        "android/hardware/configstore/1.0/ASurfaceFlingerConfigs.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.configstore@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.configstore@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.configstore@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.configstore@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.configstore@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.configstore@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.configstore@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.configstore@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.configstore@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.configstore@1.0",
+        "android.hardware.configstore@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.configstore@1.0-adapter_genc++"],
+}
diff --git a/contexthub/1.0/Android.bp b/contexthub/1.0/Android.bp
index ae1bd08..9c49eda 100644
--- a/contexthub/1.0/Android.bp
+++ b/contexthub/1.0/Android.bp
@@ -71,3 +71,78 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.contexthub@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.contexthub@1.0",
+    srcs: [
+        ":android.hardware.contexthub@1.0_hal",
+    ],
+    out: [
+        "android/hardware/contexthub/1.0/AContexthub.cpp",
+        "android/hardware/contexthub/1.0/AContexthubCallback.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.contexthub@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.contexthub@1.0",
+    srcs: [
+        ":android.hardware.contexthub@1.0_hal",
+    ],
+    out: [
+        "android/hardware/contexthub/1.0/AContexthub.h",
+        "android/hardware/contexthub/1.0/AContexthubCallback.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.contexthub@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.contexthub@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.contexthub@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.contexthub@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.contexthub@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.contexthub@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.contexthub@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.contexthub@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.contexthub@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.contexthub@1.0",
+        "android.hardware.contexthub@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.contexthub@1.0-adapter_genc++"],
+}
diff --git a/drm/1.0/Android.bp b/drm/1.0/Android.bp
index 096aa06..0e091db 100644
--- a/drm/1.0/Android.bp
+++ b/drm/1.0/Android.bp
@@ -93,4 +93,83 @@
     ],
 }
 
-subdirs = ["default"]
+genrule {
+    name: "android.hardware.drm@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.drm@1.0",
+    srcs: [
+        ":android.hardware.drm@1.0_hal",
+    ],
+    out: [
+        "android/hardware/drm/1.0/ACryptoFactory.cpp",
+        "android/hardware/drm/1.0/ACryptoPlugin.cpp",
+        "android/hardware/drm/1.0/ADrmFactory.cpp",
+        "android/hardware/drm/1.0/ADrmPlugin.cpp",
+        "android/hardware/drm/1.0/ADrmPluginListener.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.drm@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.drm@1.0",
+    srcs: [
+        ":android.hardware.drm@1.0_hal",
+    ],
+    out: [
+        "android/hardware/drm/1.0/ACryptoFactory.h",
+        "android/hardware/drm/1.0/ACryptoPlugin.h",
+        "android/hardware/drm/1.0/ADrmFactory.h",
+        "android/hardware/drm/1.0/ADrmPlugin.h",
+        "android/hardware/drm/1.0/ADrmPluginListener.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.drm@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.drm@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.drm@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.drm@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.drm@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.drm@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.drm@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.drm@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.drm@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.drm@1.0",
+        "android.hardware.drm@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.drm@1.0-adapter_genc++"],
+}
diff --git a/drm/Android.bp b/drm/Android.bp
index 33f70eb..ed19a37 100644
--- a/drm/Android.bp
+++ b/drm/Android.bp
@@ -1,5 +1,6 @@
 // This is an autogenerated file, do not edit.
 subdirs = [
     "1.0",
+    "1.0/default",
     "1.0/vts/functional",
 ]
diff --git a/dumpstate/1.0/Android.bp b/dumpstate/1.0/Android.bp
index b135e00..b27e999 100644
--- a/dumpstate/1.0/Android.bp
+++ b/dumpstate/1.0/Android.bp
@@ -60,3 +60,76 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.dumpstate@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.dumpstate@1.0",
+    srcs: [
+        ":android.hardware.dumpstate@1.0_hal",
+    ],
+    out: [
+        "android/hardware/dumpstate/1.0/ADumpstateDevice.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.dumpstate@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.dumpstate@1.0",
+    srcs: [
+        ":android.hardware.dumpstate@1.0_hal",
+    ],
+    out: [
+        "android/hardware/dumpstate/1.0/ADumpstateDevice.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.dumpstate@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.dumpstate@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.dumpstate@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.dumpstate@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.dumpstate@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.dumpstate@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.dumpstate@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.dumpstate@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.dumpstate@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.dumpstate@1.0",
+        "android.hardware.dumpstate@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.dumpstate@1.0-adapter_genc++"],
+}
diff --git a/gatekeeper/1.0/Android.bp b/gatekeeper/1.0/Android.bp
index f12f38f..13cb795 100644
--- a/gatekeeper/1.0/Android.bp
+++ b/gatekeeper/1.0/Android.bp
@@ -64,3 +64,76 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.gatekeeper@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.gatekeeper@1.0",
+    srcs: [
+        ":android.hardware.gatekeeper@1.0_hal",
+    ],
+    out: [
+        "android/hardware/gatekeeper/1.0/AGatekeeper.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.gatekeeper@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.gatekeeper@1.0",
+    srcs: [
+        ":android.hardware.gatekeeper@1.0_hal",
+    ],
+    out: [
+        "android/hardware/gatekeeper/1.0/AGatekeeper.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.gatekeeper@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.gatekeeper@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.gatekeeper@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.gatekeeper@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.gatekeeper@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.gatekeeper@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.gatekeeper@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.gatekeeper@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.gatekeeper@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.gatekeeper@1.0",
+        "android.hardware.gatekeeper@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.gatekeeper@1.0-adapter_genc++"],
+}
diff --git a/gnss/1.0/Android.bp b/gnss/1.0/Android.bp
index 6db98f6..ef57449 100644
--- a/gnss/1.0/Android.bp
+++ b/gnss/1.0/Android.bp
@@ -197,3 +197,114 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.gnss@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.gnss@1.0",
+    srcs: [
+        ":android.hardware.gnss@1.0_hal",
+    ],
+    out: [
+        "android/hardware/gnss/1.0/AAGnss.cpp",
+        "android/hardware/gnss/1.0/AAGnssCallback.cpp",
+        "android/hardware/gnss/1.0/AAGnssRil.cpp",
+        "android/hardware/gnss/1.0/AAGnssRilCallback.cpp",
+        "android/hardware/gnss/1.0/AGnss.cpp",
+        "android/hardware/gnss/1.0/AGnssBatching.cpp",
+        "android/hardware/gnss/1.0/AGnssBatchingCallback.cpp",
+        "android/hardware/gnss/1.0/AGnssCallback.cpp",
+        "android/hardware/gnss/1.0/AGnssConfiguration.cpp",
+        "android/hardware/gnss/1.0/AGnssDebug.cpp",
+        "android/hardware/gnss/1.0/AGnssGeofenceCallback.cpp",
+        "android/hardware/gnss/1.0/AGnssGeofencing.cpp",
+        "android/hardware/gnss/1.0/AGnssMeasurement.cpp",
+        "android/hardware/gnss/1.0/AGnssMeasurementCallback.cpp",
+        "android/hardware/gnss/1.0/AGnssNavigationMessage.cpp",
+        "android/hardware/gnss/1.0/AGnssNavigationMessageCallback.cpp",
+        "android/hardware/gnss/1.0/AGnssNi.cpp",
+        "android/hardware/gnss/1.0/AGnssNiCallback.cpp",
+        "android/hardware/gnss/1.0/AGnssXtra.cpp",
+        "android/hardware/gnss/1.0/AGnssXtraCallback.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.gnss@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.gnss@1.0",
+    srcs: [
+        ":android.hardware.gnss@1.0_hal",
+    ],
+    out: [
+        "android/hardware/gnss/1.0/AAGnss.h",
+        "android/hardware/gnss/1.0/AAGnssCallback.h",
+        "android/hardware/gnss/1.0/AAGnssRil.h",
+        "android/hardware/gnss/1.0/AAGnssRilCallback.h",
+        "android/hardware/gnss/1.0/AGnss.h",
+        "android/hardware/gnss/1.0/AGnssBatching.h",
+        "android/hardware/gnss/1.0/AGnssBatchingCallback.h",
+        "android/hardware/gnss/1.0/AGnssCallback.h",
+        "android/hardware/gnss/1.0/AGnssConfiguration.h",
+        "android/hardware/gnss/1.0/AGnssDebug.h",
+        "android/hardware/gnss/1.0/AGnssGeofenceCallback.h",
+        "android/hardware/gnss/1.0/AGnssGeofencing.h",
+        "android/hardware/gnss/1.0/AGnssMeasurement.h",
+        "android/hardware/gnss/1.0/AGnssMeasurementCallback.h",
+        "android/hardware/gnss/1.0/AGnssNavigationMessage.h",
+        "android/hardware/gnss/1.0/AGnssNavigationMessageCallback.h",
+        "android/hardware/gnss/1.0/AGnssNi.h",
+        "android/hardware/gnss/1.0/AGnssNiCallback.h",
+        "android/hardware/gnss/1.0/AGnssXtra.h",
+        "android/hardware/gnss/1.0/AGnssXtraCallback.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.gnss@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.gnss@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.gnss@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.gnss@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.gnss@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.gnss@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.gnss@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.gnss@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.gnss@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.gnss@1.0",
+        "android.hardware.gnss@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.gnss@1.0-adapter_genc++"],
+}
diff --git a/graphics/allocator/2.0/Android.bp b/graphics/allocator/2.0/Android.bp
index 46faa17..0ef6450 100644
--- a/graphics/allocator/2.0/Android.bp
+++ b/graphics/allocator/2.0/Android.bp
@@ -65,3 +65,84 @@
         "android.hardware.graphics.mapper@2.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.graphics.allocator@2.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.allocator@2.0",
+    srcs: [
+        ":android.hardware.graphics.allocator@2.0_hal",
+    ],
+    out: [
+        "android/hardware/graphics/allocator/2.0/AAllocator.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.graphics.allocator@2.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.allocator@2.0",
+    srcs: [
+        ":android.hardware.graphics.allocator@2.0_hal",
+    ],
+    out: [
+        "android/hardware/graphics/allocator/2.0/AAllocator.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.graphics.allocator@2.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.graphics.allocator@2.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.graphics.allocator@2.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.graphics.allocator@2.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.graphics.allocator@2.0",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.graphics.mapper@2.0",
+        "android.hardware.graphics.mapper@2.0-adapter-helper",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.graphics.allocator@2.0",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.graphics.mapper@2.0",
+        "android.hardware.graphics.mapper@2.0-adapter-helper",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.graphics.allocator@2.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.allocator@2.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.graphics.allocator@2.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.graphics.allocator@2.0",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.graphics.mapper@2.0",
+        "android.hardware.graphics.allocator@2.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.graphics.allocator@2.0-adapter_genc++"],
+}
diff --git a/graphics/bufferqueue/1.0/Android.bp b/graphics/bufferqueue/1.0/Android.bp
index 2d36fc7..87640a8 100644
--- a/graphics/bufferqueue/1.0/Android.bp
+++ b/graphics/bufferqueue/1.0/Android.bp
@@ -71,3 +71,84 @@
         "android.hardware.media@1.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.graphics.bufferqueue@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.bufferqueue@1.0",
+    srcs: [
+        ":android.hardware.graphics.bufferqueue@1.0_hal",
+    ],
+    out: [
+        "android/hardware/graphics/bufferqueue/1.0/AGraphicBufferProducer.cpp",
+        "android/hardware/graphics/bufferqueue/1.0/AProducerListener.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.graphics.bufferqueue@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.bufferqueue@1.0",
+    srcs: [
+        ":android.hardware.graphics.bufferqueue@1.0_hal",
+    ],
+    out: [
+        "android/hardware/graphics/bufferqueue/1.0/AGraphicBufferProducer.h",
+        "android/hardware/graphics/bufferqueue/1.0/AProducerListener.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.graphics.bufferqueue@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.graphics.bufferqueue@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.graphics.bufferqueue@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.graphics.bufferqueue@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.graphics.bufferqueue@1.0",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.media@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.graphics.bufferqueue@1.0",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.media@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.graphics.bufferqueue@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.bufferqueue@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.graphics.bufferqueue@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.graphics.bufferqueue@1.0",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.media@1.0",
+        "android.hardware.graphics.bufferqueue@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.graphics.bufferqueue@1.0-adapter_genc++"],
+}
diff --git a/graphics/composer/2.1/Android.bp b/graphics/composer/2.1/Android.bp
index e875708..6bea650 100644
--- a/graphics/composer/2.1/Android.bp
+++ b/graphics/composer/2.1/Android.bp
@@ -80,3 +80,83 @@
         "android.hardware.graphics.common@1.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.graphics.composer@2.1-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.composer@2.1",
+    srcs: [
+        ":android.hardware.graphics.composer@2.1_hal",
+    ],
+    out: [
+        "android/hardware/graphics/composer/2.1/AComposer.cpp",
+        "android/hardware/graphics/composer/2.1/AComposerCallback.cpp",
+        "android/hardware/graphics/composer/2.1/AComposerClient.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.graphics.composer@2.1-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.composer@2.1",
+    srcs: [
+        ":android.hardware.graphics.composer@2.1_hal",
+    ],
+    out: [
+        "android/hardware/graphics/composer/2.1/AComposer.h",
+        "android/hardware/graphics/composer/2.1/AComposerCallback.h",
+        "android/hardware/graphics/composer/2.1/AComposerClient.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.graphics.composer@2.1-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.graphics.composer@2.1-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.graphics.composer@2.1-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.graphics.composer@2.1-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.graphics.composer@2.1",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.graphics.composer@2.1",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.graphics.composer@2.1-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.composer@2.1",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.graphics.composer@2.1-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.graphics.composer@2.1",
+        "android.hardware.graphics.composer@2.1-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.graphics.composer@2.1-adapter_genc++"],
+}
diff --git a/graphics/mapper/2.0/Android.bp b/graphics/mapper/2.0/Android.bp
index f5913af..4e33ed2 100644
--- a/graphics/mapper/2.0/Android.bp
+++ b/graphics/mapper/2.0/Android.bp
@@ -67,3 +67,79 @@
         "android.hardware.graphics.common@1.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.graphics.mapper@2.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.mapper@2.0",
+    srcs: [
+        ":android.hardware.graphics.mapper@2.0_hal",
+    ],
+    out: [
+        "android/hardware/graphics/mapper/2.0/AMapper.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.graphics.mapper@2.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.mapper@2.0",
+    srcs: [
+        ":android.hardware.graphics.mapper@2.0_hal",
+    ],
+    out: [
+        "android/hardware/graphics/mapper/2.0/AMapper.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.graphics.mapper@2.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.graphics.mapper@2.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.graphics.mapper@2.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.graphics.mapper@2.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.graphics.mapper@2.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.graphics.mapper@2.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.graphics.mapper@2.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.graphics.mapper@2.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.graphics.mapper@2.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.graphics.mapper@2.0",
+        "android.hardware.graphics.mapper@2.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.graphics.mapper@2.0-adapter_genc++"],
+}
diff --git a/health/1.0/Android.bp b/health/1.0/Android.bp
index d8ebc20..a998ea9 100644
--- a/health/1.0/Android.bp
+++ b/health/1.0/Android.bp
@@ -64,3 +64,76 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.health@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.health@1.0",
+    srcs: [
+        ":android.hardware.health@1.0_hal",
+    ],
+    out: [
+        "android/hardware/health/1.0/AHealth.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.health@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.health@1.0",
+    srcs: [
+        ":android.hardware.health@1.0_hal",
+    ],
+    out: [
+        "android/hardware/health/1.0/AHealth.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.health@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.health@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.health@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.health@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.health@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.health@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.health@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.health@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.health@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.health@1.0",
+        "android.hardware.health@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.health@1.0-adapter_genc++"],
+}
diff --git a/ir/1.0/Android.bp b/ir/1.0/Android.bp
index 489f61f..d3230da 100644
--- a/ir/1.0/Android.bp
+++ b/ir/1.0/Android.bp
@@ -64,3 +64,76 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.ir@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.ir@1.0",
+    srcs: [
+        ":android.hardware.ir@1.0_hal",
+    ],
+    out: [
+        "android/hardware/ir/1.0/AConsumerIr.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.ir@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.ir@1.0",
+    srcs: [
+        ":android.hardware.ir@1.0_hal",
+    ],
+    out: [
+        "android/hardware/ir/1.0/AConsumerIr.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.ir@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.ir@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.ir@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.ir@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.ir@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.ir@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.ir@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.ir@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.ir@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.ir@1.0",
+        "android.hardware.ir@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.ir@1.0-adapter_genc++"],
+}
diff --git a/keymaster/3.0/Android.bp b/keymaster/3.0/Android.bp
index 14cfab2..46c5447 100644
--- a/keymaster/3.0/Android.bp
+++ b/keymaster/3.0/Android.bp
@@ -64,3 +64,76 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.keymaster@3.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.keymaster@3.0",
+    srcs: [
+        ":android.hardware.keymaster@3.0_hal",
+    ],
+    out: [
+        "android/hardware/keymaster/3.0/AKeymasterDevice.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.keymaster@3.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.keymaster@3.0",
+    srcs: [
+        ":android.hardware.keymaster@3.0_hal",
+    ],
+    out: [
+        "android/hardware/keymaster/3.0/AKeymasterDevice.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.keymaster@3.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.keymaster@3.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.keymaster@3.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.keymaster@3.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.keymaster@3.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.keymaster@3.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.keymaster@3.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.keymaster@3.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.keymaster@3.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.keymaster@3.0",
+        "android.hardware.keymaster@3.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.keymaster@3.0-adapter_genc++"],
+}
diff --git a/light/2.0/Android.bp b/light/2.0/Android.bp
index 7cc7f84..d8d2302 100644
--- a/light/2.0/Android.bp
+++ b/light/2.0/Android.bp
@@ -64,3 +64,76 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.light@2.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.light@2.0",
+    srcs: [
+        ":android.hardware.light@2.0_hal",
+    ],
+    out: [
+        "android/hardware/light/2.0/ALight.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.light@2.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.light@2.0",
+    srcs: [
+        ":android.hardware.light@2.0_hal",
+    ],
+    out: [
+        "android/hardware/light/2.0/ALight.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.light@2.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.light@2.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.light@2.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.light@2.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.light@2.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.light@2.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.light@2.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.light@2.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.light@2.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.light@2.0",
+        "android.hardware.light@2.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.light@2.0-adapter_genc++"],
+}
diff --git a/media/omx/1.0/Android.bp b/media/omx/1.0/Android.bp
index f8bed6e..671f17d 100644
--- a/media/omx/1.0/Android.bp
+++ b/media/omx/1.0/Android.bp
@@ -105,3 +105,97 @@
         "android.hardware.media@1.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.media.omx@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.media.omx@1.0",
+    srcs: [
+        ":android.hardware.media.omx@1.0_hal",
+    ],
+    out: [
+        "android/hardware/media/omx/1.0/AGraphicBufferSource.cpp",
+        "android/hardware/media/omx/1.0/AOmx.cpp",
+        "android/hardware/media/omx/1.0/AOmxBufferSource.cpp",
+        "android/hardware/media/omx/1.0/AOmxNode.cpp",
+        "android/hardware/media/omx/1.0/AOmxObserver.cpp",
+        "android/hardware/media/omx/1.0/AOmxStore.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.media.omx@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.media.omx@1.0",
+    srcs: [
+        ":android.hardware.media.omx@1.0_hal",
+    ],
+    out: [
+        "android/hardware/media/omx/1.0/AGraphicBufferSource.h",
+        "android/hardware/media/omx/1.0/AOmx.h",
+        "android/hardware/media/omx/1.0/AOmxBufferSource.h",
+        "android/hardware/media/omx/1.0/AOmxNode.h",
+        "android/hardware/media/omx/1.0/AOmxObserver.h",
+        "android/hardware/media/omx/1.0/AOmxStore.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.media.omx@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.media.omx@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.media.omx@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.media.omx@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.graphics.bufferqueue@1.0",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.media.omx@1.0",
+        "android.hardware.media@1.0",
+        "android.hardware.graphics.bufferqueue@1.0-adapter-helper",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.graphics.bufferqueue@1.0",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.media.omx@1.0",
+        "android.hardware.media@1.0",
+        "android.hardware.graphics.bufferqueue@1.0-adapter-helper",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.media.omx@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.media.omx@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.media.omx@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.graphics.bufferqueue@1.0",
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.media.omx@1.0",
+        "android.hardware.media@1.0",
+        "android.hardware.media.omx@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.media.omx@1.0-adapter_genc++"],
+}
diff --git a/memtrack/1.0/Android.bp b/memtrack/1.0/Android.bp
index 4df2c1d..ef9f4e3 100644
--- a/memtrack/1.0/Android.bp
+++ b/memtrack/1.0/Android.bp
@@ -64,3 +64,76 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.memtrack@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.memtrack@1.0",
+    srcs: [
+        ":android.hardware.memtrack@1.0_hal",
+    ],
+    out: [
+        "android/hardware/memtrack/1.0/AMemtrack.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.memtrack@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.memtrack@1.0",
+    srcs: [
+        ":android.hardware.memtrack@1.0_hal",
+    ],
+    out: [
+        "android/hardware/memtrack/1.0/AMemtrack.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.memtrack@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.memtrack@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.memtrack@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.memtrack@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.memtrack@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.memtrack@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.memtrack@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.memtrack@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.memtrack@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.memtrack@1.0",
+        "android.hardware.memtrack@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.memtrack@1.0-adapter_genc++"],
+}
diff --git a/nfc/1.0/Android.bp b/nfc/1.0/Android.bp
index 4adb32c..aeafb77 100644
--- a/nfc/1.0/Android.bp
+++ b/nfc/1.0/Android.bp
@@ -71,3 +71,78 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.nfc@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.nfc@1.0",
+    srcs: [
+        ":android.hardware.nfc@1.0_hal",
+    ],
+    out: [
+        "android/hardware/nfc/1.0/ANfc.cpp",
+        "android/hardware/nfc/1.0/ANfcClientCallback.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.nfc@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.nfc@1.0",
+    srcs: [
+        ":android.hardware.nfc@1.0_hal",
+    ],
+    out: [
+        "android/hardware/nfc/1.0/ANfc.h",
+        "android/hardware/nfc/1.0/ANfcClientCallback.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.nfc@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.nfc@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.nfc@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.nfc@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.nfc@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.nfc@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.nfc@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.nfc@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.nfc@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.nfc@1.0",
+        "android.hardware.nfc@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.nfc@1.0-adapter_genc++"],
+}
diff --git a/power/1.0/Android.bp b/power/1.0/Android.bp
index bc886cb..5e43acc 100644
--- a/power/1.0/Android.bp
+++ b/power/1.0/Android.bp
@@ -64,3 +64,76 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.power@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.power@1.0",
+    srcs: [
+        ":android.hardware.power@1.0_hal",
+    ],
+    out: [
+        "android/hardware/power/1.0/APower.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.power@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.power@1.0",
+    srcs: [
+        ":android.hardware.power@1.0_hal",
+    ],
+    out: [
+        "android/hardware/power/1.0/APower.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.power@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.power@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.power@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.power@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.power@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.power@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.power@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.power@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.power@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.power@1.0",
+        "android.hardware.power@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.power@1.0-adapter_genc++"],
+}
diff --git a/radio/1.0/Android.bp b/radio/1.0/Android.bp
index 093ceac..a7a2be3 100644
--- a/radio/1.0/Android.bp
+++ b/radio/1.0/Android.bp
@@ -92,3 +92,84 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.radio@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.0",
+    srcs: [
+        ":android.hardware.radio@1.0_hal",
+    ],
+    out: [
+        "android/hardware/radio/1.0/ARadio.cpp",
+        "android/hardware/radio/1.0/ARadioIndication.cpp",
+        "android/hardware/radio/1.0/ARadioResponse.cpp",
+        "android/hardware/radio/1.0/ASap.cpp",
+        "android/hardware/radio/1.0/ASapCallback.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.0",
+    srcs: [
+        ":android.hardware.radio@1.0_hal",
+    ],
+    out: [
+        "android/hardware/radio/1.0/ARadio.h",
+        "android/hardware/radio/1.0/ARadioIndication.h",
+        "android/hardware/radio/1.0/ARadioResponse.h",
+        "android/hardware/radio/1.0/ASap.h",
+        "android/hardware/radio/1.0/ASapCallback.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.radio@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.radio@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.radio@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.radio@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.radio@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.radio@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.radio@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.radio@1.0",
+        "android.hardware.radio@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.radio@1.0-adapter_genc++"],
+}
diff --git a/radio/1.1/Android.bp b/radio/1.1/Android.bp
index 156cf99..fc03b53 100644
--- a/radio/1.1/Android.bp
+++ b/radio/1.1/Android.bp
@@ -87,3 +87,87 @@
         "android.hardware.radio@1.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.radio@1.1-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.1",
+    srcs: [
+        ":android.hardware.radio@1.1_hal",
+    ],
+    out: [
+        "android/hardware/radio/1.1/ARadio.cpp",
+        "android/hardware/radio/1.1/ARadioIndication.cpp",
+        "android/hardware/radio/1.1/ARadioResponse.cpp",
+        "android/hardware/radio/1.1/ASap.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio@1.1-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.1",
+    srcs: [
+        ":android.hardware.radio@1.1_hal",
+    ],
+    out: [
+        "android/hardware/radio/1.1/ARadio.h",
+        "android/hardware/radio/1.1/ARadioIndication.h",
+        "android/hardware/radio/1.1/ARadioResponse.h",
+        "android/hardware/radio/1.1/ASap.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.radio@1.1-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.radio@1.1-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.radio@1.1-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.radio@1.1-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.radio@1.0",
+        "android.hardware.radio@1.1",
+        "android.hardware.radio@1.0-adapter-helper",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.radio@1.0",
+        "android.hardware.radio@1.1",
+        "android.hardware.radio@1.0-adapter-helper",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio@1.1-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio@1.1",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.radio@1.1-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.radio@1.0",
+        "android.hardware.radio@1.1",
+        "android.hardware.radio@1.1-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.radio@1.1-adapter_genc++"],
+}
diff --git a/radio/deprecated/1.0/Android.bp b/radio/deprecated/1.0/Android.bp
index e63ed28..948be69 100644
--- a/radio/deprecated/1.0/Android.bp
+++ b/radio/deprecated/1.0/Android.bp
@@ -76,3 +76,85 @@
         "android.hardware.radio@1.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.radio.deprecated@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio.deprecated@1.0",
+    srcs: [
+        ":android.hardware.radio.deprecated@1.0_hal",
+    ],
+    out: [
+        "android/hardware/radio/deprecated/1.0/AOemHook.cpp",
+        "android/hardware/radio/deprecated/1.0/AOemHookIndication.cpp",
+        "android/hardware/radio/deprecated/1.0/AOemHookResponse.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio.deprecated@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio.deprecated@1.0",
+    srcs: [
+        ":android.hardware.radio.deprecated@1.0_hal",
+    ],
+    out: [
+        "android/hardware/radio/deprecated/1.0/AOemHook.h",
+        "android/hardware/radio/deprecated/1.0/AOemHookIndication.h",
+        "android/hardware/radio/deprecated/1.0/AOemHookResponse.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.radio.deprecated@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.radio.deprecated@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.radio.deprecated@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.radio.deprecated@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.radio.deprecated@1.0",
+        "android.hardware.radio@1.0",
+        "android.hardware.radio@1.0-adapter-helper",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.radio.deprecated@1.0",
+        "android.hardware.radio@1.0",
+        "android.hardware.radio@1.0-adapter-helper",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.radio.deprecated@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.radio.deprecated@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.radio.deprecated@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.radio.deprecated@1.0",
+        "android.hardware.radio@1.0",
+        "android.hardware.radio.deprecated@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.radio.deprecated@1.0-adapter_genc++"],
+}
diff --git a/renderscript/1.0/Android.bp b/renderscript/1.0/Android.bp
index 0f62652..ba2d2c8 100644
--- a/renderscript/1.0/Android.bp
+++ b/renderscript/1.0/Android.bp
@@ -72,3 +72,78 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.renderscript@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.renderscript@1.0",
+    srcs: [
+        ":android.hardware.renderscript@1.0_hal",
+    ],
+    out: [
+        "android/hardware/renderscript/1.0/AContext.cpp",
+        "android/hardware/renderscript/1.0/ADevice.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.renderscript@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.renderscript@1.0",
+    srcs: [
+        ":android.hardware.renderscript@1.0_hal",
+    ],
+    out: [
+        "android/hardware/renderscript/1.0/AContext.h",
+        "android/hardware/renderscript/1.0/ADevice.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.renderscript@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.renderscript@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.renderscript@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.renderscript@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.renderscript@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.renderscript@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.renderscript@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.renderscript@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.renderscript@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.renderscript@1.0",
+        "android.hardware.renderscript@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.renderscript@1.0-adapter_genc++"],
+}
diff --git a/sensors/1.0/Android.bp b/sensors/1.0/Android.bp
index b2cda05..6b67ebf 100644
--- a/sensors/1.0/Android.bp
+++ b/sensors/1.0/Android.bp
@@ -64,3 +64,76 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.sensors@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.sensors@1.0",
+    srcs: [
+        ":android.hardware.sensors@1.0_hal",
+    ],
+    out: [
+        "android/hardware/sensors/1.0/ASensors.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.sensors@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.sensors@1.0",
+    srcs: [
+        ":android.hardware.sensors@1.0_hal",
+    ],
+    out: [
+        "android/hardware/sensors/1.0/ASensors.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.sensors@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.sensors@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.sensors@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.sensors@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.sensors@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.sensors@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.sensors@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.sensors@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.sensors@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.sensors@1.0",
+        "android.hardware.sensors@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.sensors@1.0-adapter_genc++"],
+}
diff --git a/soundtrigger/2.0/Android.bp b/soundtrigger/2.0/Android.bp
index f45c4e2..2fb386a 100644
--- a/soundtrigger/2.0/Android.bp
+++ b/soundtrigger/2.0/Android.bp
@@ -73,3 +73,81 @@
         "android.hardware.audio.common@2.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.soundtrigger@2.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.soundtrigger@2.0",
+    srcs: [
+        ":android.hardware.soundtrigger@2.0_hal",
+    ],
+    out: [
+        "android/hardware/soundtrigger/2.0/ASoundTriggerHw.cpp",
+        "android/hardware/soundtrigger/2.0/ASoundTriggerHwCallback.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.soundtrigger@2.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.soundtrigger@2.0",
+    srcs: [
+        ":android.hardware.soundtrigger@2.0_hal",
+    ],
+    out: [
+        "android/hardware/soundtrigger/2.0/ASoundTriggerHw.h",
+        "android/hardware/soundtrigger/2.0/ASoundTriggerHwCallback.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.soundtrigger@2.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.soundtrigger@2.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.soundtrigger@2.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.soundtrigger@2.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.audio.common@2.0",
+        "android.hardware.soundtrigger@2.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.audio.common@2.0",
+        "android.hardware.soundtrigger@2.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.soundtrigger@2.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.soundtrigger@2.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.soundtrigger@2.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.audio.common@2.0",
+        "android.hardware.soundtrigger@2.0",
+        "android.hardware.soundtrigger@2.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.soundtrigger@2.0-adapter_genc++"],
+}
diff --git a/tests/bar/1.0/Android.bp b/tests/bar/1.0/Android.bp
index b6ee042..230267c 100644
--- a/tests/bar/1.0/Android.bp
+++ b/tests/bar/1.0/Android.bp
@@ -91,3 +91,89 @@
         "android.hardware.tests.foo@1.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.tests.bar@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.bar@1.0",
+    srcs: [
+        ":android.hardware.tests.bar@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/bar/1.0/ABar.cpp",
+        "android/hardware/tests/bar/1.0/AComplicated.cpp",
+        "android/hardware/tests/bar/1.0/AFooCallback.cpp",
+        "android/hardware/tests/bar/1.0/AImportRules.cpp",
+        "android/hardware/tests/bar/1.0/AImportTypes.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.bar@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.bar@1.0",
+    srcs: [
+        ":android.hardware.tests.bar@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/bar/1.0/ABar.h",
+        "android/hardware/tests/bar/1.0/AComplicated.h",
+        "android/hardware/tests/bar/1.0/AFooCallback.h",
+        "android/hardware/tests/bar/1.0/AImportRules.h",
+        "android/hardware/tests/bar/1.0/AImportTypes.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.tests.bar@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.tests.bar@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.tests.bar@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.tests.bar@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.tests.bar@1.0",
+        "android.hardware.tests.foo@1.0",
+        "android.hardware.tests.foo@1.0-adapter-helper",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.tests.bar@1.0",
+        "android.hardware.tests.foo@1.0",
+        "android.hardware.tests.foo@1.0-adapter-helper",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.bar@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.bar@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.tests.bar@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.tests.bar@1.0",
+        "android.hardware.tests.foo@1.0",
+        "android.hardware.tests.bar@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.tests.bar@1.0-adapter_genc++"],
+}
diff --git a/tests/baz/1.0/Android.bp b/tests/baz/1.0/Android.bp
index ef68149..a0a4f60 100644
--- a/tests/baz/1.0/Android.bp
+++ b/tests/baz/1.0/Android.bp
@@ -82,3 +82,82 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.tests.baz@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.baz@1.0",
+    srcs: [
+        ":android.hardware.tests.baz@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/baz/1.0/ABase.cpp",
+        "android/hardware/tests/baz/1.0/ABaz.cpp",
+        "android/hardware/tests/baz/1.0/ABazCallback.cpp",
+        "android/hardware/tests/baz/1.0/AQuux.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.baz@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.baz@1.0",
+    srcs: [
+        ":android.hardware.tests.baz@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/baz/1.0/ABase.h",
+        "android/hardware/tests/baz/1.0/ABaz.h",
+        "android/hardware/tests/baz/1.0/ABazCallback.h",
+        "android/hardware/tests/baz/1.0/AQuux.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.tests.baz@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.tests.baz@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.tests.baz@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.tests.baz@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.tests.baz@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.tests.baz@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.baz@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.baz@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.tests.baz@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.tests.baz@1.0",
+        "android.hardware.tests.baz@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.tests.baz@1.0-adapter_genc++"],
+}
diff --git a/tests/expression/1.0/Android.bp b/tests/expression/1.0/Android.bp
index bc389b0..dc0e5a8 100644
--- a/tests/expression/1.0/Android.bp
+++ b/tests/expression/1.0/Android.bp
@@ -64,3 +64,78 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.tests.expression@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.expression@1.0",
+    srcs: [
+        ":android.hardware.tests.expression@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/expression/1.0/AExpression.cpp",
+        "android/hardware/tests/expression/1.0/AExpressionExt.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.expression@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.expression@1.0",
+    srcs: [
+        ":android.hardware.tests.expression@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/expression/1.0/AExpression.h",
+        "android/hardware/tests/expression/1.0/AExpressionExt.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.tests.expression@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.tests.expression@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.tests.expression@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.tests.expression@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.tests.expression@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.tests.expression@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.expression@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.expression@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.tests.expression@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.tests.expression@1.0",
+        "android.hardware.tests.expression@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.tests.expression@1.0-adapter_genc++"],
+}
diff --git a/tests/extension/light/2.0/Android.bp b/tests/extension/light/2.0/Android.bp
index c5987a7..3c1b5ec 100644
--- a/tests/extension/light/2.0/Android.bp
+++ b/tests/extension/light/2.0/Android.bp
@@ -63,3 +63,81 @@
         "android.hardware.light@2.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.tests.extension.light@2.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.extension.light@2.0",
+    srcs: [
+        ":android.hardware.tests.extension.light@2.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/extension/light/2.0/AExtLight.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.extension.light@2.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.extension.light@2.0",
+    srcs: [
+        ":android.hardware.tests.extension.light@2.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/extension/light/2.0/AExtLight.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.tests.extension.light@2.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.tests.extension.light@2.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.tests.extension.light@2.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.tests.extension.light@2.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.light@2.0",
+        "android.hardware.tests.extension.light@2.0",
+        "android.hardware.light@2.0-adapter-helper",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.light@2.0",
+        "android.hardware.tests.extension.light@2.0",
+        "android.hardware.light@2.0-adapter-helper",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.extension.light@2.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.extension.light@2.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.tests.extension.light@2.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.light@2.0",
+        "android.hardware.tests.extension.light@2.0",
+        "android.hardware.tests.extension.light@2.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.tests.extension.light@2.0-adapter_genc++"],
+}
diff --git a/tests/foo/1.0/Android.bp b/tests/foo/1.0/Android.bp
index 6387950..0d2d147 100644
--- a/tests/foo/1.0/Android.bp
+++ b/tests/foo/1.0/Android.bp
@@ -89,3 +89,84 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.tests.foo@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.foo@1.0",
+    srcs: [
+        ":android.hardware.tests.foo@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/foo/1.0/AFoo.cpp",
+        "android/hardware/tests/foo/1.0/AFooCallback.cpp",
+        "android/hardware/tests/foo/1.0/AMyTypes.cpp",
+        "android/hardware/tests/foo/1.0/ASimple.cpp",
+        "android/hardware/tests/foo/1.0/ATheirTypes.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.foo@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.foo@1.0",
+    srcs: [
+        ":android.hardware.tests.foo@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/foo/1.0/AFoo.h",
+        "android/hardware/tests/foo/1.0/AFooCallback.h",
+        "android/hardware/tests/foo/1.0/AMyTypes.h",
+        "android/hardware/tests/foo/1.0/ASimple.h",
+        "android/hardware/tests/foo/1.0/ATheirTypes.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.tests.foo@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.tests.foo@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.tests.foo@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.tests.foo@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.tests.foo@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.tests.foo@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.foo@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.foo@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.tests.foo@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.tests.foo@1.0",
+        "android.hardware.tests.foo@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.tests.foo@1.0-adapter_genc++"],
+}
diff --git a/tests/hash/1.0/Android.bp b/tests/hash/1.0/Android.bp
index 505a4ad..96af83b 100644
--- a/tests/hash/1.0/Android.bp
+++ b/tests/hash/1.0/Android.bp
@@ -57,3 +57,76 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.tests.hash@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.hash@1.0",
+    srcs: [
+        ":android.hardware.tests.hash@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/hash/1.0/AHash.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.hash@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.hash@1.0",
+    srcs: [
+        ":android.hardware.tests.hash@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/hash/1.0/AHash.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.tests.hash@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.tests.hash@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.tests.hash@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.tests.hash@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.tests.hash@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.tests.hash@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.hash@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.hash@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.tests.hash@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.tests.hash@1.0",
+        "android.hardware.tests.hash@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.tests.hash@1.0-adapter_genc++"],
+}
diff --git a/tests/inheritance/1.0/Android.bp b/tests/inheritance/1.0/Android.bp
index 5d8d53d..6c2e79e 100644
--- a/tests/inheritance/1.0/Android.bp
+++ b/tests/inheritance/1.0/Android.bp
@@ -78,3 +78,82 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.tests.inheritance@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.inheritance@1.0",
+    srcs: [
+        ":android.hardware.tests.inheritance@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/inheritance/1.0/AChild.cpp",
+        "android/hardware/tests/inheritance/1.0/AFetcher.cpp",
+        "android/hardware/tests/inheritance/1.0/AGrandparent.cpp",
+        "android/hardware/tests/inheritance/1.0/AParent.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.inheritance@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.inheritance@1.0",
+    srcs: [
+        ":android.hardware.tests.inheritance@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/inheritance/1.0/AChild.h",
+        "android/hardware/tests/inheritance/1.0/AFetcher.h",
+        "android/hardware/tests/inheritance/1.0/AGrandparent.h",
+        "android/hardware/tests/inheritance/1.0/AParent.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.tests.inheritance@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.tests.inheritance@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.tests.inheritance@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.tests.inheritance@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.tests.inheritance@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.tests.inheritance@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.inheritance@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.inheritance@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.tests.inheritance@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.tests.inheritance@1.0",
+        "android.hardware.tests.inheritance@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.tests.inheritance@1.0-adapter_genc++"],
+}
diff --git a/tests/libhwbinder/1.0/Android.bp b/tests/libhwbinder/1.0/Android.bp
index 338a72b..5812fa3 100644
--- a/tests/libhwbinder/1.0/Android.bp
+++ b/tests/libhwbinder/1.0/Android.bp
@@ -64,3 +64,78 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.tests.libhwbinder@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.libhwbinder@1.0",
+    srcs: [
+        ":android.hardware.tests.libhwbinder@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/libhwbinder/1.0/ABenchmark.cpp",
+        "android/hardware/tests/libhwbinder/1.0/AScheduleTest.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.libhwbinder@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.libhwbinder@1.0",
+    srcs: [
+        ":android.hardware.tests.libhwbinder@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/libhwbinder/1.0/ABenchmark.h",
+        "android/hardware/tests/libhwbinder/1.0/AScheduleTest.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.tests.libhwbinder@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.tests.libhwbinder@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.tests.libhwbinder@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.tests.libhwbinder@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.tests.libhwbinder@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.tests.libhwbinder@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.libhwbinder@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.libhwbinder@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.tests.libhwbinder@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.tests.libhwbinder@1.0",
+        "android.hardware.tests.libhwbinder@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.tests.libhwbinder@1.0-adapter_genc++"],
+}
diff --git a/tests/memory/1.0/Android.bp b/tests/memory/1.0/Android.bp
index a753824..df7e47a 100644
--- a/tests/memory/1.0/Android.bp
+++ b/tests/memory/1.0/Android.bp
@@ -57,3 +57,76 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.tests.memory@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.memory@1.0",
+    srcs: [
+        ":android.hardware.tests.memory@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/memory/1.0/AMemoryTest.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.memory@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.memory@1.0",
+    srcs: [
+        ":android.hardware.tests.memory@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/memory/1.0/AMemoryTest.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.tests.memory@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.tests.memory@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.tests.memory@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.tests.memory@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.tests.memory@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.tests.memory@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.memory@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.memory@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.tests.memory@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.tests.memory@1.0",
+        "android.hardware.tests.memory@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.tests.memory@1.0-adapter_genc++"],
+}
diff --git a/tests/msgq/1.0/Android.bp b/tests/msgq/1.0/Android.bp
index 0937545..124ba3d 100644
--- a/tests/msgq/1.0/Android.bp
+++ b/tests/msgq/1.0/Android.bp
@@ -64,3 +64,78 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.tests.msgq@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.msgq@1.0",
+    srcs: [
+        ":android.hardware.tests.msgq@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/msgq/1.0/ABenchmarkMsgQ.cpp",
+        "android/hardware/tests/msgq/1.0/ATestMsgQ.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.msgq@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.msgq@1.0",
+    srcs: [
+        ":android.hardware.tests.msgq@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/msgq/1.0/ABenchmarkMsgQ.h",
+        "android/hardware/tests/msgq/1.0/ATestMsgQ.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.tests.msgq@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.tests.msgq@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.tests.msgq@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.tests.msgq@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.tests.msgq@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.tests.msgq@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.msgq@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.msgq@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.tests.msgq@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.tests.msgq@1.0",
+        "android.hardware.tests.msgq@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.tests.msgq@1.0-adapter_genc++"],
+}
diff --git a/tests/multithread/1.0/Android.bp b/tests/multithread/1.0/Android.bp
index 5f4c44c..28a0418 100644
--- a/tests/multithread/1.0/Android.bp
+++ b/tests/multithread/1.0/Android.bp
@@ -57,3 +57,76 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.tests.multithread@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.multithread@1.0",
+    srcs: [
+        ":android.hardware.tests.multithread@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/multithread/1.0/AMultithread.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.multithread@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.multithread@1.0",
+    srcs: [
+        ":android.hardware.tests.multithread@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/multithread/1.0/AMultithread.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.tests.multithread@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.tests.multithread@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.tests.multithread@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.tests.multithread@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.tests.multithread@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.tests.multithread@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.multithread@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.multithread@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.tests.multithread@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.tests.multithread@1.0",
+        "android.hardware.tests.multithread@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.tests.multithread@1.0-adapter_genc++"],
+}
diff --git a/tests/pointer/1.0/Android.bp b/tests/pointer/1.0/Android.bp
index a765ae7..a1297be 100644
--- a/tests/pointer/1.0/Android.bp
+++ b/tests/pointer/1.0/Android.bp
@@ -64,3 +64,78 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.tests.pointer@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.pointer@1.0",
+    srcs: [
+        ":android.hardware.tests.pointer@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/pointer/1.0/AGraph.cpp",
+        "android/hardware/tests/pointer/1.0/APointer.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.pointer@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.pointer@1.0",
+    srcs: [
+        ":android.hardware.tests.pointer@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/pointer/1.0/AGraph.h",
+        "android/hardware/tests/pointer/1.0/APointer.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.tests.pointer@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.tests.pointer@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.tests.pointer@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.tests.pointer@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.tests.pointer@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.tests.pointer@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.pointer@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.pointer@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.tests.pointer@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.tests.pointer@1.0",
+        "android.hardware.tests.pointer@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.tests.pointer@1.0-adapter_genc++"],
+}
diff --git a/tests/trie/1.0/Android.bp b/tests/trie/1.0/Android.bp
index 9e11c3e..89269e5 100644
--- a/tests/trie/1.0/Android.bp
+++ b/tests/trie/1.0/Android.bp
@@ -61,3 +61,76 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.tests.trie@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.trie@1.0",
+    srcs: [
+        ":android.hardware.tests.trie@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/trie/1.0/ATrie.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.trie@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.trie@1.0",
+    srcs: [
+        ":android.hardware.tests.trie@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tests/trie/1.0/ATrie.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.tests.trie@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.tests.trie@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.tests.trie@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.tests.trie@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.tests.trie@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.tests.trie@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tests.trie@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tests.trie@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.tests.trie@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.tests.trie@1.0",
+        "android.hardware.tests.trie@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.tests.trie@1.0-adapter_genc++"],
+}
diff --git a/tetheroffload/config/1.0/Android.bp b/tetheroffload/config/1.0/Android.bp
index 2d62f16..fbb4cf2 100644
--- a/tetheroffload/config/1.0/Android.bp
+++ b/tetheroffload/config/1.0/Android.bp
@@ -60,3 +60,76 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.tetheroffload.config@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tetheroffload.config@1.0",
+    srcs: [
+        ":android.hardware.tetheroffload.config@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tetheroffload/config/1.0/AOffloadConfig.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tetheroffload.config@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tetheroffload.config@1.0",
+    srcs: [
+        ":android.hardware.tetheroffload.config@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tetheroffload/config/1.0/AOffloadConfig.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.tetheroffload.config@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.tetheroffload.config@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.tetheroffload.config@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.tetheroffload.config@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.tetheroffload.config@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.tetheroffload.config@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tetheroffload.config@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tetheroffload.config@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.tetheroffload.config@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.tetheroffload.config@1.0",
+        "android.hardware.tetheroffload.config@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.tetheroffload.config@1.0-adapter_genc++"],
+}
diff --git a/tetheroffload/control/1.0/Android.bp b/tetheroffload/control/1.0/Android.bp
index 72f410e..ba730a5 100644
--- a/tetheroffload/control/1.0/Android.bp
+++ b/tetheroffload/control/1.0/Android.bp
@@ -71,3 +71,78 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.tetheroffload.control@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tetheroffload.control@1.0",
+    srcs: [
+        ":android.hardware.tetheroffload.control@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tetheroffload/control/1.0/AOffloadControl.cpp",
+        "android/hardware/tetheroffload/control/1.0/ATetheringOffloadCallback.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tetheroffload.control@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tetheroffload.control@1.0",
+    srcs: [
+        ":android.hardware.tetheroffload.control@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tetheroffload/control/1.0/AOffloadControl.h",
+        "android/hardware/tetheroffload/control/1.0/ATetheringOffloadCallback.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.tetheroffload.control@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.tetheroffload.control@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.tetheroffload.control@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.tetheroffload.control@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.tetheroffload.control@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.tetheroffload.control@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tetheroffload.control@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tetheroffload.control@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.tetheroffload.control@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.tetheroffload.control@1.0",
+        "android.hardware.tetheroffload.control@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.tetheroffload.control@1.0-adapter_genc++"],
+}
diff --git a/thermal/1.0/Android.bp b/thermal/1.0/Android.bp
index aa97175..406ca58 100644
--- a/thermal/1.0/Android.bp
+++ b/thermal/1.0/Android.bp
@@ -64,3 +64,76 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.thermal@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.thermal@1.0",
+    srcs: [
+        ":android.hardware.thermal@1.0_hal",
+    ],
+    out: [
+        "android/hardware/thermal/1.0/AThermal.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.thermal@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.thermal@1.0",
+    srcs: [
+        ":android.hardware.thermal@1.0_hal",
+    ],
+    out: [
+        "android/hardware/thermal/1.0/AThermal.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.thermal@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.thermal@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.thermal@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.thermal@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.thermal@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.thermal@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.thermal@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.thermal@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.thermal@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.thermal@1.0",
+        "android.hardware.thermal@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.thermal@1.0-adapter_genc++"],
+}
diff --git a/tv/cec/1.0/Android.bp b/tv/cec/1.0/Android.bp
index c9da737..d241145 100644
--- a/tv/cec/1.0/Android.bp
+++ b/tv/cec/1.0/Android.bp
@@ -71,3 +71,78 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.tv.cec@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tv.cec@1.0",
+    srcs: [
+        ":android.hardware.tv.cec@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tv/cec/1.0/AHdmiCec.cpp",
+        "android/hardware/tv/cec/1.0/AHdmiCecCallback.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tv.cec@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tv.cec@1.0",
+    srcs: [
+        ":android.hardware.tv.cec@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tv/cec/1.0/AHdmiCec.h",
+        "android/hardware/tv/cec/1.0/AHdmiCecCallback.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.tv.cec@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.tv.cec@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.tv.cec@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.tv.cec@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.tv.cec@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.tv.cec@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tv.cec@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tv.cec@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.tv.cec@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.tv.cec@1.0",
+        "android.hardware.tv.cec@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.tv.cec@1.0-adapter_genc++"],
+}
diff --git a/tv/input/1.0/Android.bp b/tv/input/1.0/Android.bp
index 22ea1d8..ef85bde 100644
--- a/tv/input/1.0/Android.bp
+++ b/tv/input/1.0/Android.bp
@@ -73,3 +73,81 @@
         "android.hardware.audio.common@2.0",
     ],
 }
+
+genrule {
+    name: "android.hardware.tv.input@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tv.input@1.0",
+    srcs: [
+        ":android.hardware.tv.input@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tv/input/1.0/ATvInput.cpp",
+        "android/hardware/tv/input/1.0/ATvInputCallback.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tv.input@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tv.input@1.0",
+    srcs: [
+        ":android.hardware.tv.input@1.0_hal",
+    ],
+    out: [
+        "android/hardware/tv/input/1.0/ATvInput.h",
+        "android/hardware/tv/input/1.0/ATvInputCallback.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.tv.input@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.tv.input@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.tv.input@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.tv.input@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.audio.common@2.0",
+        "android.hardware.tv.input@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.audio.common@2.0",
+        "android.hardware.tv.input@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.tv.input@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.tv.input@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.tv.input@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.audio.common@2.0",
+        "android.hardware.tv.input@1.0",
+        "android.hardware.tv.input@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.tv.input@1.0-adapter_genc++"],
+}
diff --git a/usb/1.0/Android.bp b/usb/1.0/Android.bp
index afe1931..676d8ce 100644
--- a/usb/1.0/Android.bp
+++ b/usb/1.0/Android.bp
@@ -71,3 +71,78 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.usb@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.usb@1.0",
+    srcs: [
+        ":android.hardware.usb@1.0_hal",
+    ],
+    out: [
+        "android/hardware/usb/1.0/AUsb.cpp",
+        "android/hardware/usb/1.0/AUsbCallback.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.usb@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.usb@1.0",
+    srcs: [
+        ":android.hardware.usb@1.0_hal",
+    ],
+    out: [
+        "android/hardware/usb/1.0/AUsb.h",
+        "android/hardware/usb/1.0/AUsbCallback.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.usb@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.usb@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.usb@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.usb@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.usb@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.usb@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.usb@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.usb@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.usb@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.usb@1.0",
+        "android.hardware.usb@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.usb@1.0-adapter_genc++"],
+}
diff --git a/vibrator/1.0/Android.bp b/vibrator/1.0/Android.bp
index 354b83f..8a34aa4 100644
--- a/vibrator/1.0/Android.bp
+++ b/vibrator/1.0/Android.bp
@@ -64,3 +64,76 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.vibrator@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.vibrator@1.0",
+    srcs: [
+        ":android.hardware.vibrator@1.0_hal",
+    ],
+    out: [
+        "android/hardware/vibrator/1.0/AVibrator.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.vibrator@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.vibrator@1.0",
+    srcs: [
+        ":android.hardware.vibrator@1.0_hal",
+    ],
+    out: [
+        "android/hardware/vibrator/1.0/AVibrator.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.vibrator@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.vibrator@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.vibrator@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.vibrator@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.vibrator@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.vibrator@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.vibrator@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.vibrator@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.vibrator@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.vibrator@1.0",
+        "android.hardware.vibrator@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.vibrator@1.0-adapter_genc++"],
+}
diff --git a/vr/1.0/Android.bp b/vr/1.0/Android.bp
index cb9e2af..bc44e7b 100644
--- a/vr/1.0/Android.bp
+++ b/vr/1.0/Android.bp
@@ -60,3 +60,76 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.vr@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.vr@1.0",
+    srcs: [
+        ":android.hardware.vr@1.0_hal",
+    ],
+    out: [
+        "android/hardware/vr/1.0/AVr.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.vr@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.vr@1.0",
+    srcs: [
+        ":android.hardware.vr@1.0_hal",
+    ],
+    out: [
+        "android/hardware/vr/1.0/AVr.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.vr@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.vr@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.vr@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.vr@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.vr@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.vr@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.vr@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.vr@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.vr@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.vr@1.0",
+        "android.hardware.vr@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.vr@1.0-adapter_genc++"],
+}
diff --git a/wifi/1.0/Android.bp b/wifi/1.0/Android.bp
index d7db770..230b5a2 100644
--- a/wifi/1.0/Android.bp
+++ b/wifi/1.0/Android.bp
@@ -148,3 +148,100 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.wifi@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.wifi@1.0",
+    srcs: [
+        ":android.hardware.wifi@1.0_hal",
+    ],
+    out: [
+        "android/hardware/wifi/1.0/AWifi.cpp",
+        "android/hardware/wifi/1.0/AWifiApIface.cpp",
+        "android/hardware/wifi/1.0/AWifiChip.cpp",
+        "android/hardware/wifi/1.0/AWifiChipEventCallback.cpp",
+        "android/hardware/wifi/1.0/AWifiEventCallback.cpp",
+        "android/hardware/wifi/1.0/AWifiIface.cpp",
+        "android/hardware/wifi/1.0/AWifiNanIface.cpp",
+        "android/hardware/wifi/1.0/AWifiNanIfaceEventCallback.cpp",
+        "android/hardware/wifi/1.0/AWifiP2pIface.cpp",
+        "android/hardware/wifi/1.0/AWifiRttController.cpp",
+        "android/hardware/wifi/1.0/AWifiRttControllerEventCallback.cpp",
+        "android/hardware/wifi/1.0/AWifiStaIface.cpp",
+        "android/hardware/wifi/1.0/AWifiStaIfaceEventCallback.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.wifi@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.wifi@1.0",
+    srcs: [
+        ":android.hardware.wifi@1.0_hal",
+    ],
+    out: [
+        "android/hardware/wifi/1.0/AWifi.h",
+        "android/hardware/wifi/1.0/AWifiApIface.h",
+        "android/hardware/wifi/1.0/AWifiChip.h",
+        "android/hardware/wifi/1.0/AWifiChipEventCallback.h",
+        "android/hardware/wifi/1.0/AWifiEventCallback.h",
+        "android/hardware/wifi/1.0/AWifiIface.h",
+        "android/hardware/wifi/1.0/AWifiNanIface.h",
+        "android/hardware/wifi/1.0/AWifiNanIfaceEventCallback.h",
+        "android/hardware/wifi/1.0/AWifiP2pIface.h",
+        "android/hardware/wifi/1.0/AWifiRttController.h",
+        "android/hardware/wifi/1.0/AWifiRttControllerEventCallback.h",
+        "android/hardware/wifi/1.0/AWifiStaIface.h",
+        "android/hardware/wifi/1.0/AWifiStaIfaceEventCallback.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.wifi@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.wifi@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.wifi@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.wifi@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.wifi@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.wifi@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.wifi@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.wifi@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.wifi@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.wifi@1.0",
+        "android.hardware.wifi@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.wifi@1.0-adapter_genc++"],
+}
diff --git a/wifi/supplicant/1.0/Android.bp b/wifi/supplicant/1.0/Android.bp
index 978192d..e9d37b0 100644
--- a/wifi/supplicant/1.0/Android.bp
+++ b/wifi/supplicant/1.0/Android.bp
@@ -141,3 +141,98 @@
         "libutils",
     ],
 }
+
+genrule {
+    name: "android.hardware.wifi.supplicant@1.0-adapter-helper_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-sources -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.wifi.supplicant@1.0",
+    srcs: [
+        ":android.hardware.wifi.supplicant@1.0_hal",
+    ],
+    out: [
+        "android/hardware/wifi/supplicant/1.0/ASupplicant.cpp",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantCallback.cpp",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantIface.cpp",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantNetwork.cpp",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantP2pIface.cpp",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantP2pIfaceCallback.cpp",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantP2pNetwork.cpp",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantP2pNetworkCallback.cpp",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantStaIface.cpp",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantStaIfaceCallback.cpp",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantStaNetwork.cpp",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantStaNetworkCallback.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.wifi.supplicant@1.0-adapter-helper_genc++_headers",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-headers -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.wifi.supplicant@1.0",
+    srcs: [
+        ":android.hardware.wifi.supplicant@1.0_hal",
+    ],
+    out: [
+        "android/hardware/wifi/supplicant/1.0/ASupplicant.h",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantCallback.h",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantIface.h",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantNetwork.h",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantP2pIface.h",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantP2pIfaceCallback.h",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantP2pNetwork.h",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantP2pNetworkCallback.h",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantStaIface.h",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantStaIfaceCallback.h",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantStaNetwork.h",
+        "android/hardware/wifi/supplicant/1.0/ASupplicantStaNetworkCallback.h",
+    ],
+}
+
+
+cc_library {
+    name: "android.hardware.wifi.supplicant@1.0-adapter-helper",
+    defaults: ["hidl-module-defaults"],
+    generated_sources: ["android.hardware.wifi.supplicant@1.0-adapter-helper_genc++"],
+    generated_headers: ["android.hardware.wifi.supplicant@1.0-adapter-helper_genc++_headers"],
+    export_generated_headers: ["android.hardware.wifi.supplicant@1.0-adapter-helper_genc++_headers"],
+    vendor_available: true,
+    shared_libs: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "liblog",
+        "libutils",
+        "libcutils",
+        "libhidladapter",
+        "android.hardware.wifi.supplicant@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+    export_shared_lib_headers: [
+        "libhidlbase",
+        "libhidltransport",
+        "libhwbinder",
+        "libutils",
+        "libhidladapter",
+        "android.hardware.wifi.supplicant@1.0",
+        "android.hidl.base@1.0-adapter-helper",
+    ],
+}
+
+genrule {
+    name: "android.hardware.wifi.supplicant@1.0-adapter_genc++",
+    tools: ["hidl-gen"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lc++-adapter-main -randroid.hardware:hardware/interfaces -randroid.hidl:system/libhidl/transport android.hardware.wifi.supplicant@1.0",
+    out: ["main.cpp"]}
+
+cc_test {
+    name: "android.hardware.wifi.supplicant@1.0-adapter",
+    shared_libs: [
+        "libhidladapter",
+        "libhidlbase",
+        "libhidltransport",
+        "libutils",
+        "android.hardware.wifi.supplicant@1.0",
+        "android.hardware.wifi.supplicant@1.0-adapter-helper",
+    ],
+    generated_sources: ["android.hardware.wifi.supplicant@1.0-adapter_genc++"],
+}