Index: build/android/pylib/device/device_utils.py |
diff --git a/build/android/pylib/device/device_utils.py b/build/android/pylib/device/device_utils.py |
index 9f538e1b0efd9f51ffaa4c1345febe8149edccc6..e9dc9b71738c10568a18168c0764489744dff275 100644 |
--- a/build/android/pylib/device/device_utils.py |
+++ b/build/android/pylib/device/device_utils.py |
@@ -72,6 +72,17 @@ _CONTROL_CHARGING_COMMANDS = [ |
}, |
] |
+# This must be done in a single shell command. |
+_RESTART_ADBD_SCRIPT = """ |
+ function restart() { |
+ stop adbd |
+ start adbd |
+ } |
+ |
+ restart & |
+""" |
+ |
+ |
@decorators.WithExplicitTimeoutAndRetries( |
_DEFAULT_TIMEOUT, _DEFAULT_RETRIES) |
def GetAVDs(): |
@@ -382,6 +393,12 @@ class DeviceUtils(object): |
if wifi: |
timeout_retry.WaitFor(wifi_enabled) |
+ @decorators.WithTimeoutAndRetriesFromInstance() |
+ def RestartAdbd(self, timeout=None, retries=None): |
+ self.RunShellCommand(['sh', '-c', _RESTART_ADBD_SCRIPT], |
+ as_root=True, check_return=True) |
+ self.adb.WaitForDevice() |
+ |
REBOOT_DEFAULT_TIMEOUT = 10 * _DEFAULT_TIMEOUT |
REBOOT_DEFAULT_RETRIES = _DEFAULT_RETRIES |