Commit c7360dd2 authored by bigbiff bigbiff's avatar bigbiff bigbiff Committed by Gerrit Code Review

Clear the relative directory before passing on to twrpTar with the static du...

Clear the relative directory before passing on to twrpTar with the static du object. Otherwise we will not backup /system/media etc

Change-Id: Ib62af6ad8596aa18bf48cb750e2ecf442dadc627
parent 06c3f93d
......@@ -399,7 +399,6 @@ bool TWPartition::Process_Fstab_Line(string Line, bool Display_Error) {
} else if (Mount_Point == "/recovery") {
Display_Name = "Recovery";
Backup_Display_Name = Display_Name;
Can_Be_Backed_Up = true;
}
}
......@@ -1539,8 +1538,9 @@ bool TWPartition::Wipe_Data_Without_Wiping_Media() {
// The media folder is the "internal sdcard"
// The .layout_version file is responsible for determining whether 4.2 decides up upgrade
// the media folder for multi-user.
//TODO: convert this to use twrpDU.cpp
if (strcmp(de->d_name, "media") == 0 || strcmp(de->d_name, ".layout_version") == 0) continue;
dir = "/data/";
dir.append(de->d_name);
if (de->d_type == DT_DIR) {
......@@ -1551,6 +1551,7 @@ bool TWPartition::Wipe_Data_Without_Wiping_Media() {
}
}
closedir(d);
gui_print("Done.\n");
return true;
}
......@@ -1798,6 +1799,7 @@ bool TWPartition::Update_Size(bool Display_Error) {
unsigned long long data_media_used, actual_data;
du.add_relative_dir("media");
Used = du.Get_Folder_Size("/data");
du.clear_relative_dir("media");
Backup_Size = Used;
int bak = (int)(Used / 1048576LLU);
int fre = (int)(Free / 1048576LLU);
......
......@@ -43,6 +43,16 @@ void twrpDU::add_relative_dir(string dir) {
relativedir.push_back(dir);
}
void twrpDU::clear_relative_dir(string dir) {
vector<string>::iterator iter = relativedir.begin();
while (iter != relativedir.end()) {
if (*iter == dir)
iter = relativedir.erase(iter);
else
iter++;
}
}
void twrpDU::add_absolute_dir(string dir) {
absolutedir.push_back(dir);
}
......@@ -97,7 +107,6 @@ bool twrpDU::check_skip_dirs(string& dir) {
}
}
for (int i = 0; i < absolutedir.size(); ++i) {
//string absdir = parent + dir;
if (dir == absolutedir.at(i)) {
result = true;
break;
......
......@@ -40,8 +40,9 @@ public:
uint64_t Get_Folder_Size(const string& Path); // Gets the folder's size using stat
void add_absolute_dir(string Path);
void add_relative_dir(string Path);
bool check_skip_dirs(string& dir); // Checks a list of directories to see if we should skip it
bool check_skip_dirs(string& dir);
vector<string> get_absolute_dirs(void);
void clear_relative_dir(string dir);
private:
vector<string> absolutedir;
vector<string> relativedir;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment