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

Unified Diff: build/android/gyp/apk_install.py

Issue 16831013: [Android] Add an action to check/record attached devices (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Blah Created 7 years, 6 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 | « no previous file | build/android/gyp/create_device_library_links.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/gyp/apk_install.py
diff --git a/build/android/gyp/apk_install.py b/build/android/gyp/apk_install.py
index ef10c6a3bd695403c8d661460f8e3a38d5ee930e..f0ed973a3085f1a8b8d3d5bfd767000d5f8e8f90 100755
--- a/build/android/gyp/apk_install.py
+++ b/build/android/gyp/apk_install.py
@@ -14,20 +14,18 @@ import re
import subprocess
import sys
+from util import build_device
from util import build_utils
from util import md5_check
BUILD_ANDROID_DIR = os.path.join(os.path.dirname(__file__), '..')
sys.path.append(BUILD_ANDROID_DIR)
-from pylib import android_commands
from pylib.utils import apk_helper
-
-def GetMetadata(apk_package):
+def GetNewMetadata(device, apk_package):
"""Gets the metadata on the device for the apk_package apk."""
- adb = android_commands.AndroidCommands()
- output = adb.RunShellCommand('ls -l /data/app/')
+ output = device.RunShellCommand('ls -l /data/app/')
# Matches lines like:
# -rw-r--r-- system system 7376582 2013-04-19 16:34 org.chromium.chrome.testshell.apk
# -rw-r--r-- system system 7376582 2013-04-19 16:34 org.chromium.chrome.testshell-1.apk
@@ -35,23 +33,19 @@ def GetMetadata(apk_package):
matches = filter(apk_matcher, output)
return matches[0] if matches else None
-
-def HasInstallMetadataChanged(apk_package, metadata_path):
+def HasInstallMetadataChanged(device, apk_package, metadata_path):
"""Checks if the metadata on the device for apk_package has changed."""
if not os.path.exists(metadata_path):
return True
with open(metadata_path, 'r') as expected_file:
- return expected_file.read() != GetMetadata(apk_package)
+ return expected_file.read() != device.GetInstallMetadata(apk_package)
-def RecordInstallMetadata(apk_package, metadata_path):
+def RecordInstallMetadata(device, apk_package, metadata_path):
"""Records the metadata from the device for apk_package."""
- metadata = GetMetadata(apk_package)
+ metadata = GetNewMetadata(device, apk_package)
if not metadata:
- if not android_commands.AndroidCommands().IsRootEnabled():
- raise Exception('APK install failed unexpectedly -- root not enabled on '
- 'the device (run adb root).')
raise Exception('APK install failed unexpectedly.')
with open(metadata_path, 'w') as outfile:
@@ -59,11 +53,6 @@ def RecordInstallMetadata(apk_package, metadata_path):
def main(argv):
- if not build_utils.IsDeviceReady():
- build_utils.PrintBigWarning(
- 'Zero (or multiple) devices attached. Skipping APK install.')
- return
-
parser = optparse.OptionParser()
parser.add_option('--android-sdk-tools',
help='Path to Android SDK tools.')
@@ -71,28 +60,29 @@ def main(argv):
help='Path to .apk to install.')
parser.add_option('--install-record',
help='Path to install record (touched only when APK is installed).')
+ parser.add_option('--build-device-configuration',
+ help='Path to build device configuration.')
parser.add_option('--stamp',
help='Path to touch on success.')
options, _ = parser.parse_args()
- # TODO(cjhopman): Should this install to all devices/be configurable?
- install_cmd = [
- os.path.join(options.android_sdk_tools, 'adb'),
- 'install', '-r',
- options.apk_path]
+ device = build_device.GetBuildDeviceFromPath(
+ options.build_device_configuration)
+ if not device:
+ return
- serial_number = android_commands.AndroidCommands().Adb().GetSerialNumber()
+ serial_number = device.GetSerialNumber()
apk_package = apk_helper.GetPackageName(options.apk_path)
metadata_path = '%s.%s.device.time.stamp' % (options.apk_path, serial_number)
# If the APK on the device does not match the one that was last installed by
# the build, then the APK has to be installed (regardless of the md5 record).
- force_install = HasInstallMetadataChanged(apk_package, metadata_path)
+ force_install = HasInstallMetadataChanged(device, apk_package, metadata_path)
def Install():
- build_utils.CheckCallDie(install_cmd)
- RecordInstallMetadata(apk_package, metadata_path)
+ device.Install(options.apk_path, reinstall=True)
+ RecordInstallMetadata(device, apk_package, metadata_path)
build_utils.Touch(options.install_record)
@@ -101,7 +91,6 @@ def main(argv):
Install,
record_path=record_path,
input_paths=[options.apk_path],
- input_strings=install_cmd,
force=force_install)
if options.stamp:
« no previous file with comments | « no previous file | build/android/gyp/create_device_library_links.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698