type atfwd, domain, domain_deprecated;
type atfwd_exec, exec_type, file_type;

# Started by init
init_daemon_domain(atfwd)

binder_use(atfwd)
binder_call(atfwd,system_app)

allow atfwd sysfs_msm_subsys:dir r_dir_perms;
allow atfwd sysfs_msm_subsys:lnk_file r_file_perms;

set_prop(atfwd, radio_atfwd_prop)

allow atfwd atfwd_service:service_manager find;
qmux_socket(atfwd)
