diff options
author | Tom Marshall <tdm@cyngn.com> | 2015-11-16 13:48:28 -0800 |
---|---|---|
committer | Tom Marshall <tdm@cyngn.com> | 2015-11-25 15:34:35 -0800 |
commit | 423f1e94f58891347d06b7a881ce6b1e67ac8339 (patch) | |
tree | 3c761f624080ded84a7bb5d68e2af75563e7e523 /bu.h | |
parent | ffc8a8702d9e1568995ce155c648fd029909cdac (diff) | |
download | bootable_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.h | 54 |
1 files changed, 54 insertions, 0 deletions
@@ -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); |