Merge "Audio hal: Set timeout to 2min"
diff --git a/audio/V2_0/target/AndroidTest.xml b/audio/V2_0/target/AndroidTest.xml
index b9656e6..2640057 100644
--- a/audio/V2_0/target/AndroidTest.xml
+++ b/audio/V2_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalAudioV2_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalAudioV2_0TargetTest/VtsHalAudioV2_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalAudioV2_0TargetTest/VtsHalAudioV2_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalAudioV2_0TargetTest/VtsHalAudioV2_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalAudioV2_0TargetTest/VtsHalAudioV2_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.audio@2.0"/>
         <option name="test-timeout" value="2m"/>
diff --git a/audio/V2_0/target_profiling/AndroidTest.xml b/audio/V2_0/target_profiling/AndroidTest.xml
index 1322da5..1889008 100644
--- a/audio/V2_0/target_profiling/AndroidTest.xml
+++ b/audio/V2_0/target_profiling/AndroidTest.xml
@@ -25,10 +25,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalAudioV2_0TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalAudioV2_0TargetTest/VtsHalAudioV2_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalAudioV2_0TargetTest/VtsHalAudioV2_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalAudioV2_0TargetTest/VtsHalAudioV2_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalAudioV2_0TargetTest/VtsHalAudioV2_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.audio@2.0"/>
diff --git a/audio/effect/V2_0/target/AndroidTest.xml b/audio/effect/V2_0/target/AndroidTest.xml
index 7edf9b3..907f1ca 100644
--- a/audio/effect/V2_0/target/AndroidTest.xml
+++ b/audio/effect/V2_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalAudioEffectV2_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalAudioEffectV2_0TargetTest/VtsHalAudioEffectV2_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalAudioEffectV2_0TargetTest/VtsHalAudioEffectV2_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalAudioEffectV2_0TargetTest/VtsHalAudioEffectV2_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalAudioEffectV2_0TargetTest/VtsHalAudioEffectV2_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.audio.effect@2.0"/>
         <option name="test-timeout" value="1m"/>
diff --git a/audio/effect/V2_0/target_profiling/AndroidTest.xml b/audio/effect/V2_0/target_profiling/AndroidTest.xml
index 0ff09b2..2bb2535 100644
--- a/audio/effect/V2_0/target_profiling/AndroidTest.xml
+++ b/audio/effect/V2_0/target_profiling/AndroidTest.xml
@@ -25,10 +25,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalAudioEffectV2_0TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalAudioEffectV2_0TargetTest/VtsHalAudioEffectV2_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalAudioEffectV2_0TargetTest/VtsHalAudioEffectV2_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalAudioEffectV2_0TargetTest/VtsHalAudioEffectV2_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalAudioEffectV2_0TargetTest/VtsHalAudioEffectV2_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.audio.effect@2.0"/>
diff --git a/automotive/vehicle/V2_0/host/VtsHalAutomotiveVehicleV2_0HostTest.py b/automotive/vehicle/V2_0/host/VtsHalAutomotiveVehicleV2_0HostTest.py
index 5aeab0e..bb34ce4 100644
--- a/automotive/vehicle/V2_0/host/VtsHalAutomotiveVehicleV2_0HostTest.py
+++ b/automotive/vehicle/V2_0/host/VtsHalAutomotiveVehicleV2_0HostTest.py
@@ -75,6 +75,11 @@
         if self.profiling.enabled:
             self.profiling.EnableVTSProfiling(self.dut.shell.one)
 
+        self.propToConfig = {}
+        for config in self.vehicle.getAllPropConfigs():
+            self.propToConfig[config['prop']] = config
+        self.configList = self.propToConfig.values()
+
     def tearDownTest(self):
         if self.profiling.enabled:
             self.profiling.ProcessTraceDataForTestCase(self.dut)
@@ -86,35 +91,20 @@
         Verifies that call to getAllPropConfigs is not failing and
         it returns at least 1 vehicle property config.
         """
-        allConfigs = self.vehicle.getAllPropConfigs()
-        logging.info("all supported properties: %s", allConfigs)
-        asserts.assertLess(0, len(allConfigs))
+        logging.info("all supported properties: %s", self.configList)
+        asserts.assertLess(0, len(self.configList))
 
     def testMandatoryProperties(self):
         """Verifies that all mandatory properties are supported."""
         # 1 property so far
         mandatoryProps = set([self.vtypes.VehicleProperty.DRIVING_STATUS])
         logging.info(self.vtypes.VehicleProperty.DRIVING_STATUS)
-        allConfigs = self.dut.hal.vehicle.getAllPropConfigs()
 
-        for config in allConfigs:
+        for config in self.configList:
             mandatoryProps.discard(config['prop'])
 
         asserts.assertEqual(0, len(mandatoryProps))
 
-    def getSupportInfo(self):
-        """Check whether OBD2_{LIVE|FREEZE}_FRAME is supported."""
-        isLiveSupported, isFreezeSupported = False, False
-        allConfigs = self.vehicle.getAllPropConfigs()
-        for config in allConfigs:
-            if config['prop'] == self.vtypes.VehicleProperty.OBD2_LIVE_FRAME:
-                isLiveSupported = True
-            elif config['prop'] == self.vtypes.VehicleProperty.OBD2_FREEZE_FRAME:
-                isFreezeSupported = True
-            if isLiveSupported and isFreezeSupported:
-                break
-        return isLiveSupported, isFreezeSupported
-
     def emptyValueProperty(self, propertyId, areaId=0):
         """Creates a property structure for use with the Vehicle HAL.
 
@@ -183,12 +173,12 @@
                 else:
                     propValue["value"][k].extend(value[k])
         vp = self.vtypes.Py2Pb("VehiclePropValue", propValue)
-        logging.info("0x%08X set request: %s", propertyId, vp)
+        logging.info("0x%x set request: %s", propertyId, vp)
         status = self.vehicle.set(vp)
-        logging.info("0x%08X set response: %s", propertyId, status)
+        logging.info("0x%x set response: %s", propertyId, status)
         if 0 == expectedStatus:
             expectedStatus = self.vtypes.StatusCode.OK
-        asserts.assertEqual(expectedStatus, status)
+        asserts.assertEqual(expectedStatus, status, "Prop 0x%x" % propertyId)
 
     def setAndVerifyIntProperty(self, propertyId, value, areaId=0):
         """Sets a integer property in the Vehicle HAL and reads it back.
@@ -199,7 +189,7 @@
             areaId: the numeric identifier of the vehicle area to set the
                     property for. 0, or omitted, for global.
         """
-        self.setVhalProperty(propertyId, {"int32Values" : [value]})
+        self.setVhalProperty(propertyId, {"int32Values" : [value]}, areaId=areaId)
 
         propValue = self.readVhalProperty(propertyId)
         asserts.assertEqual(1, len(propValue["value"]["int32Values"]))
@@ -257,7 +247,8 @@
                                 "OBD2_FREEZE_FRAME")
             checker()
 
-        isLiveSupported, isFreezeSupported = self.getSupportInfo()
+        isLiveSupported = self.vtypes.VehicleProperty.OBD2_LIVE_FRAME in self.propToConfig
+        isFreezeSupported = self.vtypes.VehicleProperty.OBD2_FREEZE_FRAME in self.propToConfig
         logging.info("isLiveSupported = %s, isFreezeSupported = %s",
                      isLiveSupported, isFreezeSupported)
         if isLiveSupported:
@@ -281,6 +272,35 @@
 
         asserts.assertEqual(allStatuses, allStatuses | drivingStatus)
 
