diff --git a/fastboot/fastboot.cpp b/fastboot/fastboot.cpp
index 2023349..14f5e4b 100644
--- a/fastboot/fastboot.cpp
+++ b/fastboot/fastboot.cpp
@@ -30,10 +30,10 @@
 #include "recovery_ui/ui.h"
 
 static const std::vector<std::pair<std::string, Device::BuiltinAction>> kFastbootMenuActions{
-  { "Reboot system now", Device::REBOOT_FROM_FASTBOOT },
+  { "Reboot system now", Device::REBOOT },
   { "Enter recovery", Device::ENTER_RECOVERY },
   { "Reboot to bootloader", Device::REBOOT_BOOTLOADER },
-  { "Power off", Device::SHUTDOWN_FROM_FASTBOOT },
+  { "Power off", Device::SHUTDOWN },
 };
 
 Device::BuiltinAction StartFastboot(Device* device, const std::vector<std::string>& /* args */) {
diff --git a/otautil/include/otautil/sysutil.h b/otautil/include/otautil/sysutil.h
index 326db86..48e9011 100644
--- a/otautil/include/otautil/sysutil.h
+++ b/otautil/include/otautil/sysutil.h
@@ -102,11 +102,11 @@
 };
 
 // Reboots the device into the specified target, by additionally handling quiescent reboot mode.
-// All unknown targets reboot into Android.
+// 'target' can be an empty string, which indicates booting into Android.
 bool Reboot(std::string_view target);
 
 // Triggers a shutdown.
-bool Shutdown(std::string_view target);
+bool Shutdown();
 
 // Returns a null-terminated char* array, where the elements point to the C-strings in the given
 // vector, plus an additional nullptr at the end. This is a helper function that facilitates
diff --git a/otautil/sysutil.cpp b/otautil/sysutil.cpp
index a882985..420db4c 100644
--- a/otautil/sysutil.cpp
+++ b/otautil/sysutil.cpp
@@ -229,9 +229,9 @@
   return android::base::SetProperty(ANDROID_RB_PROPERTY, cmd);
 }
 
-bool Shutdown(std::string_view target) {
-  std::string cmd = "shutdown," + std::string(target);
-  return android::base::SetProperty(ANDROID_RB_PROPERTY, cmd);
+bool Shutdown() {
+  // "shutdown" doesn't need a "reason" arg nor a comma.
+  return android::base::SetProperty(ANDROID_RB_PROPERTY, "shutdown");
 }
 
 std::vector<char*> StringVectorToNullTerminatedArray(const std::vector<std::string>& args) {
diff --git a/recovery.cpp b/recovery.cpp
index eb0c2b2..20e5a1b 100644
--- a/recovery.cpp
+++ b/recovery.cpp
@@ -356,8 +356,6 @@
             : device->InvokeMenuItem(chosen_item);
 
     switch (chosen_action) {
-      case Device::REBOOT_FROM_FASTBOOT:    // Can not happen
-      case Device::SHUTDOWN_FROM_FASTBOOT:  // Can not happen
       case Device::NO_ACTION:
         break;
 
diff --git a/recovery_main.cpp b/recovery_main.cpp
index f78c1c7..aba9c5d 100644
--- a/recovery_main.cpp
+++ b/recovery_main.cpp
@@ -471,12 +471,7 @@
     switch (ret) {
       case Device::SHUTDOWN:
         ui->Print("Shutting down...\n");
-        Shutdown("recovery");
-        break;
-
-      case Device::SHUTDOWN_FROM_FASTBOOT:
-        ui->Print("Shutting down...\n");
-        Shutdown("fastboot");
+        Shutdown();
         break;
 
       case Device::REBOOT_BOOTLOADER:
@@ -525,19 +520,9 @@
         fastboot = false;
         break;
 
-      case Device::REBOOT:
-        ui->Print("Rebooting...\n");
-        Reboot("recovery_menu");
-        break;
-
-      case Device::REBOOT_FROM_FASTBOOT:
-        ui->Print("Rebooting...\n");
-        Reboot("fastboot_menu");
-        break;
-
       default:
         ui->Print("Rebooting...\n");
-        Reboot("unknown" + std::to_string(ret));
+        Reboot("");
         break;
     }
   }
diff --git a/recovery_ui/include/recovery_ui/device.h b/recovery_ui/include/recovery_ui/device.h
index 9a4edf2..7c76cdb 100644
--- a/recovery_ui/include/recovery_ui/device.h
+++ b/recovery_ui/include/recovery_ui/device.h
@@ -58,8 +58,6 @@
     REBOOT_FASTBOOT = 17,
     REBOOT_RECOVERY = 18,
     REBOOT_RESCUE = 19,
-    REBOOT_FROM_FASTBOOT = 20,
-    SHUTDOWN_FROM_FASTBOOT = 21,
   };
 
   explicit Device(RecoveryUI* ui);
diff --git a/recovery_ui/ui.cpp b/recovery_ui/ui.cpp
index fc51775..7ea9307 100644
--- a/recovery_ui/ui.cpp
+++ b/recovery_ui/ui.cpp
@@ -375,7 +375,7 @@
 
       case RecoveryUI::REBOOT:
         if (reboot_enabled) {
-          Reboot("recovery_ui");
+          Reboot("");
           while (true) {
             pause();
           }
