diff options
author | Tianjie Xu <xunchang@google.com> | 2019-04-29 20:06:22 +0200 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-04-29 20:06:22 +0200 |
commit | 473532343c3a3fc2b3680167617891e61d9abc0c (patch) | |
tree | 0ca7967a9341ef5aa58820c27f33a31647c31d8c /install/adb_install.cpp | |
parent | Merge "Add recovery_host_test to TEST_MAPPING." am: 42168c4ab2 (diff) | |
parent | Merge "Support wipe command in rescue mode" (diff) | |
download | android_bootable_recovery-473532343c3a3fc2b3680167617891e61d9abc0c.tar android_bootable_recovery-473532343c3a3fc2b3680167617891e61d9abc0c.tar.gz android_bootable_recovery-473532343c3a3fc2b3680167617891e61d9abc0c.tar.bz2 android_bootable_recovery-473532343c3a3fc2b3680167617891e61d9abc0c.tar.lz android_bootable_recovery-473532343c3a3fc2b3680167617891e61d9abc0c.tar.xz android_bootable_recovery-473532343c3a3fc2b3680167617891e61d9abc0c.tar.zst android_bootable_recovery-473532343c3a3fc2b3680167617891e61d9abc0c.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 |