Disable read/write to ota.warm_reset in recovery mode
Bug: 155372775
Test: treehugger
Change-Id: Ifd34f185e5df98984794dc0cda584f00769eb084
diff --git a/common/platform_constants.h b/common/platform_constants.h
index 243af69..c060133 100644
--- a/common/platform_constants.h
+++ b/common/platform_constants.h
@@ -58,6 +58,12 @@
// postinstall.
extern const char kPostinstallMountOptions[];
+#ifdef __ANDROID_RECOVERY__
+constexpr bool kIsRecovery = true;
+#else
+constexpr bool kIsRecovery = false;
+#endif
+
} // namespace constants
} // namespace chromeos_update_engine
diff --git a/dynamic_partition_control_android.cc b/dynamic_partition_control_android.cc
index c9888ab..1fb2c25 100644
--- a/dynamic_partition_control_android.cc
+++ b/dynamic_partition_control_android.cc
@@ -86,12 +86,6 @@
// needs to be mapped, this timeout is longer than |kMapTimeout|.
constexpr std::chrono::milliseconds kMapSnapshotTimeout{5000};
-#ifdef __ANDROID_RECOVERY__
-constexpr bool kIsRecovery = true;
-#else
-constexpr bool kIsRecovery = false;
-#endif
-
DynamicPartitionControlAndroid::~DynamicPartitionControlAndroid() {
Cleanup();
}
@@ -1085,7 +1079,7 @@
}
bool DynamicPartitionControlAndroid::IsRecovery() {
- return kIsRecovery;
+ return constants::kIsRecovery;
}
static bool IsIncrementalUpdate(const DeltaArchiveManifest& manifest) {
diff --git a/hardware_android.cc b/hardware_android.cc
index a659bf6..5e24621 100644
--- a/hardware_android.cc
+++ b/hardware_android.cc
@@ -241,9 +241,11 @@
}
void HardwareAndroid::SetWarmReset(bool warm_reset) {
- constexpr char warm_reset_prop[] = "ota.warm_reset";
- if (!android::base::SetProperty(warm_reset_prop, warm_reset ? "1" : "0")) {
- LOG(WARNING) << "Failed to set prop " << warm_reset_prop;
+ if constexpr (!constants::kIsRecovery) {
+ constexpr char warm_reset_prop[] = "ota.warm_reset";
+ if (!android::base::SetProperty(warm_reset_prop, warm_reset ? "1" : "0")) {
+ LOG(WARNING) << "Failed to set prop " << warm_reset_prop;
+ }
}
}