diff options
author | Felipe Leme <felipeal@google.com> | 2016-10-25 18:18:24 +0000 |
---|---|---|
committer | Felipe Leme <felipeal@google.com> | 2016-10-25 18:34:42 +0000 |
commit | bb6b6046237d06e81440dfc2fc788640cbc48d1f (patch) | |
tree | 5860a45cb489528fbe1b79a30f03142fffc33131 | |
parent | 1d3df546d5ee4dcc9e7cae6f8b8b790f741539af (diff) | |
download | native-bb6b6046237d06e81440dfc2fc788640cbc48d1f.tar.gz |
DO NOT MERGE. Revert "Dumpstate should hold a wakelock to save bug report time."
This reverts commit f87959e00732d7d737527f1248a71adea99ae29d.
BUG: 32402587
Fixes: 32365477
Change-Id: Ic4daec37efbaef1906450bf6609d5588d5c9a835
-rw-r--r-- | cmds/dumpstate/Android.mk | 2 | ||||
-rw-r--r-- | cmds/dumpstate/dumpstate.cpp | 41 | ||||
-rw-r--r-- | cmds/dumpstate/utils.cpp | 8 |
3 files changed, 12 insertions, 39 deletions
diff --git a/cmds/dumpstate/Android.mk b/cmds/dumpstate/Android.mk index 7a9f9adcb3..791a7c4a61 100644 --- a/cmds/dumpstate/Android.mk +++ b/cmds/dumpstate/Android.mk @@ -14,7 +14,7 @@ LOCAL_SRC_FILES := dumpstate.cpp utils.cpp LOCAL_MODULE := dumpstate -LOCAL_SHARED_LIBRARIES := libcutils liblog libselinux libbase libhardware_legacy +LOCAL_SHARED_LIBRARIES := libcutils liblog libselinux libbase # ZipArchive support, the order matters here to get all symbols. LOCAL_STATIC_LIBRARIES := libziparchive libz libmincrypt LOCAL_HAL_STATIC_LIBRARIES := libdumpstate diff --git a/cmds/dumpstate/dumpstate.cpp b/cmds/dumpstate/dumpstate.cpp index 0ff693375c..538f0b4330 100644 --- a/cmds/dumpstate/dumpstate.cpp +++ b/cmds/dumpstate/dumpstate.cpp @@ -22,7 +22,6 @@ #include <memory> #include <regex> #include <set> -#include <signal.h> #include <stdbool.h> #include <stdio.h> #include <stdlib.h> @@ -37,7 +36,6 @@ #include <android-base/stringprintf.h> #include <cutils/properties.h> -#include <hardware_legacy/power.h> #include "private/android_filesystem_config.h" @@ -83,7 +81,6 @@ static std::string suffix; #define TOMBSTONE_MAX_LEN (sizeof(TOMBSTONE_FILE_PREFIX) + 4) #define NUM_TOMBSTONES 10 #define WLUTIL "/vendor/xbin/wlutil" -#define WAKE_LOCK_NAME "dumpstate_wakelock" typedef struct { char name[TOMBSTONE_MAX_LEN]; @@ -1019,31 +1016,11 @@ static void usage() { VERSION_DEFAULT.c_str()); } -static void wake_lock_releaser() { - if (release_wake_lock(WAKE_LOCK_NAME) < 0) { - MYLOGE("Failed to release wake lock: %s \n", strerror(errno)); - } else { - MYLOGD("Wake lock released.\n"); - } -} - -static void sig_handler(int signo) { - wake_lock_releaser(); +static void sigpipe_handler(int n) { + // don't complain to stderr or stdout _exit(EXIT_FAILURE); } -static void register_sig_handler() { - struct sigaction sa; - sigemptyset(&sa.sa_mask); - sa.sa_flags = 0; - sa.sa_handler = sig_handler; - sigaction(SIGPIPE, &sa, NULL); // broken pipe - sigaction(SIGSEGV, &sa, NULL); // segment fault - sigaction(SIGINT, &sa, NULL); // ctrl-c - sigaction(SIGTERM, &sa, NULL); // killed - sigaction(SIGQUIT, &sa, NULL); // quit -} - /* adds the temporary report to the existing .zip file, closes the .zip file, and removes the temporary file. */ @@ -1111,6 +1088,7 @@ static std::string SHA256_file_hash(std::string filepath) { } int main(int argc, char *argv[]) { + struct sigaction sigact; int do_add_date = 0; int do_zip_file = 0; int do_vibrate = 1; @@ -1127,14 +1105,6 @@ int main(int argc, char *argv[]) { MYLOGI("begin\n"); - if (acquire_wake_lock(PARTIAL_WAKE_LOCK, WAKE_LOCK_NAME) < 0) { - MYLOGE("Failed to acquire wake lock: %s \n", strerror(errno)); - } else { - MYLOGD("Wake lock acquired.\n"); - atexit(wake_lock_releaser); - register_sig_handler(); - } - /* gets the sequential id */ char last_id[PROPERTY_VALUE_MAX]; property_get("dumpstate.last_id", last_id, "0"); @@ -1143,6 +1113,11 @@ int main(int argc, char *argv[]) { property_set("dumpstate.last_id", last_id); MYLOGI("dumpstate id: %lu\n", id); + /* clear SIGPIPE handler */ + memset(&sigact, 0, sizeof(sigact)); + sigact.sa_handler = sigpipe_handler; + sigaction(SIGPIPE, &sigact, NULL); + /* set as high priority, and protect from OOM killer */ setpriority(PRIO_PROCESS, 0, -20); diff --git a/cmds/dumpstate/utils.cpp b/cmds/dumpstate/utils.cpp index 1035cde9d4..fd6413d562 100644 --- a/cmds/dumpstate/utils.cpp +++ b/cmds/dumpstate/utils.cpp @@ -828,7 +828,7 @@ bool drop_root_user() { } gid_t groups[] = { AID_LOG, AID_SDCARD_R, AID_SDCARD_RW, - AID_MOUNT, AID_INET, AID_NET_BW_STATS, AID_READPROC, AID_WAKELOCK }; + AID_MOUNT, AID_INET, AID_NET_BW_STATS, AID_READPROC }; if (setgroups(sizeof(groups)/sizeof(groups[0]), groups) != 0) { MYLOGE("Unable to setgroups, aborting: %s\n", strerror(errno)); return false; @@ -849,10 +849,8 @@ bool drop_root_user() { capheader.version = _LINUX_CAPABILITY_VERSION_3; capheader.pid = 0; - capdata[CAP_TO_INDEX(CAP_SYSLOG)].permitted = - (CAP_TO_MASK(CAP_SYSLOG) | CAP_TO_MASK(CAP_BLOCK_SUSPEND)); - capdata[CAP_TO_INDEX(CAP_SYSLOG)].effective = - (CAP_TO_MASK(CAP_SYSLOG) | CAP_TO_MASK(CAP_BLOCK_SUSPEND)); + capdata[CAP_TO_INDEX(CAP_SYSLOG)].permitted = CAP_TO_MASK(CAP_SYSLOG); + capdata[CAP_TO_INDEX(CAP_SYSLOG)].effective = CAP_TO_MASK(CAP_SYSLOG); capdata[0].inheritable = 0; capdata[1].inheritable = 0; |