Save version to cache
diff --git a/data.cpp b/data.cpp
index 75d689f..3c4e609 100644
--- a/data.cpp
+++ b/data.cpp
@@ -831,15 +831,21 @@
 }
 
 void DataManager::Output_Version(void) {
-	string Path, Command;
+	string Path;
 	char version[255];
 
-	Path = DataManager::GetSettingsStoragePath();
-	if (!PartitionManager.Mount_By_Path(Path, false)) {
+	if (!PartitionManager.Mount_By_Path("/cache", false)) {
 		LOGI("Unable to mount '%s' to write version number.\n", Path.c_str());
 		return;
 	}
-	Path += "/TWRP/.version";
+	if (!TWFunc::Path_Exists("/cache/recovery/.")) {
+		LOGI("Recreating /cache/recovery folder.\n");
+		if (mkdir("/cache/recovery", S_IRWXU | S_IRWXG | S_IWGRP | S_IXGRP) != 0) {
+			LOGE("DataManager::Output_Version -- Unable to make /cache/recovery\n");
+			return;
+		}
+	}
+	Path = "/cache/recovery/.version";
 	if (TWFunc::Path_Exists(Path)) {
 		unlink(Path.c_str());
 	}
diff --git a/partition.cpp b/partition.cpp
index b611e24..14d5e84 100644
--- a/partition.cpp
+++ b/partition.cpp
@@ -832,6 +832,9 @@
 		}
 #endif
 
+		if (Mount_Point == "/cache")
+			DataManager::Output_Version();
+
 		if (TWFunc::Path_Exists("/.layout_version") && Mount(false))
 			TWFunc::copy_file("/.layout_version", Layout_Filename, 0600);