Use GUI for ORS instead of console only
diff --git a/gui/action.cpp b/gui/action.cpp
index 9c3ee59..19a8b69 100644
--- a/gui/action.cpp
+++ b/gui/action.cpp
@@ -1013,27 +1013,6 @@
 					int load_theme = 1;
 
 					DataManager::SetValue(TW_IS_ENCRYPTED, 0);
-					DataManager::ReadSettingsFile();
-					// Check for the SCRIPT_FILE_TMP first as these are AOSP recovery commands
-					// that we converted to ORS commands during boot in recovery.cpp.
-					// Run those first.
-					if (TWFunc::Path_Exists(SCRIPT_FILE_TMP)) {
-						ui_print("Processing AOSP recovery commands...\n");
-						if (OpenRecoveryScript::run_script_file() == 0) {
-							usleep(2000000); // Sleep for 2 seconds before rebooting
-							TWFunc::tw_reboot(rb_system);
-							load_theme = 0;
-						}
-					}
-					// Check for the ORS file in /cache and attempt to run those commands.
-					if (OpenRecoveryScript::check_for_script_file()) {
-						ui_print("Processing OpenRecoveryScript file...\n");
-						if (OpenRecoveryScript::run_script_file() == 0) {
-							usleep(2000000); // Sleep for 2 seconds before rebooting
-							TWFunc::tw_reboot(rb_system);
-							load_theme = 0;
-						}
-					}
 
 					if (load_theme) {
 						int has_datamedia;
@@ -1083,7 +1062,6 @@
 				string result, Sideload_File;
 
 				if (!PartitionManager.Mount_Current_Storage(true)) {
-					DataManager::SetValue("tw_page_done", "1"); // For OpenRecoveryScript support
 					operation_end(1, simulate);
 					return 0;
 				}
@@ -1114,7 +1092,6 @@
 					}
 				}
 			}
-			DataManager::SetValue("tw_page_done", "1"); // For OpenRecoveryScript support
 			operation_end(ret, simulate);
 			return 0;
 		}
@@ -1130,6 +1107,36 @@
 			DataManager::SetValue("tw_page_done", "1"); // For OpenRecoveryScript support
 			return 0;
 		}
