summaryrefslogtreecommitdiffstats
path: root/partitions.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'partitions.hpp')
-rw-r--r--partitions.hpp66
1 files changed, 34 insertions, 32 deletions
diff --git a/partitions.hpp b/partitions.hpp
index e91f7dd11..2915e73ca 100644
--- a/partitions.hpp
+++ b/partitions.hpp
@@ -23,11 +23,12 @@
#ifndef __TWRP_Partition_Manager
#define __TWRP_Partition_Manager
-#include "data.hpp"
#include <vector>
#include <string>
#include <map>
+using namespace std;
+
// Partition class
class TWPartition
{
@@ -61,6 +62,7 @@ protected:
protected:
bool Can_Be_Mounted; // Indicates that the partition can be mounted
bool Can_Be_Wiped; // Indicates that the partition can be wiped
+ bool Wipe_During_Factory_Reset; // Indicates that this partition is wiped during a factory reset
bool Wipe_Available_in_GUI; // Inidcates that the wipe can be user initiated in the GUI system
bool Is_SubPartition; // Indicates that this partition is a sub-partition of another partition (e.g. datadata is a sub-partition of data)
string SubPartition_Of; // Indicates which partition is the parent partition of this partition (e.g. data is the parent partition of datadata)
@@ -83,12 +85,12 @@ protected:
string Display_Name; // Display name for the GUI
string Backup_Name; // Backup name -- used for backup filenames
Backup_Method_enum Backup_Method; // Method used for backup
- bool Has_Data_Media // Indicates presence of /data/media, may affect wiping and backup methods
- bool Is_Storage // Indicates if this partition is used for storage for backup, restore, and installing zips
- string Storage_Path // Indicates the path to the storage -- root indicates mount point, media/ indicates e.g. /data/media
- string Current_File_System // Current file system
- string Fstab_File_System // File system from the recovery.fstab
- int Format_Block_Size // Block size for formatting
+ bool Has_Data_Media; // Indicates presence of /data/media, may affect wiping and backup methods
+ bool Is_Storage; // Indicates if this partition is used for storage for backup, restore, and installing zips
+ string Storage_Path; // Indicates the path to the storage -- root indicates mount point, media/ indicates e.g. /data/media
+ string Current_File_System; // Current file system
+ string Fstab_File_System; // File system from the recovery.fstab
+ int Format_Block_Size; // Block size for formatting
private:
bool Wipe_EXT23(); // Formats as ext3 or ext2
@@ -105,37 +107,37 @@ private:
bool Restore_Flash_Image(string restore_folder); // Restore using flash_image for MTD memory types
friend class TWPartitionManager;
-}
+};
class TWPartitionManager
{
public:
- TWPartitionManager();
- virtual ~TWPartitionManager();
-
-public:
- virtual int Process_Fstab(string Fstab_Filename, bool Display_Error); // Parses the fstab and populates the partitions
- virtual int Mount_By_Path(string Path, bool Display_Error); // Mounts partition based on path (e.g. /system)
- virtual int Mount_By_Block(string Block, bool Display_Error); // Mounts partition based on block device (e.g. /dev/block/mmcblk1p1)
- virtual int Mount_By_Name(string Name, bool Display_Error); // Mounts partition based on display name (e.g. System)
- virtual int UnMount_By_Path(string Path, bool Display_Error); // Unmounts partition based on path
- virtual int UnMount_By_Block(string Block, bool Display_Error); // Unmounts partition based on block device
- virtual int UnMount_By_Name(string Name, bool Display_Error); // Unmounts partition based on display name
- virtual int Is_Mounted_By_Path(string Path); // Checks if partition is mounted based on path
- virtual int Is_Mounted_By_Block(string Block); // Checks if partition is mounted based on block device
- virtual int Is_Mounted_By_Name(string Name); // Checks if partition is mounted based on display name
- static *Partition Find_Partition_By_Path(string Path); // Returns a pointer to a partition based on path
- static *Partition Find_Partition_By_Block(string Block); // Returns a pointer to a partition based on block device
- virtual int Run_Backup(string Backup_Name); // Initiates a backup in the current storage
- virtual int Run_Restore(string Restore_Name); // Restores a backup
- void Set_Restore_Files(string Restore_Name); // Used to gather a list of available backup partitions for the user to select for a restore
- virtual int Wipe_By_Path(string Path); // Wipes a partition based on path
- virtual int Wipe_By_Block(string Block); // Wipes a partition based on block device
- virtual int Wipe_By_Name(string Name); // Wipes a partition based on display name
- void Refresh_Sizes(); // Refreshes size data of partitions
+ static int Process_Fstab(string Fstab_Filename, bool Display_Error); // Parses the fstab and populates the partitions
+ static int Mount_By_Path(string Path, bool Display_Error); // Mounts partition based on path (e.g. /system)
+ static int Mount_By_Block(string Block, bool Display_Error); // Mounts partition based on block device (e.g. /dev/block/mmcblk1p1)
+ static int Mount_By_Name(string Name, bool Display_Error); // Mounts partition based on display name (e.g. System)
+ static int UnMount_By_Path(string Path, bool Display_Error); // Unmounts partition based on path
+ static int UnMount_By_Block(string Block, bool Display_Error); // Unmounts partition based on block device
+ static int UnMount_By_Name(string Name, bool Display_Error); // Unmounts partition based on display name
+ static int Is_Mounted_By_Path(string Path); // Checks if partition is mounted based on path
+ static int Is_Mounted_By_Block(string Block); // Checks if partition is mounted based on block device
+ static int Is_Mounted_By_Name(string Name); // Checks if partition is mounted based on display name
+ static int Mount_Current_Storage(); // Mounts the current storage location
+ //static *TWPartition Find_Partition_By_Path(string Path); // Returns a pointer to a partition based on path
+ //static *TWPartition Find_Partition_By_Block(string Block); // Returns a pointer to a partition based on block device
+ static int Run_Backup(string Backup_Name); // Initiates a backup in the current storage
+ static int Run_Restore(string Restore_Name); // Restores a backup
+ static void Set_Restore_Files(string Restore_Name); // Used to gather a list of available backup partitions for the user to select for a restore
+ static int Wipe_By_Path(string Path); // Wipes a partition based on path
+ static int Wipe_By_Block(string Block); // Wipes a partition based on block device
+ static int Wipe_By_Name(string Name); // Wipes a partition based on display name
+ static int Factory_Reset(); // Performs a factory reset
+ static void Refresh_Sizes(); // Refreshes size data of partitions
+ static void Update_System_Details(); // Updates fstab, file systems, sizes, etc.
+ static int Decrypt_Device(string Password); // Attempt to decrypt any encrypted partitions
private:
std::vector<TWPartition*> Partitions;
-}
+};
#endif // __TWRP_Partition_Manager \ No newline at end of file