From 6ef6635ad3d5e8f6440e9ac2b67f1db8589e77b5 Mon Sep 17 00:00:00 2001 From: Dees_Troy Date: Thu, 21 Feb 2013 08:26:57 -0600 Subject: Check for root and root perms and offer to install/fix Also fix sort order for file selector by date and file sizes Change-Id: Idff9fe4232c19d4ed1082e78fabe6f921aa0a114 --- twrp-functions.hpp | 112 +++++++++++++++++++++++++++-------------------------- 1 file changed, 58 insertions(+), 54 deletions(-) (limited to 'twrp-functions.hpp') diff --git a/twrp-functions.hpp b/twrp-functions.hpp index d7dea3f2a..421962281 100644 --- a/twrp-functions.hpp +++ b/twrp-functions.hpp @@ -1,54 +1,58 @@ -#ifndef _TWRPFUNCTIONS_HPP -#define _TWRPFUNCTIONS_HPP - -#include - -using namespace std; - -typedef enum -{ - rb_current = 0, - rb_system, - rb_recovery, - rb_poweroff, - rb_bootloader, // May also be fastboot - rb_download, -} RebootCommand; - -// Partition class -class TWFunc -{ -public: - static int Check_MD5(string File); - static string Get_Root_Path(string Path); // Trims any trailing folders or filenames from the path, also adds a leading / if not present - static string Get_Path(string Path); // Trims everything after the last / in the string - static string Get_Filename(string Path); // Trims the path off of a filename - - static void install_htc_dumlock(void); // Installs HTC Dumlock - static void htc_dumlock_restore_original_boot(void); // Restores the backup of boot from HTC Dumlock - static void htc_dumlock_reflash_recovery_to_boot(void); // Reflashes the current recovery to boot - static int Recursive_Mkdir(string Path); // Recursively makes the entire path - static unsigned long long Get_Folder_Size(const string& Path, bool Display_Error); // Gets the size of a folder and all of its subfolders using dirent and stat - static bool Path_Exists(string Path); // Returns true if the path exists - 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); // 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 int Exec_Cmd(string cmd, string &result); //execute a command and return the result as a string by reference - static int removeDir(const string path, bool removeParent); //recursively remove a directory - static int copy_file(string src, string dst, int mode); //copy file from src to dst with mode permissions - static unsigned int Get_D_Type_From_Stat(string Path); // Returns a dirent dt_type value using stat instead of dirent - static timespec timespec_diff(timespec& start, timespec& end); // Return a diff for 2 times - static int read_file(string fn, string& results); //read from file - static int write_file(string fn, string& line); //write from file - static int drop_caches(void); //drop linux cache memory - -private: - static void check_and_fclose(FILE *fp, const char *name); - static void copy_log_file(const char* source, const char* destination, int append); - -}; - -#endif // _TWRPFUNCTIONS_HPP +#ifndef _TWRPFUNCTIONS_HPP +#define _TWRPFUNCTIONS_HPP + +#include + +using namespace std; + +typedef enum +{ + rb_current = 0, + rb_system, + rb_recovery, + rb_poweroff, + rb_bootloader, // May also be fastboot + rb_download, +} RebootCommand; + +// Partition class +class TWFunc +{ +public: + static int Check_MD5(string File); + static string Get_Root_Path(string Path); // Trims any trailing folders or filenames from the path, also adds a leading / if not present + static string Get_Path(string Path); // Trims everything after the last / in the string + static string Get_Filename(string Path); // Trims the path off of a filename + + static void install_htc_dumlock(void); // Installs HTC Dumlock + static void htc_dumlock_restore_original_boot(void); // Restores the backup of boot from HTC Dumlock + static void htc_dumlock_reflash_recovery_to_boot(void); // Reflashes the current recovery to boot + static int Recursive_Mkdir(string Path); // Recursively makes the entire path + static unsigned long long Get_Folder_Size(const string& Path, bool Display_Error); // Gets the size of a folder and all of its subfolders using dirent and stat + static bool Path_Exists(string Path); // Returns true if the path exists + 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); // 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 int Exec_Cmd(string cmd, string &result); //execute a command and return the result as a string by reference + static int removeDir(const string path, bool removeParent); //recursively remove a directory + static int copy_file(string src, string dst, int mode); //copy file from src to dst with mode permissions + static unsigned int Get_D_Type_From_Stat(string Path); // Returns a dirent dt_type value using stat instead of dirent + static timespec timespec_diff(timespec& start, timespec& end); // Return a diff for 2 times + static int read_file(string fn, string& results); //read from file + static int write_file(string fn, string& line); //write from file + static int drop_caches(void); //drop linux cache memory + static int Check_su_Perms(void); // check perms and owner of su binary in various locations + static bool Fix_su_Perms(void); // sets proper permissions for su binaries and superuser apk + static int tw_chmod(string fn, string mode); // chmod function that converts a 4 char string into st_mode automatically + static bool Install_SuperSU(void); // Installs su binary and apk and sets proper permissions + +private: + static void check_and_fclose(FILE *fp, const char *name); + static void copy_log_file(const char* source, const char* destination, int append); + +}; + +#endif // _TWRPFUNCTIONS_HPP -- cgit v1.2.3