Build update_engine_sideload.
Add a new "sideload" executable target that applies an update payload
directly using the UpdateAttempterAndroid.
This initial CL buils a dynamically linked program that's targeted to
run in the system image for now, but will later be transformed into a
static binary to run from the recovery environment.
Bug: 27178350
TEST=Applied a payload directly on a device using:
`update_engine_sideload --payload=file://foo/bar ...`
Change-Id: I289a724d013abdc390187d669dccd3edf2fd3434
diff --git a/real_system_state.h b/real_system_state.h
index d6a9a95..ec17117 100644
--- a/real_system_state.h
+++ b/real_system_state.h
@@ -20,6 +20,7 @@
#include "update_engine/system_state.h"
#include <memory>
+#include <set>
#include <metrics/metrics_library.h>
#include <policy/device_policy.h>
@@ -60,6 +61,10 @@
void AddObserver(ServiceObserverInterface* observer) override;
void RemoveObserver(ServiceObserverInterface* observer) override;
+ const std::set<ServiceObserverInterface*>& service_observers() override {
+ CHECK(update_attempter_.get());
+ return update_attempter_->service_observers();
+ }
// SystemState overrides.
inline void set_device_policy(