Add command line capabilities
Allows sending openrecoveryscript commands to TWRP via shell.
This may be handy for visually impaired users, for various one
click utilities to drive TWRP commands from a computer, for using
TWRP when a catastrophic hardware failure like a shattered screen
prevents you from being able to use touch, or even on devices like
a TV stick where touch and USB mouse input is unavailable.
This patch also includes a few minor changes to openrecoveryscript
including proper support for rebooting via the script and for
decrypting the device via the command line.
Change-Id: I796ad168efdd2da9c25334ac93d1079daaa7b0bc
diff --git a/gui/console.cpp b/gui/console.cpp
index b1f16c4..897c582 100644
--- a/gui/console.cpp
+++ b/gui/console.cpp
@@ -28,6 +28,7 @@
static std::vector<std::string> gConsole;
static std::vector<std::string> gConsoleColor;
+static FILE* ors_file;
extern "C" void __gui_print(const char *color, char *buf)
{
@@ -57,6 +58,10 @@
gConsole.push_back(start);
gConsoleColor.push_back(color);
}
+ if (ors_file) {
+ fprintf(ors_file, "%s\n", buf);
+ fflush(ors_file);
+ }
}
extern "C" void gui_print(const char *fmt, ...)
@@ -89,6 +94,11 @@
return;
}
+extern "C" void gui_set_FILE(FILE* f)
+{
+ ors_file = f;
+}
+
GUIConsole::GUIConsole(xml_node<>* node) : GUIObject(node)
{
xml_attribute<>* attr;