diff --git a/base/cvd/cuttlefish/host/commands/run_cvd/launch/netsim_server.cpp b/base/cvd/cuttlefish/host/commands/run_cvd/launch/netsim_server.cpp index ca999c02315..8c322976b8e 100644 --- a/base/cvd/cuttlefish/host/commands/run_cvd/launch/netsim_server.cpp +++ b/base/cvd/cuttlefish/host/commands/run_cvd/launch/netsim_server.cpp @@ -138,9 +138,27 @@ class NetsimServer : public CommandSource { config_.netsim_connector_instance_num() + 1); } - // Add parameters from passthrough option --netsim-args. - for (auto const& arg : config_.netsim_args()) { - netsimd.AddParameter(arg); + // Add parameters from passthrough option --netsim-args as environment + // variables. + std::vector remaining_args; + for (const std::string& arg : config_.netsim_args()) { + if (android::base::StartsWith(arg, "NETSIM_NO_WEB_SERVER") || + android::base::StartsWith(arg, "NETSIM_GRPC_PORT")) { + const std::string::size_type equals_pos = arg.find('='); + if (equals_pos != std::string::npos) { + const std::string env_key = arg.substr(0, equals_pos); + const std::string env_val = arg.substr(equals_pos + 1); + netsimd.AddEnvironmentVariable(env_key, env_val); + } else { + netsimd.AddEnvironmentVariable(arg, "1"); + } + } else { + remaining_args.push_back(arg); + } + } + if (!remaining_args.empty()) { + netsimd.AddEnvironmentVariable("NETSIM_ARGS", + android::base::Join(remaining_args, " ")); } // Add command for forwarding the HCI port to a vsock server.