From e1b4e4d32b1f9ae87c5796e9bc4fcbfb8bead40f Mon Sep 17 00:00:00 2001 From: Avdeev Vasily <5055260+ersanin@users.noreply.github.com> Date: Tue, 17 Sep 2024 14:10:47 +0300 Subject: [PATCH] TECH: adbserver's backward compatibility was fixed (#672) --- .../adbserver/commandtypes/AdbCommand.kt | 8 +++++--- .../adbserver/commandtypes/CmdCommand.kt | 6 +++--- .../commandtypes/ComplexAdbCommand.kt | 8 ++++++++ .../kaspersky/adbserver/common/api/Command.kt | 2 +- .../adbserver/common/api/ComplexCommand.kt | 3 +++ .../kaspersky/adbserver/device/AdbTerminal.kt | 3 ++- .../adbserver/desktop/CommandExecutorImpl.kt | 15 ++++++++++++--- artifacts/adbserver-desktop.jar | Bin 2115152 -> 2117487 bytes .../adb_server_tests/AdbServerTest.kt | 6 ++++++ 9 files changed, 40 insertions(+), 11 deletions(-) create mode 100644 adb-server/adb-server-command-types/src/main/java/com/kaspersky/adbserver/commandtypes/ComplexAdbCommand.kt create mode 100644 adb-server/adb-server-common/src/main/java/com/kaspersky/adbserver/common/api/ComplexCommand.kt diff --git a/adb-server/adb-server-command-types/src/main/java/com/kaspersky/adbserver/commandtypes/AdbCommand.kt b/adb-server/adb-server-command-types/src/main/java/com/kaspersky/adbserver/commandtypes/AdbCommand.kt index 0a6d3a3ed..a402a7b3f 100644 --- a/adb-server/adb-server-command-types/src/main/java/com/kaspersky/adbserver/commandtypes/AdbCommand.kt +++ b/adb-server/adb-server-command-types/src/main/java/com/kaspersky/adbserver/commandtypes/AdbCommand.kt @@ -2,7 +2,9 @@ package com.kaspersky.adbserver.commandtypes import com.kaspersky.adbserver.common.api.Command +/** + * Command for backward compatibility with old version of adb-server + */ data class AdbCommand( - override val command: String, - override val arguments: List = emptyList() -) : Command(command, arguments) + override val body: String, +) : Command(body) diff --git a/adb-server/adb-server-command-types/src/main/java/com/kaspersky/adbserver/commandtypes/CmdCommand.kt b/adb-server/adb-server-command-types/src/main/java/com/kaspersky/adbserver/commandtypes/CmdCommand.kt index b490a1e73..e748f75ab 100644 --- a/adb-server/adb-server-command-types/src/main/java/com/kaspersky/adbserver/commandtypes/CmdCommand.kt +++ b/adb-server/adb-server-command-types/src/main/java/com/kaspersky/adbserver/commandtypes/CmdCommand.kt @@ -1,8 +1,8 @@ package com.kaspersky.adbserver.commandtypes -import com.kaspersky.adbserver.common.api.Command +import com.kaspersky.adbserver.common.api.ComplexCommand data class CmdCommand( - override val command: String, + override val body: String, override val arguments: List = emptyList() -) : Command(command, arguments) +) : ComplexCommand(body, arguments) diff --git a/adb-server/adb-server-command-types/src/main/java/com/kaspersky/adbserver/commandtypes/ComplexAdbCommand.kt b/adb-server/adb-server-command-types/src/main/java/com/kaspersky/adbserver/commandtypes/ComplexAdbCommand.kt new file mode 100644 index 000000000..658b1137f --- /dev/null +++ b/adb-server/adb-server-command-types/src/main/java/com/kaspersky/adbserver/commandtypes/ComplexAdbCommand.kt @@ -0,0 +1,8 @@ +package com.kaspersky.adbserver.commandtypes + +import com.kaspersky.adbserver.common.api.ComplexCommand + +data class ComplexAdbCommand( + override val body: String, + override val arguments: List = emptyList() +) : ComplexCommand(body, arguments) diff --git a/adb-server/adb-server-common/src/main/java/com/kaspersky/adbserver/common/api/Command.kt b/adb-server/adb-server-common/src/main/java/com/kaspersky/adbserver/common/api/Command.kt index d70103224..96e4b738d 100644 --- a/adb-server/adb-server-common/src/main/java/com/kaspersky/adbserver/common/api/Command.kt +++ b/adb-server/adb-server-common/src/main/java/com/kaspersky/adbserver/common/api/Command.kt @@ -5,4 +5,4 @@ import java.io.Serializable /** * Command to execute by AdbServer */ -abstract class Command(open val command: String, open val arguments: List = emptyList()) : Serializable +abstract class Command(open val body: String) : Serializable diff --git a/adb-server/adb-server-common/src/main/java/com/kaspersky/adbserver/common/api/ComplexCommand.kt b/adb-server/adb-server-common/src/main/java/com/kaspersky/adbserver/common/api/ComplexCommand.kt new file mode 100644 index 000000000..e9e4bce29 --- /dev/null +++ b/adb-server/adb-server-common/src/main/java/com/kaspersky/adbserver/common/api/ComplexCommand.kt @@ -0,0 +1,3 @@ +package com.kaspersky.adbserver.common.api + +abstract class ComplexCommand(override val body: String, open val arguments: List = emptyList()) : Command(body) diff --git a/adb-server/adb-server-device/src/main/java/com/kaspersky/adbserver/device/AdbTerminal.kt b/adb-server/adb-server-device/src/main/java/com/kaspersky/adbserver/device/AdbTerminal.kt index 8f6a86901..8bffa11b0 100644 --- a/adb-server/adb-server-device/src/main/java/com/kaspersky/adbserver/device/AdbTerminal.kt +++ b/adb-server/adb-server-device/src/main/java/com/kaspersky/adbserver/device/AdbTerminal.kt @@ -2,6 +2,7 @@ package com.kaspersky.adbserver.device import com.kaspersky.adbserver.commandtypes.AdbCommand import com.kaspersky.adbserver.commandtypes.CmdCommand +import com.kaspersky.adbserver.commandtypes.ComplexAdbCommand import com.kaspersky.adbserver.common.api.CommandResult import com.kaspersky.adbserver.common.log.LoggerFactory import com.kaspersky.adbserver.common.log.logger.LogLevel @@ -35,7 +36,7 @@ object AdbTerminal { * Please first of all call [connect] method to establish a connection */ fun executeAdb(command: String, arguments: List): CommandResult = device?.fulfill( - AdbCommand(command, arguments) + ComplexAdbCommand(command, arguments) ) ?: throw IllegalStateException("Please first of all call [connect] method to establish a connection") /** diff --git a/adb-server/adbserver-desktop/src/main/java/com/kaspersky/adbserver/desktop/CommandExecutorImpl.kt b/adb-server/adbserver-desktop/src/main/java/com/kaspersky/adbserver/desktop/CommandExecutorImpl.kt index 7aceb84e8..bf3d8d0e8 100644 --- a/adb-server/adbserver-desktop/src/main/java/com/kaspersky/adbserver/desktop/CommandExecutorImpl.kt +++ b/adb-server/adbserver-desktop/src/main/java/com/kaspersky/adbserver/desktop/CommandExecutorImpl.kt @@ -5,6 +5,7 @@ import com.kaspersky.adbserver.common.api.CommandExecutor import com.kaspersky.adbserver.common.api.CommandResult import com.kaspersky.adbserver.commandtypes.AdbCommand import com.kaspersky.adbserver.commandtypes.CmdCommand +import com.kaspersky.adbserver.commandtypes.ComplexAdbCommand import com.kaspersky.adbserver.common.log.logger.Logger import java.lang.UnsupportedOperationException @@ -16,16 +17,24 @@ internal class CommandExecutorImpl( private val adbPath: String ) : CommandExecutor { + private fun getSimpleAdbCommand(command: Command): String = "$adbPath ${adbServerPort?.let { "-P $adbServerPort " } ?: ""}-s $deviceName ${command.body}" + override fun execute(command: Command): CommandResult { return when (command) { - is CmdCommand -> cmdCommandPerformer.perform(command.command, command.arguments) + is CmdCommand -> cmdCommandPerformer.perform(command.body, command.arguments) is AdbCommand -> { + val adbCommand = getSimpleAdbCommand(command) + logger.d("The created adbCommand=$adbCommand") + cmdCommandPerformer.perform(adbCommand, emptyList()) + } + + is ComplexAdbCommand -> { val adbCommand: String val adbArguments: List if (command.arguments.isEmpty()) { - adbCommand = "$adbPath ${adbServerPort?.let { "-P $adbServerPort " } ?: ""}-s $deviceName ${command.command}" + adbCommand = getSimpleAdbCommand(command) adbArguments = emptyList() } else { adbCommand = adbPath @@ -36,7 +45,7 @@ internal class CommandExecutorImpl( } add("-s") add(deviceName) - add(command.command) + add(command.body) addAll(command.arguments) } } diff --git a/artifacts/adbserver-desktop.jar b/artifacts/adbserver-desktop.jar index a38166f8a0945f7544d9e021419c88ab9e2381a1..edf3fe70826a77fe223ff8c009d6f98579a0c96a 100644 GIT binary patch delta 41316 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 P8HX96LWyJk22lS89!z5I delta 38855 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 diff --git a/samples/kaspresso-sample/src/androidTest/kotlin/com/kaspersky/kaspressample/adb_server_tests/AdbServerTest.kt b/samples/kaspresso-sample/src/androidTest/kotlin/com/kaspersky/kaspressample/adb_server_tests/AdbServerTest.kt index fc1cf4fac..730b52ccf 100644 --- a/samples/kaspresso-sample/src/androidTest/kotlin/com/kaspersky/kaspressample/adb_server_tests/AdbServerTest.kt +++ b/samples/kaspresso-sample/src/androidTest/kotlin/com/kaspersky/kaspressample/adb_server_tests/AdbServerTest.kt @@ -21,6 +21,12 @@ class AdbServerTest : TestCase() { @Test fun singleCommandTest() = run { + val devices = adbServer.performAdb("devices") + assert(devices.isNotEmpty()) + } + + @Test + fun singleComplexCommandTest() = run { val devices = adbServer.performAdb("devices", arguments = emptyList()) assert(devices.isNotEmpty()) }