| Index: omaha_request_params.cc
|
| diff --git a/omaha_request_params.cc b/omaha_request_params.cc
|
| index eaff3d36a6659dfbf6f9f3adbf8d48c3c2ed182b..f7106af57f26652c8de6db3d8ace292c03816942 100644
|
| --- a/omaha_request_params.cc
|
| +++ b/omaha_request_params.cc
|
| @@ -39,26 +39,32 @@ static const char kHWIDPath[] = "/sys/devices/platform/chromeos_acpi/HWID";
|
|
|
| OmahaRequestDeviceParams::OmahaRequestDeviceParams() :
|
| force_build_type_(false),
|
| - forced_official_build_(false) {}
|
| + forced_official_build_(false),
|
| + force_boot_mode_(false),
|
| + forced_normal_boot_(false) {}
|
|
|
| bool OmahaRequestDeviceParams::Init(const std::string& in_app_version,
|
| const std::string& in_update_url) {
|
| + // Stateful /etc/lsb-release is not read on official builds in normal boot
|
| + // mode (except for setting the release track).
|
| + bool stateful_override = !IsOfficialBuild() || !IsNormalBootMode();
|
| os_platform = OmahaRequestParams::kOsPlatform;
|
| os_version = OmahaRequestParams::kOsVersion;
|
| app_version = in_app_version.empty() ?
|
| - GetLsbValue("CHROMEOS_RELEASE_VERSION", "", NULL, true) : in_app_version;
|
| + GetLsbValue("CHROMEOS_RELEASE_VERSION", "", NULL, stateful_override) :
|
| + in_app_version;
|
| os_sp = app_version + "_" + GetMachineType();
|
| - os_board = GetLsbValue("CHROMEOS_RELEASE_BOARD", "", NULL, true);
|
| + os_board = GetLsbValue("CHROMEOS_RELEASE_BOARD", "", NULL, stateful_override);
|
| app_id = GetLsbValue("CHROMEOS_RELEASE_APPID",
|
| OmahaRequestParams::kAppId,
|
| NULL,
|
| - true);
|
| + stateful_override);
|
| app_lang = "en-US";
|
| app_track = GetLsbValue(
|
| kUpdateTrackKey,
|
| "",
|
| &chromeos_update_engine::OmahaRequestDeviceParams::IsValidTrack,
|
| - true);
|
| + true); // stateful_override
|
| hardware_class = GetHardwareClass();
|
| struct stat stbuf;
|
|
|
| @@ -82,14 +88,14 @@ bool OmahaRequestDeviceParams::Init(const std::string& in_app_version,
|
| kUpdateTrackKey,
|
| "",
|
| &chromeos_update_engine::OmahaRequestDeviceParams::IsValidTrack,
|
| - false);
|
| + false); // stateful_override
|
| delta_okay = delta_okay && rootfs_track == app_track;
|
|
|
| update_url = in_update_url.empty() ?
|
| GetLsbValue("CHROMEOS_AUSERVER",
|
| OmahaRequestParams::kUpdateUrl,
|
| NULL,
|
| - true) :
|
| + stateful_override) :
|
| in_update_url;
|
| return true;
|
| }
|
| @@ -177,6 +183,10 @@ bool OmahaRequestDeviceParams::IsOfficialBuild() const {
|
| return force_build_type_ ? forced_official_build_ : utils::IsOfficialBuild();
|
| }
|
|
|
| +bool OmahaRequestDeviceParams::IsNormalBootMode() const {
|
| + return force_boot_mode_ ? forced_normal_boot_ : utils::IsNormalBootMode();
|
| +}
|
| +
|
| bool OmahaRequestDeviceParams::IsValidTrack(const std::string& track) const {
|
| static const char* kValidTracks[] = {
|
| "canary-channel",
|
| @@ -199,4 +209,9 @@ void OmahaRequestDeviceParams::SetBuildTypeOfficial(bool is_official) {
|
| forced_official_build_ = is_official;
|
| }
|
|
|
| +void OmahaRequestDeviceParams::SetBootModeNormal(bool is_normal) {
|
| + force_boot_mode_ = true;
|
| + forced_normal_boot_ = is_normal;
|
| +}
|
| +
|
| } // namespace chromeos_update_engine
|
|
|