update_engine: Pass is_enterprise_rollback in the StatusResult
Currently Chrome uses some sort of version comparison to define whether
an update is a rollback or not. But that is not very robust. The correct
way is the return this value in the StatusResult. We already have this
value as a placeholder in the update_engine.proto. So this is good to
go.
BUG=chromium:864672
TEST=FEATUERS=test emerge-reef update_engine
Change-Id: I8bd3af0d94abd656dc00a9e67550ea6c6913de91
Reviewed-on: https://chromium-review.googlesource.com/c/aosp/platform/system/update_engine/+/1775116
Tested-by: Amin Hassani <ahassani@chromium.org>
Commit-Queue: Amin Hassani <ahassani@chromium.org>
Reviewed-by: Jae Hoon Kim <kimjae@chromium.org>
diff --git a/client_library/client_dbus.cc b/client_library/client_dbus.cc
index d0f7f81..3c23de4 100644
--- a/client_library/client_dbus.cc
+++ b/client_library/client_dbus.cc
@@ -54,6 +54,7 @@
out_status->new_version = status.new_version();
out_status->new_size_bytes = status.new_size();
out_status->status = static_cast<UpdateStatus>(status.current_operation());
+ out_status->is_enterprise_rollback = status.is_enterprise_rollback();
out_status->is_install = status.is_install();
}
} // namespace
diff --git a/client_library/include/update_engine/update_status.h b/client_library/include/update_engine/update_status.h
index bc14e67..c877df6 100644
--- a/client_library/include/update_engine/update_status.h
+++ b/client_library/include/update_engine/update_status.h
@@ -83,6 +83,9 @@
uint64_t new_size_bytes;
// New product version.
std::string new_version;
+ // Wether the update is an enterprise rollback. The value is valid only if the
+ // current operation is passed CHECKING_FOR_UPDATE.
+ bool is_enterprise_rollback;
// Indication of install for DLC(s).
bool is_install;
};