From 3441f232abd69c6236de76ed794d645d1ee98752 Mon Sep 17 00:00:00 2001 From: Josh Gao Date: Mon, 4 May 2020 19:23:45 -0700 Subject: [PATCH 1/2] adb: add `adb transport-id` command. Make it possible to safely script waiting for a device to go away after root/unroot. Test: manual Change-Id: I652560ad1d88a5c6a1e8ea5787c3cf165c82aa63 --- adb/client/commandline.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/adb/client/commandline.cpp b/adb/client/commandline.cpp index f0a287d47..efb6c2f03 100644 --- a/adb/client/commandline.cpp +++ b/adb/client/commandline.cpp @@ -1712,14 +1712,21 @@ int adb_commandline(int argc, const char** argv) { } printf("List of devices attached\n"); return adb_query_command(query); - } - else if (!strcmp(argv[0], "connect")) { + } else if (!strcmp(argv[0], "transport-id")) { + TransportId transport_id; + std::string error; + unique_fd fd(adb_connect(&transport_id, "host:features", &error, true)); + if (fd == -1) { + error_exit("%s", error.c_str()); + } + printf("%" PRIu64 "\n", transport_id); + return 0; + } else if (!strcmp(argv[0], "connect")) { if (argc != 2) error_exit("usage: adb connect HOST[:PORT]"); std::string query = android::base::StringPrintf("host:connect:%s", argv[1]); return adb_query_command(query); - } - else if (!strcmp(argv[0], "disconnect")) { + } else if (!strcmp(argv[0], "disconnect")) { if (argc > 2) error_exit("usage: adb disconnect [HOST[:PORT]]"); std::string query = android::base::StringPrintf("host:disconnect:%s", From a11d27f920f8e67a99b20322a985fe8bc625cfa5 Mon Sep 17 00:00:00 2001 From: Josh Gao Date: Mon, 4 May 2020 19:29:29 -0700 Subject: [PATCH 2/2] adb: use transport-id to make coverage script faster. Test: ./coverage/gen_coverage.sh Change-Id: I24e70952946ad91d51acf9bda386826e4e73a0d2 --- adb/coverage/gen_coverage.sh | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/adb/coverage/gen_coverage.sh b/adb/coverage/gen_coverage.sh index cced62a29..3a5d1d22b 100755 --- a/adb/coverage/gen_coverage.sh +++ b/adb/coverage/gen_coverage.sh @@ -17,10 +17,10 @@ LOCAL_SERIAL=$(adb shell getprop ro.serialno) # Check that we can connect to it. adb disconnect -adb tcpip $REMOTE_PORT -# TODO: Add `adb transport-id` and wait-for-offline on it. -sleep 5 +TRANSPORT_ID=$(adb transport-id) +adb tcpip $REMOTE_PORT +adb -t $TRANSPORT_ID wait-for-disconnect adb connect $REMOTE @@ -32,13 +32,16 @@ if [[ "$LOCAL_SERIAL" != "$REMOTE_FETCHED_SERIAL" ]]; then fi # Back to USB, and make sure adbd is root. +adb -s $REMOTE usb adb disconnect $REMOTE +adb wait-for-device root adb root -adb wait-for-device usb +adb wait-for-device -# TODO: Add `adb transport-id` and wait-for-offline on it. -sleep 5 +TRANSPORT_ID=$(adb transport-id) +adb usb +adb -t $TRANSPORT_ID wait-for-disconnect adb wait-for-device @@ -61,10 +64,9 @@ adb shell logcat -c -G128M adb shell setprop persist.adb.trace_mask 1 ### Run test_device.py over USB. +TRANSPORT_ID=$(adb transport-id) adb shell killall adbd - -# TODO: Add `adb transport-id` and wait-for-offline on it. -sleep 5 +adb -t $TRANSPORT_ID wait-for-disconnect adb wait-for-device shell rm -rf "/data/misc/trace/*" /data/local/tmp/adb_coverage/ "$OUTPUT_DIR"/../test_device.py @@ -80,8 +82,10 @@ echo Waiting for adbd to finish dumping traces sleep 5 # Restart adbd in tcp mode. +TRANSPORT_ID=$(adb transport-id) adb tcpip $REMOTE_PORT -sleep 5 +adb -t $TRANSPORT_ID wait-for-disconnect + adb connect $REMOTE adb -s $REMOTE wait-for-device