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

Commit 59c744bd authored by David Anderson's avatar David Anderson Committed by Gerrit Code Review
Browse files

Merge "snapuserd: Allow connecting to the first-stage daemon."

parents 0b23b2a3 0e5ad5a0
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -206,6 +206,9 @@ bool OneShotInotify::ConsumeEvents() {
}

int64_t OneShotInotify::RemainingMs() const {
    if (relative_timeout_ == std::chrono::milliseconds::max()) {
        return std::chrono::milliseconds::max().count();
    }
    auto remaining = (std::chrono::steady_clock::now() - start_time_);
    auto elapsed = std::chrono::duration_cast<std::chrono::milliseconds>(remaining);
    return (relative_timeout_ - elapsed).count();
+3 −0
Original line number Diff line number Diff line
@@ -23,6 +23,9 @@ namespace fs_mgr {
// Wait at most |relative_timeout| milliseconds for |path| to exist. dirname(path)
// must already exist. For example, to wait on /dev/block/dm-6, /dev/block must
// be a valid directory.
//
// If relative_timeout is std::chrono::milliseconds::max(), then the wait will
// block indefinitely.
bool WaitForFile(const std::string& path, const std::chrono::milliseconds relative_timeout);

// Wait at most |relative_timeout| milliseconds for |path| to stop existing.
+1 −0
Original line number Diff line number Diff line
@@ -73,6 +73,7 @@ cc_defaults {
        "libbrotli",
        "libcutils_sockets",
        "libdm",
        "libfs_mgr",
        "libgflags",
        "liblog",
        "libsnapshot_cow",
+4 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ namespace snapshot {
static constexpr uint32_t PACKET_SIZE = 512;

static constexpr char kSnapuserdSocket[] = "snapuserd";
static constexpr char kSnapuserdSocketProxy[] = "snapuserd_proxy";

// Ensure that the second-stage daemon for snapuserd is running.
bool EnsureSnapuserdStarted();
@@ -75,6 +76,9 @@ class SnapuserdClient {
    // snapuserd to gracefully exit once all handler threads have terminated.
    // This should only be used on first-stage instances of snapuserd.
    bool DetachSnapuserd();

    // Returns true if the snapuserd instance supports bridging a socket to second-stage init.
    bool SupportsSecondStageSocketHandoff();
};

}  // namespace snapshot
+9 −0
Original line number Diff line number Diff line
@@ -5,3 +5,12 @@ service snapuserd /system/bin/snapuserd
    user root
    group root system
    seclabel u:r:snapuserd:s0

service snapuserd_proxy /system/bin/snapuserd -socket-handoff
    socket snapuserd stream 0660 system system
    socket snapuserd_proxy seqpacket 0660 system root
    oneshot
    disabled
    user root
    group root system
    seclabel u:r:snapuserd:s0
Loading