diff --git a/common.h b/common.h
index 1182d77..a767b58 100644
--- a/common.h
+++ b/common.h
@@ -26,6 +26,7 @@
 int ui_wait_key();            // waits for a key/button press, returns the code
 int ui_key_pressed(int key);  // returns >0 if the code is currently pressed
 int ui_text_visible();        // returns >0 if text log is currently visible
+void ui_show_text(int visible);
 void ui_clear_key_queue();
 
 // Write a message to the on-screen log shown with Alt-L (also to stderr).
diff --git a/recovery.c b/recovery.c
index 04bf657..f8208ce 100644
--- a/recovery.c
+++ b/recovery.c
@@ -45,6 +45,7 @@
   { "wipe_data", no_argument, NULL, 'w' },
   { "wipe_cache", no_argument, NULL, 'c' },
   { "set_encrypted_filesystems", required_argument, NULL, 'e' },
+  { "show_text", no_argument, NULL, 't' },
   { NULL, 0, NULL, 0 },
 };
 
@@ -594,6 +595,7 @@
         case 'w': wipe_data = wipe_cache = 1; break;
         case 'c': wipe_cache = 1; break;
         case 'e': encrypted_fs_mode = optarg; toggle_secure_fs = 1; break;
+        case 't': ui_show_text(1); break;
         case '?':
             LOGE("Invalid command argument\n");
             continue;
diff --git a/ui.c b/ui.c
index 01a005f..e2b2a44 100644
--- a/ui.c
+++ b/ui.c
@@ -481,6 +481,14 @@
     return visible;
 }
 
+void ui_show_text(int visible)
+{
+    pthread_mutex_lock(&gUpdateMutex);
+    show_text = visible;
+    update_screen_locked();
+    pthread_mutex_unlock(&gUpdateMutex);
+}
+
 int ui_wait_key()
 {
     pthread_mutex_lock(&key_queue_mutex);