+    def extractZonesAsList(self, supportedAreas):
+        """Converts bitwise area flags to list of zones"""
+        allZones = [
+            self.vtypes.VehicleAreaZone.ROW_1_LEFT,
+            self.vtypes.VehicleAreaZone.ROW_1_CENTER,
+            self.vtypes.VehicleAreaZone.ROW_1_RIGHT,
+            self.vtypes.VehicleAreaZone.ROW_1,
+            self.vtypes.VehicleAreaZone.ROW_2_LEFT,
+            self.vtypes.VehicleAreaZone.ROW_2_CENTER,
+            self.vtypes.VehicleAreaZone.ROW_2_RIGHT,
+            self.vtypes.VehicleAreaZone.ROW_2,
+            self.vtypes.VehicleAreaZone.ROW_3_LEFT,
+            self.vtypes.VehicleAreaZone.ROW_3_CENTER,
+            self.vtypes.VehicleAreaZone.ROW_3_RIGHT,
+            self.vtypes.VehicleAreaZone.ROW_3,
+            self.vtypes.VehicleAreaZone.ROW_4_LEFT,
+            self.vtypes.VehicleAreaZone.ROW_4_CENTER,
+            self.vtypes.VehicleAreaZone.ROW_4_RIGHT,
+            self.vtypes.VehicleAreaZone.ROW_4,
+            self.vtypes.VehicleAreaZone.WHOLE_CABIN,
+        ]
+
+        extractedZones = []
+        for zone in allZones:
+            if (zone & supportedAreas == zone):
+                extractedZones.append(zone)
+        return extractedZones
+
+
     def testHvacPowerOn(self):
         """Test power on/off and properties associated with it.
 
@@ -295,11 +315,20 @@
 
         # Checks that HVAC_POWER_ON property is supported and returns valid
         # result initially.
-        propValue = self.readVhalProperty(
-            self.vtypes.VehicleProperty.HVAC_POWER_ON)
-        if propValue is None:
+        hvacPowerOnConfig = self.propToConfig[self.vtypes.VehicleProperty.HVAC_POWER_ON]
+        if hvacPowerOnConfig is None:
             logging.info("HVAC_POWER_ON not supported")
             return
+
+        zones = self.extractZonesAsList(hvacPowerOnConfig['supportedAreas'])
+        asserts.assertLess(0, len(zones), "supportedAreas for HVAC_POWER_ON property is invalid")
+
+        # TODO(pavelm): consider to check for all zones
+        zone = zones[0]
+
+        propValue = self.readVhalProperty(
+            self.vtypes.VehicleProperty.HVAC_POWER_ON, areaId=zone)
+
         asserts.assertEqual(1, len(propValue["value"]["int32Values"]))
         asserts.assertTrue(
             propValue["value"]["int32Values"][0] in [0, 1],
@@ -340,34 +369,60 @@
 
         # Turn power on.
         self.setAndVerifyIntProperty(
-            self.vtypes.VehicleProperty.HVAC_POWER_ON, 1)
+            self.vtypes.VehicleProperty.HVAC_POWER_ON, 1, areaId=zone)
 
         # Check that properties that require power to be on can be set.
         propVals = {}
         for prop in configProps:
-            v = self.readVhalProperty(prop)["value"]
-            self.setVhalProperty(prop, v)
+            v = self.readVhalProperty(prop, areaId=zone)["value"]
+            self.setVhalProperty(prop, v, areaId=zone)
             # Save the value for use later when trying to set the property when
             # HVAC is off.
             propVals[prop] = v
 
         # Turn power off.
         self.setAndVerifyIntProperty(
-            self.vtypes.VehicleProperty.HVAC_POWER_ON, 0)
+            self.vtypes.VehicleProperty.HVAC_POWER_ON, 0, areaId=zone)
 
         # Check that properties that require power to be on can't be set.
         for prop in configProps:
             self.setVhalProperty(
                 prop, propVals[prop],
+                areaId=zone,
                 expectedStatus=self.vtypes.StatusCode.NOT_AVAILABLE)
 
         # Turn power on.
         self.setAndVerifyIntProperty(
-            self.vtypes.VehicleProperty.HVAC_POWER_ON, 1)
+            self.vtypes.VehicleProperty.HVAC_POWER_ON, 1, areaId=zone)
 
         # Check that properties that require power to be on can be set.
         for prop in configProps:
-            self.setVhalProperty(prop, propVals[prop])
+            self.setVhalProperty(prop, propVals[prop], areaId=zone)
+
+    def testVehicleStaticProps(self):
+        """Verifies that static properties are configured correctly"""
+        staticProperties = set([
+            self.vtypes.VehicleProperty.INFO_VIN,
+            self.vtypes.VehicleProperty.INFO_MAKE,
+            self.vtypes.VehicleProperty.INFO_MODEL,
+            self.vtypes.VehicleProperty.INFO_MODEL_YEAR,
+            self.vtypes.VehicleProperty.INFO_FUEL_CAPACITY,
+            self.vtypes.VehicleProperty.HVAC_FAN_DIRECTION_AVAILABLE,
+            self.vtypes.VehicleProperty.AUDIO_HW_VARIANT,
+            self.vtypes.VehicleProperty.AP_POWER_BOOTUP_REASON,
+        ])
+        for c in self.configList:
+            prop = c['prop']
+            msg = "Prop 0x%x" % prop
+            if (c["prop"] in staticProperties):
+                asserts.assertEqual(self.vtypes.VehiclePropertyChangeMode.STATIC, c["changeMode"], msg)
+                asserts.assertEqual(self.vtypes.VehiclePropertyAccess.READ, c["access"], msg)
+                propValue = self.readVhalProperty(prop)
+                asserts.assertEqual(prop, propValue['prop'])
+                self.setVhalProperty(prop, propValue["value"],
+                    expectedStatus=self.vtypes.StatusCode.ACCESS_DENIED)
+            else:  # Non-static property
+                asserts.assertNotEqual(self.vtypes.VehiclePropertyChangeMode.STATIC, c["changeMode"], msg)
 
     def testPropertyRanges(self):
         """Retrieve the property ranges for all areas.
