diff options
author | Jeff Sharkey <jsharkey@android.com> | 2013-03-13 15:45:50 -0700 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2013-03-13 16:59:27 -0700 |
commit | 27f9e6d849fce956c9b8f1ad5c3d9a954501a76b (patch) | |
tree | 3c302cdbb494fd61c56d97f7b6c9d098d5995c2d /cmds/dumpstate | |
parent | f795852b54b39eb373e0c421b63dc9a98822ac2c (diff) | |
download | frameworks_native-27f9e6d849fce956c9b8f1ad5c3d9a954501a76b.zip frameworks_native-27f9e6d849fce956c9b8f1ad5c3d9a954501a76b.tar.gz frameworks_native-27f9e6d849fce956c9b8f1ad5c3d9a954501a76b.tar.bz2 |
Support broadcast when dumpstate finishes.
Add flag that sends BUGREPORT_FINISHED broadcast when dumpstate
is finished, including the resulting filesystem paths. Also reduces
directory creation to 0770.
Bug: 7005318
Change-Id: Id4c6b699a56f8acd859b7ab73368500e1a8f3c67
Diffstat (limited to 'cmds/dumpstate')
-rw-r--r-- | cmds/dumpstate/dumpstate.c | 15 | ||||
-rw-r--r-- | cmds/dumpstate/utils.c | 2 |
2 files changed, 14 insertions, 3 deletions
diff --git a/cmds/dumpstate/dumpstate.c b/cmds/dumpstate/dumpstate.c index 9a1839d..7fed209 100644 --- a/cmds/dumpstate/dumpstate.c +++ b/cmds/dumpstate/dumpstate.c @@ -161,7 +161,7 @@ static void dumpstate() { if (screenshot_path[0]) { ALOGI("taking screenshot\n"); - run_command(NULL, 5, SU_PATH, "root", "screenshot", screenshot_path, NULL); + run_command(NULL, 5, "/system/bin/screencap", "-p", screenshot_path, NULL); ALOGI("wrote screenshot: %s\n", screenshot_path); } @@ -311,6 +311,7 @@ static void usage() { " -b: play sound file instead of vibrate, at beginning of job\n" " -e: play sound file instead of vibrate, at end of job\n" " -q: disable vibrate\n" + " -B: send broadcast when finished (requires -o and -p)\n" ); } @@ -323,6 +324,7 @@ int main(int argc, char *argv[]) { char* end_sound = 0; int use_socket = 0; int do_fb = 0; + int do_broadcast = 0; if (getuid() != 0) { // Old versions of the adb client would call the @@ -348,7 +350,7 @@ int main(int argc, char *argv[]) { dump_traces_path = dump_traces(); int c; - while ((c = getopt(argc, argv, "b:de:ho:svqzp")) != -1) { + while ((c = getopt(argc, argv, "b:de:ho:svqzpB")) != -1) { switch (c) { case 'b': begin_sound = optarg; break; case 'd': do_add_date = 1; break; @@ -359,6 +361,7 @@ int main(int argc, char *argv[]) { case 'q': do_vibrate = 0; break; case 'z': do_compress = 6; break; case 'p': do_fb = 1; break; + case 'B': do_broadcast = 1; break; case '?': printf("\n"); case 'h': usage(); @@ -474,6 +477,14 @@ int main(int argc, char *argv[]) { fprintf(stderr, "rename(%s, %s): %s\n", tmp_path, path, strerror(errno)); } + if (do_broadcast && use_outfile && do_fb) { + run_command(NULL, 5, "/system/bin/am", "broadcast", + "-a", "android.intent.action.BUGREPORT_FINISHED", + "--es", "android.intent.extra.BUGREPORT", path, + "--es", "android.intent.extra.SCREENSHOT", screenshot_path, + "--receiver-permission", "android.permission.DUMP", NULL); + } + ALOGI("done\n"); return 0; diff --git a/cmds/dumpstate/utils.c b/cmds/dumpstate/utils.c index d081590..9b0013e 100644 --- a/cmds/dumpstate/utils.c +++ b/cmds/dumpstate/utils.c @@ -379,7 +379,7 @@ pid_t redirect_to_file(FILE *redirect, char *path, int gzip_level) { chp = strchr(chp, '/'); if (chp) { *chp = 0; - mkdir(path, 0775); /* drwxrwxr-x */ + mkdir(path, 0770); /* drwxrwx--- */ *chp++ = '/'; } } |