# remote storage process (runs as nobody) type rmt, domain; type rmt_exec, exec_type, file_type; # Started by init init_daemon_domain(rmt) # Drop (user, group) to (nobody, nobody) allow rmt self:capability { setuid setgid }; # opens and reads /dev/block/mmcblk0 allow rmt root_block_device:blk_file r_file_perms; allow rmt block_device:dir r_dir_perms; # Allow reads/writes to modem related block devices allow rmt modem_block_device:blk_file rw_file_perms; # Allow shared memory logging access allow rmt shared_log_device:chr_file rw_file_perms; allow rmt self:socket create_socket_perms; allow rmt cgroup:dir { create add_name }; # Wake lock access wakelock_use(rmt) # Allow access to /dev/uio0. allow rmt uio_device:chr_file rw_file_perms; # rmt_storage shuts itself down if there is an unknown value of ro.baseband unix_socket_connect(rmt, property, init) allow rmt ctl_rmt_prop:property_service set;