fastboot: implement fastbootd in twrp

fastbootd is a userspace daemon that runs in the recovery
ramdisk. It allows writing single partitions to the super
partition via fastboot CLI. When TWRP sees the fastboot option
in the misc partition during startup, it will start with
the fastbootd page and fastbootd running. Otherwise it will
run recovery normally.

Change-Id: Id7b12d29ef21dbd5950dc884dd1cd788f25357f0
diff --git a/partitionmanager.cpp b/partitionmanager.cpp
index bdc4f9e..75fdb5d 100755
--- a/partitionmanager.cpp
+++ b/partitionmanager.cpp
@@ -271,6 +271,7 @@
 			andsec_partition = (*iter);
 		else
 			(*iter)->Has_Android_Secure = false;
+
 		if (Is_Super_Partition(TWFunc::Remove_Beginning_Slash((*iter)->Get_Mount_Point()).c_str()))
 			Prepare_Super_Volume((*iter));
 	}
@@ -3240,7 +3241,12 @@
 }
 
 bool TWPartitionManager::Get_Super_Status() {
-	return access(Get_Super_Partition().c_str(), F_OK) == 0;
+	std::string fastboot_mode = android::base::GetProperty("sys.usb.config", "");
+	if (fastboot_mode == "fastboot") {
+		return false;
+	}
+	else
+		return access(Get_Super_Partition().c_str(), F_OK) == 0;
 }
 
 bool TWPartitionManager::Recreate_Logs_Dir() {