@@ -375,11 +430,9 @@
         This checks that the areas noted in the config all give valid area
         configs.  Once these are validated, the values for all these areas
         retrieved from the HIDL must be within the ranges defined."""
-        configs = self.vehicle.getAllPropConfigs()
-        logging.info("Property list response: %s", configs)
-        for c in configs:
+        for c in self.configList:
             # Continuous properties need to have a sampling frequency.
-            if c["changeMode"] & self.vtypes.CONTINUOUS != 0:
+            if c["changeMode"] & self.vtypes.VehiclePropertyChangeMode.CONTINUOUS != 0:
                 asserts.assertLess(0.0, c["minSampleRate"])
                 asserts.assertLess(0.0, c["maxSampleRate"])
                 asserts.assertFalse(c["minSampleRate"] > c["maxSampleRate"],
@@ -431,6 +484,116 @@
                                 (c["prop"], a["areaId"],
                                  valType, v, a[valBoundNames[1]]))
 
+    def getValueIfPropSupported(self, propertyId):
+        """Returns tuple of boolean (indicating value supported or not) and the value itself"""
+        if (propertyId in self.propToConfig):
+            propValue = self.readVhalProperty(propertyId)
+            asserts.assertNotEqual(None, propValue, "expected value, prop: 0x%x" % propertyId)
+            asserts.assertEqual(propertyId, propValue['prop'])
+            return True, self.extractValue(propValue)
+        else:
+            return False, None
+
+    def testInfoVinMakeModel(self):
+        """Verifies INFO_VIN, INFO_MAKE, INFO_MODEL properties"""
+        stringProperties = set([
+            self.vtypes.VehicleProperty.INFO_VIN,
+            self.vtypes.VehicleProperty.INFO_MAKE,
+            self.vtypes.VehicleProperty.INFO_MODEL])
+        for prop in stringProperties:
+            supported, val = self.getValueIfPropSupported(prop)
+            if supported:
+                asserts.assertEqual(str, type(val), "prop: 0x%x" % prop)
+                asserts.assertLess(0, (len(val)), "prop: 0x%x" % prop)
+
+    def testInfoModelYear(self):
+        """Verifies INFO_MODEL_YEAR property"""
+        supported, val = self.getValueIfPropSupported(self.vtypes.VehicleProperty.INFO_MODEL_YEAR)
+        if supported:
+            asserts.assertEqual(int, type(val))
+            asserts.assertLess(1901, val)
+
+    def testInfoFuelCapacity(self):
+        """Verifies INFO_FUEL_CAPACITY property"""
+        supported, val = self.getValueIfPropSupported(
+                self.vtypes.VehicleProperty.INFO_FUEL_CAPACITY)
+        if supported:
+            asserts.assertEqual(float, type(val))
+            asserts.assertLess(1000, val)    # Assumed that fuel tank is at least 1 liter
+            asserts.assertLess(val, 1000000) # and less than 1000 liters
+
+    def testPerfOdometer(self):
+        """Verifies PERF_ODOMETER property"""
+        supported, val = self.getValueIfPropSupported(self.vtypes.VehicleProperty.PERF_ODOMETER)
+        if supported:
+            asserts.assertEqual(float, type(val))
+            asserts.assertTrue(val >= 0, "Odomoter can not be negative")
+
+    def testVehicleSpeed(self):
+        """Verifies PERF_VEHICLE_SPEED property"""
+        supported, val = self.getValueIfPropSupported(
+                self.vtypes.VehicleProperty.PERF_VEHICLE_SPEED)
+        if supported:
+            asserts.assertEqual(float, type(val))
+            asserts.assertLess(val, 150, "speed is too high")  # Speed is too high 150 m/s = 330 mph
+            asserts.assertTrue(val >= 0, "Speed can not be negative")
+
+    def testEngineCoolantTemp(self):
+        """Verifies ENGINE_COOLANT_TEMP property"""
+        supported, val = self.getValueIfPropSupported(
+                self.vtypes.VehicleProperty.ENGINE_COOLANT_TEMP)
+        if supported:
+            asserts.assertEqual(float, type(val))
+            asserts.assertLess(val, 400, "coolant temp is too high") # temp in celcsius
+            asserts.assertLess(-70, val, "coolant temp is too low")
+
+    def testEngineOilTemp(self):
+        """Verifies ENGINE_OIL_TEMP property"""
+        supported, val = self.getValueIfPropSupported(
+                self.vtypes.VehicleProperty.ENGINE_OIL_TEMP)
+        if supported:
+            asserts.assertEqual(float, type(val))
+            asserts.assertLess(val, 400, "engine oil temp is too high") # temp in celcsius
+            asserts.assertLess(-70, val, "engine oil temp is too low")
+
+    def extractValue(self, propValue):
+        """Extracts value depending on data type of the property"""
+        if propValue == None:
+            return None
+
+        # Extract data type
+        dataType = propValue['prop'] & self.vtypes.VehiclePropertyType.MASK
+        val = propValue['value']
+        if self.vtypes.VehiclePropertyType.STRING == dataType:
+            asserts.assertNotEqual(None, val['stringValue'])
+            return val['stringValue']
+        elif self.vtypes.VehiclePropertyType.INT32 == dataType or \
+                self.vtypes.VehiclePropertyType.BOOLEAN == dataType:
+            asserts.assertEqual(1, len(val["int32Values"]))
+            return val["int32Values"][0]
+        elif self.vtypes.VehiclePropertyType.INT64 == dataType:
+            asserts.assertEqual(1, len(val["int64Values"]))
+            return val["int64Values"][0]
+        elif self.vtypes.VehiclePropertyType.FLOAT == dataType:
+            asserts.assertEqual(1, len(val["floatValues"]))
+            return val["floatValues"][0]
+        elif self.vtypes.VehiclePropertyType.INT32_VEC == dataType:
+            asserts.assertLess(0, len(val["int32Values"]))
+            return val["int32Values"]
+        elif self.vtypes.VehiclePropertyType.FLOAT_VEC == dataType:
+            asserts.assertLess(0, len(val["floatValues"]))
+            return val["floatValues"]
+        elif self.vtypes.VehiclePropertyType.BYTES == dataType:
+            asserts.assertLess(0, len(val["bytes"]))
+            return val["bytes"]
+        else:
+            return val
+
+
+    def testDebugDump(self):
+        """Verifies that call to IVehicle#debugDump is not failing"""
+        dumpStr = self.vehicle.debugDump()
+        asserts.assertNotEqual(None, dumpStr)
 
 if __name__ == "__main__":
     test_runner.main()
diff --git a/biometrics/fingerprint/V2_1/target/AndroidTest.xml b/biometrics/fingerprint/V2_1/target/AndroidTest.xml
index a3733d1..59c82c4 100644
--- a/biometrics/fingerprint/V2_1/target/AndroidTest.xml
+++ b/biometrics/fingerprint/V2_1/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalBiometricsFingerprintV2_1Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalBiometricsFingerprintV2_1TargetTest/VtsHalBiometricsFingerprintV2_1TargetTest,
-          _64bit::DATA/nativetest64/VtsHalBiometricsFingerprintV2_1TargetTest/VtsHalBiometricsFingerprintV2_1TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalBiometricsFingerprintV2_1TargetTest/VtsHalBiometricsFingerprintV2_1TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalBiometricsFingerprintV2_1TargetTest/VtsHalBiometricsFingerprintV2_1TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.biometrics.fingerprint@2.1"/>
         <option name="test-timeout" value="5m"/>
diff --git a/biometrics/fingerprint/V2_1/target_profiling/AndroidTest.xml b/biometrics/fingerprint/V2_1/target_profiling/AndroidTest.xml
index f0c41fd..f1e5b40 100644
--- a/biometrics/fingerprint/V2_1/target_profiling/AndroidTest.xml
+++ b/biometrics/fingerprint/V2_1/target_profiling/AndroidTest.xml
@@ -23,10 +23,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalBiometricsFingerprintV2_1TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalBiometricsFingerprintV2_1TargetTest/VtsHalBiometricsFingerprintV2_1TargetTest,
-          _64bit::DATA/nativetest64/VtsHalBiometricsFingerprintV2_1TargetTest/VtsHalBiometricsFingerprintV2_1TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalBiometricsFingerprintV2_1TargetTest/VtsHalBiometricsFingerprintV2_1TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalBiometricsFingerprintV2_1TargetTest/VtsHalBiometricsFingerprintV2_1TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.biometrics.fingerprint@2.1"/>
diff --git a/bluetooth/V1_0/target/AndroidTest.xml b/bluetooth/V1_0/target/AndroidTest.xml
index 51cfd96..7d8c613 100644
--- a/bluetooth/V1_0/target/AndroidTest.xml
+++ b/bluetooth/V1_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalBluetoothV1_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalBluetoothV1_0TargetTest/VtsHalBluetoothV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalBluetoothV1_0TargetTest/VtsHalBluetoothV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalBluetoothV1_0TargetTest/VtsHalBluetoothV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalBluetoothV1_0TargetTest/VtsHalBluetoothV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.bluetooth@1.0"/>
         <option name="test-timeout" value="1m"/>
