diff --git a/logcat/logcat.cpp b/logcat/logcat.cpp index 736e02eaa..e598bb810 100644 --- a/logcat/logcat.cpp +++ b/logcat/logcat.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -33,6 +34,7 @@ #include #include #include +#include #define DEFAULT_MAX_ROTATED_LOGS 4 @@ -221,6 +223,10 @@ static void setupOutput() fprintf(stderr, "failed to set to batch scheduler\n"); } + if (setpriority(PRIO_PROCESS, 0, ANDROID_PRIORITY_BACKGROUND) < 0) { + fprintf(stderr, "failed set to priority\n"); + } + g_outFD = openLogFile (g_outputFileName); if (g_outFD < 0) { diff --git a/logd/main.cpp b/logd/main.cpp index 6db819e31..47f11fb89 100644 --- a/logd/main.cpp +++ b/logd/main.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -37,6 +38,7 @@ #include #include #include +#include #include "CommandListener.h" #include "LogBuffer.h" @@ -91,6 +93,10 @@ static int drop_privs() { return -1; } + if (setpriority(PRIO_PROCESS, 0, ANDROID_PRIORITY_BACKGROUND) < 0) { + return -1; + } + if (prctl(PR_SET_KEEPCAPS, 1) < 0) { return -1; } @@ -156,6 +162,7 @@ static LogBuffer *logBuf = NULL; static void *reinit_thread_start(void * /*obj*/) { prctl(PR_SET_NAME, "logd.daemon"); set_sched_policy(0, SP_BACKGROUND); + setpriority(PRIO_PROCESS, 0, ANDROID_PRIORITY_BACKGROUND); setgid(AID_SYSTEM); setuid(AID_SYSTEM);