Home | History | Annotate | Download | only in public
      1 # 464xlat daemon
      2 type clatd, domain;
      3 type clatd_exec, exec_type, file_type;
      4 
      5 net_domain(clatd)
      6 
      7 r_dir_file(clatd, proc_net)
      8 
      9 # Access objects inherited from netd.
     10 allow clatd netd:fd use;
     11 allow clatd netd:fifo_file { read write };
     12 # TODO: Check whether some or all of these sockets should be close-on-exec.
     13 allow clatd netd:netlink_kobject_uevent_socket { read write };
     14 allow clatd netd:netlink_nflog_socket { read write };
     15 allow clatd netd:netlink_route_socket { read write };
     16 allow clatd netd:udp_socket { read write };
     17 allow clatd netd:unix_stream_socket { read write };
     18 allow clatd netd:unix_dgram_socket { read write };
     19 
     20 allow clatd self:capability { net_admin net_raw setuid setgid };
     21 
     22 # clatd calls mmap(MAP_LOCKED) with a 1M buffer. MAP_LOCKED first checks
     23 # capable(CAP_IPC_LOCK), and then checks to see the requested amount is
     24 # under RLIMIT_MEMLOCK. If the latter check succeeds clatd won't have
     25 # needed CAP_IPC_LOCK. But this is not guaranteed to succeed on all devices
     26 # so we permit any requests we see from clatd asking for this capability.
     27 # See https://android-review.googlesource.com/127940 and
     28 # https://b.corp.google.com/issues/21736319
     29 allow clatd self:capability ipc_lock;
     30 
     31 allow clatd self:netlink_route_socket nlmsg_write;
     32 allow clatd self:{ packet_socket rawip_socket tun_socket } create_socket_perms_no_ioctl;
     33 allow clatd tun_device:chr_file rw_file_perms;
     34