update_engine: Break instantiating system policies into their own files

This removes the use of __ANDROID__ for instantiating system
policies (Chrome OS vs. Android) by defining an interface and
implementing the interface in each individual code base.

BUG=none
TEST=FEATURES=test emerge update_engine
Did not build the android side, but hopefully it is correct as the code
change is minimal and problems can get caught in reviews.

Change-Id: I3931a9bed9ee4a9edfba5d712b05d487af1af813
Reviewed-on: https://chromium-review.googlesource.com/c/aosp/platform/system/update_engine/+/1755263
Tested-by: Amin Hassani <ahassani@chromium.org>
Commit-Queue: Amin Hassani <ahassani@chromium.org>
Reviewed-by: Sen Jiang <senj@chromium.org>
diff --git a/update_manager/policy.h b/update_manager/policy.h
index 9e7df10..844a4d0 100644
--- a/update_manager/policy.h
+++ b/update_manager/policy.h
@@ -17,6 +17,7 @@
 #ifndef UPDATE_ENGINE_UPDATE_MANAGER_POLICY_H_
 #define UPDATE_ENGINE_UPDATE_MANAGER_POLICY_H_
 
+#include <memory>
 #include <string>
 #include <tuple>
 #include <vector>
@@ -310,6 +311,11 @@
   DISALLOW_COPY_AND_ASSIGN(Policy);
 };
 
+// Get system dependent (Chrome OS vs. Android) policy
+// implementation. Implementations can be found in chromeos_policy.cc and
+// android_things_policy.cc.
+std::unique_ptr<Policy> GetSystemPolicy();
+
 }  // namespace chromeos_update_manager
 
 #endif  // UPDATE_ENGINE_UPDATE_MANAGER_POLICY_H_