Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3775)

Unified Diff: build/android/provision_devices.py

Issue 988693005: Chromium roll (https://codereview.chromium.org/976353002) (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: fixed bad android build patch Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/android/lint/suppressions.xml ('k') | build/android/pylib/base/test_dispatcher.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/provision_devices.py
diff --git a/build/android/provision_devices.py b/build/android/provision_devices.py
index 48350731fa75a0414e616f1a7da44434ed2986c2..5f00b31e8a817440b99d845b6745401c6d46c947 100755
--- a/build/android/provision_devices.py
+++ b/build/android/provision_devices.py
@@ -13,6 +13,7 @@ Usage:
import argparse
import logging
import os
+import posixpath
import re
import subprocess
import sys
@@ -115,8 +116,16 @@ def _ConfigureLocalProperties(device, java_debug=True):
# LOCAL_PROPERTIES_PATH = '/data/local.prop'
+def WriteAdbKeysFile(device, adb_keys_string):
+ dir_path = posixpath.dirname(constants.ADB_KEYS_FILE)
+ device.RunShellCommand('mkdir -p %s' % dir_path, as_root=True)
+ device.RunShellCommand('restorecon %s' % dir_path, as_root=True)
+ device.WriteFile(constants.ADB_KEYS_FILE, adb_keys_string, as_root=True)
+ device.RunShellCommand('restorecon %s' % constants.ADB_KEYS_FILE,
+ 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
@@ -130,22 +139,25 @@ 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:
- path_list = constants.ADB_KEYS_FILE.split('/')
- dir_path = '/'.join(path_list[:len(path_list)-1])
- device.RunShellCommand('mkdir -p %s' % dir_path, as_root=True)
- device.RunShellCommand('restorecon %s' % dir_path, as_root=True)
- device.WriteFile(constants.ADB_KEYS_FILE, adb_keys, as_root=True)
- device.RunShellCommand('restorecon %s' % constants.ADB_KEYS_FILE,
- as_root=True)
+ adb_keys_set = set(adb_keys)
+ for adb_key_file in options.adb_key_files or []:
+ try:
+ with open(adb_key_file, 'r') as f:
+ adb_public_keys = f.readlines()
+ adb_keys_set.update(adb_public_keys)
+ except IOError:
+ logging.warning('Unable to find adb keys file %s.' % adb_key_file)
+ 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
@@ -176,7 +188,7 @@ def ProvisionDevice(device, options):
try:
if not options.skip_wipe:
- WipeDeviceIfPossible(device, reboot_timeout)
+ WipeDeviceIfPossible(device, reboot_timeout, options)
try:
device.EnableRoot()
except device_errors.CommandFailedError as e:
@@ -196,7 +208,7 @@ def ProvisionDevice(device, options):
device, device_settings.NETWORK_DISABLED_SETTINGS)
if options.min_battery_level is not None:
try:
- device.SetUsbCharging(True)
+ device.SetCharging(True)
ChargeDeviceToLevel(device, options.min_battery_level)
except device_errors.CommandFailedError as e:
logging.exception('Unable to charge device to specified level.')
@@ -280,6 +292,8 @@ def main():
parser.add_argument('-r', '--auto-reconnect', action='store_true',
help='push binary which will reboot the device on adb'
' disconnections')
+ parser.add_argument('--adb-key-files', type=str, nargs='+',
+ help='list of adb keys to push to device')
args = parser.parse_args()
constants.SetBuildType(args.target)
« no previous file with comments | « build/android/lint/suppressions.xml ('k') | build/android/pylib/base/test_dispatcher.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698