Index: build/android/provision_devices.py |
diff --git a/build/android/provision_devices.py b/build/android/provision_devices.py |
index caa9e23f6400f25236f3e6a05f7478230d1bd0c1..a474837d40edfb92d60cdcf6d4b25c5a5f1c02d0 100755 |
--- a/build/android/provision_devices.py |
+++ b/build/android/provision_devices.py |
@@ -27,6 +27,7 @@ from devil.android import device_blacklist |
from devil.android import device_errors |
from devil.android import device_temp_file |
from devil.android import device_utils |
+from devil.android.sdk import keyevent |
from devil.android.sdk import version_codes |
from devil.utils import run_tests_helper |
from devil.utils import timeout_retry |
@@ -104,8 +105,8 @@ def ProvisionDevice(device, blacklist, options): |
try: |
if should_run_phase(_PHASES.WIPE): |
- if (options.chrome_specific_wipe or device.build_version_sdk >= |
- version_codes.MARSHMALLOW): |
+ if (options.chrome_specific_wipe or device.IsUserBuild() or |
+ device.build_version_sdk >= version_codes.MARSHMALLOW): |
run_phase(WipeChromeData) |
else: |
run_phase(WipeDevice) |
@@ -175,19 +176,25 @@ def WipeChromeData(device, options): |
return |
try: |
- device.EnableRoot() |
- _UninstallIfMatch(device, _CHROME_PACKAGE_REGEX, |
- constants.PACKAGE_INFO['chrome_stable'].package) |
- _WipeUnderDirIfMatch(device, '/data/app-lib/', _CHROME_PACKAGE_REGEX) |
- _WipeUnderDirIfMatch(device, '/data/tombstones/', _TOMBSTONE_REGEX) |
- |
- _WipeFileOrDir(device, '/data/local.prop') |
- _WipeFileOrDir(device, '/data/local/chrome-command-line') |
- _WipeFileOrDir(device, '/data/local/.config/') |
- _WipeFileOrDir(device, '/data/local/tmp/') |
- |
- device.RunShellCommand('rm -rf %s/*' % device.GetExternalStoragePath(), |
- check_return=True) |
+ if device.IsUserBuild(): |
+ _UninstallIfMatch(device, _CHROME_PACKAGE_REGEX, |
+ constants.PACKAGE_INFO['chrome_stable'].package) |
+ device.RunShellCommand('rm -rf %s/*' % device.GetExternalStoragePath(), |
+ check_return=True) |
+ device.RunShellCommand('rm -rf /data/local/tmp/*', check_return=True) |
+ else: |
+ device.EnableRoot() |
+ _UninstallIfMatch(device, _CHROME_PACKAGE_REGEX, |
+ constants.PACKAGE_INFO['chrome_stable'].package) |
+ _WipeUnderDirIfMatch(device, '/data/app-lib/', _CHROME_PACKAGE_REGEX) |
+ _WipeUnderDirIfMatch(device, '/data/tombstones/', _TOMBSTONE_REGEX) |
+ |
+ _WipeFileOrDir(device, '/data/local.prop') |
+ _WipeFileOrDir(device, '/data/local/chrome-command-line') |
+ _WipeFileOrDir(device, '/data/local/.config/') |
+ _WipeFileOrDir(device, '/data/local/tmp/') |
+ device.RunShellCommand('rm -rf %s/*' % device.GetExternalStoragePath(), |
+ check_return=True) |
except device_errors.CommandFailedError: |
logging.exception('Possible failure while wiping the device. ' |
'Attempting to continue.') |
@@ -250,7 +257,10 @@ def SetProperties(device, options): |
except device_errors.CommandFailedError as e: |
logging.warning(str(e)) |
- _ConfigureLocalProperties(device, options.enable_java_debug) |
+ if not device.IsUserBuild(): |
+ _ConfigureLocalProperties(device, options.enable_java_debug) |
+ else: |
+ logging.warning('Cannot configure properties in user builds.') |
device_settings.ConfigureContentSettings( |
device, device_settings.DETERMINISTIC_DEVICE_SETTINGS) |
if options.disable_location: |
@@ -315,6 +325,11 @@ def _ConfigureLocalProperties(device, java_debug=True): |
def FinishProvisioning(device, options): |
+ # The lockscreen can't be disabled on user builds, so send a keyevent |
+ # to unlock it. |
+ if device.IsUserBuild(): |
+ device.SendKeyEvent(keyevent.KEYCODE_MENU) |
+ |
if options.min_battery_level is not None: |
try: |
battery = battery_utils.BatteryUtils(device) |
@@ -355,10 +370,14 @@ def FinishProvisioning(device, options): |
return False |
# Sometimes the date is not set correctly on the devices. Retry on failure. |
- if not timeout_retry.WaitFor(_set_and_verify_date, wait_period=1, |
- max_tries=2): |
- raise device_errors.CommandFailedError( |
- 'Failed to set date & time.', device_serial=str(device)) |
+ if device.IsUserBuild(): |
+ # TODO(bpastene): Figure out how to set the date & time on user builds. |
+ pass |
+ else: |
+ if not timeout_retry.WaitFor( |
+ _set_and_verify_date, wait_period=1, max_tries=2): |
+ raise device_errors.CommandFailedError( |
+ 'Failed to set date & time.', device_serial=str(device)) |
props = device.RunShellCommand('getprop', check_return=True) |
for prop in props: |