Additional checks to prevent partitioning internal storage
Change-Id: I9fcd7e0169fbdd52405c0c86aafbef091f69411e
diff --git a/partitionmanager.cpp b/partitionmanager.cpp
index d83518b..af89e40 100644
--- a/partitionmanager.cpp
+++ b/partitionmanager.cpp
@@ -1862,7 +1862,7 @@
#else
TWPartition* SDCard = Find_Partition_By_Path("/sdcard");
#endif
- if (SDCard == NULL) {
+ if (SDCard == NULL || !SDCard->Removable || SDCard->Has_Data_Media) {
LOGERR("Unable to locate device to partition.\n");
return false;
}
diff --git a/partitions.hpp b/partitions.hpp
index 4fe155e..294c89e 100644
--- a/partitions.hpp
+++ b/partitions.hpp
@@ -74,6 +74,9 @@
string MTD_Name; // Name of the partition for MTD devices
bool Is_Present; // Indicates if the partition is currently present as a block device
+protected:
+ bool Has_Data_Media; // Indicates presence of /data/media, may affect wiping and backup methods
+
private:
bool Process_Fstab_Line(string Line, bool Display_Error); // Processes a fstab line
void Find_Actual_Block_Device(); // Determines the correct block device and stores it in Actual_Block_Device
@@ -147,7 +150,6 @@
Backup_Method_enum Backup_Method; // Method used for backup
bool Can_Encrypt_Backup; // Indicates if this item can be encrypted during backup
bool Use_Userdata_Encryption; // Indicates if we will use userdata encryption splitting on an encrypted backup
- bool Has_Data_Media; // Indicates presence of /data/media, may affect wiping and backup methods
bool Has_Android_Secure; // Indicates the presence of .android_secure on this partition
bool Is_Storage; // Indicates if this partition is used for storage for backup, restore, and installing zips
bool Is_Settings_Storage; // Indicates that this storage partition is the location of the .twrps settings file and the location that is used for custom themes