| Index: build/android/provision_devices.py
|
| diff --git a/build/android/provision_devices.py b/build/android/provision_devices.py
|
| index 69e8168514c71940ffe5e7533188cf0050ed45f2..7fef1b8d9cc53de1d8b4256a930e4a91183cd009 100755
|
| --- a/build/android/provision_devices.py
|
| +++ b/build/android/provision_devices.py
|
| @@ -125,7 +125,7 @@ def WriteAdbKeysFile(device, adb_keys_string):
|
| as_root=True)
|
|
|
|
|
| -def WipeDeviceData(device):
|
| +def WipeDeviceData(device, options):
|
| """Wipes data from device, keeping only the adb_keys for authorization.
|
|
|
| After wiping data on a device that has been authorized, adb can still
|
| @@ -139,16 +139,22 @@ def WipeDeviceData(device):
|
| """
|
| device_authorized = device.FileExists(constants.ADB_KEYS_FILE)
|
| if device_authorized:
|
| - adb_keys = device.ReadFile(constants.ADB_KEYS_FILE, as_root=True)
|
| + adb_keys = device.ReadFile(constants.ADB_KEYS_FILE,
|
| + as_root=True).splitlines()
|
| device.RunShellCommand('wipe data', as_root=True)
|
| if device_authorized:
|
| - WriteAdbKeysFile(device, adb_keys)
|
| + adb_keys_set = set(adb_keys)
|
| + for adb_key_file in options.adb_key_files or []:
|
| + with open(adb_key_file, 'r') as f:
|
| + adb_public_keys = f.readlines()
|
| + adb_keys_set.update(adb_public_keys)
|
| + WriteAdbKeysFile(device, '\n'.join(adb_keys_set))
|
|
|
|
|
| -def WipeDeviceIfPossible(device, timeout):
|
| +def WipeDeviceIfPossible(device, timeout, options):
|
| try:
|
| device.EnableRoot()
|
| - WipeDeviceData(device)
|
| + WipeDeviceData(device, options)
|
| device.Reboot(True, timeout=timeout, retries=0)
|
| except (errors.DeviceUnresponsiveError, device_errors.CommandFailedError):
|
| pass
|
| @@ -177,17 +183,9 @@ def ProvisionDevice(device, options):
|
| else:
|
| reboot_timeout = _DEFAULT_TIMEOUTS.PRE_LOLLIPOP
|
|
|
| - if options.adb_key_files:
|
| - adb_keys = set()
|
| - for adb_key_file in options.adb_key_files:
|
| - with open(adb_key_file, 'r') as f:
|
| - adb_public_keys = f.readlines()
|
| - adb_keys.update(adb_public_keys)
|
| - WriteAdbKeysFile(device, '\n'.join(adb_keys))
|
| -
|
| try:
|
| if not options.skip_wipe:
|
| - WipeDeviceIfPossible(device, reboot_timeout)
|
| + WipeDeviceIfPossible(device, reboot_timeout, options)
|
| try:
|
| device.EnableRoot()
|
| except device_errors.CommandFailedError as e:
|
|
|