Skip to content
Snippets Groups Projects
  • Nick Kralevich's avatar
    8809341c
    init: allow rootfs symlink removal · 8809341c
    Nick Kralevich authored
    On the Nexus 9, init.rc creates the /vendor -> /system/vendor
    symlink, then a bit later removes the symlink, creates a
    proper directory, and mounts /vendor on the directory.
    
    The current permissive SELinux policy doesn't allow init to
    remove the /vendor symlink, which eventually causes the following
    errors:
    
      avc:  denied  { unlink } for  pid=136 comm="init" name="vendor" dev="rootfs" ino=6454 scontext=u:r:init:s0 tcontext=u:object_r:rootfs:s0 tclass=lnk_file permissive=1
      fs_mgr: Failed to mount an un-encryptable or wiped partition on/dev/block/platform/sdhci-tegra.3/by-name/VNR at /vendor options: (null) error: Too many symbolic links encountered
    
    There was an attempt to reorder some of these operations so
    we didn't have to create / delete the symlink, but it
    doesn't seem to have gone well.
    https://android.googlesource.com/platform/system/core/+/f67d6bd3c0fb41d167c675b9d2b5d377b6f38a74
    
    Change-Id: I4d01661d4228e44e18465fe16ce4a70fe2a83042
    8809341c
    History
    init: allow rootfs symlink removal
    Nick Kralevich authored
    On the Nexus 9, init.rc creates the /vendor -> /system/vendor
    symlink, then a bit later removes the symlink, creates a
    proper directory, and mounts /vendor on the directory.
    
    The current permissive SELinux policy doesn't allow init to
    remove the /vendor symlink, which eventually causes the following
    errors:
    
      avc:  denied  { unlink } for  pid=136 comm="init" name="vendor" dev="rootfs" ino=6454 scontext=u:r:init:s0 tcontext=u:object_r:rootfs:s0 tclass=lnk_file permissive=1
      fs_mgr: Failed to mount an un-encryptable or wiped partition on/dev/block/platform/sdhci-tegra.3/by-name/VNR at /vendor options: (null) error: Too many symbolic links encountered
    
    There was an attempt to reorder some of these operations so
    we didn't have to create / delete the symlink, but it
    doesn't seem to have gone well.
    https://android.googlesource.com/platform/system/core/+/f67d6bd3c0fb41d167c675b9d2b5d377b6f38a74
    
    Change-Id: I4d01661d4228e44e18465fe16ce4a70fe2a83042