diff --git a/bluetooth/V1_0/target_profiling/AndroidTest.xml b/bluetooth/V1_0/target_profiling/AndroidTest.xml
index eb46c6e..5333939 100644
--- a/bluetooth/V1_0/target_profiling/AndroidTest.xml
+++ b/bluetooth/V1_0/target_profiling/AndroidTest.xml
@@ -23,10 +23,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalBluetoothV1_0TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalBluetoothV1_0TargetTest/VtsHalBluetoothV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalBluetoothV1_0TargetTest/VtsHalBluetoothV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalBluetoothV1_0TargetTest/VtsHalBluetoothV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalBluetoothV1_0TargetTest/VtsHalBluetoothV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.bluetooth@1.0"/>
diff --git a/boot/V1_0/target/AndroidTest.xml b/boot/V1_0/target/AndroidTest.xml
index d790798..bf25f71 100644
--- a/boot/V1_0/target/AndroidTest.xml
+++ b/boot/V1_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalBootV1_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalBootV1_0TargetTest/VtsHalBootV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalBootV1_0TargetTest/VtsHalBootV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalBootV1_0TargetTest/VtsHalBootV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalBootV1_0TargetTest/VtsHalBootV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.boot@1.0"/>
         <option name="test-timeout" value="1m"/>
diff --git a/boot/V1_0/target_profiling/AndroidTest.xml b/boot/V1_0/target_profiling/AndroidTest.xml
index 61c97c4..e73befc 100644
--- a/boot/V1_0/target_profiling/AndroidTest.xml
+++ b/boot/V1_0/target_profiling/AndroidTest.xml
@@ -23,10 +23,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalBootV1_0TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalBootV1_0TargetTest/VtsHalBootV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalBootV1_0TargetTest/VtsHalBootV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalBootV1_0TargetTest/VtsHalBootV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalBootV1_0TargetTest/VtsHalBootV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.boot@1.0"/>
diff --git a/broadcastradio/V1_0/target/AndroidTest.xml b/broadcastradio/V1_0/target/AndroidTest.xml
index 013011d..53e1359 100644
--- a/broadcastradio/V1_0/target/AndroidTest.xml
+++ b/broadcastradio/V1_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalBroadcastradioV1_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalBroadcastradioV1_0TargetTest/VtsHalBroadcastradioV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalBroadcastradioV1_0TargetTest/VtsHalBroadcastradioV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalBroadcastradioV1_0TargetTest/VtsHalBroadcastradioV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalBroadcastradioV1_0TargetTest/VtsHalBroadcastradioV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.broadcastradio@1.0"/>
         <option name="test-timeout" value="5m"/>
diff --git a/camera/provider/V2_4/target/AndroidTest.xml b/camera/provider/V2_4/target/AndroidTest.xml
index c1cfc43..6f12834 100644
--- a/camera/provider/V2_4/target/AndroidTest.xml
+++ b/camera/provider/V2_4/target/AndroidTest.xml
@@ -20,9 +20,7 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalCameraProviderV2_4Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalCameraProviderV2_4TargetTest/VtsHalCameraProviderV2_4TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalCameraProviderV2_4TargetTest/VtsHalCameraProviderV2_4TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.camera.provider@2.4"/>
         <option name="skip-on-64bit-abi" value="true"/>
diff --git a/camera/provider/V2_4/target_profiling/AndroidTest.xml b/camera/provider/V2_4/target_profiling/AndroidTest.xml
index 1471b04..d571b02 100644
--- a/camera/provider/V2_4/target_profiling/AndroidTest.xml
+++ b/camera/provider/V2_4/target_profiling/AndroidTest.xml
@@ -33,9 +33,7 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalCameraProviderV2_4TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalCameraProviderV2_4TargetTest/VtsHalCameraProviderV2_4TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalCameraProviderV2_4TargetTest/VtsHalCameraProviderV2_4TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.camera.provider@2.4"/>
diff --git a/contexthub/V1_0/target/AndroidTest.xml b/contexthub/V1_0/target/AndroidTest.xml
index cef7c06..fa5d4d8 100644
--- a/contexthub/V1_0/target/AndroidTest.xml
+++ b/contexthub/V1_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalContexthubV1_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalContexthubV1_0TargetTest/VtsHalContexthubV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalContexthubV1_0TargetTest/VtsHalContexthubV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalContexthubV1_0TargetTest/VtsHalContexthubV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalContexthubV1_0TargetTest/VtsHalContexthubV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="binary-test-disable-framework" value="true" />
         <option name="precondition-lshal" value="android.hardware.contexthub@1.0"/>
diff --git a/gatekeeper/V1_0/target/AndroidTest.xml b/gatekeeper/V1_0/target/AndroidTest.xml
index 87572e2..6e9ab30 100644
--- a/gatekeeper/V1_0/target/AndroidTest.xml
+++ b/gatekeeper/V1_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalGatekeeperV1_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalGatekeeperV1_0TargetTest/VtsHalGatekeeperV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalGatekeeperV1_0TargetTest/VtsHalGatekeeperV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalGatekeeperV1_0TargetTest/VtsHalGatekeeperV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalGatekeeperV1_0TargetTest/VtsHalGatekeeperV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.gatekeeper@1.0"/>
         <option name="test-timeout" value="5m"/>
diff --git a/gatekeeper/V1_0/target_profiling/AndroidTest.xml b/gatekeeper/V1_0/target_profiling/AndroidTest.xml
index c395d30..50712e1 100644
--- a/gatekeeper/V1_0/target_profiling/AndroidTest.xml
+++ b/gatekeeper/V1_0/target_profiling/AndroidTest.xml
@@ -23,10 +23,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalGatekeeperV1_0TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalGatekeeperV1_0TargetTest/VtsHalGatekeeperV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalGatekeeperV1_0TargetTest/VtsHalGatekeeperV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalGatekeeperV1_0TargetTest/VtsHalGatekeeperV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalGatekeeperV1_0TargetTest/VtsHalGatekeeperV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.gatekeeper@1.0"/>
diff --git a/gnss/V1_0/target/AndroidTest.xml b/gnss/V1_0/target/AndroidTest.xml
index 88eb373..000eb8c 100644
--- a/gnss/V1_0/target/AndroidTest.xml
+++ b/gnss/V1_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalGnssV1_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalGnssV1_0TargetTest/VtsHalGnssV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalGnssV1_0TargetTest/VtsHalGnssV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalGnssV1_0TargetTest/VtsHalGnssV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalGnssV1_0TargetTest/VtsHalGnssV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.gnss@1.0"/>
         <option name="test-timeout" value="10m"/>
diff --git a/graphics/allocator/V2_0/target/AndroidTest.xml b/graphics/allocator/V2_0/target/AndroidTest.xml
index 48d8347..fe89166 100644
--- a/graphics/allocator/V2_0/target/AndroidTest.xml
+++ b/graphics/allocator/V2_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalGraphicsAllocatorV2_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalGraphicsAllocatorV2_0TargetTest/VtsHalGraphicsAllocatorV2_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalGraphicsAllocatorV2_0TargetTest/VtsHalGraphicsAllocatorV2_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalGraphicsAllocatorV2_0TargetTest/VtsHalGraphicsAllocatorV2_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalGraphicsAllocatorV2_0TargetTest/VtsHalGraphicsAllocatorV2_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.graphics.allocator@2.0"/>
         <option name="test-timeout" value="1m"/>
