OSDN Git Service

Move dumpstate to calling getprop.
authorElliott Hughes <enh@google.com>
Tue, 28 Feb 2017 18:14:22 +0000 (10:14 -0800)
committerElliott Hughes <enh@google.com>
Wed, 1 Mar 2017 18:55:33 +0000 (10:55 -0800)
There's no obvious reason for reinventing the wheel like this (given that
dumpstate already spends most of its time calling out to other utilities),
and I keep having to come and fix this code.

(This time the problem being that there's no longer a limit on system
property names.)

Bug: http://b/33926793
Test: ran dumpstate
Merged-In: I08281680df5aabfdb39228abf8c2aab089cc8b9e
Change-Id: I08281680df5aabfdb39228abf8c2aab089cc8b9e

cmds/dumpstate/dumpstate.cpp
cmds/dumpstate/dumpstate.h
cmds/dumpstate/utils.cpp

index 5b01be1..93f17fe 100644 (file)
@@ -948,7 +948,7 @@ static void dumpstate(const std::string& screenshot_path, const std::string& ver
 #endif
     dump_file("INTERRUPTS (2)", "/proc/interrupts");
 
-    print_properties();
+    run_command("SYSTEM PROPERTIES", 5, "getprop", NULL);
 
     run_command("VOLD DUMP", 10, "vdc", "dump", NULL);
     run_command("SECURE CONTAINERS", 10, "vdc", "asec", "list", NULL);
index 905fc22..5ed9023 100644 (file)
@@ -142,9 +142,6 @@ void send_broadcast(const std::string& action, const std::vector<std::string>& a
 /* updates the overall progress of dumpstate by the given weight increment */
 void update_progress(int weight);
 
-/* prints all the system properties */
-void print_properties();
-
 /** opens a socket and returns its file descriptor */
 int open_socket(const char *service);
 
index 4ac5b67..bbe48be 100644 (file)
@@ -885,40 +885,6 @@ void send_broadcast(const std::string& action, const std::vector<std::string>& a
     run_command_always(NULL, DROP_ROOT, REDIRECT_TO_STDERR, 20, am_args);
 }
 
-size_t num_props = 0;
-static char* props[2000];
-
-static void print_prop(const char *key, const char *name, void *user) {
-    (void) user;
-    if (num_props < sizeof(props) / sizeof(props[0])) {
-        char buf[PROPERTY_KEY_MAX + PROPERTY_VALUE_MAX + 10];
-        snprintf(buf, sizeof(buf), "[%s]: [%s]\n", key, name);
-        props[num_props++] = strdup(buf);
-    }
-}
-
-static int compare_prop(const void *a, const void *b) {
-    return strcmp(*(char * const *) a, *(char * const *) b);
-}
-
-/* prints all the system properties */
-void print_properties() {
-    const char* title = "SYSTEM PROPERTIES";
-    DurationReporter duration_reporter(title);
-    printf("------ %s ------\n", title);
-    ON_DRY_RUN_RETURN();
-    size_t i;
-    num_props = 0;
-    property_list(print_prop, NULL);
-    qsort(&props, num_props, sizeof(props[0]), compare_prop);
-
-    for (i = 0; i < num_props; ++i) {
-        fputs(props[i], stdout);
-        free(props[i]);
-    }
-    printf("\n");
-}
-
 int open_socket(const char *service) {
     int s = android_get_control_socket(service);
     if (s < 0) {