From 1eff6cd5d17eb1e877a0658818d2f8ed7c1d40c7 Mon Sep 17 00:00:00 2001 From: Ethan Yonker Date: Mon, 15 Sep 2014 13:30:42 -0500 Subject: Additional checks to prevent partitioning internal storage Change-Id: I9fcd7e0169fbdd52405c0c86aafbef091f69411e --- partitionmanager.cpp | 2 +- partitions.hpp | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/partitionmanager.cpp b/partitionmanager.cpp index d83518b05..af89e404c 100644 --- a/partitionmanager.cpp +++ b/partitionmanager.cpp @@ -1862,7 +1862,7 @@ int TWPartitionManager::Partition_SDCard(void) { #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 4fe155ec5..294c89e62 100644 --- a/partitions.hpp +++ b/partitions.hpp @@ -74,6 +74,9 @@ public: 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 @@ private: 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 -- cgit v1.2.3