summaryrefslogtreecommitdiff
path: root/init/service_utils.cpp
AgeCommit message (Collapse)Author
2020-07-28Cleanup for #inclusivefixit.Elliott Hughes
Test: treehugger Change-Id: I651689e2d59c017a9bde44251d95b57e594f0b5b
2020-06-11init: start ueventd in the default mount namespaceJooyung Han
Init starts ueventd in the default mount namespace to support loading firmware from APEXes. Bug: 155023652 Test: devices boots adb$ nsenter -t (pid of ueventd) -m ls /apex => shows all APEXes Change-Id: Ibb8b33a07eb014752275e3bca4541b8b694dc64b
2020-02-07Merge "Convert system/core to Result::ok()"Treehugger Robot
2020-02-06Convert system/core to Result::ok()Bernie Innocenti
No functionality changes, this is a mechanical cleanup. Test: m Test: cd system/core && atest Change-Id: Ifdaa3ce1947ed578f656d5a446978726eb416c36
2020-02-05init: use ErrnoErrorf() instead of ErrnoError() << StringPrintf()Tom Cherry
Test: force init to print this line and see the log message Change-Id: Ibb74572347f915cd76cc50f4c19126b66f562810
2019-09-24init: add stdio_to_kmsg optionTom Cherry
Some services are not native android services and therefore don't log via the normal mechanisms. This gives developers an option to have their stdout/stderr logs sent directly to kmsg. Test: see test prints to kernel log Change-Id: I7973ea74d5cab3a90c2cd9a3d5de2266439d0c01
2019-09-19init: create sockets before forkingTom Cherry
There is a race condition with Service::Start and socket creation. Since socket creation currently happens after the fork(), it's possible that init can continue executing other commands before the socket is created. If init starts another service that relies on that socket, it isn't guaranteed to be available. Particularly, we've seen this with hwservicemanager starting after logd, but hwservicemanager's logs sometimes not showing up. Bug: 140810300 Test: boot and logging functions correctly Change-Id: Ib2932e836d345830cd38f3b556598508fd953058
2019-07-15init: clean up file / socket descriptor creationTom Cherry
clang-tidy hinted that some of this code wasn't right. Looking deeper, there is really not much related to file and socket descriptors, except that they're published in similar ways to the environment. All of the abstraction into a 'Descriptor' class takes us further away from specifying what we really mean. This removes that abstraction, adds stricter checks and better errors for parsing init scripts, reports sockets and files that are unable to be acquired before exec, and updates the README.md for the passcred option. Test: build, logd (uses files and sockets) works Change-Id: I59e611e95c85bdbefa779ef69b32b9dd4ee203e2
2019-07-09Fix a few clang-tidy issues and add NOLINT for othersTom Cherry
android-base: * Add NOLINT for expanding namespace std for std::string* ostream overload libdm: * Fix missing parentesis around macro parameters init: * Fix missing CLOEXEC usage and add NOLINT for the intended usages. * Fix missing parentesis around macro parameters * Fix erase() / remove_if() idiom * Correctly specific unsigned char when intended * 'namespace flags' should be signed, since 'flags' it signed for clone() * Add clear to property restore vector<string> to empty after move * Explicit comparison against 0 for strcmp Test: build Change-Id: I8c31dafda2c43ebc5aa50124cbbd6e23ed2c4101
2019-06-10init: replace Result<Success> with Result<void>Tom Cherry
Now that Result<T> is actually expected<T, ...>, and the expected proposal states expected<void, ...> as the way to indicate an expected object that returns either successfully with no object or an error, let's move init's Result<Success> to the preferred Result<void>. Bug: 132145659 Test: boot, init unit tests Change-Id: Ib2f98396d8e6e274f95a496fcdfd8341f77585ee
2019-05-30init: Refactor service.h/cppVic Yang
Factors out utility functions into service_utils.h/cpp, so that they can be reused by the upcoming native zygote. Bug: 133443795 Test: Build and boot cuttlefish. Change-Id: I0531b6f17561119c8cc33dd9ba375b351747fcfe