type nanoapp_cmd, domain;
type nanoapp_cmd_exec, exec_type, file_type;

init_daemon_domain(nanoapp_cmd)

allow nanoapp_cmd sensors_device:chr_file rw_file_perms;
allow nanoapp_cmd sysfs_nanoapp_cmd:dir search;
allow nanoapp_cmd sysfs_nanoapp_cmd:file rw_file_perms;

