Merge "minadbd sends heartbeat to rescue service for getprop command." am: 89cc79cbb6 am: d9ec0bbd06 am: bf57406110

am: c05656e15c

Change-Id: I292fec22ddf06d3006886c515539a0f460b89fe7
This commit is contained in:
Tao Bao
2019-07-10 14:46:16 -07:00
committed by android-build-merger
3 changed files with 12 additions and 1 deletions
+3 -1
View File
@@ -367,11 +367,13 @@ InstallResult ApplyFromAdb(Device* device, bool rescue_mode, Device::BuiltinActi
"\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);
});
command_map.emplace(MinadbdCommand::kNoOp, []() { return std::make_pair(true, true); });
ui->Print("\n\nWaiting for rescue commands...\n");
}
CreateMinadbdServiceAndExecuteCommands(ui, command_map, rescue_mode);
+8
View File
@@ -189,6 +189,14 @@ static void RescueGetpropHostService(unique_fd sfd, const std::string& prop) {
if (!android::base::WriteFully(sfd, result.data(), result.size())) {
exit(kMinadbdHostSocketIOError);
}
// Send heartbeat signal to keep the rescue service alive.
if (!WriteCommandToFd(MinadbdCommand::kNoOp, minadbd_socket)) {
exit(kMinadbdSocketIOError);
}
if (MinadbdCommandStatus status; !WaitForCommandStatus(minadbd_socket, &status)) {
exit(kMinadbdMessageFormatError);
}
}
// Reboots into the given target. We don't reboot directly from minadbd, but going through recovery
+1
View File
@@ -53,6 +53,7 @@ enum class MinadbdCommand : uint32_t {
kRebootRescue = 6,
kWipeCache = 7,
kWipeData = 8,
kNoOp = 9,
// Last but invalid command.
kError,