update_engine: Add hardware support for firmware_max_rollforward - Adds the methods to get and set firmware_max_rollforward - This is for supporting the rollback feature - A future CL will set these values based on policy BUG=chromium:840432 TEST=unittests Change-Id: I560f4cef9595d4a52d011fcfeb7b2675a096aefa Reviewed-on: https://chromium-review.googlesource.com/1062766 Commit-Ready: Zentaro Kavanagh <[email protected]> Tested-by: Zentaro Kavanagh <[email protected]> Reviewed-by: Amin Hassani <[email protected]>
diff --git a/common/fake_hardware.h b/common/fake_hardware.h index d68b0f8..55dcc2c 100644 --- a/common/fake_hardware.h +++ b/common/fake_hardware.h
@@ -44,7 +44,13 @@ // default for consumer devices and effectively means "unlimited rollforward // is allowed", which is the same as the behavior prior to implementing // roll forward prevention. - static const int kMaxKernelRollforward = 0xfffffffe; + static const int kKernelMaxRollforward = 0xfffffffe; + + // Default value for crossystem firmware_max_rollforward. This value is the + // default for consumer devices and effectively means "unlimited rollforward + // is allowed", which is the same as the behavior prior to implementing + // roll forward prevention. + static const int kFirmwareMaxRollforward = 0xfffffffe; FakeHardware() = default; @@ -79,6 +85,18 @@ return min_firmware_key_version_; } + int GetMaxFirmwareKeyRollforward() const override { + return firmware_max_rollforward_; + } + + bool SetMaxFirmwareKeyRollforward(int firmware_max_rollforward) override { + if (GetMaxFirmwareKeyRollforward() == -1) + return false; + + firmware_max_rollforward_ = firmware_max_rollforward; + return true; + } + bool SetMaxKernelKeyRollforward(int kernel_max_rollforward) override { kernel_max_rollforward_ = kernel_max_rollforward; return true; @@ -183,7 +201,8 @@ std::string ec_version_{"Fake EC v1.0a"}; int min_kernel_key_version_{kMinKernelKeyVersion}; int min_firmware_key_version_{kMinFirmwareKeyVersion}; - int kernel_max_rollforward_{kMaxKernelRollforward}; + int kernel_max_rollforward_{kKernelMaxRollforward}; + int firmware_max_rollforward_{kFirmwareMaxRollforward}; int powerwash_count_{kPowerwashCountNotSet}; bool powerwash_scheduled_{false}; bool first_active_omaha_ping_sent_{false};