Also merge user provided append args.

Otherwise it will overwrite append set by us and then emulator can't work.

Bug: 33107622

Change-Id: Ic0a23258005230b4f02c4f19f6752fd429777f7a
Signed-off-by: Tao Wu <lepton@google.com>
diff --git a/android-qemu2-glue/main.cpp b/android-qemu2-glue/main.cpp
index 46ce705..96f8374 100755
--- a/android-qemu2-glue/main.cpp
+++ b/android-qemu2-glue/main.cpp
@@ -801,9 +801,6 @@
         return 1;
     }
 
-    args[n++] = "-append";
-    args[n++] = kernel_parameters;
-
     // Support for changing default lcd-density
     std::string lcd_density;
     if (hw->hw_lcd_density) {
@@ -890,9 +887,19 @@
     }
 
     /* append the options after -qemu */
+    std::string append_arg(kernel_parameters);
+    free(kernel_parameters);
     for (int i = 0; i < argc; ++i) {
-        args[n++] = argv[i];
+        if (!strcmp(argv[i], "-append")) {
+            if (++i < argc) {
+               android::base::StringAppendFormat(&append_arg, " %s", argv[i]);
+            }
+        } else {
+            args[n++] = argv[i];
+        }
     }
+    args[n++] = "-append";
+    args[n++] = ASTRDUP(append_arg.c_str());
 
     /* Generate a hardware-qemu.ini for this AVD. The real hardware
      * configuration is ususally stored in several files, e.g. the AVD's