recovery: allow opting-in to fastbootd

Change-Id: Id8228c0782f4520779d3a2116ea11015b64c13c3
diff --git a/recovery_main.cpp b/recovery_main.cpp
index a74eb44..a46bfdb 100644
--- a/recovery_main.cpp
+++ b/recovery_main.cpp
@@ -380,7 +380,8 @@
         } else if (option == "reason") {
           reason = optarg;
         } else if (option == "fastboot" &&
-                   android::base::GetBoolProperty("ro.boot.dynamic_partitions", false)) {
+                   (android::base::GetBoolProperty("ro.boot.dynamic_partitions", false) ||
+                    android::base::GetBoolProperty("ro.fastbootd.available", false))) {
           fastboot = true;
         }
         break;
@@ -444,7 +445,8 @@
     device->RemoveMenuItemForAction(Device::WIPE_CACHE);
   }
 
-  if (!android::base::GetBoolProperty("ro.boot.dynamic_partitions", false)) {
+  if (!android::base::GetBoolProperty("ro.boot.dynamic_partitions", false) &&
+      !android::base::GetBoolProperty("ro.fastbootd.available", false)) {
     device->RemoveMenuItemForAction(Device::ENTER_FASTBOOT);
   }
 
diff --git a/recovery_ui/screen_ui.cpp b/recovery_ui/screen_ui.cpp
index 58c50d1..13f6213 100644
--- a/recovery_ui/screen_ui.cpp
+++ b/recovery_ui/screen_ui.cpp
@@ -949,7 +949,8 @@
   no_command_text_ = LoadLocalizedBitmap("no_command_text");
   error_text_ = LoadLocalizedBitmap("error_text");
 
-  if (android::base::GetBoolProperty("ro.boot.dynamic_partitions", false)) {
+  if (android::base::GetBoolProperty("ro.boot.dynamic_partitions", false) ||
+      android::base::GetBoolProperty("ro.fastbootd.available", false)) {
     fastbootd_logo_ = LoadBitmap("fastbootd");
   }