diff --git a/adb/client/commandline.cpp b/adb/client/commandline.cpp index 936fd5af6..3c03eb24d 100644 --- a/adb/client/commandline.cpp +++ b/adb/client/commandline.cpp @@ -1890,7 +1890,10 @@ int adb_commandline(int argc, const char** argv) { } else if (!strcmp(argv[0], "track-jdwp")) { return adb_connect_command("track-jdwp"); } else if (!strcmp(argv[0], "track-devices")) { - return adb_connect_command("host:track-devices"); + if (argc > 2 || (argc == 2 && strcmp(argv[1], "-l"))) { + error_exit("usage: adb track-devices [-l]"); + } + return adb_connect_command(argc == 2 ? "host:track-devices-l" : "host:track-devices"); } else if (!strcmp(argv[0], "raw")) { if (argc != 2) { error_exit("usage: adb raw SERVICE"); diff --git a/adb/transport.cpp b/adb/transport.cpp index 8bc925fab..3d1d620d2 100644 --- a/adb/transport.cpp +++ b/adb/transport.cpp @@ -542,9 +542,7 @@ static void device_tracker_ready(asocket* socket) { // for the first time, even if no update occurred. if (tracker->update_needed) { tracker->update_needed = false; - - std::string transports = list_transports(tracker->long_output); - device_tracker_send(tracker, transports); + device_tracker_send(tracker, list_transports(tracker->long_output)); } } @@ -587,13 +585,11 @@ void update_transports() { update_transport_status(); // Notify `adb track-devices` clients. - std::string transports = list_transports(false); - device_tracker* tracker = device_tracker_list; while (tracker != nullptr) { device_tracker* next = tracker->next; // This may destroy the tracker if the connection is closed. - device_tracker_send(tracker, transports); + device_tracker_send(tracker, list_transports(tracker->long_output)); tracker = next; } }