Release IOmxNode after allocating am: 642321c20b am: a93b34b363
am: 1c5cb539bf

Change-Id: I3392894b5ce0a2a30cf0ebe294020ebf11ea25dc
diff --git a/broadcastradio/V1_1/adapter/AndroidTest.xml b/broadcastradio/V1_1/adapter/AndroidTest.xml
index 6f8579e..b630c93 100644
--- a/broadcastradio/V1_1/adapter/AndroidTest.xml
+++ b/broadcastradio/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalBroadcastradioV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.broadcastradio@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.broadcastradio@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.broadcastradio@1.1"/>
diff --git a/camera/device/V3_3/adapter/AndroidTest.xml b/camera/device/V3_3/adapter/AndroidTest.xml
index 2c9e7d3..7c1728d 100644
--- a/camera/device/V3_3/adapter/AndroidTest.xml
+++ b/camera/device/V3_3/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalCameraDeviceV3_3Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.camera.device@3.3"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.camera.device@3.2-adapter"/>
         <option name="hal-package-name" value="android.hardware.camera.device@3.3"/>
diff --git a/camera/device/V3_4/adapter/AndroidTest.xml b/camera/device/V3_4/adapter/AndroidTest.xml
index ff53174..6d4396e 100644
--- a/camera/device/V3_4/adapter/AndroidTest.xml
+++ b/camera/device/V3_4/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalCameraDeviceV3_4Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.camera.device@3.4"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.camera.device@3.3-adapter"/>
         <option name="hal-package-name" value="android.hardware.camera.device@3.4"/>
diff --git a/camera/metadata/V3_3/adapter/AndroidTest.xml b/camera/metadata/V3_3/adapter/AndroidTest.xml
index 4011569..cf3ef15 100644
--- a/camera/metadata/V3_3/adapter/AndroidTest.xml
+++ b/camera/metadata/V3_3/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalCameraMetadataV3_3Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.camera.metadata@3.3"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.camera.metadata@3.2-adapter"/>
         <option name="hal-package-name" value="android.hardware.camera.metadata@3.3"/>
diff --git a/camera/provider/V2_4/target/AndroidTest.xml b/camera/provider/V2_4/target/AndroidTest.xml
index 4324d51..4eca95f 100644
--- a/camera/provider/V2_4/target/AndroidTest.xml
+++ b/camera/provider/V2_4/target/AndroidTest.xml
@@ -30,6 +30,6 @@
         <option name="exclude-coverage-path" value="hardware/interfaces/sensors" />
         <option name="exclude-coverage-path" value="hardware/qcom/display/msm8998" />
         <option name="exclude-coverage-path" value="vendor/qcom/msm8998/proprietary/proprietary/qmi-framework" />
-        <option name="test-timeout" value="15m"/>
+        <option name="test-timeout" value="30m"/>
     </test>
 </configuration>
diff --git a/drm/V1_1/adapter/AndroidTest.xml b/drm/V1_1/adapter/AndroidTest.xml
index 3cee6cc..e7331ff 100644
--- a/drm/V1_1/adapter/AndroidTest.xml
+++ b/drm/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalDrmV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.drm@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.drm@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.drm@1.1"/>
diff --git a/gnss/V1_1/adapter/AndroidTest.xml b/gnss/V1_1/adapter/AndroidTest.xml
index ab1676c..8b431f2 100644
--- a/gnss/V1_1/adapter/AndroidTest.xml
+++ b/gnss/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalGnssV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.gnss@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.gnss@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.gnss@1.1"/>
diff --git a/graphics/common/V1_1/adapter/AndroidTest.xml b/graphics/common/V1_1/adapter/AndroidTest.xml
index b6a795c..a9f341b 100644
--- a/graphics/common/V1_1/adapter/AndroidTest.xml
+++ b/graphics/common/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalGraphicsCommonV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.graphics.common@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.graphics.common@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.graphics.common@1.1"/>
diff --git a/graphics/composer/V2_2/adapter/AndroidTest.xml b/graphics/composer/V2_2/adapter/AndroidTest.xml
index 0c90a5b..fd140ad 100644
--- a/graphics/composer/V2_2/adapter/AndroidTest.xml
+++ b/graphics/composer/V2_2/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalGraphicsComposerV2_2Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.graphics.composer@2.2"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.graphics.composer@2.1-adapter"/>
         <option name="hal-package-name" value="android.hardware.graphics.composer@2.2"/>
