| /* |
| * Main entry of system server process. |
| * |
| * Calls the standard system initialization function, and then |
| * puts the main thread into the thread pool so it can handle |
| * incoming transactions. |
| * |
| */ |
| |
| #define LOG_TAG "sysproc" |
| |
| #include <binder/IPCThreadState.h> |
| #include <utils/Log.h> |
| |
| #include <private/android_filesystem_config.h> |
| |
| #include <sys/time.h> |
| #include <sys/resource.h> |
| |
| #include <signal.h> |
| #include <stdio.h> |
| #include <unistd.h> |
| |
| using namespace android; |
| |
| extern "C" status_t system_init(); |
| |
| bool finish_system_init() |
| { |
| return true; |
| } |
| |
| static void blockSignals() |
| { |
| sigset_t mask; |
| int cc; |
| |
| sigemptyset(&mask); |
| sigaddset(&mask, SIGQUIT); |
| sigaddset(&mask, SIGUSR1); |
| cc = sigprocmask(SIG_BLOCK, &mask, NULL); |
| assert(cc == 0); |
| } |
| |
| int main(int argc, const char* const argv[]) |
| { |
| LOGI("System server is starting with pid=%d.\n", getpid()); |
| |
| blockSignals(); |
| |
| // You can trust me, honestly! |
| LOGW("*** Current priority: %d\n", getpriority(PRIO_PROCESS, 0)); |
| setpriority(PRIO_PROCESS, 0, -1); |
| |
| #if HAVE_ANDROID_OS |
| //setgid(GID_SYSTEM); |
| //setuid(UID_SYSTEM); |
| #endif |
| |
| system_init(); |
| } |