Index: devil/devil/android/sdk/adb_wrapper.py |
diff --git a/devil/devil/android/sdk/adb_wrapper.py b/devil/devil/android/sdk/adb_wrapper.py |
index e2ca0139b7ab4090c0241002530181587ed6884e..8067616888244a80c43f317f9325e6cd807ca159 100644 |
--- a/devil/devil/android/sdk/adb_wrapper.py |
+++ b/devil/devil/android/sdk/adb_wrapper.py |
@@ -120,7 +120,12 @@ class AdbWrapper(object): |
"""Initializes the AdbWrapper. |
Args: |
- device_serial: The device serial number as a string. |
+ device_serial: The device serial number or USB bus ID (*) as a string. |
+ |
+ # (*) WARNING: Not all devil features are supported when using a USB ID. |
rnephew (Reviews Here)
2017/05/30 18:21:12
I'm wondering if we can detect if we suspect that
kavefish
2017/05/30 19:27:20
That's interesting. Detection should be straightfo
|
+ |
+ # TODO: Improve support for instances created from a USB ID. |
+ |
""" |
if not device_serial: |
rnephew (Reviews Here)
2017/05/30 18:21:12
TODO should be moved here outside the class level
|
raise ValueError('A device serial must be specified') |
@@ -824,15 +829,17 @@ class AdbWrapper(object): |
retries: (optional) Number of retries to attempt. |
Returns: |
- One of 'offline', 'bootloader', or 'device'. |
+ One of 'offline', 'bootloader', or 'unauthorized', or |
+ 'no' [permissions], or 'device' |
""" |
# TODO(jbudorick): Revert to using get-state once it doesn't cause a |
# a protocol fault. |
# return self._RunDeviceAdbCmd(['get-state'], timeout, retries).strip() |
- lines = self._RawDevices(timeout=timeout, retries=retries) |
+ lines = self._RawDevices(timeout=timeout, retries=retries, long_list=True) |
for line in lines: |
- if len(line) >= 2 and line[0] == self._device_serial: |
+ if len(line) >= 3 and (line[0] == self._device_serial or line[2] == |
+ self._device_serial): |
return line[1] |
return 'offline' |