Implement powerwash on Android.
Powerwash, the name for the equivalent of a factory reset or /data wipe,
can be triggered in Android by writing the desired command to the
recovery command file and rebooting into recovery.
This patch moves the powerwash scheduling/canceling logic to the
HardwareInterface and implements it on Android.
Bug: 28700985
TEST=Called update_engine_client passing POWERWASH=1, BCB is stored up
to offset 832.
(cherry picked from commit fb905d9b8d49f8fe41297c7aba2dd0942f1be311)
Change-Id: I66f9473c10fbe8f56e9000ce3e605b2bee345db8
diff --git a/common/hardware_interface.h b/common/hardware_interface.h
index 17ce694..c2d4296 100644
--- a/common/hardware_interface.h
+++ b/common/hardware_interface.h
@@ -65,6 +65,13 @@
// recovery don't have this value set.
virtual int GetPowerwashCount() const = 0;
+ // Signals that a powerwash (stateful partition wipe) should be performed
+ // after reboot.
+ virtual bool SchedulePowerwash() = 0;
+
+ // Cancel the powerwash operation scheduled to be performed on next boot.
+ virtual bool CancelPowerwash() = 0;
+
// Store in |path| the path to a non-volatile directory (persisted across
// reboots) available for this daemon. In case of an error, such as no
// directory available, returns false.