#==================ftm_ptt=========================
type ftm_ptt, domain;
type ftm_ptt_exec, exec_type, file_type;
init_daemon_domain(ftm_ptt)
net_domain(ftm_ptt)

# To make VT call
binder_use(ftm_ptt)

allow ftm_ptt dnsproxyd_socket:sock_file write;
allow ftm_ptt ftm_ptt:appletalk_socket { lock accept connect shutdown append create write relabelfrom getattr getopt listen setopt read ioctl recv_msg name_bind send_msg setattr bind recvfrom sendto relabelto };
allow ftm_ptt ftm_ptt:capability net_raw;
allow ftm_ptt ftm_ptt:dir { read search ioctl open getattr };
allow ftm_ptt ftm_ptt:fd use;
allow ftm_ptt ftm_ptt:fifo_file { read lock getattr write ioctl open append };
allow ftm_ptt ftm_ptt:file { read lock getattr write ioctl open append };
allow ftm_ptt ftm_ptt:ipc { unix_read setattr associate read create write getattr unix_write destroy };
allow ftm_ptt ftm_ptt:key { search setattr read create write link view };
allow ftm_ptt ftm_ptt:key_socket { lock accept connect shutdown append create write relabelfrom getattr getopt listen setopt read ioctl recv_msg name_bind send_msg setattr bind recvfrom sendto relabelto };
allow ftm_ptt ftm_ptt:lnk_file { read lock ioctl open getattr };
allow ftm_ptt ftm_ptt:msg { receive send };
allow ftm_ptt ftm_ptt:msgq { unix_read setattr associate read create write enqueue getattr unix_write destroy };
allow ftm_ptt ftm_ptt:netlink_route_socket { nlmsg_write lock accept connect shutdown append create nlmsg_read write relabelfrom getattr getopt listen setopt read ioctl recv_msg name_bind send_msg setattr bind recvfrom sendto relabelto };
allow ftm_ptt ftm_ptt:netlink_selinux_socket { lock accept connect shutdown append create write relabelfrom getattr getopt listen setopt read ioctl recv_msg name_bind send_msg setattr bind recvfrom sendto relabelto };
allow ftm_ptt ftm_ptt:netlink_socket { setopt setattr read lock create getattr write ioctl connect shutdown bind getopt append };
allow ftm_ptt ftm_ptt:packet_socket { lock accept connect shutdown append create write relabelfrom getattr getopt listen setopt read ioctl recv_msg name_bind send_msg setattr bind recvfrom sendto relabelto };
allow ftm_ptt ftm_ptt:process { sigkill share getpgid signull setkeycreate siginh getattr setcurrent setrlimit rlimitinh fork getsession setexec setpgid setsched sigstop ptrace noatsecure setsockcreate setfscreate execheap sigchld execstack signal transition setcap execmem getcap getsched dyntransition };
allow ftm_ptt ftm_ptt:rawip_socket { lock accept connect shutdown append create write relabelfrom getattr getopt listen setopt read ioctl recv_msg name_bind send_msg setattr bind recvfrom sendto relabelto node_bind };
allow ftm_ptt ftm_ptt:sem { unix_read setattr associate read create write getattr unix_write destroy };
allow ftm_ptt ftm_ptt:shm { unix_read setattr associate read lock create write getattr unix_write destroy };
allow ftm_ptt ftm_ptt:socket { lock accept connect shutdown append create write relabelfrom getattr getopt listen setopt read ioctl recv_msg name_bind send_msg setattr bind recvfrom sendto relabelto };
allow ftm_ptt ftm_ptt:tcp_socket { lock accept connect shutdown append connectto create write relabelfrom getattr getopt listen acceptfrom setopt read newconn ioctl recv_msg name_bind name_connect send_msg setattr bind recvfrom sendto relabelto node_bind };
allow ftm_ptt ftm_ptt:tun_socket { lock accept connect shutdown append create write relabelfrom getattr getopt listen setopt read attach_queue ioctl recv_msg name_bind send_msg setattr bind recvfrom sendto relabelto };
allow ftm_ptt ftm_ptt:udp_socket { lock accept connect shutdown append create write relabelfrom getattr getopt listen setopt read ioctl recv_msg name_bind send_msg setattr bind recvfrom sendto relabelto node_bind };
allow ftm_ptt ftm_ptt:unix_dgram_socket { lock accept connect shutdown append create write relabelfrom getattr getopt listen setopt read ioctl recv_msg name_bind send_msg setattr bind recvfrom sendto relabelto };
allow ftm_ptt ftm_ptt:unix_stream_socket { lock accept connect shutdown append connectto create write relabelfrom getattr getopt listen acceptfrom setopt read newconn ioctl recv_msg name_bind send_msg setattr bind recvfrom sendto relabelto };
allow ftm_ptt ftm_ptt_exec:file { read open getattr entrypoint execute };
allow ftm_ptt ftm_ptt_tmpfs:file { read write };
allow ftm_ptt fwmarkd_socket:sock_file write;
allow ftm_ptt init:process sigchld;
allow ftm_ptt netd:unix_stream_socket connectto;
allow ftm_ptt node:tcp_socket node_bind;
allow ftm_ptt node:udp_socket node_bind;
allow ftm_ptt port:tcp_socket { name_bind name_connect };
allow ftm_ptt port:udp_socket name_bind;
