summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVojtech Bocek <vbocek@gmail.com>2013-07-25 20:43:29 +0200
committerGerrit Code Review <gerrit@198.50.184.117>2013-08-24 14:56:19 +0200
commit8b44bbda2558d4b7d21738244ed9608ecd609e11 (patch)
tree7d87bfa2d1135ffcba87a9ac7d9a3786f2a83033
parentFix TWFunc::tw_chmod() for 3-character mode string (diff)
downloadandroid_bootable_recovery-8b44bbda2558d4b7d21738244ed9608ecd609e11.tar
android_bootable_recovery-8b44bbda2558d4b7d21738244ed9608ecd609e11.tar.gz
android_bootable_recovery-8b44bbda2558d4b7d21738244ed9608ecd609e11.tar.bz2
android_bootable_recovery-8b44bbda2558d4b7d21738244ed9608ecd609e11.tar.lz
android_bootable_recovery-8b44bbda2558d4b7d21738244ed9608ecd609e11.tar.xz
android_bootable_recovery-8b44bbda2558d4b7d21738244ed9608ecd609e11.tar.zst
android_bootable_recovery-8b44bbda2558d4b7d21738244ed9608ecd609e11.zip
-rw-r--r--partitions.hpp178
1 files changed, 88 insertions, 90 deletions
diff --git a/partitions.hpp b/partitions.hpp
index efe08d760..736304ee6 100644
--- a/partitions.hpp
+++ b/partitions.hpp
@@ -52,33 +52,61 @@ public:
virtual ~TWPartition();
public:
- virtual bool Is_Mounted(); // Checks mount to see if the partition is currently mounted
- virtual bool Mount(bool Display_Error); // Mounts the partition if it is not mounted
- virtual bool UnMount(bool Display_Error); // Unmounts the partition if it is mounted
- virtual bool Wipe(string New_File_System); // Wipes the partition
- virtual bool Wipe(); // Wipes the partition
- virtual bool Wipe_AndSec(); // Wipes android secure
- virtual bool Backup(string backup_folder); // Backs up the partition to the folder specified
- virtual bool Check_MD5(string restore_folder); // Checks MD5 of a backup
- virtual bool Restore(string restore_folder); // Restores the partition using the backup folder provided
- virtual string Backup_Method_By_Name(); // Returns a string of the backup method for human readable output
- virtual bool Decrypt(string Password); // Decrypts the partition, return 0 for failure and -1 for success
- virtual bool Wipe_Encryption(); // Ignores wipe commands for /data/media devices and formats the original block device
- virtual void Check_FS_Type(); // Checks the fs type using blkid, does not do anything on MTD / yaffs2 because this crashes on some devices
- virtual bool Update_Size(bool Display_Error); // Updates size information
- virtual void Recreate_Media_Folder(); // Recreates the /data/media folder
+ bool Is_Mounted(); // Checks mount to see if the partition is currently mounted
+ bool Mount(bool Display_Error); // Mounts the partition if it is not mounted
+ bool UnMount(bool Display_Error); // Unmounts the partition if it is mounted
+ bool Wipe(string New_File_System); // Wipes the partition
+ bool Wipe(); // Wipes the partition
+ bool Wipe_AndSec(); // Wipes android secure
+ bool Backup(string backup_folder); // Backs up the partition to the folder specified
+ bool Check_MD5(string restore_folder); // Checks MD5 of a backup
+ bool Restore(string restore_folder); // Restores the partition using the backup folder provided
+ string Backup_Method_By_Name(); // Returns a string of the backup method for human readable output
+ bool Decrypt(string Password); // Decrypts the partition, return 0 for failure and -1 for success
+ bool Wipe_Encryption(); // Ignores wipe commands for /data/media devices and formats the original block device
+ void Check_FS_Type(); // Checks the fs type using blkid, does not do anything on MTD / yaffs2 because this crashes on some devices
+ bool Update_Size(bool Display_Error); // Updates size information
+ void Recreate_Media_Folder(); // Recreates the /data/media folder
public:
string Current_File_System; // Current file system
string Actual_Block_Device; // Actual block device (one of primary, alternate, or decrypted)
string MTD_Name; // Name of the partition for MTD devices
-
-protected:
+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
-protected:
+ bool Process_Flags(string Flags, bool Display_Error); // Process custom fstab flags
+ bool Is_File_System(string File_System); // Checks to see if the file system given is considered a file system
+ bool Is_Image(string File_System); // Checks to see if the file system given is considered an image
+ void Setup_File_System(bool Display_Error); // Sets defaults for a file system partition
+ void Setup_Image(bool Display_Error); // Sets defaults for an image partition
+ void Setup_AndSec(void); // Sets up .android_secure settings
+ void Find_Real_Block_Device(string& Block_Device, bool Display_Error); // Checks the block device given and follows symlinks until it gets to the real block device
+ bool Find_Partition_Size(); // Finds the partition size from /proc/partitions
+ unsigned long long Get_Size_Via_du(string Path, bool Display_Error); // Uses du to get sizes
+ bool Wipe_EXT23(string File_System); // Formats as ext3 or ext2
+ bool Wipe_EXT4(); // Formats using ext4, uses make_ext4fs when present
+ bool Wipe_FAT(); // Formats as FAT if mkdosfs exits otherwise rm -rf wipe
+ bool Wipe_EXFAT(); // Formats as EXFAT
+ bool Wipe_MTD(); // Formats as yaffs2 for MTD memory types
+ bool Wipe_RMRF(); // Uses rm -rf to wipe
+ bool Wipe_Data_Without_Wiping_Media(); // Uses rm -rf to wipe but does not wipe /data/media
+ bool Backup_Tar(string backup_folder); // Backs up using tar for file systems
+ bool Backup_DD(string backup_folder); // Backs up using dd for emmc memory types
+ bool Backup_Dump_Image(string backup_folder); // Backs up using dump_image for MTD memory types
+ bool Restore_Tar(string restore_folder, string Restore_File_System); // Restore using tar for file systems
+ bool Restore_DD(string restore_folder); // Restore using dd for emmc memory types
+ bool Restore_Flash_Image(string restore_folder); // Restore using flash_image for MTD memory types
+ bool Get_Size_Via_statfs(bool Display_Error); // Get Partition size, used, and free space using statfs
+ bool Get_Size_Via_df(bool Display_Error); // Get Partition size, used, and free space using df command
+ bool Make_Dir(string Path, bool Display_Error); // Creates a directory if it doesn't already exist
+ bool Find_MTD_Block_Device(string MTD_Name); // Finds the mtd block device based on the name from the fstab
+ void Recreate_AndSec_Folder(void); // Recreates the .android_secure folder
+ void Mount_Storage_Retry(void); // Tries multiple times with a half second delay to mount a device in case storage is slow to mount
+
+private:
bool Can_Be_Mounted; // Indicates that the partition can be mounted
bool Can_Be_Wiped; // Indicates that the partition can be wiped
bool Can_Be_Backed_Up; // Indicates that the partition will show up in the backup list
@@ -125,36 +153,6 @@ protected:
string EcryptFS_Password; // Have to store the encryption password to remount
#endif
-private:
- bool Process_Flags(string Flags, bool Display_Error); // Process custom fstab flags
- bool Is_File_System(string File_System); // Checks to see if the file system given is considered a file system
- bool Is_Image(string File_System); // Checks to see if the file system given is considered an image
- void Setup_File_System(bool Display_Error); // Sets defaults for a file system partition
- void Setup_Image(bool Display_Error); // Sets defaults for an image partition
- void Setup_AndSec(void); // Sets up .android_secure settings
- void Find_Real_Block_Device(string& Block_Device, bool Display_Error); // Checks the block device given and follows symlinks until it gets to the real block device
- bool Find_Partition_Size(); // Finds the partition size from /proc/partitions
- unsigned long long Get_Size_Via_du(string Path, bool Display_Error); // Uses du to get sizes
- bool Wipe_EXT23(string File_System); // Formats as ext3 or ext2
- bool Wipe_EXT4(); // Formats using ext4, uses make_ext4fs when present
- bool Wipe_FAT(); // Formats as FAT if mkdosfs exits otherwise rm -rf wipe
- bool Wipe_EXFAT(); // Formats as EXFAT
- bool Wipe_MTD(); // Formats as yaffs2 for MTD memory types
- bool Wipe_RMRF(); // Uses rm -rf to wipe
- bool Wipe_Data_Without_Wiping_Media(); // Uses rm -rf to wipe but does not wipe /data/media
- bool Backup_Tar(string backup_folder); // Backs up using tar for file systems
- bool Backup_DD(string backup_folder); // Backs up using dd for emmc memory types
- bool Backup_Dump_Image(string backup_folder); // Backs up using dump_image for MTD memory types
- bool Restore_Tar(string restore_folder, string Restore_File_System); // Restore using tar for file systems
- bool Restore_DD(string restore_folder); // Restore using dd for emmc memory types
- bool Restore_Flash_Image(string restore_folder); // Restore using flash_image for MTD memory types
- bool Get_Size_Via_statfs(bool Display_Error); // Get Partition size, used, and free space using statfs
- bool Get_Size_Via_df(bool Display_Error); // Get Partition size, used, and free space using df command
- bool Make_Dir(string Path, bool Display_Error); // Creates a directory if it doesn't already exist
- bool Find_MTD_Block_Device(string MTD_Name); // Finds the mtd block device based on the name from the fstab
- void Recreate_AndSec_Folder(void); // Recreates the .android_secure folder
- void Mount_Storage_Retry(void); // Tries multiple times with a half second delay to mount a device in case storage is slow to mount
-
friend class TWPartitionManager;
friend class DataManager;
friend class GUIPartitionList;
@@ -164,53 +162,53 @@ class TWPartitionManager
{
public:
TWPartitionManager() {}
- virtual ~TWPartitionManager() {}
+ ~TWPartitionManager() {}
public:
- virtual int Process_Fstab(string Fstab_Filename, bool Display_Error); // Parses the fstab and populates the partitions
- virtual int Write_Fstab(); // Creates /etc/fstab file that's used by the command line for mount commands
- virtual void Output_Partition_Logging(); // Outputs partition information to the log
- 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
- virtual int Mount_Current_Storage(bool Display_Error); // Mounts the current storage location
- virtual int Mount_Settings_Storage(bool Display_Error); // Mounts the settings file storage location (usually internal)
+ int Process_Fstab(string Fstab_Filename, bool Display_Error); // Parses the fstab and populates the partitions
+ int Write_Fstab(); // Creates /etc/fstab file that's used by the command line for mount commands
+ void Output_Partition_Logging(); // Outputs partition information to the log
+ int Mount_By_Path(string Path, bool Display_Error); // Mounts partition based on path (e.g. /system)
+ int Mount_By_Block(string Block, bool Display_Error); // Mounts partition based on block device (e.g. /dev/block/mmcblk1p1)
+ int Mount_By_Name(string Name, bool Display_Error); // Mounts partition based on display name (e.g. System)
+ int UnMount_By_Path(string Path, bool Display_Error); // Unmounts partition based on path
+ int UnMount_By_Block(string Block, bool Display_Error); // Unmounts partition based on block device
+ int UnMount_By_Name(string Name, bool Display_Error); // Unmounts partition based on display name
+ int Is_Mounted_By_Path(string Path); // Checks if partition is mounted based on path
+ int Is_Mounted_By_Block(string Block); // Checks if partition is mounted based on block device
+ int Is_Mounted_By_Name(string Name); // Checks if partition is mounted based on display name
+ int Mount_Current_Storage(bool Display_Error); // Mounts the current storage location
+ int Mount_Settings_Storage(bool Display_Error); // Mounts the settings file storage location (usually internal)
TWPartition* Find_Partition_By_Path(string Path); // Returns a pointer to a partition based on path
TWPartition* Find_Partition_By_Block(string Block); // Returns a pointer to a partition based on block device
TWPartition* Find_Partition_By_Name(string Block); // Returns a pointer to a partition based on name
- virtual int Check_Backup_Name(bool Display_Error); // Checks the current backup name to ensure that it is valid
- virtual int Run_Backup(); // Initiates a backup in the current storage
- virtual int Run_Restore(string Restore_Name); // Restores a backup
- virtual 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
- virtual int Factory_Reset(); // Performs a factory reset
- virtual int Wipe_Dalvik_Cache(); // Wipes dalvik cache
- virtual int Wipe_Rotate_Data(); // Wipes rotation data --
- virtual int Wipe_Battery_Stats(); // Wipe battery stats -- /data/system/batterystats.bin
- virtual int Wipe_Android_Secure(); // Wipes android secure
- virtual int Format_Data(); // Really formats data on /data/media devices -- also removes encryption
- virtual int Wipe_Media_From_Data(); // Removes and recreates the media folder on /data/media devices
- virtual void Refresh_Sizes(); // Refreshes size data of partitions
- virtual void Update_System_Details(); // Updates fstab, file systems, sizes, etc.
- virtual int Decrypt_Device(string Password); // Attempt to decrypt any encrypted partitions
- virtual int usb_storage_enable(void); // Enable USB storage mode
- virtual int usb_storage_disable(void); // Disable USB storage mode
- virtual void Mount_All_Storage(void); // Mounts all storage locations
- virtual void UnMount_Main_Partitions(void); // Unmounts system and data if not data/media and boot if boot is mountable
- virtual int Partition_SDCard(void); // Repartitions the sdcard
-
- virtual int Fix_Permissions();
- virtual void Get_Partition_List(string ListType, std::vector<PartitionList> *Partition_List);
- virtual int Fstab_Processed(); // Indicates if the fstab has been processed or not
- virtual void Output_Storage_Fstab(); // Creates a /cache/recovery/storage.fstab file with a list of all potential storage locations for app use
+ int Check_Backup_Name(bool Display_Error); // Checks the current backup name to ensure that it is valid
+ int Run_Backup(); // Initiates a backup in the current storage
+ 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
+ int Wipe_By_Path(string Path); // Wipes a partition based on path
+ int Wipe_By_Block(string Block); // Wipes a partition based on block device
+ int Wipe_By_Name(string Name); // Wipes a partition based on display name
+ int Factory_Reset(); // Performs a factory reset
+ int Wipe_Dalvik_Cache(); // Wipes dalvik cache
+ int Wipe_Rotate_Data(); // Wipes rotation data --
+ int Wipe_Battery_Stats(); // Wipe battery stats -- /data/system/batterystats.bin
+ int Wipe_Android_Secure(); // Wipes android secure
+ int Format_Data(); // Really formats data on /data/media devices -- also removes encryption
+ int Wipe_Media_From_Data(); // Removes and recreates the media folder on /data/media devices
+ void Refresh_Sizes(); // Refreshes size data of partitions
+ void Update_System_Details(); // Updates fstab, file systems, sizes, etc.
+ int Decrypt_Device(string Password); // Attempt to decrypt any encrypted partitions
+ int usb_storage_enable(void); // Enable USB storage mode
+ int usb_storage_disable(void); // Disable USB storage mode
+ void Mount_All_Storage(void); // Mounts all storage locations
+ void UnMount_Main_Partitions(void); // Unmounts system and data if not data/media and boot if boot is mountable
+ int Partition_SDCard(void); // Repartitions the sdcard
+
+ int Fix_Permissions();
+ void Get_Partition_List(string ListType, std::vector<PartitionList> *Partition_List);
+ int Fstab_Processed(); // Indicates if the fstab has been processed or not
+ void Output_Storage_Fstab(); // Creates a /cache/recovery/storage.fstab file with a list of all potential storage locations for app use
private:
bool Make_MD5(bool generate_md5, string Backup_Folder, string Backup_Filename); // Generates an MD5 after a backup is made