diff --git a/graphics/mapper/V2_1/adapter/AndroidTest.xml b/graphics/mapper/V2_1/adapter/AndroidTest.xml
index 4207ea4..35417de 100644
--- a/graphics/mapper/V2_1/adapter/AndroidTest.xml
+++ b/graphics/mapper/V2_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalGraphicsMapperV2_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.graphics.mapper@2.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.graphics.mapper@2.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.graphics.mapper@2.1"/>
diff --git a/neuralnetworks/V1_1/adapter/AndroidTest.xml b/neuralnetworks/V1_1/adapter/AndroidTest.xml
index 420e320..1b9ef4f 100644
--- a/neuralnetworks/V1_1/adapter/AndroidTest.xml
+++ b/neuralnetworks/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalNeuralnetworksV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.neuralnetworks@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.neuralnetworks@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.neuralnetworks@1.1"/>
diff --git a/nfc/V1_1/adapter/AndroidTest.xml b/nfc/V1_1/adapter/AndroidTest.xml
index caff75e..bdb72ba 100644
--- a/nfc/V1_1/adapter/AndroidTest.xml
+++ b/nfc/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalNfcV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.nfc@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.nfc@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.nfc@1.1"/>
diff --git a/power/V1_1/adapter/AndroidTest.xml b/power/V1_1/adapter/AndroidTest.xml
index 2352390..d85639f 100644
--- a/power/V1_1/adapter/AndroidTest.xml
+++ b/power/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalPowerV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.power@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.power@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.power@1.1"/>
diff --git a/power/V1_2/adapter/AndroidTest.xml b/power/V1_2/adapter/AndroidTest.xml
index 5c36976..4542192 100644
--- a/power/V1_2/adapter/AndroidTest.xml
+++ b/power/V1_2/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalPowerV1_2Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.power@1.2"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.power@1.1-adapter"/>
         <option name="hal-package-name" value="android.hardware.power@1.2"/>
