| 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 1440961aa5ec8f31b0a8dc88aab4a945a5dec3a5..ea1019d3de996f44b6bcb95785541b7570ee4344 100644
|
| --- a/build/android/pylib/device/device_utils.py
|
| +++ b/build/android/pylib/device/device_utils.py
|
| @@ -16,6 +16,7 @@ import sys
|
| import pylib.android_commands
|
| from pylib.device import adb_wrapper
|
| from pylib.device import decorators
|
| +from pylib.device import device_errors
|
|
|
| CHROME_SRC_DIR = os.path.abspath(
|
| os.path.join(os.path.dirname(__file__), '..', '..', '..', '..'))
|
| @@ -78,7 +79,20 @@ def RestartServer():
|
|
|
| class DeviceUtils(object):
|
|
|
| - def __init__(self, device):
|
| + def __init__(self, device, default_timeout=_DEFAULT_TIMEOUT,
|
| + default_retries=_DEFAULT_RETRIES):
|
| + """ DeviceUtils constructor.
|
| +
|
| + Args:
|
| + device: Either a device serial, an existing AdbWrapper instance, an
|
| + an existing AndroidCommands instance, or nothing.
|
| + default_timeout: An integer containing the default number of seconds to
|
| + wait for an operation to complete if no explicit value
|
| + is provided.
|
| + default_retries: An integer containing the default number or times an
|
| + operation should be retried on failure if no explicit
|
| + value is provided.
|
| + """
|
| self.old_interface = None
|
| if isinstance(device, basestring):
|
| self.old_interface = pylib.android_commands.AndroidCommands(device)
|
| @@ -88,4 +102,51 @@ class DeviceUtils(object):
|
| self.old_interface = device
|
| elif not device:
|
| self.old_interface = pylib.android_commands.AndroidCommands()
|
| + else:
|
| + raise ValueError('Unsupported type passed for argument "device"')
|
| + self._default_timeout = default_timeout
|
| + self._default_retries = default_retries
|
| +
|
| + @decorators.WithTimeoutAndRetriesFromInstance(
|
| + '_default_timeout', '_default_retries')
|
| + def IsOnline(self, timeout=None, retries=None):
|
| + """ Checks whether the device is online.
|
| +
|
| + Args:
|
| + timeout: An integer containing the number of seconds to wait for the
|
| + operation to complete.
|
| + retries: An integer containing the number of times the operation should
|
| + be retried if it fails.
|
| + Returns:
|
| + True if the device is online, False otherwise.
|
| + """
|
| + return self.old_interface.IsOnline()
|
| +
|
| + @decorators.WithTimeoutAndRetriesFromInstance(
|
| + '_default_timeout', '_default_retries')
|
| + def HasRoot(self, timeout=None, retries=None):
|
| + """ Checks whether or not adbd has root privileges.
|
| +
|
| + Args:
|
| + timeout: Same as for |IsOnline|.
|
| + retries: Same as for |IsOnline|.
|
| + Returns:
|
| + True if adbd has root privileges, False otherwise.
|
| + """
|
| + return self.old_interface.IsRootEnabled()
|
| +
|
| + @decorators.WithTimeoutAndRetriesFromInstance(
|
| + '_default_timeout', '_default_retries')
|
| + def EnableRoot(self, timeout=None, retries=None):
|
| + """ Restarts adbd with root privileges.
|
| +
|
| + Args:
|
| + timeout: Same as for |IsOnline|.
|
| + retries: Same as for |IsOnline|.
|
| + Raises:
|
| + CommandFailedError if root could not be enabled.
|
| + """
|
| + if not self.old_interface.EnableAdbRoot():
|
| + raise device_errors.CommandFailedError(
|
| + 'adb root', 'Could not enable root.')
|
|
|
|
|