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

Side by Side Diff: build/android/devil/android/sdk/adb_wrapper.py

Issue 1511473004: [Android] Add support for installing older versions of installed apks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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 unified diff | Download patch
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """This module wraps Android's adb tool. 5 """This module wraps Android's adb tool.
6 6
7 This is a thin wrapper around the adb interface. Any additional complexity 7 This is a thin wrapper around the adb interface. Any additional complexity
8 should be delegated to a higher level (ex. DeviceUtils). 8 should be delegated to a higher level (ex. DeviceUtils).
9 """ 9 """
10 10
(...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 Args: 431 Args:
432 timeout: (optional) Timeout per try in seconds. 432 timeout: (optional) Timeout per try in seconds.
433 retries: (optional) Number of retries to attempt. 433 retries: (optional) Number of retries to attempt.
434 434
435 Returns: 435 Returns:
436 A list of PIDs as strings. 436 A list of PIDs as strings.
437 """ 437 """
438 return [a.strip() for a in 438 return [a.strip() for a in
439 self._RunDeviceAdbCmd(['jdwp'], timeout, retries).split('\n')] 439 self._RunDeviceAdbCmd(['jdwp'], timeout, retries).split('\n')]
440 440
441 def Install(self, apk_path, forward_lock=False, reinstall=False, 441 def Install(self, apk_path, forward_lock=False, allow_downgrade=False,
442 sd_card=False, timeout=60*2, retries=_DEFAULT_RETRIES): 442 reinstall=False, sd_card=False, timeout=60*2,
443 retries=_DEFAULT_RETRIES):
443 """Install an apk on the device. 444 """Install an apk on the device.
444 445
445 Args: 446 Args:
446 apk_path: Host path to the APK file. 447 apk_path: Host path to the APK file.
447 forward_lock: (optional) If set forward-locks the app. 448 forward_lock: (optional) If set forward-locks the app.
448 reinstall: (optional) If set reinstalls the app, keeping its data. 449 reinstall: (optional) If set reinstalls the app, keeping its data.
449 sd_card: (optional) If set installs on the SD card. 450 sd_card: (optional) If set installs on the SD card.
450 timeout: (optional) Timeout per try in seconds. 451 timeout: (optional) Timeout per try in seconds.
451 retries: (optional) Number of retries to attempt. 452 retries: (optional) Number of retries to attempt.
453 allow_downgrade: (optional) If set, allows for downgrades.
jbudorick 2015/12/08 16:44:56 nit: same
rnephew (Reviews Here) 2015/12/08 16:57:57 Done.
452 """ 454 """
453 VerifyLocalFileExists(apk_path) 455 VerifyLocalFileExists(apk_path)
454 cmd = ['install'] 456 cmd = ['install']
455 if forward_lock: 457 if forward_lock:
456 cmd.append('-l') 458 cmd.append('-l')
457 if reinstall: 459 if reinstall:
458 cmd.append('-r') 460 cmd.append('-r')
459 if sd_card: 461 if sd_card:
460 cmd.append('-s') 462 cmd.append('-s')
463 if allow_downgrade:
464 cmd.append('-d')
461 cmd.append(apk_path) 465 cmd.append(apk_path)
462 output = self._RunDeviceAdbCmd(cmd, timeout, retries) 466 output = self._RunDeviceAdbCmd(cmd, timeout, retries)
463 if 'Success' not in output: 467 if 'Success' not in output:
464 raise device_errors.AdbCommandFailedError( 468 raise device_errors.AdbCommandFailedError(
465 cmd, output, device_serial=self._device_serial) 469 cmd, output, device_serial=self._device_serial)
466 470
467 def InstallMultiple(self, apk_paths, forward_lock=False, reinstall=False, 471 def InstallMultiple(self, apk_paths, forward_lock=False, reinstall=False,
468 sd_card=False, allow_downgrade=False, partial=False, 472 sd_card=False, allow_downgrade=False, partial=False,
469 timeout=60*2, retries=_DEFAULT_RETRIES): 473 timeout=60*2, retries=_DEFAULT_RETRIES):
470 """Install an apk with splits on the device. 474 """Install an apk with splits on the device.
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 @property 659 @property
656 def is_emulator(self): 660 def is_emulator(self):
657 return _EMULATOR_RE.match(self._device_serial) 661 return _EMULATOR_RE.match(self._device_serial)
658 662
659 @property 663 @property
660 def is_ready(self): 664 def is_ready(self):
661 try: 665 try:
662 return self.GetState() == _READY_STATE 666 return self.GetState() == _READY_STATE
663 except device_errors.CommandFailedError: 667 except device_errors.CommandFailedError:
664 return False 668 return False
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698