diff options
author | Tianjie Xu <xunchang@google.com> | 2017-04-21 03:08:21 +0200 |
---|---|---|
committer | Tianjie Xu <xunchang@google.com> | 2017-04-22 00:49:30 +0200 |
commit | d9d16297dd0cdc186ac7fbe867b61eb035e3548c (patch) | |
tree | 4f77cc6d066a0e567a362414b783d27a3a689457 | |
parent | Merge "Add 'system' to update_verifier's gid" (diff) | |
download | android_bootable_recovery-d9d16297dd0cdc186ac7fbe867b61eb035e3548c.tar android_bootable_recovery-d9d16297dd0cdc186ac7fbe867b61eb035e3548c.tar.gz android_bootable_recovery-d9d16297dd0cdc186ac7fbe867b61eb035e3548c.tar.bz2 android_bootable_recovery-d9d16297dd0cdc186ac7fbe867b61eb035e3548c.tar.lz android_bootable_recovery-d9d16297dd0cdc186ac7fbe867b61eb035e3548c.tar.xz android_bootable_recovery-d9d16297dd0cdc186ac7fbe867b61eb035e3548c.tar.zst android_bootable_recovery-d9d16297dd0cdc186ac7fbe867b61eb035e3548c.zip |
-rw-r--r-- | recovery.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/recovery.cpp b/recovery.cpp index b24efa963..99126eedc 100644 --- a/recovery.cpp +++ b/recovery.cpp @@ -1593,14 +1593,22 @@ int main(int argc, char **argv) { } } - if (!sideload_auto_reboot && (status == INSTALL_ERROR || status == INSTALL_CORRUPT)) { - copy_logs(); + if (status == INSTALL_ERROR || status == INSTALL_CORRUPT) { ui->SetBackground(RecoveryUI::ERROR); + if (!ui->IsTextVisible()) { + sleep(5); + } } Device::BuiltinAction after = shutdown_after ? Device::SHUTDOWN : Device::REBOOT; - if ((status != INSTALL_SUCCESS && status != INSTALL_SKIPPED && !sideload_auto_reboot) || - ui->IsTextVisible()) { + // 1. If the recovery menu is visible, prompt and wait for commands. + // 2. If the state is INSTALL_NONE, wait for commands. (i.e. In user build, manually reboot into + // recovery to sideload a package.) + // 3. sideload_auto_reboot is an option only available in user-debug build, reboot the device + // without waiting. + // 4. In all other cases, reboot the device. Therefore, normal users will observe the device + // reboot after it shows the "error" screen for 5s. + if ((status == INSTALL_NONE && !sideload_auto_reboot) || ui->IsTextVisible()) { Device::BuiltinAction temp = prompt_and_wait(device, status); if (temp != Device::NO_ACTION) { after = temp; |