| type cnd, domain; |
| type cnd_exec, exec_type, vendor_file_type, file_type; |
| file_type_auto_trans(cnd, socket_device, cnd_socket); |
| |
| # cnd is started by init, type transit from init domain to cnd domain |
| init_daemon_domain(cnd) |
| |
| allow cnd self:capability { net_bind_service }; |
| wakelock_use(cnd) |
| |
| allow cnd self:udp_socket create_socket_perms; |
| allowxperm cnd self:udp_socket ioctl SIOCGIFMTU; |
| |
| allow cnd sysfs_timestamp_switch:file r_file_perms; |
| r_dir_file(cnd, sysfs_msm_subsys) |
| r_dir_file(cnd, sysfs_diag) |
| r_dir_file(cnd, sysfs_soc) |
| |
| allow cnd proc_meminfo:file r_file_perms; |
| |
| set_prop(cnd, cnd_prop) |
| |
| allow cnd self:socket create_socket_perms; |
| allowxperm cnd self:socket ioctl msm_sock_ipc_ioctls; |
| |
| # To register cnd to hwbinder |
| add_hwservice(cnd, hal_cne_hwservice) |
| hwbinder_use(cnd) |
| get_prop(cnd, hwservicemanager_prop) |
| binder_call(cnd, dataservice_app) |
| binder_call(cnd, ims) |
| |
| userdebug_or_eng(` |
| allow cnd diag_device:chr_file rw_file_perms; |
| ') |
| dontaudit cnd diag_device:chr_file rw_file_perms; |
| |
| get_prop(cnd, wifi_hal_prop) |