# 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;
