From d2a0196b7cbcab4e95c92d42aac48a991968ac6f Mon Sep 17 00:00:00 2001 From: TimBav Date: Tue, 3 Dec 2024 12:02:06 +0000 Subject: [PATCH 1/5] Update AdbServer.kt Select adb device by serial number --- dadb/src/main/kotlin/dadb/adbserver/AdbServer.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dadb/src/main/kotlin/dadb/adbserver/AdbServer.kt b/dadb/src/main/kotlin/dadb/adbserver/AdbServer.kt index a481f13..437a2cd 100644 --- a/dadb/src/main/kotlin/dadb/adbserver/AdbServer.kt +++ b/dadb/src/main/kotlin/dadb/adbserver/AdbServer.kt @@ -131,7 +131,7 @@ private class AdbServerDadb constructor( private val supportedFeatures: Set init { - supportedFeatures = open("host:features").use { + supportedFeatures = open("host-serial:$name:features").use { val features = AdbServer.readString(DataInputStream(it.source.inputStream())) features.split(",").toSet() } From 1992c094e683441f6490a6fd43130fced7cf20c0 Mon Sep 17 00:00:00 2001 From: TimBav Date: Wed, 4 Dec 2024 09:55:10 +0000 Subject: [PATCH 2/5] Add first: deviceQuery to select first connected device --- dadb/src/main/kotlin/dadb/adbserver/AdbServer.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/dadb/src/main/kotlin/dadb/adbserver/AdbServer.kt b/dadb/src/main/kotlin/dadb/adbserver/AdbServer.kt index 437a2cd..b03088b 100644 --- a/dadb/src/main/kotlin/dadb/adbserver/AdbServer.kt +++ b/dadb/src/main/kotlin/dadb/adbserver/AdbServer.kt @@ -50,6 +50,12 @@ object AdbServer { connectTimeout: Int = 0, socketTimeout: Int = 0 ): Dadb { + if (deviceQuery.startsWith("first:")) { + val filter = Regex("^${deviceQuery.removePrefix("first:")}") + return listDadbs(adbServerHost, adbServerPort).first { + it is AdbServerDadb && it.name.contains(filter) + } + } val name = deviceQuery .removePrefix("host:") // Use the device query without the host: prefix .removePrefix("transport:") // If it's a serial-number, just show that @@ -123,7 +129,7 @@ private class AdbServerDadb constructor( private val host: String, private val port: Int, private val deviceQuery: String, - private val name: String, + val name: String, private val connectTimeout: Int = 0, private val socketTimeout: Int = 0, ) : Dadb { From 5667475167899ff6bc5d5e6ee9ca65a31682f857 Mon Sep 17 00:00:00 2001 From: TimBav Date: Wed, 4 Dec 2024 09:56:23 +0000 Subject: [PATCH 3/5] Update AdbBinaryTest.kt --- dadb/src/test/kotlin/dadb/adbserver/AdbBinaryTest.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dadb/src/test/kotlin/dadb/adbserver/AdbBinaryTest.kt b/dadb/src/test/kotlin/dadb/adbserver/AdbBinaryTest.kt index 1b288c2..ea0f26b 100644 --- a/dadb/src/test/kotlin/dadb/adbserver/AdbBinaryTest.kt +++ b/dadb/src/test/kotlin/dadb/adbserver/AdbBinaryTest.kt @@ -12,7 +12,7 @@ internal class AdbBinaryTest { repeat(10) { killServer() AdbBinary.ensureServerRunning("localhost", 5037) - val output = AdbServer.createDadb("localhost", 5037, connectTimeout = 1000, socketTimeout = 1000).shell("echo hello").allOutput + val output = AdbServer.createDadb("localhost", 5037, deviceQuery = "first:", connectTimeout = 1000, socketTimeout = 1000).shell("echo hello").allOutput assertThat(output).isEqualTo("hello\n") } } From eff65b72f0c1ce51882f4f721c8a87845691681e Mon Sep 17 00:00:00 2001 From: TimBav Date: Wed, 4 Dec 2024 09:56:58 +0000 Subject: [PATCH 4/5] Update AdbServerTest.kt --- dadb/src/test/kotlin/dadb/AdbServerTest.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dadb/src/test/kotlin/dadb/AdbServerTest.kt b/dadb/src/test/kotlin/dadb/AdbServerTest.kt index fa4d611..04d5ba2 100644 --- a/dadb/src/test/kotlin/dadb/AdbServerTest.kt +++ b/dadb/src/test/kotlin/dadb/AdbServerTest.kt @@ -17,6 +17,6 @@ internal class AdbServerTest : DadbTest() { } override fun localEmulator(body: (dadb: Dadb) -> Unit) { - AdbServer.createDadb("localhost", 5037).use(body) + AdbServer.createDadb("localhost", 5037, "first:").use(body) } -} \ No newline at end of file +} From 462a343d01477ab79b67cadfb1e792a2b22c2040 Mon Sep 17 00:00:00 2001 From: TimBav Date: Wed, 4 Dec 2024 10:02:58 +0000 Subject: [PATCH 5/5] Update AdbServer.kt --- dadb/src/main/kotlin/dadb/adbserver/AdbServer.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dadb/src/main/kotlin/dadb/adbserver/AdbServer.kt b/dadb/src/main/kotlin/dadb/adbserver/AdbServer.kt index b03088b..e88bf46 100644 --- a/dadb/src/main/kotlin/dadb/adbserver/AdbServer.kt +++ b/dadb/src/main/kotlin/dadb/adbserver/AdbServer.kt @@ -51,7 +51,7 @@ object AdbServer { socketTimeout: Int = 0 ): Dadb { if (deviceQuery.startsWith("first:")) { - val filter = Regex("^${deviceQuery.removePrefix("first:")}") + val filter = Regex(deviceQuery.removePrefix("first:")) return listDadbs(adbServerHost, adbServerPort).first { it is AdbServerDadb && it.name.contains(filter) }