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
This commit is contained in:
@@ -160,6 +160,11 @@ try_update_binary(const char *path, ZipArchive *zip, int* wipe_cache) {
|
||||
*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 @@ really_install_package(const char *path, int* wipe_cache)
|
||||
/* 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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user