diff --git a/power/V1_3/build/Android.bp b/power/V1_3/build/Android.bp
new file mode 100644
index 0000000..7c7b27f
--- /dev/null
+++ b/power/V1_3/build/Android.bp
@@ -0,0 +1,108 @@
+// This file was auto-generated. Do not edit manually.
+// Use launch_hal_test.py or update_makefiles.py in test/vts-testcase/hal/script/ to generate this file.
+
+// Generate .vts spec files.
+hal2vts {
+    name: "android.hardware.power@1.3-vts.spec",
+    hidl_gen_args: "-r android.hardware:hardware/interfaces",
+    srcs: [
+        ":android.hardware.power@1.3_hal",
+    ],
+    out: [
+        "android/hardware/power/1.3/Power.vts",
+        "android/hardware/power/1.3/types.vts",
+    ],
+}
+
+// Build VTS driver.
+genrule {
+    name: "android.hardware.power@1.3-vts.driver_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.power@1.3 && $(location vtsc) -mDRIVER -tSOURCE -b$(genDir) android/hardware/power/1.3/ $(genDir)/android/hardware/power/1.3/",
+    srcs: [
+        ":android.hardware.power@1.3_hal",
+    ],
+    out: [
+        "android/hardware/power/1.3/Power.vts.cpp",
+        "android/hardware/power/1.3/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.power@1.3-vts.driver_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.power@1.3 && $(location vtsc) -mDRIVER -tHEADER -b$(genDir) android/hardware/power/1.3/ $(genDir)/android/hardware/power/1.3/",
+    srcs: [
+        ":android.hardware.power@1.3_hal",
+    ],
+    out: [
+        "android/hardware/power/1.3/Power.vts.h",
+        "android/hardware/power/1.3/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.power@1.3-vts.driver",
+    generated_sources: ["android.hardware.power@1.3-vts.driver_genc++"],
+    generated_headers: ["android.hardware.power@1.3-vts.driver_genc++_headers"],
+    export_generated_headers: ["android.hardware.power@1.3-vts.driver_genc++_headers"],
+    defaults: ["VtsHalDriverDefaults"],
+    shared_libs: [
+        "android.hardware.power@1.0-vts.driver",
+        "android.hardware.power@1.1-vts.driver",
+        "android.hardware.power@1.2-vts.driver",
+    ],
+    static_libs: [
+        "android.hardware.power@1.0",
+        "android.hardware.power@1.1",
+        "android.hardware.power@1.2",
+        "android.hardware.power@1.3",
+    ],
+}
+
+// Build VTS profiler.
+genrule {
+    name: "android.hardware.power@1.3-vts.profiler_genc++",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.power@1.3 && $(location vtsc) -mPROFILER -tSOURCE -b$(genDir) android/hardware/power/1.3/ $(genDir)/android/hardware/power/1.3/",
+    srcs: [
+        ":android.hardware.power@1.3_hal",
+    ],
+    out: [
+        "android/hardware/power/1.3/Power.vts.cpp",
+        "android/hardware/power/1.3/types.vts.cpp",
+    ],
+}
+
+genrule {
+    name: "android.hardware.power@1.3-vts.profiler_genc++_headers",
+    tools: ["hidl-gen", "vtsc"],
+    cmd: "$(location hidl-gen) -o $(genDir) -Lvts -r android.hardware:hardware/interfaces android.hardware.power@1.3 && $(location vtsc) -mPROFILER -tHEADER -b$(genDir) android/hardware/power/1.3/ $(genDir)/android/hardware/power/1.3/",
+    srcs: [
+        ":android.hardware.power@1.3_hal",
+    ],
+    out: [
+        "android/hardware/power/1.3/Power.vts.h",
+        "android/hardware/power/1.3/types.vts.h",
+    ],
+}
+
+cc_library_shared {
+    name: "android.hardware.power@1.3-vts.profiler",
+    generated_sources: ["android.hardware.power@1.3-vts.profiler_genc++"],
+    generated_headers: ["android.hardware.power@1.3-vts.profiler_genc++_headers"],
+    export_generated_headers: ["android.hardware.power@1.3-vts.profiler_genc++_headers"],
+    defaults: ["VtsHalProfilerDefaults"],
+    shared_libs: [
+        "android.hardware.power@1.0-vts.profiler",
+        "android.hardware.power@1.1-vts.profiler",
+        "android.hardware.power@1.2-vts.profiler",
+    ],
+    static_libs: [
+        "android.hardware.power@1.0",
+        "android.hardware.power@1.1",
+        "android.hardware.power@1.2",
+        "android.hardware.power@1.3",
+    ],
+}
+
diff --git a/power/V1_3/target/Android.mk b/power/V1_3/target/Android.mk
new file mode 100644
index 0000000..812df84
--- /dev/null
+++ b/power/V1_3/target/Android.mk
@@ -0,0 +1,23 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := VtsHalPowerV1_3Target
+VTS_CONFIG_SRC_DIR := testcases/hal/power/V1_3/target
+include test/vts/tools/build/Android.host_config.mk
diff --git a/power/V1_3/target/AndroidTest.xml b/power/V1_3/target/AndroidTest.xml
new file mode 100644
index 0000000..1be863a
--- /dev/null
+++ b/power/V1_3/target/AndroidTest.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<configuration description="Config for VTS VtsHalPowerV1_3Target test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-hal" />
+    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
+        <option name="abort-on-push-failure" value="false"/>
+        <option name="push-group" value="HalHidlTargetTest.push"/>
+    </target_preparer>
+    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="VtsHalPowerV1_3Target"/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalPowerV1_3TargetTest/VtsHalPowerV1_3TargetTest"/>
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalPowerV1_3TargetTest/VtsHalPowerV1_3TargetTest"/>
+        <option name="binary-test-type" value="hal_hidl_gtest"/>
+        <option name="binary-test-disable-framework" value="true"/>
+        <option name="binary-test-stop-native-servers" value="true"/>
+        <option name="test-timeout" value="1m"/>
+    </test>
+</configuration>
diff --git a/radio/V1_1/adapter/AndroidTest.xml b/radio/V1_1/adapter/AndroidTest.xml
index 1a256a3..1e1d782 100644
--- a/radio/V1_1/adapter/AndroidTest.xml
+++ b/radio/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalRadioV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.radio@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.radio@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.radio@1.1"/>
diff --git a/radio/V1_2/adapter/AndroidTest.xml b/radio/V1_2/adapter/AndroidTest.xml
index b1b40e9..edde14e 100644
--- a/radio/V1_2/adapter/AndroidTest.xml
+++ b/radio/V1_2/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalRadioV1_2Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.radio@1.2"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.radio@1.1-adapter"/>
         <option name="hal-package-name" value="android.hardware.radio@1.2"/>
diff --git a/script/configure/test_case_creator.py b/script/configure/test_case_creator.py
index ffbbc79..04bfeb4 100755
--- a/script/configure/test_case_creator.py
+++ b/script/configure/test_case_creator.py
@@ -272,6 +272,13 @@
         """
 
         # Configure VtsHalAdapterPreparer.
+        adapter_module_controller = ET.SubElement(configuration, 'object',
+                                         {'type': 'module_controller',
+                                          'class': VTA_HAL_ADAPTER_MODULE_CONTROLLER})
+        ET.SubElement(adapter_module_controller, 'option', {
+            'name': 'hal-package-name',
+            'value': self._hal_package_name
+        })
         adapter_preparer = ET.SubElement(configuration, 'target_preparer',
                                          {'class': VTA_HAL_ADAPTER_PREPARER})
         (major_version, minor_version) = self._hal_version.split('.')
@@ -281,7 +288,7 @@
                 'name':
                 'adapter-binary-name',
                 'value':
-                Constant.HAL_PACKAGE_PREFIX + self._hal_name + '@' +
+                Constant.HAL_PACKAGE_PREFIX + '.' + self._hal_name + '@' +
                 adapter_version + '-adapter'
             })
         ET.SubElement(adapter_preparer, 'option', {
@@ -313,7 +320,7 @@
 
         with open(latest_file, 'r') as cts_hal_map_file:
             for line in cts_hal_map_file.readlines():
-                if line.startswith(Constant.HAL_PACKAGE_PREFIX +
+                if line.startswith(Constant.HAL_PACKAGE_PREFIX + '.' +
                                    self._hal_name + '@' + adapter_version):
                     cts_tests = line.split(':')[1].split(',')
                     for cts_test in cts_tests:
@@ -577,5 +584,6 @@
 VTS_LIB_PUSH_TEMPLATE_32 = 'DATA/lib/{lib_name}->/data/local/tmp/32/{lib_name}'
 VTS_LIB_PUSH_TEMPLATE_64 = 'DATA/lib64/{lib_name}->/data/local/tmp/64/{lib_name}'
 
+VTA_HAL_ADAPTER_MODULE_CONTROLLER = 'com.android.tradefed.module.VtsHalAdapterModuleController'
 VTA_HAL_ADAPTER_PREPARER = 'com.android.tradefed.targetprep.VtsHalAdapterPreparer'
 ANDROID_JUNIT_TEST = 'com.android.tradefed.testtype.AndroidJUnitTest'
diff --git a/soundtrigger/V2_1/adapter/AndroidTest.xml b/soundtrigger/V2_1/adapter/AndroidTest.xml
index dc4d31e..e292e96 100644
--- a/soundtrigger/V2_1/adapter/AndroidTest.xml
+++ b/soundtrigger/V2_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalSoundtriggerV2_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.soundtrigger@2.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.soundtrigger@2.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.soundtrigger@2.1"/>
diff --git a/thermal/V1_1/adapter/AndroidTest.xml b/thermal/V1_1/adapter/AndroidTest.xml
index f60a48f..b9e1679 100644
--- a/thermal/V1_1/adapter/AndroidTest.xml
+++ b/thermal/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalThermalV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.thermal@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.thermal@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.thermal@1.1"/>
diff --git a/usb/V1_1/adapter/AndroidTest.xml b/usb/V1_1/adapter/AndroidTest.xml
index 9246ddb..4029f2a 100644
--- a/usb/V1_1/adapter/AndroidTest.xml
+++ b/usb/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalUsbV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.usb@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.usb@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.usb@1.1"/>
diff --git a/vibrator/V1_1/adapter/AndroidTest.xml b/vibrator/V1_1/adapter/AndroidTest.xml
index ccda2e5..d8f497c 100644
--- a/vibrator/V1_1/adapter/AndroidTest.xml
+++ b/vibrator/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalVibratorV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.vibrator@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.vibrator@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.vibrator@1.1"/>
diff --git a/vibrator/V1_2/adapter/AndroidTest.xml b/vibrator/V1_2/adapter/AndroidTest.xml
index d4244b7..674f5bf 100644
--- a/vibrator/V1_2/adapter/AndroidTest.xml
+++ b/vibrator/V1_2/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalVibratorV1_2Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.vibrator@1.2"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.vibrator@1.1-adapter"/>
         <option name="hal-package-name" value="android.hardware.vibrator@1.2"/>
diff --git a/wifi/V1_1/adapter/AndroidTest.xml b/wifi/V1_1/adapter/AndroidTest.xml
index dedffc5..0352352 100644
--- a/wifi/V1_1/adapter/AndroidTest.xml
+++ b/wifi/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalWifiV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.wifi@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.wifi@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.wifi@1.1"/>
diff --git a/wifi/V1_2/adapter/AndroidTest.xml b/wifi/V1_2/adapter/AndroidTest.xml
index 83eaeb7..2b4f411 100644
--- a/wifi/V1_2/adapter/AndroidTest.xml
+++ b/wifi/V1_2/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalWifiV1_2Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.wifi@1.2"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.wifi@1.1-adapter"/>
         <option name="hal-package-name" value="android.hardware.wifi@1.2"/>
diff --git a/wifi/supplicant/V1_1/adapter/AndroidTest.xml b/wifi/supplicant/V1_1/adapter/AndroidTest.xml
index 8f764ba..83e661e 100644
--- a/wifi/supplicant/V1_1/adapter/AndroidTest.xml
+++ b/wifi/supplicant/V1_1/adapter/AndroidTest.xml
@@ -15,6 +15,9 @@
 -->
 <configuration description="Config for VTS VtsHalWifiSupplicantV1_1Adapter test cases">
     <option key="plan" name="config-descriptor:metadata" value="vts-hal-adapter"/>
+    <object class="com.android.tradefed.module.VtsHalAdapterModuleController" type="module_controller">
+        <option name="hal-package-name" value="android.hardware.wifi.supplicant@1.1"/>
+    </object>
     <target_preparer class="com.android.tradefed.targetprep.VtsHalAdapterPreparer">
         <option name="adapter-binary-name" value="android.hardware.wifi.supplicant@1.0-adapter"/>
         <option name="hal-package-name" value="android.hardware.wifi.supplicant@1.1"/>