diff options
Diffstat (limited to 'catapult/devil/devil/android/sdk/shared_prefs.py')
-rw-r--r-- | catapult/devil/devil/android/sdk/shared_prefs.py | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/catapult/devil/devil/android/sdk/shared_prefs.py b/catapult/devil/devil/android/sdk/shared_prefs.py index c8c82b4e..7b12bf54 100644 --- a/catapult/devil/devil/android/sdk/shared_prefs.py +++ b/catapult/devil/devil/android/sdk/shared_prefs.py @@ -1,7 +1,6 @@ # Copyright 2015 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. - """Helper object to read and modify Shared Preferences from Android apps. See e.g.: @@ -17,7 +16,6 @@ from devil.android.sdk import version_codes logger = logging.getLogger(__name__) - _XML_DECLARATION = "<?xml version='1.0' encoding='utf-8' standalone='yes' ?>\n" @@ -161,12 +159,14 @@ class StringSetPref(StringPref): ElementTree.SubElement(self._elem, 'string').text = str(item) -_PREF_TYPES = {c.tag_name: c for c in [BooleanPref, FloatPref, IntPref, - LongPref, StringPref, StringSetPref]} +_PREF_TYPES = { + c.tag_name: c + for c in + [BooleanPref, FloatPref, IntPref, LongPref, StringPref, StringSetPref] +} class SharedPrefs(object): - def __init__(self, device, package, filename, use_encrypted_path=False): """Helper object to read and update "Shared Prefs" of Android apps. @@ -224,8 +224,10 @@ class SharedPrefs(object): def __repr__(self): """Get a useful printable representation of the object.""" return '<{cls} file {filename} for {package} on {device}>'.format( - cls=type(self).__name__, filename=self.filename, package=self.package, - device=str(self._device)) + cls=type(self).__name__, + filename=self.filename, + package=self.package, + device=str(self._device)) def __str__(self): """Get the underlying xml document as a string.""" @@ -292,15 +294,16 @@ class SharedPrefs(object): return self._device.RunShellCommand( ['mkdir', '-p', posixpath.dirname(self.path)], - as_root=True, check_return=True) + as_root=True, + check_return=True) self._device.WriteFile(self.path, str(self), as_root=True) # Creating the directory/file can cause issues with SELinux if they did # not already exist. As a workaround, apply the package's security context # to the shared_prefs directory, which mimics the behavior of a file # created by the app itself if self._device.build_version_sdk >= version_codes.MARSHMALLOW: - security_context = self._device.GetSecurityContextForPackage(self.package, - encrypted=self._encrypted) + security_context = self._device.GetSecurityContextForPackage( + self.package, encrypted=self._encrypted) if security_context is None: raise device_errors.CommandFailedError( 'Failed to get security context for %s' % self.package) @@ -310,11 +313,11 @@ class SharedPrefs(object): # Ensure that there isn't both an encrypted and unencrypted version of the # file on the device at the same time. if self._device.build_version_sdk >= version_codes.NOUGAT: - remove_path = (self._unencrypted_path if self._encrypted - else self._encrypted_path) + remove_path = (self._unencrypted_path + if self._encrypted else self._encrypted_path) if self._device.PathExists(remove_path, as_root=True): logging.warning('Found an equivalent shared prefs file at %s, removing', - remove_path) + remove_path) self._device.RemovePath(remove_path, as_root=True) self._device.KillAll(self.package, exact=True, as_root=True, quiet=True) @@ -431,8 +434,8 @@ class SharedPrefs(object): pref = pref_cls(self._GetChild(key)) old_value = pref.get() except KeyError: - pref = pref_cls(ElementTree.SubElement( - self.xml, pref_cls.tag_name, {'name': key})) + pref = pref_cls( + ElementTree.SubElement(self.xml, pref_cls.tag_name, {'name': key})) old_value = None if old_value != value: pref.set(value) |