diff --git a/graphics/allocator/V2_0/target_profiling/AndroidTest.xml b/graphics/allocator/V2_0/target_profiling/AndroidTest.xml
index 9842b6f..c293ab9 100644
--- a/graphics/allocator/V2_0/target_profiling/AndroidTest.xml
+++ b/graphics/allocator/V2_0/target_profiling/AndroidTest.xml
@@ -25,10 +25,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalGraphicsAllocatorV2_0TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalGraphicsAllocatorV2_0TargetTest/VtsHalGraphicsAllocatorV2_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalGraphicsAllocatorV2_0TargetTest/VtsHalGraphicsAllocatorV2_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalGraphicsAllocatorV2_0TargetTest/VtsHalGraphicsAllocatorV2_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalGraphicsAllocatorV2_0TargetTest/VtsHalGraphicsAllocatorV2_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.graphics.allocator@2.0"/>
diff --git a/graphics/composer/V2_1/target/AndroidTest.xml b/graphics/composer/V2_1/target/AndroidTest.xml
index 164115e..4a5e502 100644
--- a/graphics/composer/V2_1/target/AndroidTest.xml
+++ b/graphics/composer/V2_1/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalGraphicsComposerV2_1Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalGraphicsComposerV2_1TargetTest/VtsHalGraphicsComposerV2_1TargetTest,
-          _64bit::DATA/nativetest64/VtsHalGraphicsComposerV2_1TargetTest/VtsHalGraphicsComposerV2_1TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalGraphicsComposerV2_1TargetTest/VtsHalGraphicsComposerV2_1TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalGraphicsComposerV2_1TargetTest/VtsHalGraphicsComposerV2_1TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="binary-test-disable-framework" value="true" />
         <option name="precondition-lshal" value="android.hardware.graphics.composer@2.1"/>
diff --git a/graphics/composer/V2_1/target_profiling/AndroidTest.xml b/graphics/composer/V2_1/target_profiling/AndroidTest.xml
index b967393..481c199 100644
--- a/graphics/composer/V2_1/target_profiling/AndroidTest.xml
+++ b/graphics/composer/V2_1/target_profiling/AndroidTest.xml
@@ -25,10 +25,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalGraphicsComposerV2_1TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalGraphicsComposerV2_1TargetTest/VtsHalGraphicsComposerV2_1TargetTest,
-          _64bit::DATA/nativetest64/VtsHalGraphicsComposerV2_1TargetTest/VtsHalGraphicsComposerV2_1TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalGraphicsComposerV2_1TargetTest/VtsHalGraphicsComposerV2_1TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalGraphicsComposerV2_1TargetTest/VtsHalGraphicsComposerV2_1TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="binary-test-disable-framework" value="true" />
diff --git a/graphics/mapper/V2_0/target/AndroidTest.xml b/graphics/mapper/V2_0/target/AndroidTest.xml
index e623eed..3a11cd1 100644
--- a/graphics/mapper/V2_0/target/AndroidTest.xml
+++ b/graphics/mapper/V2_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalGraphicsMapperV2_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalGraphicsMapperV2_0TargetTest/VtsHalGraphicsMapperV2_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalGraphicsMapperV2_0TargetTest/VtsHalGraphicsMapperV2_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalGraphicsMapperV2_0TargetTest/VtsHalGraphicsMapperV2_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalGraphicsMapperV2_0TargetTest/VtsHalGraphicsMapperV2_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.graphics.mapper@2.0"/>
         <option name="test-timeout" value="1m"/>
diff --git a/graphics/mapper/V2_0/target_profiling/AndroidTest.xml b/graphics/mapper/V2_0/target_profiling/AndroidTest.xml
index 8471b8d..7851cd8 100644
--- a/graphics/mapper/V2_0/target_profiling/AndroidTest.xml
+++ b/graphics/mapper/V2_0/target_profiling/AndroidTest.xml
@@ -27,10 +27,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalGraphicsMapperV2_0TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalGraphicsMapperV2_0TargetTest/VtsHalGraphicsMapperV2_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalGraphicsMapperV2_0TargetTest/VtsHalGraphicsMapperV2_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalGraphicsMapperV2_0TargetTest/VtsHalGraphicsMapperV2_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalGraphicsMapperV2_0TargetTest/VtsHalGraphicsMapperV2_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.graphics.mapper@2.0"/>
diff --git a/ir/V1_0/target/AndroidTest.xml b/ir/V1_0/target/AndroidTest.xml
index e0aba50..1689086 100644
--- a/ir/V1_0/target/AndroidTest.xml
+++ b/ir/V1_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalIrV1_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalIrV1_0TargetTest/VtsHalIrV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalIrV1_0TargetTest/VtsHalIrV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalIrV1_0TargetTest/VtsHalIrV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalIrV1_0TargetTest/VtsHalIrV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.ir@1.0"/>
         <option name="test-timeout" value="1m"/>
diff --git a/ir/V1_0/target_profiling/AndroidTest.xml b/ir/V1_0/target_profiling/AndroidTest.xml
index 239b68f..c9d8b1d 100644
--- a/ir/V1_0/target_profiling/AndroidTest.xml
+++ b/ir/V1_0/target_profiling/AndroidTest.xml
@@ -23,10 +23,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalIrV1_0TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalIrV1_0TargetTest/VtsHalIrV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalIrV1_0TargetTest/VtsHalIrV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalIrV1_0TargetTest/VtsHalIrV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalIrV1_0TargetTest/VtsHalIrV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.ir@1.0"/>
diff --git a/light/V2_0/target/AndroidTest.xml b/light/V2_0/target/AndroidTest.xml
index 87253a5..4dbf2f4 100644
--- a/light/V2_0/target/AndroidTest.xml
+++ b/light/V2_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalLightV2_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalLightV2_0TargetTest/VtsHalLightV2_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalLightV2_0TargetTest/VtsHalLightV2_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalLightV2_0TargetTest/VtsHalLightV2_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalLightV2_0TargetTest/VtsHalLightV2_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.light@2.0"/>
         <option name="test-timeout" value="1m"/>
diff --git a/light/V2_0/target_profiling/AndroidTest.xml b/light/V2_0/target_profiling/AndroidTest.xml
index 771645a..a77aa4d 100644
--- a/light/V2_0/target_profiling/AndroidTest.xml
+++ b/light/V2_0/target_profiling/AndroidTest.xml
@@ -23,10 +23,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalLightV2_0TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalLightV2_0TargetTest/VtsHalLightV2_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalLightV2_0TargetTest/VtsHalLightV2_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalLightV2_0TargetTest/VtsHalLightV2_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalLightV2_0TargetTest/VtsHalLightV2_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.light@2.0"/>
diff --git a/memtrack/V1_0/target/AndroidTest.xml b/memtrack/V1_0/target/AndroidTest.xml
index 3d15d87..c75a5c4 100644
--- a/memtrack/V1_0/target/AndroidTest.xml
+++ b/memtrack/V1_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalMemtrackV1_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalMemtrackV1_0TargetTest/VtsHalMemtrackV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalMemtrackV1_0TargetTest/VtsHalMemtrackV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalMemtrackV1_0TargetTest/VtsHalMemtrackV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalMemtrackV1_0TargetTest/VtsHalMemtrackV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.memtrack@1.0"/>
         <option name="test-timeout" value="5m"/>
