Add ignore blkid flag for Transformers
Change-Id: I8f2b5b68a8c3ede74858d53002efab997174ee65
This commit is contained in:
+6
-2
@@ -82,6 +82,7 @@ TWPartition::TWPartition(void) {
|
||||
Current_File_System = "";
|
||||
Fstab_File_System = "";
|
||||
Format_Block_Size = 0;
|
||||
Ignore_Blkid = false;
|
||||
}
|
||||
|
||||
TWPartition::~TWPartition(void) {
|
||||
@@ -152,6 +153,7 @@ bool TWPartition::Process_Fstab_Line(string Line, bool Display_Error) {
|
||||
// Custom flags, save for later so that new values aren't overwritten by defaults
|
||||
ptr += 6;
|
||||
Flags = ptr;
|
||||
Process_Flags(Flags, Display_Error);
|
||||
} else if (strlen(ptr) == 4 && (strncmp(ptr, "NULL", 4) == 0 || strncmp(ptr, "null", 4) == 0 || strncmp(ptr, "null", 4) == 0)) {
|
||||
// Do nothing
|
||||
} else {
|
||||
@@ -333,6 +335,8 @@ bool TWPartition::Process_Flags(string Flags, bool Display_Error) {
|
||||
ptr += 13;
|
||||
Is_SubPartition = true;
|
||||
SubPartition_Of = ptr;
|
||||
} else if (strcmp(ptr, "ignoreblkid") == 0) {
|
||||
Ignore_Blkid = true;
|
||||
} else if (strlen(ptr) > 8 && strncmp(ptr, "symlink=", 8) == 0) {
|
||||
ptr += 8;
|
||||
Symlink_Path = ptr;
|
||||
@@ -881,8 +885,8 @@ void TWPartition::Check_FS_Type() {
|
||||
char* arg;
|
||||
char* ptr;
|
||||
|
||||
if (Fstab_File_System == "yaffs2" || Fstab_File_System == "mtd" || Fstab_File_System == "bml")
|
||||
return; // Running blkid on some mtd devices causes a massive crash
|
||||
if (Fstab_File_System == "yaffs2" || Fstab_File_System == "mtd" || Fstab_File_System == "bml" || Ignore_Blkid)
|
||||
return; // Running blkid on some mtd devices causes a massive crash or needs to be skipped
|
||||
|
||||
Find_Actual_Block_Device();
|
||||
if (!Is_Present)
|
||||
|
||||
@@ -160,6 +160,8 @@ void TWPartitionManager::Output_Partition(TWPartition* Part) {
|
||||
printf("Has_Android_Secure ");
|
||||
if (Part->Is_Storage)
|
||||
printf("Is_Storage ");
|
||||
if (Part->Ignore_Blkid)
|
||||
printf("Ignore_Blkid ");
|
||||
printf("\n");
|
||||
if (!Part->SubPartition_Of.empty())
|
||||
printf(" SubPartition_Of: %s\n", Part->SubPartition_Of.c_str());
|
||||
|
||||
@@ -106,6 +106,7 @@ protected:
|
||||
string Storage_Path; // Indicates the path to the storage -- root indicates mount point, media/ indicates e.g. /data/media
|
||||
string Fstab_File_System; // File system from the recovery.fstab
|
||||
int Format_Block_Size; // Block size for formatting
|
||||
bool Ignore_Blkid; // Ignore blkid results due to superblocks lying to us on certain devices / partitions
|
||||
|
||||
private:
|
||||
bool Process_Flags(string Flags, bool Display_Error); // Process custom fstab flags
|
||||
|
||||
Reference in New Issue
Block a user