summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gui/action.cpp7
-rw-r--r--partition.cpp5
-rw-r--r--partitionmanager.cpp11
3 files changed, 22 insertions, 1 deletions
diff --git a/gui/action.cpp b/gui/action.cpp
index 9bd5ce5fb..3e1f793df 100644
--- a/gui/action.cpp
+++ b/gui/action.cpp
@@ -818,6 +818,13 @@ int GUIAction::doAction(Action action, int isThreaded /* = 0 */)
} else {
skip = true;
}
+ } else if (wipe_path == "INTERNAL") {
+ if (!PartitionManager.Wipe_Media_From_Data()) {
+ ret_val = false;
+ break;
+ } else {
+ skip = true;
+ }
}
if (!skip) {
if (!PartitionManager.Wipe_By_Path(wipe_path)) {
diff --git a/partition.cpp b/partition.cpp
index 7b687e721..f92d62f21 100644
--- a/partition.cpp
+++ b/partition.cpp
@@ -480,7 +480,7 @@ bool TWPartition::Process_Flags(string Flags, bool Display_Error) {
Storage_Name = Display_Name;
if (!has_display_name && has_storage_name)
Display_Name = Storage_Name;
- if (has_display_name && !has_backup_name)
+ if (has_display_name && !has_backup_name && Backup_Display_Name != "Android Secure")
Backup_Display_Name = Display_Name;
if (!has_display_name && has_backup_name)
Display_Name = Backup_Display_Name;
@@ -1158,6 +1158,9 @@ bool TWPartition::Wipe_Encryption() {
return false;
Has_Data_Media = false;
+ Decrypted_Block_Device = "";
+ Is_Decrypted = false;
+ Is_Encrypted = false;
if (Wipe(Fstab_File_System)) {
Has_Data_Media = Save_Data_Media;
if (Has_Data_Media && !Symlink_Mount_Point.empty()) {
diff --git a/partitionmanager.cpp b/partitionmanager.cpp
index a78705ba3..d7f1600ef 100644
--- a/partitionmanager.cpp
+++ b/partitionmanager.cpp
@@ -1191,6 +1191,9 @@ int TWPartitionManager::Wipe_Media_From_Data(void) {
return -1;
if (dat->Has_Data_Media) {
dat->Recreate_Media_Folder();
+ // Unmount and remount - slightly hackish way to ensure that the "/sdcard" folder is still mounted properly after wiping
+ dat->UnMount(false);
+ dat->Mount(false);
}
return true;
} else {
@@ -1417,6 +1420,7 @@ int TWPartitionManager::Decrypt_Device(string Password) {
dat->Is_Decrypted = true;
dat->Decrypted_Block_Device = crypto_blkdev;
dat->Setup_File_System(false);
+ dat->Current_File_System = dat->Fstab_File_System; // Needed if we're ignoring blkid because encrypted devices start out as emmc
gui_print("Data successfully decrypted, new block device: '%s'\n", crypto_blkdev);
#ifdef CRYPTO_SD_FS_TYPE
@@ -1848,6 +1852,13 @@ void TWPartitionManager::Get_Partition_List(string ListType, std::vector<Partiti
part.selected = 0;
Partition_List->push_back(part);
}
+ if ((*iter)->Has_Data_Media) {
+ struct PartitionList datamedia;
+ datamedia.Display_Name = (*iter)->Storage_Name;
+ datamedia.Mount_Point = "INTERNAL";
+ datamedia.selected = 0;
+ Partition_List->push_back(datamedia);
+ }
}
} else {
LOGERR("Unknown list type '%s' requested for TWPartitionManager::Get_Partition_List\n", ListType.c_str());