diff --git a/memtrack/V1_0/target_profiling/AndroidTest.xml b/memtrack/V1_0/target_profiling/AndroidTest.xml
index 21140ad..ae9f4d7 100644
--- a/memtrack/V1_0/target_profiling/AndroidTest.xml
+++ b/memtrack/V1_0/target_profiling/AndroidTest.xml
@@ -23,10 +23,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalMemtrackV1_0TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalMemtrackV1_0TargetTest/VtsHalMemtrackV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalMemtrackV1_0TargetTest/VtsHalMemtrackV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalMemtrackV1_0TargetTest/VtsHalMemtrackV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalMemtrackV1_0TargetTest/VtsHalMemtrackV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.memtrack@1.0"/>
diff --git a/memtrack/V1_0/target_replay/Android.mk b/memtrack/V1_0/target_replay/Android.mk
new file mode 100644
index 0000000..af28dd5
--- /dev/null
+++ b/memtrack/V1_0/target_replay/Android.mk
@@ -0,0 +1,23 @@
+#
+# Copyright (C) 2017 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 := VtsHalMemtrackV1_0TargetReplay
+VTS_CONFIG_SRC_DIR := testcases/hal/memtrack/V1_0/target
+include test/vts/tools/build/Android.host_config.mk
diff --git a/memtrack/V1_0/target_replay/AndroidTest.xml b/memtrack/V1_0/target_replay/AndroidTest.xml
new file mode 100644
index 0000000..038f309
--- /dev/null
+++ b/memtrack/V1_0/target_replay/AndroidTest.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 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 VtsHalMemtrackV1_0TargetReplay test cases">
+    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
+        <option name="push-group" value="HalHidlHostTest.push"/>
+        <option name="cleanup" value="true" />
+        <option name="push" value="spec/hardware/interfaces/memtrack/1.0/vts/Memtrack.vts->/data/local/tmp/spec/target.vts" />
+        <option name="push" value="DATA/lib/android.hardware.memtrack.vts.driver@1.0.so->/data/local/tmp/32/android.hardware.memtrack.vts.driver@1.0.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.memtrack.vts.driver@1.0.so->/data/local/tmp/64/android.hardware.memtrack.vts.driver@1.0.so"/>
+    </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="VtsHalMemtrackV1_0TargetReplay"/>
+        <option name="binary-test-type" value="hal_hidl_replay_test" />
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/memtrack/V1_0/android.hardware.memtrack@1.0_sailfish_1.vts.trace" />
+        <option name="hal-hidl-package-name" value="android.hardware.memtrack@1.0" />
+        <option name="test-timeout" value="5m"/>
+    </test>
+</configuration>
diff --git a/nfc/V1_0/target/AndroidTest.xml b/nfc/V1_0/target/AndroidTest.xml
index 5e54145..ac832e5 100644
--- a/nfc/V1_0/target/AndroidTest.xml
+++ b/nfc/V1_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalNfcV1_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalNfcV1_0TargetTest/VtsHalNfcV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalNfcV1_0TargetTest/VtsHalNfcV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalNfcV1_0TargetTest/VtsHalNfcV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalNfcV1_0TargetTest/VtsHalNfcV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.nfc@1.0"/>
         <option name="test-timeout" value="10m"/>
diff --git a/nfc/V1_0/target_profiling/AndroidTest.xml b/nfc/V1_0/target_profiling/AndroidTest.xml
index c83e1c8..7a4c1dc 100644
--- a/nfc/V1_0/target_profiling/AndroidTest.xml
+++ b/nfc/V1_0/target_profiling/AndroidTest.xml
@@ -23,10 +23,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalNfcV1_0TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalNfcV1_0TargetTest/VtsHalNfcV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalNfcV1_0TargetTest/VtsHalNfcV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalNfcV1_0TargetTest/VtsHalNfcV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalNfcV1_0TargetTest/VtsHalNfcV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.nfc@1.0"/>
diff --git a/power/V1_0/target/AndroidTest.xml b/power/V1_0/target/AndroidTest.xml
index c9ba7e5..3b05249 100644
--- a/power/V1_0/target/AndroidTest.xml
+++ b/power/V1_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalPowerV1_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalPowerV1_0TargetTest/VtsHalPowerV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalPowerV1_0TargetTest/VtsHalPowerV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalPowerV1_0TargetTest/VtsHalPowerV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalPowerV1_0TargetTest/VtsHalPowerV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.power@1.0"/>
         <option name="test-timeout" value="2m"/>
diff --git a/power/V1_0/target_profiling/AndroidTest.xml b/power/V1_0/target_profiling/AndroidTest.xml
index 4ae14bb..6659642 100644
--- a/power/V1_0/target_profiling/AndroidTest.xml
+++ b/power/V1_0/target_profiling/AndroidTest.xml
@@ -23,10 +23,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalPowerV1_0TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalPowerV1_0TargetTest/VtsHalPowerV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalPowerV1_0TargetTest/VtsHalPowerV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalPowerV1_0TargetTest/VtsHalPowerV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalPowerV1_0TargetTest/VtsHalPowerV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.power@1.0"/>
diff --git a/power/V1_0/target_replay/Android.mk b/power/V1_0/target_replay/Android.mk
new file mode 100644
index 0000000..aed74e5
--- /dev/null
+++ b/power/V1_0/target_replay/Android.mk
@@ -0,0 +1,23 @@
+#
+# Copyright (C) 2017 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_0TargetReplay
+VTS_CONFIG_SRC_DIR := testcases/hal/power/V1_0/target
+include test/vts/tools/build/Android.host_config.mk
diff --git a/power/V1_0/target_replay/AndroidTest.xml b/power/V1_0/target_replay/AndroidTest.xml
new file mode 100644
index 0000000..0cc49d7
--- /dev/null
+++ b/power/V1_0/target_replay/AndroidTest.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 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_0TargetReplay test cases">
+    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
+        <option name="push-group" value="HalHidlHostTest.push"/>
+        <option name="cleanup" value="true" />
+        <option name="push" value="spec/hardware/interfaces/power/1.0/vts/Power.vts->/data/local/tmp/spec/target.vts" />
+        <option name="push" value="DATA/lib/android.hardware.power.vts.driver@1.0.so->/data/local/tmp/32/android.hardware.power.vts.driver@1.0.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.power.vts.driver@1.0.so->/data/local/tmp/64/android.hardware.power.vts.driver@1.0.so"/>
+    </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="VtsHalPowerV1_0TargetReplay"/>
+        <option name="binary-test-type" value="hal_hidl_replay_test" />
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/power/V1_0/android.hardware.power@1.0_sailfish_1.vts.trace" />
+        <option name="hal-hidl-package-name" value="android.hardware.power@1.0" />
+        <option name="test-timeout" value="2m"/>
+    </test>
+</configuration>
diff --git a/radio/V1_0/target/AndroidTest.xml b/radio/V1_0/target/AndroidTest.xml
index aab37fc..883a6d5 100644
--- a/radio/V1_0/target/AndroidTest.xml
+++ b/radio/V1_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalRadioV1_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalRadioV1_0TargetTest/VtsHalRadioV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalRadioV1_0TargetTest/VtsHalRadioV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalRadioV1_0TargetTest/VtsHalRadioV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalRadioV1_0TargetTest/VtsHalRadioV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.radio@1.0"/>
         <option name="test-timeout" value="10m"/>
diff --git a/radio/V1_0/target_profiling/AndroidTest.xml b/radio/V1_0/target_profiling/AndroidTest.xml
index 145eb7e..65ecb26 100644
--- a/radio/V1_0/target_profiling/AndroidTest.xml
+++ b/radio/V1_0/target_profiling/AndroidTest.xml
@@ -23,10 +23,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalRadioV1_0TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalRadioV1_0TargetTest/VtsHalRadioV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalRadioV1_0TargetTest/VtsHalRadioV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalRadioV1_0TargetTest/VtsHalRadioV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalRadioV1_0TargetTest/VtsHalRadioV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.radio@1.0"/>
diff --git a/script/configure/test_case_creator.py b/script/configure/test_case_creator.py
index 8ec3d91..374fb88 100755
--- a/script/configure/test_case_creator.py
+++ b/script/configure/test_case_creator.py
@@ -303,10 +303,16 @@
                        'value': self._test_name})
 
         if self._test_type == 'target':