+		if (function == "openrecoveryscript") {
+			operation_start("OpenRecoveryScript");
+			if (simulate) {
+				simulate_progress_bar();
+			} else {
+				// Check for the SCRIPT_FILE_TMP first as these are AOSP recovery commands
+				// that we converted to ORS commands during boot in recovery.cpp.
+				// Run those first.
+				int reboot = 0;
+				if (TWFunc::Path_Exists(SCRIPT_FILE_TMP)) {
+					ui_print("Processing AOSP recovery commands...\n");
+					if (OpenRecoveryScript::run_script_file() == 0) {
+						reboot = 1;
+					}
+				}
+				// Check for the ORS file in /cache and attempt to run those commands.
+				if (OpenRecoveryScript::check_for_script_file()) {
+					ui_print("Processing OpenRecoveryScript file...\n");
+					if (OpenRecoveryScript::run_script_file() == 0) {
+						reboot = 1;
+					}
+				}
+				if (reboot) {
+					usleep(2000000); // Sleep for 2 seconds before rebooting
+					TWFunc::tw_reboot(rb_system);
+				} else {
+					DataManager::SetValue("tw_page_done", 1);
+				}
+			}
+		}
     }
     else
     {
diff --git a/gui/devices/1024x600/res/ui.xml b/gui/devices/1024x600/res/ui.xml
index 4bed850..8a14faf 100755
--- a/gui/devices/1024x600/res/ui.xml
+++ b/gui/devices/1024x600/res/ui.xml
@@ -3451,26 +3451,13 @@
 				<text>Cancel</text>
 				<image resource="main_button" />
 				<actions>
+					<action function="set">tw_page_done=1</action>
 					<action function="page">main</action>
 				</actions>
 			</object>
 
 			<object type="template" name="keyboardtemplate" />
 
-			<object type="action">
-				<touch key="home" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
-			<object type="action">
-				<touch key="back" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
 			<object type="template" name="footer" />
 		</page>
 
@@ -3507,7 +3494,10 @@
 					<condition var1="tw_operation_state" var2="1" />
 					<condition var1="tw_operation_status" op="=" var2="0" />
 				</conditions>
-				<action function="page">main</action>
+				<actions>
+					<action function="set">tw_page_done=1</action>
+					<action function="page">main</action>
+				</actions>
 			</object>
 		</page>
 
diff --git a/gui/devices/1024x768/res/ui.xml b/gui/devices/1024x768/res/ui.xml
index 1cdd77a..21d429c 100644
--- a/gui/devices/1024x768/res/ui.xml
+++ b/gui/devices/1024x768/res/ui.xml
@@ -3451,26 +3451,13 @@
 				<text>Cancel</text>
 				<image resource="main_button" />
 				<actions>
+					<action function="set">tw_page_done=1</action>
 					<action function="page">main</action>
 				</actions>
 			</object>
 
 			<object type="template" name="keyboardtemplate" />
 
-			<object type="action">
-				<touch key="home" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
-			<object type="action">
-				<touch key="back" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
 			<object type="template" name="footer" />
 		</page>
 
@@ -3507,7 +3494,10 @@
 					<condition var1="tw_operation_state" var2="1" />
 					<condition var1="tw_operation_status" op="=" var2="0" />
 				</conditions>
-				<action function="page">main</action>
+				<actions>
+					<action function="set">tw_page_done=1</action>
+					<action function="page">main</action>
+				</actions>
 			</object>
 		</page>
 
diff --git a/gui/devices/1280x800/res/ui.xml b/gui/devices/1280x800/res/ui.xml
index 11fa7dc..9c84304 100644
--- a/gui/devices/1280x800/res/ui.xml
+++ b/gui/devices/1280x800/res/ui.xml
@@ -3451,26 +3451,13 @@
 				<text>Cancel</text>
 				<image resource="main_button" />
 				<actions>
+					<action function="set">tw_page_done=1</action>
 					<action function="page">main</action>
 				</actions>
 			</object>
 
 			<object type="template" name="keyboardtemplate" />
 
-			<object type="action">
-				<touch key="home" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
-			<object type="action">
-				<touch key="back" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
 			<object type="template" name="footer" />
 		</page>
 
@@ -3507,7 +3494,10 @@
 					<condition var1="tw_operation_state" var2="1" />
 					<condition var1="tw_operation_status" op="=" var2="0" />
 				</conditions>
-				<action function="page">main</action>
+				<actions>
+					<action function="set">tw_page_done=1</action>
+					<action function="page">main</action>
+				</actions>
 			</object>
 		</page>
 
diff --git a/gui/devices/1920x1200/res/ui.xml b/gui/devices/1920x1200/res/ui.xml
index c829e9b..40df4a8 100644
--- a/gui/devices/1920x1200/res/ui.xml
+++ b/gui/devices/1920x1200/res/ui.xml
@@ -3451,26 +3451,13 @@
 				<text>Cancel</text>
 				<image resource="main_button" />
 				<actions>
+					<action function="set">tw_page_done=1</action>
 					<action function="page">main</action>
 				</actions>
 			</object>
 
 			<object type="template" name="keyboardtemplate" />
 
-			<object type="action">
-				<touch key="home" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
-			<object type="action">
-				<touch key="back" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
 			<object type="template" name="footer" />
 		</page>
 
@@ -3507,7 +3494,10 @@
 					<condition var1="tw_operation_state" var2="1" />
 					<condition var1="tw_operation_status" op="=" var2="0" />
 				</conditions>
-				<action function="page">main</action>
+				<actions>
+					<action function="set">tw_page_done=1</action>
+					<action function="page">main</action>
+				</actions>
 			</object>
 		</page>
 
diff --git a/gui/devices/2560x1600/res/ui.xml b/gui/devices/2560x1600/res/ui.xml
index ac00dee..d2f5a13 100644
--- a/gui/devices/2560x1600/res/ui.xml
+++ b/gui/devices/2560x1600/res/ui.xml
@@ -3451,26 +3451,13 @@
 				<text>Cancel</text>
 				<image resource="main_button" />
 				<actions>
+					<action function="set">tw_page_done=1</action>
 					<action function="page">main</action>
 				</actions>
 			</object>
 
 			<object type="template" name="keyboardtemplate" />
 
-			<object type="action">
-				<touch key="home" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
-			<object type="action">
-				<touch key="back" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
 			<object type="template" name="footer" />
 		</page>
 
@@ -3507,7 +3494,10 @@
 					<condition var1="tw_operation_state" var2="1" />
 					<condition var1="tw_operation_status" op="=" var2="0" />
 				</conditions>
-				<action function="page">main</action>
+				<actions>
+					<action function="set">tw_page_done=1</action>
+					<action function="page">main</action>
+				</actions>
 			</object>
 		</page>
 
@@ -3528,7 +3518,7 @@
 				<sort name="tw_gui_sort_order" />
 				<icon folder="folder_icon" file="file_icon" />
 				<background color="%fileselector_background%" />
-				<font resource="font" spacing="%fileselector_spacing%" color="%text_color%" />
+				<font resource="filelist" spacing="%fileselector_spacing%" color="%text_color%" />
 				<filter folders="1" files="0" />
 				<path name="tw_terminal_location" default="/" />
 				<data name="tw_terminal" />
diff --git a/gui/devices/320x480/res/ui.xml b/gui/devices/320x480/res/ui.xml
index 778d49f..2cc401b 100644
--- a/gui/devices/320x480/res/ui.xml
+++ b/gui/devices/320x480/res/ui.xml
@@ -3428,26 +3428,13 @@
 				<text>Cancel</text>
 				<image resource="main_button" />
 				<actions>
+					<action function="set">tw_page_done=1</action>
 					<action function="page">main</action>
 				</actions>
 			</object>
 
 			<object type="template" name="keyboardtemplate" />
 
-			<object type="action">
-				<touch key="home" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
-			<object type="action">
-				<touch key="back" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
 			<object type="template" name="footer" />
 		</page>
 
@@ -3484,7 +3471,10 @@
 					<condition var1="tw_operation_state" var2="1" />
 					<condition var1="tw_operation_status" op="=" var2="0" />
 				</conditions>
-				<action function="page">main</action>
+				<actions>
+					<action function="set">tw_page_done=1</action>
+					<action function="page">main</action>
+				</actions>
 			</object>
 		</page>
 
diff --git a/gui/devices/480x800/res/ui.xml b/gui/devices/480x800/res/ui.xml
index 0c2c03f..bb214c8 100644
--- a/gui/devices/480x800/res/ui.xml
+++ b/gui/devices/480x800/res/ui.xml
@@ -3427,26 +3427,13 @@
 				<text>Cancel</text>
 				<image resource="main_button" />
 				<actions>
+					<action function="set">tw_page_done=1</action>
 					<action function="page">main</action>
 				</actions>
 			</object>
 
 			<object type="template" name="keyboardtemplate" />
 
-			<object type="action">
-				<touch key="home" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
-			<object type="action">
-				<touch key="back" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
 			<object type="template" name="footer" />
 		</page>
 
@@ -3483,7 +3470,10 @@
 					<condition var1="tw_operation_state" var2="1" />
 					<condition var1="tw_operation_status" op="=" var2="0" />
 				</conditions>
-				<action function="page">main</action>
+				<actions>
+					<action function="set">tw_page_done=1</action>
+					<action function="page">main</action>
+				</actions>
 			</object>
 		</page>
 
diff --git a/gui/devices/480x854/res/ui.xml b/gui/devices/480x854/res/ui.xml
index b1cf00c..819d245 100644
--- a/gui/devices/480x854/res/ui.xml
+++ b/gui/devices/480x854/res/ui.xml
@@ -3426,26 +3426,13 @@
 				<text>Cancel</text>
 				<image resource="main_button" />
 				<actions>
+					<action function="set">tw_page_done=1</action>
 					<action function="page">main</action>
 				</actions>
 			</object>
 
 			<object type="template" name="keyboardtemplate" />
 
-			<object type="action">
-				<touch key="home" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
-			<object type="action">
-				<touch key="back" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
 			<object type="template" name="footer" />
 		</page>
 
@@ -3482,7 +3469,10 @@
 					<condition var1="tw_operation_state" var2="1" />
 					<condition var1="tw_operation_status" op="=" var2="0" />
 				</conditions>
-				<action function="page">main</action>
+				<actions>
+					<action function="set">tw_page_done=1</action>
+					<action function="page">main</action>
+				</actions>
 			</object>
 		</page>
 
diff --git a/gui/devices/540x960/res/ui.xml b/gui/devices/540x960/res/ui.xml
index 481beca..e4cf5c0 100644
--- a/gui/devices/540x960/res/ui.xml
+++ b/gui/devices/540x960/res/ui.xml
@@ -3427,26 +3427,13 @@
 				<text>Cancel</text>
 				<image resource="main_button" />
 				<actions>
+					<action function="set">tw_page_done=1</action>
 					<action function="page">main</action>
 				</actions>
 			</object>
 
 			<object type="template" name="keyboardtemplate" />
 
-			<object type="action">
-				<touch key="home" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
-			<object type="action">
-				<touch key="back" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
 			<object type="template" name="footer" />
 		</page>
 
@@ -3483,7 +3470,10 @@
 					<condition var1="tw_operation_state" var2="1" />
 					<condition var1="tw_operation_status" op="=" var2="0" />
 				</conditions>
-				<action function="page">main</action>
+				<actions>
+					<action function="set">tw_page_done=1</action>
+					<action function="page">main</action>
+				</actions>
 			</object>
 		</page>
 
diff --git a/gui/devices/720x1280/res/ui.xml b/gui/devices/720x1280/res/ui.xml
index eed6c58..e3eabf3 100644
--- a/gui/devices/720x1280/res/ui.xml
+++ b/gui/devices/720x1280/res/ui.xml
@@ -1556,9 +1556,7 @@
 			</object>
 
 			<object type="action">
-				<conditions>
-					<condition var1="tw_operation_state"  var2="1" />
-				</conditions>
+				<condition var1="tw_operation_state" var2="1" />
 				<actions>
 					<action function="set">tw_back=backup</action>
 					<action function="set">tw_complete_text1=Backup Complete</action>
@@ -3434,26 +3432,13 @@
 				<text>Cancel</text>
 				<image resource="main_button" />
 				<actions>
+					<action function="set">tw_page_done=1</action>
 					<action function="page">main</action>
 				</actions>
 			</object>
 
 			<object type="template" name="keyboardtemplate" />
 
-			<object type="action">
-				<touch key="home" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
-			<object type="action">
-				<touch key="back" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
 			<object type="template" name="footer" />
 		</page>
 
@@ -3490,7 +3475,10 @@
 					<condition var1="tw_operation_state" var2="1" />
 					<condition var1="tw_operation_status" op="=" var2="0" />
 				</conditions>
-				<action function="page">main</action>
+				<actions>
+					<action function="set">tw_page_done=1</action>
+					<action function="page">main</action>
+				</actions>
 			</object>
 		</page>
 
diff --git a/gui/devices/800x1280/res/ui.xml b/gui/devices/800x1280/res/ui.xml
index 88768f1..2b6e3ef 100755
--- a/gui/devices/800x1280/res/ui.xml
+++ b/gui/devices/800x1280/res/ui.xml
@@ -3428,26 +3428,13 @@
 				<text>Cancel</text>
 				<image resource="main_button" />
 				<actions>
+					<action function="set">tw_page_done=1</action>
 					<action function="page">main</action>
 				</actions>
 			</object>
 
 			<object type="template" name="keyboardtemplate" />
 
-			<object type="action">
-				<touch key="home" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
-			<object type="action">
-				<touch key="back" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
 			<object type="template" name="footer" />
 		</page>
 
@@ -3484,7 +3471,10 @@
 					<condition var1="tw_operation_state" var2="1" />
 					<condition var1="tw_operation_status" op="=" var2="0" />
 				</conditions>
-				<action function="page">main</action>
+				<actions>
+					<action function="set">tw_page_done=1</action>
+					<action function="page">main</action>
+				</actions>
 			</object>
 		</page>
 
diff --git a/gui/devices/800x480/res/ui.xml b/gui/devices/800x480/res/ui.xml
index 6096c57..b418111 100755
--- a/gui/devices/800x480/res/ui.xml
+++ b/gui/devices/800x480/res/ui.xml
@@ -3451,26 +3451,13 @@
 				<text>Cancel</text>
 				<image resource="main_button" />
 				<actions>
+					<action function="set">tw_page_done=1</action>
 					<action function="page">main</action>
 				</actions>
 			</object>
 
 			<object type="template" name="keyboardtemplate" />
 
-			<object type="action">
-				<touch key="home" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
-			<object type="action">
-				<touch key="back" />
-				<actions>
-					<action function="page">main</action>
-				</actions>
-			</object>
-
 			<object type="template" name="footer" />
 		</page>
 
@@ -3507,7 +3494,10 @@
 					<condition var1="tw_operation_state" var2="1" />
 					<condition var1="tw_operation_status" op="=" var2="0" />
 				</conditions>
-				<action function="page">main</action>
+				<actions>
+					<action function="set">tw_page_done=1</action>
+					<action function="page">main</action>
+				</actions>
 			</object>
 		</page>
 
diff --git a/gui/gui.cpp b/gui/gui.cpp
index c431d8f..92eab29 100644
--- a/gui/gui.cpp
+++ b/gui/gui.cpp
@@ -615,6 +615,7 @@
 		gGuiInputRunning = 1;
 	}
 
+	DataManager::SetValue("tw_page_done", 0);
     return runPage(page_name);
 }