Merge "minadbd sends heartbeat to rescue service for getprop command."
This commit is contained in:
@@ -367,11 +367,13 @@ InstallResult ApplyFromAdb(Device* device, bool rescue_mode, Device::BuiltinActi
|
|||||||
"\n\nNow send the package you want to apply\n"
|
"\n\nNow send the package you want to apply\n"
|
||||||
"to the device with \"adb sideload <filename>\"...\n");
|
"to the device with \"adb sideload <filename>\"...\n");
|
||||||
} else {
|
} else {
|
||||||
ui->Print("\n\nWaiting for rescue commands...\n");
|
|
||||||
command_map.emplace(MinadbdCommand::kWipeData, [&device]() {
|
command_map.emplace(MinadbdCommand::kWipeData, [&device]() {
|
||||||
bool result = WipeData(device, false);
|
bool result = WipeData(device, false);
|
||||||
return std::make_pair(result, true);
|
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);
|
CreateMinadbdServiceAndExecuteCommands(ui, command_map, rescue_mode);
|
||||||
|
|||||||
@@ -189,6 +189,14 @@ static void RescueGetpropHostService(unique_fd sfd, const std::string& prop) {
|
|||||||
if (!android::base::WriteFully(sfd, result.data(), result.size())) {
|
if (!android::base::WriteFully(sfd, result.data(), result.size())) {
|
||||||
exit(kMinadbdHostSocketIOError);
|
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
|
// Reboots into the given target. We don't reboot directly from minadbd, but going through recovery
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ enum class MinadbdCommand : uint32_t {
|
|||||||
kRebootRescue = 6,
|
kRebootRescue = 6,
|
||||||
kWipeCache = 7,
|
kWipeCache = 7,
|
||||||
kWipeData = 8,
|
kWipeData = 8,
|
||||||
|
kNoOp = 9,
|
||||||
|
|
||||||
// Last but invalid command.
|
// Last but invalid command.
|
||||||
kError,
|
kError,
|
||||||
|
|||||||
Reference in New Issue
Block a user