diff options
Diffstat (limited to 'core/java/android/os/RecoverySystem.java')
| -rw-r--r-- | core/java/android/os/RecoverySystem.java | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/core/java/android/os/RecoverySystem.java b/core/java/android/os/RecoverySystem.java index d48431afe691..7f9ea438cb95 100644 --- a/core/java/android/os/RecoverySystem.java +++ b/core/java/android/os/RecoverySystem.java @@ -491,15 +491,10 @@ public class RecoverySystem { command += securityArg; } + // RECOVERY_SERVICE writes to BCB (bootloader control block) and triggers the reboot. RecoverySystem rs = (RecoverySystem) context.getSystemService( Context.RECOVERY_SERVICE); - if (!rs.setupBcb(command)) { - throw new IOException("Setup BCB failed"); - } - - // Having set up the BCB (bootloader control block), go ahead and reboot - PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); - pm.reboot(PowerManager.REBOOT_RECOVERY_UPDATE); + rs.rebootRecoveryWithCommand(command, true /* update */); throw new IOException("Reboot failed (no permissions?)"); } @@ -713,7 +708,7 @@ public class RecoverySystem { // Write the command into BCB (bootloader control block) and boot from // there. Will not return unless failed. RecoverySystem rs = (RecoverySystem) context.getSystemService(Context.RECOVERY_SERVICE); - rs.rebootRecoveryWithCommand(command.toString()); + rs.rebootRecoveryWithCommand(command.toString(), false); throw new IOException("Reboot failed (no permissions?)"); } @@ -913,9 +908,9 @@ public class RecoverySystem { * Talks to RecoverySystemService via Binder to set up the BCB command and * reboot into recovery accordingly. */ - private void rebootRecoveryWithCommand(String command) { + private void rebootRecoveryWithCommand(String command, boolean update) { try { - mService.rebootRecoveryWithCommand(command); + mService.rebootRecoveryWithCommand(command, update); } catch (RemoteException ignored) { } } |
