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

Commit abfe1044 authored by Tao Bao's avatar Tao Bao Committed by Android (Google) Code Review
Browse files

Merge "Support SELinux context label when mounting" into mnc-dev

parents 6784cae4 548eb76c
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -202,12 +202,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")
@@ -256,6 +257,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,))
@@ -275,9 +277,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):