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;