Index: build/android/provision_devices.py |
diff --git a/build/android/provision_devices.py b/build/android/provision_devices.py |
index dad940db8e7f52ebdead348084cd663c2d5c74fb..65054fe32ce19b9b8a0aa133b576320b3631de0a 100755 |
--- a/build/android/provision_devices.py |
+++ b/build/android/provision_devices.py |
@@ -30,6 +30,15 @@ sys.path.append(os.path.join(constants.DIR_SOURCE_ROOT, |
'third_party', 'android_testrunner')) |
import errors |
+ |
+class _DEFAULT_TIMEOUTS(object): |
+ # L can take a while to reboot after a wipe. |
+ LOLLIPOP = 600 |
+ PRE_LOLLIPOP = 180 |
+ |
+ HELP_TEXT = '{}s on L, {}s on pre-L'.format(LOLLIPOP, PRE_LOLLIPOP) |
+ |
+ |
def KillHostHeartbeat(): |
ps = subprocess.Popen(['ps', 'aux'], stdout=subprocess.PIPE) |
stdout, _ = ps.communicate() |
@@ -141,9 +150,17 @@ def WipeDeviceIfPossible(device, timeout): |
def ProvisionDevice(device, options): |
+ if options.reboot_timeout: |
+ reboot_timeout = options.reboot_timeout |
+ elif (device.build_version_sdk >= |
+ constants.ANDROID_SDK_VERSION_CODES.LOLLIPOP): |
+ reboot_timeout = _DEFAULT_TIMEOUTS.LOLLIPOP |
+ else: |
+ reboot_timeout = _DEFAULT_TIMEOUTS.PRE_LOLLIPOP |
+ |
try: |
if not options.skip_wipe: |
- WipeDeviceIfPossible(device, options.reboot_timeout) |
+ WipeDeviceIfPossible(device, reboot_timeout) |
try: |
device.EnableRoot() |
except device_errors.CommandFailedError as e: |
@@ -181,7 +198,7 @@ def ProvisionDevice(device, options): |
time.sleep(60) |
battery_info = device.old_interface.GetBatteryInfo() |
if not options.skip_wipe: |
- device.Reboot(True, timeout=options.reboot_timeout, retries=0) |
+ device.Reboot(True, timeout=reboot_timeout, retries=0) |
device.RunShellCommand('date -s %s' % time.strftime('%Y%m%d.%H%M%S', |
time.gmtime()), |
as_root=True) |
@@ -253,10 +270,10 @@ def main(): |
' (the default is to provision all devices attached)') |
parser.add_argument('--skip-wipe', action='store_true', default=False, |
help="don't wipe device data during provisioning") |
- parser.add_argument('--reboot-timeout', default=600, type=int, |
- metavar='SECS', |
+ parser.add_argument('--reboot-timeout', metavar='SECS', type=int, |
help='when wiping the device, max number of seconds to' |
- ' wait after each reboot (default: %(default)s)') |
+ ' wait after each reboot ' |
+ '(default: %s)' % _DEFAULT_TIMEOUTS.HELP_TEXT) |
parser.add_argument('--wait-for-battery', action='store_true', |
default=is_perf, |
help='wait for the battery on the devices to charge') |