OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 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 """Provides a variety of device interactions based on adb. | 5 """Provides a variety of device interactions based on adb. |
6 | 6 |
7 Eventually, this will be based on adb_wrapper. | 7 Eventually, this will be based on adb_wrapper. |
8 """ | 8 """ |
9 # pylint: disable=unused-argument | 9 # pylint: disable=unused-argument |
10 | 10 |
(...skipping 991 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1002 | 1002 |
1003 Args: | 1003 Args: |
1004 package: A string containing the name of the package to stop. | 1004 package: A string containing the name of the package to stop. |
1005 timeout: timeout in seconds | 1005 timeout: timeout in seconds |
1006 retries: number of retries | 1006 retries: number of retries |
1007 | 1007 |
1008 Raises: | 1008 Raises: |
1009 CommandTimeoutError on timeout. | 1009 CommandTimeoutError on timeout. |
1010 DeviceUnreachableError on missing device. | 1010 DeviceUnreachableError on missing device. |
1011 """ | 1011 """ |
1012 self.RunShellCommand(['am', 'force-stop', package], check_return=True) | 1012 cmd = 'p=%s;if [[ "$(ps)" = *$p* ]]; then am force-stop $p; fi' |
| 1013 self.RunShellCommand(cmd % package, check_return=True) |
1013 | 1014 |
1014 @decorators.WithTimeoutAndRetriesFromInstance() | 1015 @decorators.WithTimeoutAndRetriesFromInstance() |
1015 def ClearApplicationState( | 1016 def ClearApplicationState( |
1016 self, package, permissions=None, timeout=None, retries=None): | 1017 self, package, permissions=None, timeout=None, retries=None): |
1017 """Clear all state for the given package. | 1018 """Clear all state for the given package. |
1018 | 1019 |
1019 Args: | 1020 Args: |
1020 package: A string containing the name of the package to stop. | 1021 package: A string containing the name of the package to stop. |
1021 permissions: List of permissions to set after clearing data. | 1022 permissions: List of permissions to set after clearing data. |
1022 timeout: timeout in seconds | 1023 timeout: timeout in seconds |
(...skipping 1033 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2056 if ('android.permission.WRITE_EXTERNAL_STORAGE' in permissions | 2057 if ('android.permission.WRITE_EXTERNAL_STORAGE' in permissions |
2057 and 'android.permission.READ_EXTERNAL_STORAGE' not in permissions): | 2058 and 'android.permission.READ_EXTERNAL_STORAGE' not in permissions): |
2058 permissions.append('android.permission.READ_EXTERNAL_STORAGE') | 2059 permissions.append('android.permission.READ_EXTERNAL_STORAGE') |
2059 cmd = ';'.join('pm grant %s %s' %(package, p) for p in permissions) | 2060 cmd = ';'.join('pm grant %s %s' %(package, p) for p in permissions) |
2060 if cmd: | 2061 if cmd: |
2061 output = self.RunShellCommand(cmd) | 2062 output = self.RunShellCommand(cmd) |
2062 if output: | 2063 if output: |
2063 logging.warning('Possible problem when granting permissions. Blacklist ' | 2064 logging.warning('Possible problem when granting permissions. Blacklist ' |
2064 'may need to be updated.') | 2065 'may need to be updated.') |
2065 logging.warning(output) | 2066 logging.warning(output) |
OLD | NEW |