• Nick Kralevich's avatar
    unconditionally apply SELinux labels to symlinks · 68802416
    Nick Kralevich authored
    At the end of the OTA script, we walk through /system, updating
    all the permissions on the filesystem, including the UID, GID,
    standard UNIX permissions, capabilities, and SELinux labels.
    
    In the case of a symbolic link, however, we want to skip most of
    those operations. The UID, GID, UNIX permissions, and capabilities
    don't meaningfully apply to symbolic links.
    
    However, that's not true with SELinux labels. The SELinux label on
    a symbolic link is important. We need to make sure the label on the
    symbolic link is always updated, even if none of the other attributes
    are updated.
    
    This change unconditionally updates the SELinux label on the symbolic
    link itself. lsetfilecon() is used, so that the link itself is updated,
    not what it's pointing to.
    
    In addition, drop the ENOTSUP special case. SELinux has been a
    requirement since Android 4.4. Running without filesystem extended
    attributes is no longer supported, and we shouldn't even try to handle
    non-SELinux updates anymore. (Note: this could be problematic if
    these scripts are ever used to produce OTA images for 4.2 devices)
    
    Bug: 18079773
    Change-Id: I87f99a1c88fe02bb2914f1884cac23ce1b385f91
    68802416
install.c 48.2 KB