Vectorized bool flag "use_random_serial".
Change-Id: Ie3ddc016884f247a2c754f8101ad845738efaac4
diff --git a/host/commands/assemble_cvd/flags.cc b/host/commands/assemble_cvd/flags.cc
index d9d17f8..5b7fe21 100644
--- a/host/commands/assemble_cvd/flags.cc
+++ b/host/commands/assemble_cvd/flags.cc
@@ -101,7 +101,7 @@
"Total amount of memory available for guest, MB.");
DEFINE_string(serial_number, CF_DEFAULTS_SERIAL_NUMBER,
"Serial number to use for the device");
-DEFINE_bool(use_random_serial, CF_DEFAULTS_USE_RANDOM_SERIAL,
+DEFINE_string(use_random_serial, CF_DEFAULTS_USE_RANDOM_SERIAL?"true":"false",
"Whether to use random serial for the device.");
DEFINE_string(vm_manager, CF_DEFAULTS_VM_MANAGER,
"What virtual machine manager to use, one of {qemu_cli, crosvm}");
@@ -842,6 +842,8 @@
android::base::Split(FLAGS_userdata_format, ",");
std::vector<std::string> guest_enforce_security_vec =
android::base::Split(FLAGS_guest_enforce_security, ",");
+ std::vector<std::string> use_random_serial_vec =
+ android::base::Split(FLAGS_use_random_serial, ",");
// new instance specific flags (moved from common flags)
std::vector<std::string> gem5_binary_dirs =
@@ -884,11 +886,19 @@
iface_config = DefaultNetworkInterfaces(num);
}
+ bool use_random_serial;
+ if (instance_index >= use_random_serial_vec.size()) {
+ use_random_serial = CF_EXPECT(ParseBool(use_random_serial_vec[0],
+ "use_random_serial"));
+ } else {
+ use_random_serial = CF_EXPECT(ParseBool(
+ use_random_serial_vec[instance_index], "use_random_serial"));
+ }
auto instance = tmp_config_obj.ForInstance(num);
auto const_instance =
const_cast<const CuttlefishConfig&>(tmp_config_obj).ForInstance(num);
instance.set_use_allocd(FLAGS_use_allocd);
- if (FLAGS_use_random_serial) {
+ if (use_random_serial) {
instance.set_serial_number(
RandomSerialNumber("CFCVD" + std::to_string(num)));
} else {
diff --git a/host/commands/start/main.cc b/host/commands/start/main.cc
index 5879313..7031960 100644
--- a/host/commands/start/main.cc
+++ b/host/commands/start/main.cc
@@ -188,7 +188,8 @@
// Hash table for all bool flag names
// Used to find bool flag and convert "flag"/"noflag" to "--flag=value"
// This is the solution for vectorize bool flags in gFlags
-std::unordered_set<std::string> kBoolFlags = {"guest_enforce_security"};
+std::unordered_set<std::string> kBoolFlags = {"guest_enforce_security",
+ "use_random_serial"};
struct BooleanFlag {
bool is_bool_flag;