disable async reboot during package installation

The default recovery UI will reboot the device when the power key is
pressed 7 times in a row, regardless of what recovery is doing.
Disable this feature during package installation, to minimize the
chance of corrupting the device due to a mid-install reboot.  (Debug
packages can explicitly request that the feature be reenabled.)

Change-Id: I20f3ec240ecd344615d452005ff26d8dd7775acf
diff --git a/install.cpp b/install.cpp
index 0bd7945..0f05960 100644
--- a/install.cpp
+++ b/install.cpp
@@ -160,6 +160,11 @@
             *wipe_cache = 1;
         } else if (strcmp(command, "clear_display") == 0) {
             ui->SetBackground(RecoveryUI::NONE);
+        } else if (strcmp(command, "enable_reboot") == 0) {
+            // packages can explicitly request that they want the user
+            // to be able to reboot during installation (useful for
+            // debugging packages that don't exit).
+            ui->SetEnableReboot(true);
         } else {
             LOGE("unknown command [%s]\n", command);
         }
@@ -236,7 +241,9 @@
     /* Verify and install the contents of the package.
      */
     ui->Print("Installing update...\n");
+    ui->SetEnableReboot(false);
     int result = try_update_binary(path, &zip, wipe_cache);
+    ui->SetEnableReboot(true);
 
     sysReleaseMap(&map);