type rfs_access, domain;
type rfs_access_exec, exec_type, vendor_file_type, file_type;

init_daemon_domain(rfs_access)

#For tftp server
allow rfs_access self:capability { chown setgid setpcap setuid net_bind_service };

wakelock_use(rfs_access)

r_dir_file(rfs_access, firmware_file);

# For tftp server file access
allow rfs_access mnt_vendor_file:dir search;
allow rfs_access mnt_vendor_file:file r_file_perms;
allow rfs_access persist_file:dir search;
allow rfs_access persist_rfs_file:dir create_dir_perms;
allow rfs_access persist_rfs_file:file create_file_perms;
allow rfs_access mpss_rfs_data_file:dir create_dir_perms;
allow rfs_access mpss_rfs_data_file:file create_file_perms;
allow rfs_access rfs_tombstone_data_file:dir create_dir_perms;
allow rfs_access rfs_tombstone_data_file:file create_file_perms;

allow rfs_access self:socket create_socket_perms_no_ioctl;
userdebug_or_eng(`
allow rfs_access wifidump_vendor_data_file:dir rw_dir_perms;
allow rfs_access wifidump_vendor_data_file:file create_file_perms;
')

dontaudit rfs_access kernel:system module_request;
