From 3477d7163e781bc88836fe5c36160d8eb60ea4ac Mon Sep 17 00:00:00 2001 From: Dees_Troy Date: Thu, 27 Sep 2012 15:44:01 -0400 Subject: Save version number to storage --- gui/action.cpp | 1 + recovery.cpp | 6 +----- twrp-functions.cpp | 26 ++++++++++++++++++++++++++ twrp-functions.hpp | 7 ++++--- 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/gui/action.cpp b/gui/action.cpp index afa52d1f8..771c5e74e 100644 --- a/gui/action.cpp +++ b/gui/action.cpp @@ -981,6 +981,7 @@ int GUIAction::doAction(Action action, int isThreaded /* = 0 */) DataManager::SetValue(TW_IS_ENCRYPTED, 0); DataManager::ReadSettingsFile(); + TWFunc::Output_Version(); if (OpenRecoveryScript::check_for_script_file()) { ui_print("Processing OpenRecoveryScript file...\n"); if (OpenRecoveryScript::run_script_file() == 0) { diff --git a/recovery.cpp b/recovery.cpp index 3c4447274..41bd080ce 100644 --- a/recovery.cpp +++ b/recovery.cpp @@ -809,11 +809,6 @@ main(int argc, char **argv) { DataManager_LoadDefaults(); printf("Starting the UI..."); gui_init(); - //printf("=> Installing busybox into /sbin\n"); - //system("/sbin/bbinstall.sh"); // Let's install busybox - printf("Symlinking gzip to pigz\n"); - system("ln -sf /sbin/pigz /sbin/gzip"); - system("ln -sf /sbin/unpigz /sbin/gunzip"); printf("=> Linking mtab\n"); system("ln -s /proc/mounts /etc/mtab"); // And link mtab for mke2fs printf("=> Processing recovery.fstab\n"); @@ -931,6 +926,7 @@ main(int argc, char **argv) { finish_recovery(NULL); DataManager_ReadSettingsFile(); if (DataManager_GetIntValue(TW_IS_ENCRYPTED) == 0 && OpenRecoveryScript::check_for_script_file()) { + TWFunc::Output_Version(); gui_console_only(); OpenRecoveryScript::run_script_file(); if (1 || OpenRecoveryScript::run_script_file() != 0) { diff --git a/twrp-functions.cpp b/twrp-functions.cpp index 28d0ba58e..320001723 100644 --- a/twrp-functions.cpp +++ b/twrp-functions.cpp @@ -15,6 +15,7 @@ #include "common.h" #include "data.hpp" #include "bootloader.h" +#include "variables.h" /* Checks md5 for a path Return values: @@ -385,4 +386,29 @@ void TWFunc::check_and_run_script(const char* script_file, const char* display_n system(script_file); ui_print("\nFinished running %s script.\n", display_name); } +} + +void TWFunc::Output_Version(void) { + string Path, Command; + char version[255]; + + Path = DataManager::GetSettingsStoragePath(); + if (!PartitionManager.Mount_By_Path(Path, false)) { + LOGI("Unable to mount '%s' to write version number.\n"); + return; + } + Path += "/TWRP/.version"; + if (Path_Exists(Path)) { + Command = "rm -f " + Path; + system(Command.c_str()); + } + FILE *fp = fopen(Path.c_str(), "w"); + if (fp == NULL) { + LOGE("Unable to open '%s'.\n", Path.c_str()); + return; + } + strcpy(version, TW_VERSION_STR); + fwrite(version, sizeof(version[0]), strlen(version) / sizeof(version[0]), fp); + fclose(fp); + sync(); } \ No newline at end of file diff --git a/twrp-functions.hpp b/twrp-functions.hpp index 7bda28725..da17e3cd1 100644 --- a/twrp-functions.hpp +++ b/twrp-functions.hpp @@ -33,9 +33,10 @@ public: static void GUI_Operation_Text(string Read_Value, string Default_Text); // Updates text for display in the GUI, e.g. Backing up %partition name% static void GUI_Operation_Text(string Read_Value, string Partition_Name, string Default_Text); // Same as above but includes partition name static unsigned long Get_File_Size(string Path); // Returns the size of a file - static void twfinish_recovery(const char *send_intent); - static int tw_reboot(RebootCommand command); - static void check_and_run_script(const char* script_file, const char* display_name); + static void twfinish_recovery(const char *send_intent); // Writes the log to last_log + static int tw_reboot(RebootCommand command); // Prepares the device for rebooting + static void check_and_run_script(const char* script_file, const char* display_name); // checks for the existence of a script, chmods it to 755, then runs it + static void Output_Version(void); // Outputs the version to a file in the TWRP folder private: static void check_and_fclose(FILE *fp, const char *name); -- cgit v1.2.3