Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dd77b561 authored by Tao Bao's avatar Tao Bao Committed by Gerrit Code Review
Browse files

Merge "Support SELinux context label when mounting"

parents c8f97acc df06e968
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -199,12 +199,13 @@ def LoadDictionaryFromLines(lines):

def LoadRecoveryFSTab(read_helper, fstab_version):
  class Partition(object):
    def __init__(self, mount_point, fs_type, device, length, device2):
    def __init__(self, mount_point, fs_type, device, length, device2, context):
      self.mount_point = mount_point
      self.fs_type = fs_type
      self.device = device
      self.length = length
      self.device2 = device2
      self.context = context

  try:
    data = read_helper("RECOVERY/RAMDISK/etc/recovery.fstab")
@@ -253,6 +254,7 @@ def LoadRecoveryFSTab(read_helper, fstab_version):
      line = line.strip()
      if not line or line.startswith("#"):
        continue
      # <src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
      pieces = line.split()
      if len(pieces) != 5:
        raise ValueError("malformed recovery.fstab line: \"%s\"" % (line,))
@@ -272,9 +274,17 @@ def LoadRecoveryFSTab(read_helper, fstab_version):
          # Ignore all unknown options in the unified fstab
          continue

      mount_flags = pieces[3]
      # Honor the SELinux context if present.
      context = None
      for i in mount_flags.split(","):
        if i.startswith("context="):
          context = i

      mount_point = pieces[1]
      d[mount_point] = Partition(mount_point=mount_point, fs_type=pieces[2],
                                 device=pieces[0], length=length, device2=None)
                                 device=pieces[0], length=length,
                                 device2=None, context=context)

  else:
    raise ValueError("Unknown fstab_version: \"%d\"" % (fstab_version,))
+4 −1
Original line number Diff line number Diff line
@@ -177,9 +177,12 @@ class EdifyGenerator(object):
          if "=" in option:
            key, value = option.split("=", 1)
            mount_dict[key] = value
      mount_flags = mount_dict.get(p.fs_type, "")
      if p.context is not None:
        mount_flags = p.context + ("," + mount_flags if mount_flags else "")
      self.script.append('mount("%s", "%s", "%s", "%s", "%s");' % (
          p.fs_type, common.PARTITION_TYPES[p.fs_type], p.device,
          p.mount_point, mount_dict.get(p.fs_type, "")))
          p.mount_point, mount_flags))
      self.mounts.add(p.mount_point)

  def UnpackPackageDir(self, src, dst):