Loading fs_mgr/file_wait.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -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(); Loading fs_mgr/include/fs_mgr/file_wait.h +3 −0 Original line number Diff line number Diff line Loading @@ -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. Loading fs_mgr/libsnapshot/snapuserd/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ cc_defaults { "libbrotli", "libcutils_sockets", "libdm", "libfs_mgr", "libgflags", "liblog", "libsnapshot_cow", Loading fs_mgr/libsnapshot/snapuserd/include/snapuserd/snapuserd_client.h +4 −0 Original line number Diff line number Diff line Loading @@ -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(); Loading Loading @@ -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 Loading fs_mgr/libsnapshot/snapuserd/snapuserd.rc +9 −0 Original line number Diff line number Diff line Loading @@ -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
fs_mgr/file_wait.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -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(); Loading
fs_mgr/include/fs_mgr/file_wait.h +3 −0 Original line number Diff line number Diff line Loading @@ -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. Loading
fs_mgr/libsnapshot/snapuserd/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,7 @@ cc_defaults { "libbrotli", "libcutils_sockets", "libdm", "libfs_mgr", "libgflags", "liblog", "libsnapshot_cow", Loading
fs_mgr/libsnapshot/snapuserd/include/snapuserd/snapuserd_client.h +4 −0 Original line number Diff line number Diff line Loading @@ -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(); Loading Loading @@ -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 Loading
fs_mgr/libsnapshot/snapuserd/snapuserd.rc +9 −0 Original line number Diff line number Diff line Loading @@ -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