From 75621022be90c80af572d6593f9d2011d207a9ee Mon Sep 17 00:00:00 2001 From: Marc Bonnici Date: Thu, 7 Nov 2019 09:55:59 +0000 Subject: [PATCH] devlib/AndroidTarget: Move ADB disconnect code into connection. The `AndroidTarget` would ensure that when connecting to a IP target that it disconnected first to prevent the connection getting stuck if the connection was not closed correctly. Move this code into the `AdbConnection` instead as this is more relevant. --- devlib/target.py | 7 ------- devlib/utils/android.py | 6 ++++++ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/devlib/target.py b/devlib/target.py index eb0b48c..b583839 100644 --- a/devlib/target.py +++ b/devlib/target.py @@ -1225,13 +1225,6 @@ class AndroidTarget(Target): def connect(self, timeout=30, check_boot_completed=True): # pylint: disable=arguments-differ device = self.connection_settings.get('device') - if device and ':' in device: - # ADB does not automatically remove a network device from it's - # devices list when the connection is broken by the remote, so the - # adb connection may have gone "stale", resulting in adb blocking - # indefinitely when making calls to the device. To avoid this, - # always disconnect first. - adb_disconnect(device) super(AndroidTarget, self).connect(timeout=timeout, check_boot_completed=check_boot_completed) def kick_off(self, command, as_root=None): diff --git a/devlib/utils/android.py b/devlib/utils/android.py index dfe9723..ca36643 100755 --- a/devlib/utils/android.py +++ b/devlib/utils/android.py @@ -425,6 +425,12 @@ def adb_connect(device, timeout=None, attempts=MAX_ATTEMPTS): tries += 1 if device: if "." in device: # Connect is required only for ADB-over-IP + # ADB does not automatically remove a network device from it's + # devices list when the connection is broken by the remote, so the + # adb connection may have gone "stale", resulting in adb blocking + # indefinitely when making calls to the device. To avoid this, + # always disconnect first. + adb_disconnect(device) command = 'adb connect {}'.format(quote(device)) logger.debug(command) output, _ = check_output(command, shell=True, timeout=timeout)