agent and runner extension for shell driver

Change-Id: I10ab6bbb45e9f74f52451e0b0f75cb29837b5754
diff --git a/utils/python/controllers/android_device.py b/utils/python/controllers/android_device.py
index 42fc55b..0a37c72 100644
--- a/utils/python/controllers/android_device.py
+++ b/utils/python/controllers/android_device.py
@@ -498,9 +498,13 @@
         if self.vts_agent_process:
             raise AndroidDeviceError("HAL agent is already running on %s." %
                                      self.serial)
+
+        cleanup_commands = [
+            "rm -f /data/local/tmp/vts_driver_* /data/local/tmp/vts_agent_callback*"]
         kill_commands = ["killall vts_hal_agent", "killall fuzzer32",
                          "killall fuzzer64"]
-        for cmd in kill_commands:
+        cleanup_commands.extend(kill_commands)
+        for cmd in cleanup_commands:
             try:
                 self.adb.shell(cmd)
             except adb.AdbError:
@@ -509,7 +513,8 @@
         vts_agent_log_path = os.path.join(self.log_path, "vts_agent.log")
         cmd = (
             'adb -s {s} shell LD_LIBRARY_PATH={path}/64 {path}/64/vts_hal_agent'
-            ' {path}/32/fuzzer32 {path}/64/fuzzer64 {path}/spec >> {log}'
+            ' {path}/32/fuzzer32 {path}/64/fuzzer64 {path}/spec'
+            ' {path}/32/vts_shell_driver32 {path}/64/vts_shell_driver64 >> {log}'
         ).format(s=self.serial,
                  path=DEFAULT_AGENT_BASE_DIR,
                  log=vts_agent_log_path)
diff --git a/utils/python/mirror/hal_mirror.py b/utils/python/mirror/hal_mirror.py
index 72e357b..98014ac 100644
--- a/utils/python/mirror/hal_mirror.py
+++ b/utils/python/mirror/hal_mirror.py
@@ -20,6 +20,7 @@
 from google.protobuf import text_format
 
 from vts.runners.host import errors
+from vts.proto import AndroidSystemControlMessage_pb2 as ASysCtrlMsg
 from vts.proto import InterfaceSpecificationMessage_pb2 as IfaceSpecMsg
 from vts.runners.host.tcp_client import vts_tcp_client
 from vts.runners.host.tcp_server import vts_tcp_server
@@ -167,7 +168,7 @@
                        callback_port=self._host_callback_port)
         if not handler_name:
             handler_name = target_type
-        service_name = "vts_binder_%s" % handler_name
+        service_name = "vts_driver_%s" % handler_name
 
         # Get all the HALs available on the target.
         hal_list = client.ListHals(target_basepaths)
@@ -195,12 +196,15 @@
         logging.info("Init the driver service for %s", target_type)
         target_class_id = COMPONENT_CLASS_DICT[target_class.lower()]
         target_type_id = COMPONENT_TYPE_DICT[target_type.lower()]
-        launched = client.LaunchDriverService(service_name=service_name,
-                                              file_path=target_filename,
-                                              bits=bits,
-                                              target_class=target_class_id,
-                                              target_type=target_type_id,
-                                              target_version=target_version)
+        launched = client.LaunchDriverService(
+            driver_type=ASysCtrlMsg.VTS_DRIVER_TYPE_HAL_CONVENTIONAL,
+            service_name=service_name,
+            file_path=target_filename,
+            bits=bits,
+            target_class=target_class_id,
+            target_type=target_type_id,
+            target_version=target_version)
+
         if not launched:
             raise errors.ComponentLoadingError(
                 "Failed to launch driver service %s from file path %s" %