Skip to content
Snippets Groups Projects
  • Jeff Vander Stoep's avatar
    domain_deprecated: remove sysfs rules · 275f6dd5
    Jeff Vander Stoep authored
    Clean up the remaining granted permissions in domain_deprecated.
    
    avc: granted { read open } for comm="uncrypt"
    path="/sys/firmware/devicetree/base/firmware/android/fstab/compatible"
    dev="sysfs" ino=17591 scontext=u:r:uncrypt:s0
    tcontext=u:object_r:sysfs:s0 tclass=file
    avc: granted { getattr } for comm="uncrypt"
    path="/sys/firmware/devicetree/base/firmware/android/compatible"
    dev="sysfs" ino=17583 scontext=u:r:uncrypt:s0
    tcontext=u:object_r:sysfs:s0 tclass=file
    
    vc: granted { read open } for comm="update_engine"
    path="/sys/firmware/devicetree/base/firmware/android/fstab" dev="sysfs"
    ino=17258 scontext=u:r:update_engine:s0 tcontext=u:object_r:sysfs:s0
    tclass=dir
    avc: granted { getattr } for comm="update_engine"
    path="/sys/firmware/devicetree/base/firmware/android/fstab/compatible"
    dev="sysfs" ino=17259 scontext=u:r:update_engine:s0
    tcontext=u:object_r:sysfs:s0 tclass=file
    
    Bug: 28760354
    Test: build
    Change-Id: Id318ce84894c1001361923f5205de093a15c1e6a
    275f6dd5
update_engine_common.te 2.07 KiB
# update_engine payload application permissions. These are shared between the
# background daemon and the recovery tool to sideload an update.

# Allow update_engine to reach block devices in /dev/block.
allow update_engine_common block_device:dir search;

# Allow read/write on system and boot partitions.
allow update_engine_common boot_block_device:blk_file rw_file_perms;
allow update_engine_common system_block_device:blk_file rw_file_perms;

# Allow to set recovery options in the BCB. Used to trigger factory reset when
# the update to an older version (channel change) or incompatible version
# requires it.
allow update_engine_common misc_block_device:blk_file rw_file_perms;

# read fstab
allow update_engine_common rootfs:dir getattr;
allow update_engine_common rootfs:file r_file_perms;

# Allow update_engine_common to mount on the /postinstall directory and reset the
# labels on the mounted filesystem to postinstall_file.
allow update_engine_common postinstall_mnt_dir:dir { mounton getattr search };
allow update_engine_common postinstall_file:filesystem { mount unmount relabelfrom relabelto };
allow update_engine_common labeledfs:filesystem relabelfrom;

# Allow update_engine_common to read and execute postinstall_file.
allow update_engine_common postinstall_file:file rx_file_perms;
allow update_engine_common postinstall_file:lnk_file r_file_perms;
allow update_engine_common postinstall_file:dir r_dir_perms;

# install update.zip from cache
r_dir_file(update_engine_common, cache_file)

# A postinstall program is typically a shell script (with a #!), so we allow
# to execute those.
allow update_engine_common shell_exec:file rx_file_perms;

# Allow update_engine_common to suspend, resume and kill the postinstall program.
allow update_engine_common postinstall:process { signal sigstop sigkill };

# access /proc/misc and /proc/sys/kernel/random/boot_id
allow update_engine proc:file r_file_perms;
allow update_engine proc_misc:file r_file_perms;

# read directories on /system and /vendor
allow update_engine system_file:dir r_dir_perms;

# Read files in /sys
r_dir_file(uncrypt, sysfs)