# Connectivity Engine Observer Interface daemon (cnd) type cnd, domain, device_domain_deprecated; type cnd_exec, exec_type, file_type; init_daemon_domain(cnd) file_type_auto_trans(cnd, socket_device, cnd_socket); # Talk to qmuxd (qmux_radio) qmux_socket(cnd) # cnd is started as root uid/gid and transitions to system allow cnd self:capability { setuid setgid net_raw }; # Note: fsetid is deliberately not included above. fsetid checks are # triggered by chmod on a directory or file owned by a group other # than one of the groups assigned to the current process to see if # the setgid bit should be cleared, regardless of whether the setgid # bit was even set. We do not appear to truly need this capability # for cnd to operate. dontaudit cnd self:capability fsetid; allow cnd self:socket create_socket_perms; allowxperm cnd self:socket ioctl msm_sock_ipc_ioctls; # create upd_socket to gather network info via ioctls (e.g. MTU size) allow cnd self:udp_socket { create ioctl }; userdebug_or_eng(` allow cnd smem_log_device:chr_file rw_file_perms; ') wakelock_use(cnd)