diff options
-rw-r--r-- | cmds/incident/main.cpp | 16 | ||||
-rw-r--r-- | cmds/incidentd/src/Privacy.cpp | 10 | ||||
-rw-r--r-- | tools/incident_report/main.cpp | 12 |
3 files changed, 31 insertions, 7 deletions
diff --git a/cmds/incident/main.cpp b/cmds/incident/main.cpp index 519852dbe88b..cdec6a01d086 100644 --- a/cmds/incident/main.cpp +++ b/cmds/incident/main.cpp @@ -148,9 +148,19 @@ find_section(const char* name) static int get_dest(const char* arg) { - if (strcmp(arg, "LOCAL") == 0) return 0; - if (strcmp(arg, "EXPLICIT") == 0) return 1; - if (strcmp(arg, "AUTOMATIC") == 0) return 2; + if (strcmp(arg, "L") == 0 + || strcmp(arg, "LOCAL") == 0) { + return DEST_LOCAL; + } + if (strcmp(arg, "E") == 0 + || strcmp(arg, "EXPLICIT") == 0) { + return DEST_EXPLICIT; + } + if (strcmp(arg, "A") == 0 + || strcmp(arg, "AUTO") == 0 + || strcmp(arg, "AUTOMATIC") == 0) { + return DEST_AUTOMATIC; + } return -1; // return the default value } diff --git a/cmds/incidentd/src/Privacy.cpp b/cmds/incidentd/src/Privacy.cpp index 5db2239810e2..44adaecfe97f 100644 --- a/cmds/incidentd/src/Privacy.cpp +++ b/cmds/incidentd/src/Privacy.cpp @@ -67,8 +67,14 @@ PrivacySpec::RequireAll() const { return dest == android::os::DEST_LOCAL; } PrivacySpec new_spec_from_args(int dest) { - if (dest < 0) return PrivacySpec(); - return PrivacySpec(dest); + switch (dest) { + case android::os::DEST_AUTOMATIC: + case android::os::DEST_EXPLICIT: + case android::os::DEST_LOCAL: + return PrivacySpec(dest); + default: + return PrivacySpec(); + } } PrivacySpec get_default_dropbox_spec() { return PrivacySpec(android::os::DEST_AUTOMATIC); }
\ No newline at end of file diff --git a/tools/incident_report/main.cpp b/tools/incident_report/main.cpp index bd1b973c7bdf..302d7395f3e4 100644 --- a/tools/incident_report/main.cpp +++ b/tools/incident_report/main.cpp @@ -452,9 +452,10 @@ main(int argc, char** argv) bool adbIncidentWorkaround = true; pid_t childPid = -1; vector<string> sections; + const char* privacy = NULL; int opt; - while ((opt = getopt(argc, argv, "bhi:o:s:tw")) != -1) { + while ((opt = getopt(argc, argv, "bhi:o:s:twp:")) != -1) { switch (opt) { case 'b': outputFormat = OUTPUT_PROTO; @@ -477,6 +478,9 @@ main(int argc, char** argv) case 'w': adbIncidentWorkaround = false; break; + case 'p': + privacy = optarg; + break; default: usage(stderr); return 1; @@ -526,7 +530,7 @@ main(int argc, char** argv) } // TODO: This is what the real implementation will be... - char const** args = (char const**)malloc(sizeof(char*) * (6 + sections.size())); + char const** args = (char const**)malloc(sizeof(char*) * (8 + sections.size())); int argpos = 0; args[argpos++] = "adb"; if (adbSerial != NULL) { @@ -535,6 +539,10 @@ main(int argc, char** argv) } args[argpos++] = "shell"; args[argpos++] = "incident"; + if (privacy != NULL) { + args[argpos++] = "-p"; + args[argpos++] = privacy; + } for (vector<string>::const_iterator it=sections.begin(); it!=sections.end(); it++) { args[argpos++] = it->c_str(); } |