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

Unified Diff: build/android/pylib/device/device_utils.py

Issue 796013004: Revert of Reland of Migrate DeviceUtils.ReadFile to adb_wrapper (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | build/android/pylib/device/device_utils_test.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/pylib/device/device_utils.py
diff --git a/build/android/pylib/device/device_utils.py b/build/android/pylib/device/device_utils.py
index 72238fdc7a606d6b977acff0cb079a959fce94a6..743b1ce1a25f938c15bd94e57e5b9d17af0ddaad 100644
--- a/build/android/pylib/device/device_utils.py
+++ b/build/android/pylib/device/device_utils.py
@@ -65,13 +65,6 @@
CommandFailedError if we fail to kill or restart the server.
"""
pylib.android_commands.AndroidCommands().RestartAdbServer()
-
-
-def _JoinLines(lines):
- # makes sure that the last line is also terminated, and is more memory
- # efficient than first appending an end-line to each line and then joining
- # all of them together.
- return ''.join(s for line in lines for s in (line, '\n'))
class DeviceUtils(object):
@@ -865,8 +858,7 @@
self.adb.Pull(device_path, host_path)
@decorators.WithTimeoutAndRetriesFromInstance()
- def ReadFile(self, device_path, as_root=False,
- timeout=None, retries=None):
+ def ReadFile(self, device_path, as_root=False, timeout=None, retries=None):
"""Reads the contents of a file from the device.
Args:
@@ -878,17 +870,22 @@
retries: number of retries
Returns:
- The contents of |device_path| as a string. Contents are intepreted using
- universal newlines, so the caller will see them encoded as '\n'. Also,
- all lines will be terminated.
-
- Raises:
- AdbCommandFailedError if the file can't be read.
- CommandTimeoutError on timeout.
- DeviceUnreachableError on missing device.
- """
- return _JoinLines(self.RunShellCommand(
- ['cat', device_path], as_root=as_root, check_return=True))
+ The contents of the file at |device_path| as a list of lines.
+
+ Raises:
+ CommandFailedError if the file can't be read.
+ CommandTimeoutError on timeout.
+ DeviceUnreachableError on missing device.
+ """
+ # TODO(jbudorick) Evaluate whether we want to return a list of lines after
+ # the implementation switch, and if file not found should raise exception.
+ if as_root:
+ if not self.old_interface.CanAccessProtectedFileContents():
+ raise device_errors.CommandFailedError(
+ 'Cannot read from %s with root privileges.' % device_path)
+ return self.old_interface.GetProtectedFileContents(device_path)
+ else:
+ return self.old_interface.GetFileContents(device_path)
@decorators.WithTimeoutAndRetriesFromInstance()
def WriteFile(self, device_path, contents, as_root=False, force_push=False,
« no previous file with comments | « no previous file | build/android/pylib/device/device_utils_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698