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