summaryrefslogtreecommitdiffstats
path: root/minadbd
diff options
context:
space:
mode:
authorTao Bao <tbao@google.com>2019-07-09 03:07:22 +0200
committerTao Bao <tbao@google.com>2019-07-09 20:09:34 +0200
commit2223e6a9f8bf24b023e8ae3103b50c37def3147e (patch)
treecd234862926d9c67dcde446000deb4ba7c7b3efd /minadbd
parentMerge "Add a GetMappedPackageLength to Updater" (diff)
downloadandroid_bootable_recovery-2223e6a9f8bf24b023e8ae3103b50c37def3147e.tar
android_bootable_recovery-2223e6a9f8bf24b023e8ae3103b50c37def3147e.tar.gz
android_bootable_recovery-2223e6a9f8bf24b023e8ae3103b50c37def3147e.tar.bz2
android_bootable_recovery-2223e6a9f8bf24b023e8ae3103b50c37def3147e.tar.lz
android_bootable_recovery-2223e6a9f8bf24b023e8ae3103b50c37def3147e.tar.xz
android_bootable_recovery-2223e6a9f8bf24b023e8ae3103b50c37def3147e.tar.zst
android_bootable_recovery-2223e6a9f8bf24b023e8ae3103b50c37def3147e.zip
Diffstat (limited to 'minadbd')
-rw-r--r--minadbd/minadbd_services.cpp8
-rw-r--r--minadbd/minadbd_types.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/minadbd/minadbd_services.cpp b/minadbd/minadbd_services.cpp
index 1e6eb3165..0becfa43c 100644
--- a/minadbd/minadbd_services.cpp
+++ b/minadbd/minadbd_services.cpp
@@ -190,6 +190,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
diff --git a/minadbd/minadbd_types.h b/minadbd/minadbd_types.h
index 99fd45e83..002523f1f 100644
--- a/minadbd/minadbd_types.h
+++ b/minadbd/minadbd_types.h
@@ -53,6 +53,7 @@ enum class MinadbdCommand : uint32_t {
kRebootRescue = 6,
kWipeCache = 7,
kWipeData = 8,
+ kNoOp = 9,
// Last but invalid command.
kError,