Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 22842021 authored by David Anderson's avatar David Anderson Committed by Automerger Merge Worker
Browse files

Merge "snapuserd: Improve EnsureSnapuserdConnected logic." am: 2a1603d0

Original change: https://android-review.googlesource.com/c/platform/system/core/+/1780971

Change-Id: I439ba26f3d5ce16ac3c08c3d81435639f5edbb9d
parents 7e91d810 2a1603d0
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -14,3 +14,6 @@ service snapuserd_proxy /system/bin/snapuserd -socket-handoff
    user root
    group root system
    seclabel u:r:snapuserd:s0

on property:init.svc.snapuserd=stopped
    setprop snapuserd.ready false
+8 −6
Original line number Diff line number Diff line
@@ -42,15 +42,17 @@ using namespace std::chrono_literals;
using android::base::unique_fd;

bool EnsureSnapuserdStarted() {
    if (android::base::GetProperty("init.svc.snapuserd", "") == "running") {
        return true;
    }

    if (android::base::GetProperty("init.svc.snapuserd", "") != "running") {
        android::base::SetProperty("ctl.start", "snapuserd");
        if (!android::base::WaitForProperty("init.svc.snapuserd", "running", 10s)) {
            LOG(ERROR) << "Timed out waiting for snapuserd to start.";
            return false;
        }
    }
    if (!android::base::WaitForProperty("snapuserd.ready", "true", 10s)) {
        LOG(ERROR) << "Timed out waiting for snapuserd to be ready.";
        return false;
    }
    return true;
}

+8 −0
Original line number Diff line number Diff line
@@ -291,6 +291,14 @@ bool SnapuserdServer::StartWithSocket(bool start_listening) {

    AddWatchedFd(sockfd_, POLLIN);

    // If started in first-stage init, the property service won't be online.
    if (access("/dev/socket/property_service", F_OK) == 0) {
        if (!android::base::SetProperty("snapuserd.ready", "true")) {
            LOG(ERROR) << "Failed to set snapuserd.ready property";
            return false;
        }
    }

    LOG(DEBUG) << "Snapuserd server now accepting connections";
    return true;
}