aboutsummaryrefslogtreecommitdiffstats
path: root/bu.h
diff options
context:
space:
mode:
authorTom Marshall <tdm@cyngn.com>2015-11-16 13:48:28 -0800
committerTom Marshall <tdm@cyngn.com>2015-11-25 15:34:35 -0800
commit423f1e94f58891347d06b7a881ce6b1e67ac8339 (patch)
tree3c761f624080ded84a7bb5d68e2af75563e7e523 /bu.h
parentffc8a8702d9e1568995ce155c648fd029909cdac (diff)
downloadbootable_recovery-423f1e94f58891347d06b7a881ce6b1e67ac8339.zip
bootable_recovery-423f1e94f58891347d06b7a881ce6b1e67ac8339.tar.gz
bootable_recovery-423f1e94f58891347d06b7a881ce6b1e67ac8339.tar.bz2
recovery: bu: Implement backup/restore
Change-Id: I9e684868ce15aaaed3a40338dadc20b003b50ade
Diffstat (limited to 'bu.h')
-rw-r--r--bu.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/bu.h b/bu.h
new file mode 100644
index 0000000..15ab745
--- /dev/null
+++ b/bu.h
@@ -0,0 +1,54 @@
+#include <utils/String8.h>
+
+#include <lib/libtar.h>
+#include <zlib.h>
+
+extern "C" {
+#include <openssl/sha.h>
+#include <openssl/md5.h>
+#ifndef MD5_DIGEST_STRING_LENGTH
+#define MD5_DIGEST_STRING_LENGTH (MD5_DIGEST_LENGTH*2+1)
+#endif
+#ifndef SHA_DIGEST_STRING_LENGTH
+#define SHA_DIGEST_STRING_LENGTH (SHA_DIGEST_LENGTH*2+1)
+#endif
+}
+
+#define HASH_MAX_LENGTH SHA_DIGEST_LENGTH
+#define HASH_MAX_STRING_LENGTH SHA_DIGEST_STRING_LENGTH
+
+#define PROP_LINE_LEN (PROPERTY_KEY_MAX+1+PROPERTY_VALUE_MAX+1+1)
+
+extern int adb_ifd;
+extern int adb_ofd;
+extern TAR* tar;
+extern gzFile gzf;
+
+extern char* hash_name;
+extern size_t hash_datalen;
+extern SHA_CTX sha_ctx;
+extern MD5_CTX md5_ctx;
+
+struct partspec {
+ char* name;
+ char* path;
+ Volume* vol;
+ uint64_t size;
+ uint64_t used;
+ uint64_t off;
+};
+#define MAX_PART 8
+
+extern void logmsg(const char* fmt, ...);
+
+extern int part_add(const char* name);
+extern partspec* part_get(int i);
+extern partspec* part_find(const char* name);
+extern void part_set(partspec* part);
+
+extern int update_progress(uint64_t off);
+
+extern int create_tar(int fd, const char* compress, const char* mode);
+
+extern int do_backup(int argc, char** argv);
+extern int do_restore(int argc, char** argv);