diff options
Diffstat (limited to '')
-rw-r--r-- | adbbu/twrpback.hpp | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/adbbu/twrpback.hpp b/adbbu/twrpback.hpp new file mode 100644 index 000000000..edc162651 --- /dev/null +++ b/adbbu/twrpback.hpp @@ -0,0 +1,61 @@ +/* + Copyright 2013 to 2017 TeamWin + TWRP is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + TWRP is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with TWRP. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef _TWRPBACK_HPP +#define _TWRPBACK_HPP + +#include <fstream> +#include "../twrpDigest/twrpMD5.hpp" + +class twrpback { +public: + int adbd_fd; // adbd data stream + twrpback(void); + virtual ~twrpback(void); + bool backup(std::string command); // adb backup stream + bool restore(void); // adb restore stream + void adblogwrite(std::string writemsg); // adb debugging log function + void createFifos(void); // create fifos needed for adb backup + void closeFifos(void); // close created fifos + void streamFileForTWRP(void); // stream file to twrp via bu + void setStreamFileName(std::string fn); // tell adb backup what file to load on storage + void threadStream(void); // thread bu for streaming + +private: + int read_fd; // ors input fd + int write_fd; // ors operation fd + int ors_fd; // ors output fd + int adb_control_twrp_fd; // fd for bu to twrp communication + int adb_control_bu_fd; // fd for twrp to bu communication + int adb_read_fd; // adb read data stream + int adb_write_fd; // adb write data stream + int debug_adb_fd; // fd to write debug tars + bool firstPart; // first partition in the stream + FILE *adbd_fp; // file pointer for adb stream + char cmd[512]; // store result of commands + char operation[512]; // operation to send to ors + std::ofstream adblogfile; // adb stream log file + std::string streamFn; + typedef void (twrpback::*ThreadPtr)(void); + typedef void* (*PThreadPtr)(void *); + void adbloginit(void); // setup adb log stream file + void close_backup_fds(); // close backup resources + void close_restore_fds(); // close restore resources + bool checkMD5Trailer(char adbReadStream[], uint64_t md5fnsize, twrpMD5* digest); // Check MD5 Trailer + void printErrMsg(std::string msg, int errNum); // print error msg to adb log +}; + +#endif // _TWRPBACK_HPP |