@@ -486,7 +486,7 @@ bool TWPartitionManager::Make_MD5(PartitionSettings *part_settings)
486486
487487 if (part_settings->Part == NULL )
488488 return false ;
489- string Full_File = part_settings->Backup_Folder + part_settings->Part ->Backup_FileName ;
489+ string Full_File = part_settings->Backup_Folder + " / " + part_settings->Part ->Backup_FileName ;
490490 twrpDigest md5sum;
491491
492492 if (!part_settings->generate_md5 )
@@ -622,7 +622,7 @@ void TWPartitionManager::Clean_Backup_Folder(string Backup_Folder) {
622622 if (!strcmp (p->d_name , " ." ) || !strcmp (p->d_name , " .." ))
623623 continue ;
624624
625- string path = Backup_Folder + p->d_name ;
625+ string path = Backup_Folder + " / " + p->d_name ;
626626
627627 size_t dot = path.find_last_of (" ." ) + 1 ;
628628 if (path.substr (dot) == " win" || path.substr (dot) == " md5" || path.substr (dot) == " info" ) {
@@ -647,7 +647,7 @@ int TWPartitionManager::Cancel_Backup() {
647647 if (tar_fork_pid != 0 ) {
648648 DataManager::GetValue (TW_BACKUP_NAME, Backup_Name);
649649 DataManager::GetValue (TW_BACKUPS_FOLDER_VAR, Backup_Folder);
650- Full_Backup_Path = Backup_Folder + " /" + Backup_Name + " / " ;
650+ Full_Backup_Path = Backup_Folder + " /" + Backup_Name;
651651 LOGINFO (" Killing pid: %d\n " , tar_fork_pid);
652652 kill (tar_fork_pid, SIGUSR2);
653653 while (kill (tar_fork_pid, 0 ) == 0 ) {
@@ -714,9 +714,9 @@ int TWPartitionManager::Run_Backup(bool adbbackup) {
714714 }
715715
716716 LOGINFO (" Backup Name is: '%s'\n " , Backup_Name.c_str ());
717- part_settings.Backup_Folder = part_settings.Backup_Folder + " /" + Backup_Name + " / " ;
717+ part_settings.Backup_Folder = part_settings.Backup_Folder + " /" + Backup_Name;
718718
719- LOGINFO (" Full_Backup_Path is: '%s'\n " , part_settings.Backup_Folder .c_str ());
719+ LOGINFO (" Backup_Folder is: '%s'\n " , part_settings.Backup_Folder .c_str ());
720720
721721 LOGINFO (" Calculating backup details...\n " );
722722 DataManager::GetValue (" tw_backup_list" , Backup_List);
@@ -864,7 +864,7 @@ int TWPartitionManager::Run_Backup(bool adbbackup) {
864864 Update_System_Details ();
865865 UnMount_Main_Partitions ();
866866 gui_msg (Msg (msg::kHighlight , " backup_completed=[BACKUP COMPLETED IN {1} SECONDS]" )(total_time)); // the end
867- string backup_log = part_settings.Backup_Folder + " recovery.log" ;
867+ string backup_log = part_settings.Backup_Folder + " / recovery.log" ;
868868 TWFunc::copy_file (" /tmp/recovery.log" , backup_log, 0644 );
869869 tw_set_default_metadata (backup_log.c_str ());
870870
@@ -2248,13 +2248,13 @@ bool TWPartitionManager::Remove_MTP_Storage(unsigned int Storage_ID) {
22482248 return false ;
22492249}
22502250
2251- bool TWPartitionManager::Flash_Image (PartitionSettings *part_settings ) {
2251+ bool TWPartitionManager::Flash_Image (string& path, string& filename ) {
22522252 int check, partition_count = 0 ;
22532253 TWPartition* flash_part = NULL ;
22542254 string Flash_List, flash_path, full_filename;
22552255 size_t start_pos = 0 , end_pos = 0 ;
22562256
2257- full_filename = part_settings-> Backup_Folder ;
2257+ full_filename = path + " / " + filename ;
22582258
22592259 gui_msg (" image_flash_start=[IMAGE FLASH STARTED]" );
22602260 gui_msg (Msg (" img_to_flash=Image to flash: '{1}'" )(full_filename));
@@ -2269,6 +2269,14 @@ bool TWPartitionManager::Flash_Image(PartitionSettings *part_settings) {
22692269 }
22702270 }
22712271
2272+ PartitionSettings part_settings;
2273+ part_settings.Backup_Folder = path;
2274+ unsigned long long total_bytes = TWFunc::Get_File_Size (full_filename);
2275+ ProgressTracking progress (total_bytes);
2276+ part_settings.progress = &progress;
2277+ part_settings.adbbackup = false ;
2278+ part_settings.PM_Method = PM_RESTORE;
2279+
22722280 gui_msg (" calc_restore=Calculating restore details..." );
22732281 DataManager::GetValue (" tw_flash_partition" , Flash_List);
22742282 if (!Flash_List.empty ()) {
@@ -2298,7 +2306,8 @@ bool TWPartitionManager::Flash_Image(PartitionSettings *part_settings) {
22982306
22992307 DataManager::SetProgress (0.0 );
23002308 if (flash_part) {
2301- if (!flash_part->Flash_Image (part_settings))
2309+ flash_part->Backup_FileName = filename;
2310+ if (!flash_part->Flash_Image (&part_settings))
23022311 return false ;
23032312 } else {
23042313 gui_err (" invalid_flash=Invalid flash partition specified." );
0 commit comments