Reenables usb on 0.7+ host images

Bug: 111311516
Change-Id: I649f331b94e6a77e2b32012f847e1945666f6acd
Merged-In: I649f331b94e6a77e2b32012f847e1945666f6acd
Test: local run with unstable tools, 0.7pre3 on gce with two pi-gce-dev
(cherry picked from commit f138357f2205eddc4b84b9571f3df2f5a8e00bd0)
diff --git a/host/commands/launch/main.cc b/host/commands/launch/main.cc
index 981e8e2..581bbe1 100644
--- a/host/commands/launch/main.cc
+++ b/host/commands/launch/main.cc
@@ -537,9 +537,11 @@
       config->PerInstancePath("ivshmem_socket_client"));
   config->set_ivshmem_vector_count(memory_layout.GetRegions().size());
 
-  config->set_usb_v1_socket_name(config->PerInstancePath("usb-v1"));
-  config->set_vhci_port(FLAGS_vhci_port);
-  config->set_usb_ip_socket_name(config->PerInstancePath("usb-ip"));
+  if (AdbUsbEnabled()) {
+    config->set_usb_v1_socket_name(config->PerInstancePath("usb-v1"));
+    config->set_vhci_port(FLAGS_vhci_port);
+    config->set_usb_ip_socket_name(config->PerInstancePath("usb-ip"));
+  }
 
   config->set_kernel_log_socket_name(config->PerInstancePath("kernel-log"));
   config->set_console_path(config->PerInstancePath("console"));
diff --git a/host/libs/vm_manager/cf_qemu.sh b/host/libs/vm_manager/cf_qemu.sh
old mode 100644
new mode 100755
index c93281c..69a8c5e
--- a/host/libs/vm_manager/cf_qemu.sh
+++ b/host/libs/vm_manager/cf_qemu.sh
@@ -87,6 +87,12 @@
   args+=(-initrd "${ramdisk_image_path}")
 fi
 
+if [[ -n "${usb_v1_socket_name}" ]]; then
+  args+=(
+      -chardev "socket,id=charchannel1,path=${usb_v1_socket_name:-${default_dir}/usb-v1}"
+      -device "virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,name=cf-gadget-usb-v1"
+  )
+fi
 printf %s "exec ${qemu_binary=/usr/bin/qemu-system-x86_64}"
 for i in "${args[@]}"; do
   case "$i" in
diff --git a/host/libs/vm_manager/qemu_manager.cpp b/host/libs/vm_manager/qemu_manager.cpp
index 2eb8098..5b0948d 100644
--- a/host/libs/vm_manager/qemu_manager.cpp
+++ b/host/libs/vm_manager/qemu_manager.cpp
@@ -82,6 +82,7 @@
                       config->ivshmem_qemu_socket_path());
   LogAndSetEnv("ivshmem_vector_count",
                       std::to_string(config->ivshmem_vector_count()));
+  LogAndSetEnv("usb_v1_socket_name", config->usb_v1_socket_name());
   return cvd::execute({vsoc::DefaultHostArtifactsPath("bin/cf_qemu.sh")});
 }