diff options
author | Tianjie Xu <xunchang@google.com> | 2019-04-29 19:47:20 +0200 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2019-04-29 19:47:20 +0200 |
commit | 8fc8f39b623e024ec015d1fef06a0a3013835946 (patch) | |
tree | a0561a174f68bd867fe5bdaff42ca8e1ac1d9f39 /install/adb_install.cpp | |
parent | Merge "Add recovery_host_test to TEST_MAPPING." (diff) | |
parent | Support wipe command in rescue mode (diff) | |
download | android_bootable_recovery-8fc8f39b623e024ec015d1fef06a0a3013835946.tar android_bootable_recovery-8fc8f39b623e024ec015d1fef06a0a3013835946.tar.gz android_bootable_recovery-8fc8f39b623e024ec015d1fef06a0a3013835946.tar.bz2 android_bootable_recovery-8fc8f39b623e024ec015d1fef06a0a3013835946.tar.lz android_bootable_recovery-8fc8f39b623e024ec015d1fef06a0a3013835946.tar.xz android_bootable_recovery-8fc8f39b623e024ec015d1fef06a0a3013835946.tar.zst android_bootable_recovery-8fc8f39b623e024ec015d1fef06a0a3013835946.zip |
Diffstat (limited to 'install/adb_install.cpp')
-rw-r--r-- | install/adb_install.cpp | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/install/adb_install.cpp b/install/adb_install.cpp index 9dfe0407f..4dd1f1b09 100644 --- a/install/adb_install.cpp +++ b/install/adb_install.cpp @@ -43,6 +43,7 @@ #include "fuse_sideload.h" #include "install/install.h" +#include "install/wipe_data.h" #include "minadbd_types.h" #include "otautil/sysutil.h" #include "recovery_ui/device.h" @@ -330,7 +331,7 @@ static void CreateMinadbdServiceAndExecuteCommands( signal(SIGPIPE, SIG_DFL); } -int ApplyFromAdb(RecoveryUI* ui, bool rescue_mode, Device::BuiltinAction* reboot_action) { +int ApplyFromAdb(Device* device, bool rescue_mode, Device::BuiltinAction* reboot_action) { // Save the usb state to restore after the sideload operation. std::string usb_state = android::base::GetProperty("sys.usb.state", "none"); // Clean up state and stop adbd. @@ -339,13 +340,7 @@ int ApplyFromAdb(RecoveryUI* ui, bool rescue_mode, Device::BuiltinAction* reboot return INSTALL_ERROR; } - if (!rescue_mode) { - ui->Print( - "\n\nNow send the package you want to apply\n" - "to the device with \"adb sideload <filename>\"...\n"); - } else { - ui->Print("\n\nWaiting for rescue commands...\n"); - } + RecoveryUI* ui = device->GetUI(); int install_result = INSTALL_ERROR; std::map<MinadbdCommand, CommandFunction> command_map{ @@ -363,6 +358,18 @@ int ApplyFromAdb(RecoveryUI* ui, bool rescue_mode, Device::BuiltinAction* reboot std::bind(&AdbRebootHandler, MinadbdCommand::kRebootRescue, &install_result, reboot_action) }, }; + if (!rescue_mode) { + ui->Print( + "\n\nNow send the package you want to apply\n" + "to the device with \"adb sideload <filename>\"...\n"); + } else { + ui->Print("\n\nWaiting for rescue commands...\n"); + command_map.emplace(MinadbdCommand::kWipeData, [&device]() { + bool result = WipeData(device, false); + return std::make_pair(result, true); + }); + } + CreateMinadbdServiceAndExecuteCommands(ui, command_map, rescue_mode); // Clean up before switching to the older state, for example setting the state |