# remote storage process (runs as nobody)
type rmt, domain;
type rmt_exec, exec_type, file_type;

# Started by init
init_daemon_domain(rmt)

permissive 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 root_block_device:dir r_dir_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
allow rmt sysfs_wake_lock:file { open append };
