summaryrefslogtreecommitdiffstats
path: root/partitionmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'partitionmanager.cpp')
-rw-r--r--partitionmanager.cpp26
1 files changed, 25 insertions, 1 deletions
diff --git a/partitionmanager.cpp b/partitionmanager.cpp
index dd2dfd2c4..fb3da5aa1 100644
--- a/partitionmanager.cpp
+++ b/partitionmanager.cpp
@@ -245,7 +245,7 @@ int TWPartitionManager::Mount_By_Path(string Path, bool Display_Error) {
bool found = false;
string Local_Path = TWFunc::Get_Root_Path(Path);
- if (Local_Path == "/tmp")
+ if (Local_Path == "/tmp" || Local_Path == "/")
return true;
// Iterate through all partitions
@@ -611,6 +611,8 @@ bool TWPartitionManager::Backup_Partition(TWPartition* Part, string Backup_Folde
if ((*subpart)->Can_Be_Backed_Up && (*subpart)->Is_SubPartition && (*subpart)->SubPartition_Of == Part->Mount_Point) {
if (!(*subpart)->Backup(Backup_Folder))
return false;
+ sync();
+ sync();
if (!Make_MD5(generate_md5, Backup_Folder, (*subpart)->Backup_FileName))
return false;
if (Part->Backup_Method == 1) {
@@ -1869,3 +1871,25 @@ void TWPartitionManager::Get_Partition_List(string ListType, std::vector<Partiti
int TWPartitionManager::Fstab_Processed(void) {
return Partitions.size();
}
+
+void TWPartitionManager::Output_Storage_Fstab(void) {
+ std::vector<TWPartition*>::iterator iter;
+ char storage_partition[255];
+ string Temp;
+ FILE *fp = fopen("/cache/recovery/storage.fstab", "w");
+
+ if (fp == NULL) {
+ LOGERR("Unable to open '/cache/recovery/storage.fstab'.\n");
+ return;
+ }
+
+ // Iterate through all partitions
+ for (iter = Partitions.begin(); iter != Partitions.end(); iter++) {
+ if ((*iter)->Is_Storage) {
+ Temp = (*iter)->Storage_Path + ";" + (*iter)->Storage_Name + ";\n";
+ strcpy(storage_partition, Temp.c_str());
+ fwrite(storage_partition, sizeof(storage_partition[0]), strlen(storage_partition) / sizeof(storage_partition[0]), fp);
+ }
+ }
+ fclose(fp);
+} \ No newline at end of file