Finalize 2.3.0.0

Fix permission setting for other
Add new fix permissions to GUI actions
Update version number
diff --git a/fixPermissions.cpp b/fixPermissions.cpp
index d12dc1a..5587c0b 100644
--- a/fixPermissions.cpp
+++ b/fixPermissions.cpp
@@ -157,9 +157,9 @@
 				mask |= S_IXOTH;
 			}
 			if (mode[n] == '2')
-				mask |= S_IWGRP;
+				mask |= S_IWOTH;
 			if (mode[n] == '1')
-				mask |= S_IXGRP;
+				mask |= S_IXOTH;
 		}
 	} 
 
diff --git a/gui/action.cpp b/gui/action.cpp
index afa52d1..4d9c9df 100644
--- a/gui/action.cpp
+++ b/gui/action.cpp
@@ -790,20 +790,10 @@
 			if (simulate) {
 				simulate_progress_bar();
 			} else {
-				int op_status;
-				if (!PartitionManager.Mount_By_Path("/data", true) || !PartitionManager.Mount_By_Path("/system", true))
-					operation_end(1, simulate);
-
-				DataManager::SetValue("tw_terminal_command_thread", "./sbin/fix_permissions.sh");
-				DataManager::SetValue("tw_terminal_state", 1);
-				DataManager::SetValue("tw_background_thread_running", 1);
-				op_status = pthread_create(&terminal_command, NULL, command_thread, NULL);
-				if (op_status != 0) {
-					LOGE("Error starting terminal command thread, %i.\n", op_status);
-					DataManager::SetValue("tw_terminal_state", 0);
-					DataManager::SetValue("tw_background_thread_running", 0);
-					operation_end(1, simulate);
-				}
+				int op_status = PartitionManager.Fix_Permissions();
+				if (op_status != 0)
+					op_status = 1; // failure
+				operation_end(op_status, simulate);
 			}
 			return 0;
 		}
diff --git a/variables.h b/variables.h
index 860b357..92bec19 100644
--- a/variables.h
+++ b/variables.h
@@ -17,7 +17,7 @@
 #ifndef _VARIABLES_HEADER_
 #define _VARIABLES_HEADER_
 
-#define TW_VERSION_STR              "2.3.0.0RC1"
+#define TW_VERSION_STR              "2.3.0.0"
 
 #define TW_USE_COMPRESSION_VAR      "tw_use_compression"
 #define TW_IGNORE_IMAGE_SIZE        "tw_ignore_image_size"