-            test_binary = TEST_BINEARY_TEMPLATE.format(
+            test_binary = TEST_BINEARY_TEMPLATE_32.format(
                 test_name=self._test_module_name + 'Test')
             ET.SubElement(test, 'option', {
-                'name': 'binary-test-sources',
+                'name': 'binary-test-source',
+                'value': test_binary
+            })
+            test_binary = TEST_BINEARY_TEMPLATE_64.format(
+                test_name=self._test_module_name + 'Test')
+            ET.SubElement(test, 'option', {
+                'name': 'binary-test-source',
                 'value': test_binary
             })
             ET.SubElement(test, 'option', {
@@ -402,10 +408,9 @@
 XML_HEADER = """<?xml version="1.0" encoding="utf-8"?>
 """
 
-TEST_BINEARY_TEMPLATE = """
-          _32bit::DATA/nativetest/{test_name}/{test_name},
-          _64bit::DATA/nativetest64/{test_name}/{test_name},
-          """
+TEST_BINEARY_TEMPLATE_32 = '_32bit::DATA/nativetest/{test_name}/{test_name}'
+TEST_BINEARY_TEMPLATE_64 = '_64bit::DATA/nativetest64/{test_name}/{test_name}'
+
 TEST_SCRIPT_TEMPLATE = 'vts/testcases/hal/{hal_path}/{hal_version}/host/{test_name}'
 
 VTS_SPEC_PUSH_TEMPLATE = 'spec/hardware/interfaces/{hal_path}/{hal_version}/vts/{vts_file}->/data/local/tmp/spec/{vts_file}'
diff --git a/sensors/V1_0/target/AndroidTest.xml b/sensors/V1_0/target/AndroidTest.xml
index f808861..adb9473 100644
--- a/sensors/V1_0/target/AndroidTest.xml
+++ b/sensors/V1_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalSensorsV1_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalSensorsV1_0TargetTest/VtsHalSensorsV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalSensorsV1_0TargetTest/VtsHalSensorsV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalSensorsV1_0TargetTest/VtsHalSensorsV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalSensorsV1_0TargetTest/VtsHalSensorsV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.sensors@1.0"/>
         <option name="test-timeout" value="10m"/>
diff --git a/sensors/V1_0/target_profiling/AndroidTest.xml b/sensors/V1_0/target_profiling/AndroidTest.xml
index b71db33..99dca18 100644
--- a/sensors/V1_0/target_profiling/AndroidTest.xml
+++ b/sensors/V1_0/target_profiling/AndroidTest.xml
@@ -23,10 +23,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalSensorsV1_0TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalSensorsV1_0TargetTest/VtsHalSensorsV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalSensorsV1_0TargetTest/VtsHalSensorsV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalSensorsV1_0TargetTest/VtsHalSensorsV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalSensorsV1_0TargetTest/VtsHalSensorsV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.sensors@1.0"/>
diff --git a/soundtrigger/V2_0/target/AndroidTest.xml b/soundtrigger/V2_0/target/AndroidTest.xml
index e76942f..ca92e30 100644
--- a/soundtrigger/V2_0/target/AndroidTest.xml
+++ b/soundtrigger/V2_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalSoundtriggerV2_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalSoundtriggerV2_0TargetTest/VtsHalSoundtriggerV2_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalSoundtriggerV2_0TargetTest/VtsHalSoundtriggerV2_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalSoundtriggerV2_0TargetTest/VtsHalSoundtriggerV2_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalSoundtriggerV2_0TargetTest/VtsHalSoundtriggerV2_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.soundtrigger@2.0"/>
         <option name="precondition-file-path-prefix" value="/*/lib/hw/sound_trigger.primary." />
diff --git a/soundtrigger/V2_0/target_profiling/AndroidTest.xml b/soundtrigger/V2_0/target_profiling/AndroidTest.xml
index 2baa716..d48d1a7 100644
--- a/soundtrigger/V2_0/target_profiling/AndroidTest.xml
+++ b/soundtrigger/V2_0/target_profiling/AndroidTest.xml
@@ -25,10 +25,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalSoundtriggerV2_0TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalSoundtriggerV2_0TargetTest/VtsHalSoundtriggerV2_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalSoundtriggerV2_0TargetTest/VtsHalSoundtriggerV2_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalSoundtriggerV2_0TargetTest/VtsHalSoundtriggerV2_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalSoundtriggerV2_0TargetTest/VtsHalSoundtriggerV2_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.soundtrigger@2.0"/>
diff --git a/thermal/V1_0/target/AndroidTest.xml b/thermal/V1_0/target/AndroidTest.xml
index 44370d9..1f9cf5f 100644
--- a/thermal/V1_0/target/AndroidTest.xml
+++ b/thermal/V1_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalThermalV1_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalThermalV1_0TargetTest/VtsHalThermalV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalThermalV1_0TargetTest/VtsHalThermalV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalThermalV1_0TargetTest/VtsHalThermalV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalThermalV1_0TargetTest/VtsHalThermalV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.thermal@1.0"/>
         <option name="test-timeout" value="5m"/>
diff --git a/thermal/V1_0/target_profiling/AndroidTest.xml b/thermal/V1_0/target_profiling/AndroidTest.xml
index 5319bd2..602acc9 100644
--- a/thermal/V1_0/target_profiling/AndroidTest.xml
+++ b/thermal/V1_0/target_profiling/AndroidTest.xml
@@ -23,10 +23,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalThermalV1_0TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalThermalV1_0TargetTest/VtsHalThermalV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalThermalV1_0TargetTest/VtsHalThermalV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalThermalV1_0TargetTest/VtsHalThermalV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalThermalV1_0TargetTest/VtsHalThermalV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.thermal@1.0"/>
diff --git a/thermal/V1_0/target_stress/AndroidTest.xml b/thermal/V1_0/target_stress/AndroidTest.xml
index c36b7a2..991356b 100644
--- a/thermal/V1_0/target_stress/AndroidTest.xml
+++ b/thermal/V1_0/target_stress/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="ThermalHidlTargetStressTest" />
-        <option name="binary-test-sources" value="
-            _32bit::DATA/nativetest/thermal_hidl_stress_test/thermal_hidl_stress_test,
-            _64bit::DATA/nativetest64/thermal_hidl_stress_test/thermal_hidl_stress_test,
-            "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/thermal_hidl_stress_test/thermal_hidl_stress_test" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/thermal_hidl_stress_test/thermal_hidl_stress_test" />
         <option name="binary-test-type" value="gtest" />
         <option name="test-timeout" value="1m" />
     </test>
diff --git a/tv/input/V1_0/target/AndroidTest.xml b/tv/input/V1_0/target/AndroidTest.xml
index b3730c5..425274b 100644
--- a/tv/input/V1_0/target/AndroidTest.xml
+++ b/tv/input/V1_0/target/AndroidTest.xml
@@ -20,9 +20,7 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalTvInputV1_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalTvInputV1_0TargetTest/VtsHalTvInputV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalTvInputV1_0TargetTest/VtsHalTvInputV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.tv.input@1.0"/>
         <!-- Needs about 50 seconds if no device. Needs about 15 seconds for every additional device -->
diff --git a/tv/input/V1_0/target_profiling/AndroidTest.xml b/tv/input/V1_0/target_profiling/AndroidTest.xml
index 5f50266..39d9c7d 100644
--- a/tv/input/V1_0/target_profiling/AndroidTest.xml
+++ b/tv/input/V1_0/target_profiling/AndroidTest.xml
@@ -23,9 +23,7 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalTvInputV1_0TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalTvInputV1_0TargetTest/VtsHalTvInputV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalTvInputV1_0TargetTest/VtsHalTvInputV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.tv.input@1.0"/>
diff --git a/usb/V1_0/target/AndroidTest.xml b/usb/V1_0/target/AndroidTest.xml
index 5d9d8a3..5f67be6 100644
--- a/usb/V1_0/target/AndroidTest.xml
+++ b/usb/V1_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalUsbV1_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalUsbV1_0TargetTest/VtsHalUsbV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalUsbV1_0TargetTest/VtsHalUsbV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalUsbV1_0TargetTest/VtsHalUsbV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalUsbV1_0TargetTest/VtsHalUsbV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.usb@1.0"/>
         <option name="test-timeout" value="10m"/>
diff --git a/vibrator/V1_0/target/AndroidTest.xml b/vibrator/V1_0/target/AndroidTest.xml
index 639cd8a..8a9ecb0 100644
--- a/vibrator/V1_0/target/AndroidTest.xml
+++ b/vibrator/V1_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalVibratorV1_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalVibratorV1_0TargetTest/VtsHalVibratorV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalVibratorV1_0TargetTest/VtsHalVibratorV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalVibratorV1_0TargetTest/VtsHalVibratorV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalVibratorV1_0TargetTest/VtsHalVibratorV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.vibrator@1.0"/>
         <option name="test-timeout" value="1m"/>
diff --git a/vibrator/V1_0/target_profiling/AndroidTest.xml b/vibrator/V1_0/target_profiling/AndroidTest.xml
index 519b3e0..684980a 100644
--- a/vibrator/V1_0/target_profiling/AndroidTest.xml
+++ b/vibrator/V1_0/target_profiling/AndroidTest.xml
@@ -23,10 +23,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalVibratorV1_0TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalVibratorV1_0TargetTest/VtsHalVibratorV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalVibratorV1_0TargetTest/VtsHalVibratorV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalVibratorV1_0TargetTest/VtsHalVibratorV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalVibratorV1_0TargetTest/VtsHalVibratorV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.vibrator@1.0"/>
diff --git a/vibrator/V1_0/target_replay/Android.mk b/vibrator/V1_0/target_replay/Android.mk
new file mode 100644
index 0000000..449fd95
--- /dev/null
+++ b/vibrator/V1_0/target_replay/Android.mk
@@ -0,0 +1,23 @@
+#
+# Copyright (C) 2017 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 := VtsHalVibratorV1_0TargetReplay
+VTS_CONFIG_SRC_DIR := testcases/hal/vibrator/V1_0/target
+include test/vts/tools/build/Android.host_config.mk
diff --git a/vibrator/V1_0/target_replay/AndroidTest.xml b/vibrator/V1_0/target_replay/AndroidTest.xml
new file mode 100644
index 0000000..23f7c1c
--- /dev/null
+++ b/vibrator/V1_0/target_replay/AndroidTest.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 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 VtsHalVibratorV1_0TargetReplay test cases">
+    <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
+        <option name="push-group" value="HalHidlHostTest.push"/>
+        <option name="cleanup" value="true" />
+        <option name="push" value="spec/hardware/interfaces/vibrator/1.0/vts/Vibrator.vts->/data/local/tmp/spec/target.vts" />
+        <option name="push" value="DATA/lib/android.hardware.vibrator.vts.driver@1.0.so->/data/local/tmp/32/android.hardware.vibrator.vts.driver@1.0.so"/>
+        <option name="push" value="DATA/lib64/android.hardware.vibrator.vts.driver@1.0.so->/data/local/tmp/64/android.hardware.vibrator.vts.driver@1.0.so"/>
+    </target_preparer>
+    <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="VtsHalVibratorV1_0TargetReplay"/>
+        <option name="binary-test-type" value="hal_hidl_replay_test" />
+        <option name="hal-hidl-replay-test-trace-path" value="test/vts-testcase/hal-trace/vibrator/V1_0/android.hardware.vibrator@1.0_sailfish_1.vts.trace" />
+        <option name="hal-hidl-package-name" value="android.hardware.vibrator@1.0" />
+        <option name="test-timeout" value="2m"/>
+    </test>
+</configuration>
diff --git a/vr/V1_0/target/AndroidTest.xml b/vr/V1_0/target/AndroidTest.xml
index 8c55c5f..8a87ce4 100644
--- a/vr/V1_0/target/AndroidTest.xml
+++ b/vr/V1_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalVrV1_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalVrV1_0TargetTest/VtsHalVrV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalVrV1_0TargetTest/VtsHalVrV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalVrV1_0TargetTest/VtsHalVrV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalVrV1_0TargetTest/VtsHalVrV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <!-- Uncomment this and comment 'precondition-feature' to run this test
              only on devices using binderized VR HALs.
diff --git a/vr/V1_0/target_profiling/AndroidTest.xml b/vr/V1_0/target_profiling/AndroidTest.xml
index 7641334..7997e66 100644
--- a/vr/V1_0/target_profiling/AndroidTest.xml
+++ b/vr/V1_0/target_profiling/AndroidTest.xml
@@ -23,10 +23,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalVrV1_0TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalVrV1_0TargetTest/VtsHalVrV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalVrV1_0TargetTest/VtsHalVrV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalVrV1_0TargetTest/VtsHalVrV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalVrV1_0TargetTest/VtsHalVrV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.vr@1.0"/>
diff --git a/wifi/V1_0/target/AndroidTest.xml b/wifi/V1_0/target/AndroidTest.xml
index 899df08..c1a7cd8 100644
--- a/wifi/V1_0/target/AndroidTest.xml
+++ b/wifi/V1_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalWifiV1_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.wifi@1.0"/>
         <option name="test-timeout" value="10m"/>
diff --git a/wifi/V1_0/target_profiling/AndroidTest.xml b/wifi/V1_0/target_profiling/AndroidTest.xml
index 6a11c4b..c9364db 100644
--- a/wifi/V1_0/target_profiling/AndroidTest.xml
+++ b/wifi/V1_0/target_profiling/AndroidTest.xml
@@ -23,10 +23,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalWifiV1_0TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiV1_0TargetTest/VtsHalWifiV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.wifi@1.0"/>
diff --git a/wifi/supplicant/V1_0/target/AndroidTest.xml b/wifi/supplicant/V1_0/target/AndroidTest.xml
index bad17a0..aeed657 100644
--- a/wifi/supplicant/V1_0/target/AndroidTest.xml
+++ b/wifi/supplicant/V1_0/target/AndroidTest.xml
@@ -20,10 +20,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalWifiSupplicantV1_0Target"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalWifiSupplicantV1_0TargetTest/VtsHalWifiSupplicantV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalWifiSupplicantV1_0TargetTest/VtsHalWifiSupplicantV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiSupplicantV1_0TargetTest/VtsHalWifiSupplicantV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiSupplicantV1_0TargetTest/VtsHalWifiSupplicantV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="precondition-lshal" value="android.hardware.wifi.supplicant@1.0"/>
         <option name="test-timeout" value="1m"/>
diff --git a/wifi/supplicant/V1_0/target_profiling/AndroidTest.xml b/wifi/supplicant/V1_0/target_profiling/AndroidTest.xml
index c706caf..1fea05b 100644
--- a/wifi/supplicant/V1_0/target_profiling/AndroidTest.xml
+++ b/wifi/supplicant/V1_0/target_profiling/AndroidTest.xml
@@ -23,10 +23,8 @@
     <target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer"/>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalWifiSupplicantV1_0TargetProfiling"/>
-        <option name="binary-test-sources" value="
-          _32bit::DATA/nativetest/VtsHalWifiSupplicantV1_0TargetTest/VtsHalWifiSupplicantV1_0TargetTest,
-          _64bit::DATA/nativetest64/VtsHalWifiSupplicantV1_0TargetTest/VtsHalWifiSupplicantV1_0TargetTest,
-          "/>
+        <option name="binary-test-source" value="_32bit::DATA/nativetest/VtsHalWifiSupplicantV1_0TargetTest/VtsHalWifiSupplicantV1_0TargetTest" />
+        <option name="binary-test-source" value="_64bit::DATA/nativetest64/VtsHalWifiSupplicantV1_0TargetTest/VtsHalWifiSupplicantV1_0TargetTest" />
         <option name="binary-test-type" value="hal_hidl_gtest"/>
         <option name="enable-profiling" value="true"/>
         <option name="precondition-lshal" value="android.hardware.wifi.supplicant@1.0"/>