Disable stock recovery replacing TWRP during ORS

-Create a separate function to disable stock recovery flashing
-Add a call to that function to the reboot section of the ORS
 action so that an OTA update will not inadvertantly replace TWRP

Change-Id: I43eae81e0e76971b6e8d34c38785dc73772242d2
diff --git a/gui/action.cpp b/gui/action.cpp
index 2aa03a6..aa81dff 100644
--- a/gui/action.cpp
+++ b/gui/action.cpp
@@ -1555,6 +1555,8 @@
 			}
 		}
 		if (reboot) {
+			// Disable stock recovery reflashing
+			TWFunc::Disable_Stock_Recovery_Replace();
 			usleep(2000000); // Sleep for 2 seconds before rebooting
 			TWFunc::tw_reboot(rb_system);
 		} else {
diff --git a/twrp-functions.cpp b/twrp-functions.cpp
index f5bf1b0..55f795c 100644
--- a/twrp-functions.cpp
+++ b/twrp-functions.cpp
@@ -864,7 +864,7 @@
 
 	}
 
-	LOGINFO("TWFunc::Fixup_Time: will attempt to use the ats files now.\n", sepoch.c_str());
+	LOGINFO("TWFunc::Fixup_Time: will attempt to use the ats files now.\n");
 
 	// Devices with Qualcomm Snapdragon 800 do some shenanigans with RTC.
 	// They never set it, it just ticks forward from 1970-01-01 00:00,
@@ -1038,4 +1038,16 @@
 	return os.str();
 }
 
+void TWFunc::Disable_Stock_Recovery_Replace(void) {
+	if (PartitionManager.Mount_By_Path("/system", false)) {
+		// Disable flashing of stock recovery
+		if (TWFunc::Path_Exists("/system/recovery-from-boot.p")) {
+			rename("/system/recovery-from-boot.p", "/system/recovery-from-boot.bak");
+			gui_print("Renamed stock recovery file in /system to prevent\nthe stock ROM from replacing TWRP.\n");
+			sync();
+		}
+		PartitionManager.UnMount_By_Path("/system", false);
+	}
+}
+
 #endif // ndef BUILD_TWRPTAR_MAIN
diff --git a/twrp-functions.hpp b/twrp-functions.hpp
index c10a184..d49cd84 100644
--- a/twrp-functions.hpp
+++ b/twrp-functions.hpp
@@ -83,8 +83,8 @@
 	static int Set_Brightness(std::string brightness_value); // Well, you can read, it does what it says, passing return int from TWFunc::Write_File ;)
 	static bool Toggle_MTP(bool enable);                                        // Disables MTP if enable is false and re-enables MTP if enable is true and it was enabled the last time it was toggled off
 	static std::string to_string(unsigned long value); //convert ul to string
-
 	static void SetPerformanceMode(bool mode); // support recovery.perf.mode
+	static void Disable_Stock_Recovery_Replace(); // Disable stock ROMs from replacing TWRP with stock recovery
 
 private:
 	static void Copy_Log(string Source, string Destination);
diff --git a/twrp.cpp b/twrp.cpp
index 4a8b1fb..ef694bf 100644
--- a/twrp.cpp
+++ b/twrp.cpp
@@ -337,13 +337,10 @@
 	// Launch the main GUI
 	gui_start();
 
+	// Disable flashing of stock recovery
+	TWFunc::Disable_Stock_Recovery_Replace();
 	// Check for su to see if the device is rooted or not
 	if (PartitionManager.Mount_By_Path("/system", false)) {
-		// Disable flashing of stock recovery
-		if (TWFunc::Path_Exists("/system/recovery-from-boot.p")) {
-			rename("/system/recovery-from-boot.p", "/system/recovery-from-boot.bak");
-			gui_print("Renamed stock recovery file in /system to prevent\nthe stock ROM from replacing TWRP.\n");
-		}
 		if (TWFunc::Path_Exists("/supersu/su") && !TWFunc::Path_Exists("/system/bin/su") && !TWFunc::Path_Exists("/system/xbin/su") && !TWFunc::Path_Exists("/system/bin/.ext/.su")) {
 			// Device doesn't have su installed
 			DataManager::SetValue("tw_busy", 1);