From 51a0e82eb29a6dfc79f93479883383fbdbf8bcc2 Mon Sep 17 00:00:00 2001 From: Dees_Troy Date: Wed, 5 Sep 2012 15:24:24 -0400 Subject: TWRP-ify AOSP code Pull in most TWRP sources Stub out partition management code Make it compile -- probably will not boot Kind of a mess but have to start somewhere --- partitions.hpp | 66 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 34 insertions(+), 32 deletions(-) (limited to 'partitions.hpp') 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 #include #include +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 Partitions; -} +}; #endif // __TWRP_Partition_Manager \ No newline at end of file -- cgit v1.2.3