Biswajit Paul | 6786a92 | 2017-03-16 11:53:53 -0700 | [diff] [blame] | 1 | type netmgrd, domain; |
Ravi Kumar Siddojigari | c7def12 | 2017-06-13 00:49:19 +0530 | [diff] [blame] | 2 | type netmgrd_exec, exec_type, vendor_file_type, file_type; |
Avijit Kanti Das | 353e929 | 2014-07-23 23:39:30 -0700 | [diff] [blame] | 3 | net_domain(netmgrd) |
| 4 | init_daemon_domain(netmgrd) |
Subash Abhinov Kasiviswanathan | 1b307e7 | 2014-03-04 11:09:42 -0700 | [diff] [blame] | 5 | |
| 6 | userdebug_or_eng(` |
Shruthi Krishna | f1b38f7 | 2014-07-25 16:21:53 -0700 | [diff] [blame] | 7 | domain_auto_trans(shell, netmgrd_exec, netmgrd) |
David Ng | a658efb | 2016-10-07 11:38:22 -0700 | [diff] [blame] | 8 | #domain_auto_trans(adbd, netmgrd_exec, netmgrd) |
Biswajit Paul | 277acbb | 2016-07-20 12:02:14 -0700 | [diff] [blame] | 9 | diag_use(netmgrd) |
Subash Abhinov Kasiviswanathan | a97c94d | 2017-06-04 21:41:28 -0600 | [diff] [blame] | 10 | diag_use(netutils_wrapper) |
Subash Abhinov Kasiviswanathan | 1b307e7 | 2014-03-04 11:09:42 -0700 | [diff] [blame] | 11 | ') |
Avijit Kanti Das | 353e929 | 2014-07-23 23:39:30 -0700 | [diff] [blame] | 12 | |
| 13 | #Allow files to be written during the operation of netmgrd |
| 14 | file_type_auto_trans(netmgrd, system_data_file, data_test_data_file) |
| 15 | |
| 16 | #Allow netmgrd operations |
Avijit Kanti Das | 441bad4 | 2015-05-12 14:07:41 -0700 | [diff] [blame] | 17 | allow netmgrd netmgrd:capability { |
Avijit Kanti Das | 441bad4 | 2015-05-12 14:07:41 -0700 | [diff] [blame] | 18 | net_raw |
| 19 | net_admin |
| 20 | sys_module |
| 21 | fsetid |
| 22 | setgid |
| 23 | setuid |
| 24 | setpcap |
| 25 | }; |
Avijit Kanti Das | 353e929 | 2014-07-23 23:39:30 -0700 | [diff] [blame] | 26 | |
| 27 | #Allow logging |
Avijit Kanti Das | 441bad4 | 2015-05-12 14:07:41 -0700 | [diff] [blame] | 28 | allow netmgrd smem_log_device:chr_file rw_file_perms; |
Subash Abhinov Kasiviswanathan | 121430c | 2017-05-25 17:35:27 -0600 | [diff] [blame] | 29 | allow netmgrd netmgrd_data_file:file create_file_perms; |
| 30 | allow netmgrd netmgrd_data_file:dir w_dir_perms; |
Avijit Kanti Das | 353e929 | 2014-07-23 23:39:30 -0700 | [diff] [blame] | 31 | |
Subash Abhinov Kasiviswanathan | f7bacd8 | 2017-05-30 17:37:15 -0600 | [diff] [blame] | 32 | #Allow netutils usage |
Subash Abhinov Kasiviswanathan | a97c94d | 2017-06-04 21:41:28 -0600 | [diff] [blame] | 33 | use_netutils(netmgrd) |
| 34 | allow netutils_wrapper netmgrd_data_file:file rw_file_perms; |
| 35 | allow netutils_wrapper wcnss_service_exec:file rx_file_perms; |
Subash Abhinov Kasiviswanathan | 218f540 | 2017-08-23 20:14:47 -0600 | [diff] [blame] | 36 | allow netmgrd netutils_wrapper:process sigkill; |
Subash Abhinov Kasiviswanathan | f7bacd8 | 2017-05-30 17:37:15 -0600 | [diff] [blame] | 37 | |
Avijit Kanti Das | 353e929 | 2014-07-23 23:39:30 -0700 | [diff] [blame] | 38 | #Allow operations on different types of sockets |
| 39 | allow netmgrd netmgrd:rawip_socket { create getopt setopt write }; |
Biswajit Paul | 2d35d98 | 2017-02-01 17:40:10 -0800 | [diff] [blame] | 40 | allow netmgrd netmgrd:netlink_xfrm_socket { create_socket_perms_no_ioctl nlmsg_write nlmsg_read }; |
Avijit Kanti Das | 353e929 | 2014-07-23 23:39:30 -0700 | [diff] [blame] | 41 | allow netmgrd netmgrd:netlink_socket { write read create bind }; |
Biswajit Paul | 2d35d98 | 2017-02-01 17:40:10 -0800 | [diff] [blame] | 42 | allow netmgrd netmgrd:socket { create }; |
Avijit Kanti Das | 353e929 | 2014-07-23 23:39:30 -0700 | [diff] [blame] | 43 | allow netmgrd netmgrd:netlink_route_socket { setopt getattr write nlmsg_write }; |
Biswajit Paul | 2d35d98 | 2017-02-01 17:40:10 -0800 | [diff] [blame] | 44 | allow netmgrd self:netlink_generic_socket create_socket_perms_no_ioctl; |
| 45 | allow netmgrd self:netlink_tcpdiag_socket { create_socket_perms_no_ioctl nlmsg_read nlmsg_write }; |
Avijit Kanti Das | 353e929 | 2014-07-23 23:39:30 -0700 | [diff] [blame] | 46 | |
Subash Abhinov Kasiviswanathan | 4ac88c6 | 2014-11-07 14:13:41 -0700 | [diff] [blame] | 47 | unix_socket_connect(netmgrd, cnd, cnd); |
| 48 | |
Biswajit Paul | 64f83f6 | 2014-10-13 14:36:16 -0700 | [diff] [blame] | 49 | qmux_socket(netmgrd); |
Avijit Kanti Das | 353e929 | 2014-07-23 23:39:30 -0700 | [diff] [blame] | 50 | |
| 51 | #Allow writing of ipv6 network properties |
Vladimir Oltean | c17f8db | 2018-09-26 23:35:50 +0300 | [diff] [blame] | 52 | allow netmgrd { proc_net sysfs_net }:file rw_file_perms; |
| 53 | allow netmgrd sysfs_net:dir r_dir_perms; |
Avijit Kanti Das | 353e929 | 2014-07-23 23:39:30 -0700 | [diff] [blame] | 54 | |
Subash Abhinov Kasiviswanathan | 1b307e7 | 2014-03-04 11:09:42 -0700 | [diff] [blame] | 55 | #Allow address configuration |
Subash Abhinov Kasiviswanathan | 4e2e5af | 2014-10-16 13:37:05 -0600 | [diff] [blame] | 56 | #Allow setting of DNS and GW Android properties |
sahil madeka | a3608c9 | 2017-05-12 15:41:40 -0700 | [diff] [blame] | 57 | set_prop(netmgrd, system_prop) |
| 58 | set_prop(netmgrd, net_radio_prop) |
| 59 | set_prop(netmgrd, xlat_prop) |
Subash Abhinov Kasiviswanathan | 5b74d71 | 2016-02-04 17:22:18 -0700 | [diff] [blame] | 60 | |
Avijit Kanti Das | 353e929 | 2014-07-23 23:39:30 -0700 | [diff] [blame] | 61 | #Allow execution of commands in shell |
Avijit Kanti Das | 441bad4 | 2015-05-12 14:07:41 -0700 | [diff] [blame] | 62 | allow netmgrd system_file:file x_file_perms; |
Avijit Kanti Das | f91f2ba | 2014-09-24 17:08:13 -0700 | [diff] [blame] | 63 | |
Biswajit Paul | cc0e05e | 2017-03-08 16:20:35 -0800 | [diff] [blame] | 64 | allow netmgrd self:socket create_socket_perms; |
Avijit Kanti Das | fe61c2d | 2014-10-16 20:17:03 -0700 | [diff] [blame] | 65 | allow netmgrd sysfs_esoc:dir r_dir_perms; |
Avijit Kanti Das | f91f2ba | 2014-09-24 17:08:13 -0700 | [diff] [blame] | 66 | |
| 67 | #Allow communication with netd |
Ravi Kumar Siddojigari | c7def12 | 2017-06-13 00:49:19 +0530 | [diff] [blame] | 68 | #r_dir_file(netmgrd, net_data_file) |
Subash Abhinov Kasiviswanathan | 4e2e5af | 2014-10-16 13:37:05 -0600 | [diff] [blame] | 69 | |
| 70 | #Allow nemtgrd to use esoc api's to determine target |
Avijit Kanti Das | 441bad4 | 2015-05-12 14:07:41 -0700 | [diff] [blame] | 71 | allow netmgrd sysfs_esoc:lnk_file r_file_perms; |
Avijit Kanti Das | d01b3b3 | 2014-10-21 10:30:09 -0700 | [diff] [blame] | 72 | |
| 73 | r_dir_file(netmgrd, sysfs_ssr); |
Avijit Kanti Das | e0ef785 | 2014-11-05 10:40:03 -0800 | [diff] [blame] | 74 | |
Avijit Kanti Das | 441bad4 | 2015-05-12 14:07:41 -0700 | [diff] [blame] | 75 | allow netmgrd sysfs:file w_file_perms; |
Sunmeet Gill | 575d249 | 2017-05-22 19:03:52 -0700 | [diff] [blame] | 76 | allow netmgrd sysfs_data:file r_file_perms; |
Avijit Kanti Das | d6e8d8e | 2014-11-07 10:27:44 -0800 | [diff] [blame] | 77 | |
Subash Abhinov Kasiviswanathan | b8943bd | 2017-05-05 19:34:18 -0600 | [diff] [blame] | 78 | #Acquire lock on /system/etc/xtables.lock |
| 79 | #Required till netutils wrappers are available |
sahil madeka | a3608c9 | 2017-05-12 15:41:40 -0700 | [diff] [blame] | 80 | not_full_treble(`allow netmgrd system_file:file lock;') |
Subash Abhinov Kasiviswanathan | b8943bd | 2017-05-05 19:34:18 -0600 | [diff] [blame] | 81 | |
Avijit Kanti Das | 441bad4 | 2015-05-12 14:07:41 -0700 | [diff] [blame] | 82 | #Allow netmgrd to create netmgrd socket |
| 83 | allow netmgrd netmgrd_socket:dir create_dir_perms; |
| 84 | allow netmgrd netmgrd_socket:sock_file create_file_perms; |
| 85 | |
Ravi Kumar Siddojigari | c7def12 | 2017-06-13 00:49:19 +0530 | [diff] [blame] | 86 | allow netmgrd { wcnss_service_exec vendor_shell_exec vendor_toolbox_exec }:file rx_file_perms; |
Subash Abhinov Kasiviswanathan | 8bd40cd | 2015-09-29 18:48:44 -0600 | [diff] [blame] | 87 | |
| 88 | #Allow netmgrd to use wakelock |
| 89 | wakelock_use(netmgrd) |
Biswajit Paul | cc0e05e | 2017-03-08 16:20:35 -0800 | [diff] [blame] | 90 | |
| 91 | allowxperm netmgrd self:udp_socket ioctl priv_sock_ioctls; |
Subash Abhinov Kasiviswanathan | 4012486 | 2017-05-08 16:46:54 -0600 | [diff] [blame] | 92 | allowxperm netmgrd self:udp_socket ioctl rmnet_sock_ioctls; |
Biswajit Paul | cc0e05e | 2017-03-08 16:20:35 -0800 | [diff] [blame] | 93 | allowxperm netmgrd self:socket ioctl msm_sock_ipc_ioctls; |
Subash Abhinov Kasiviswanathan | 4828dd0 | 2017-08-08 14:22:19 -0600 | [diff] [blame] | 94 | |
| 95 | #Allow netmgrd to use netd HAL via HIDL |
| 96 | get_prop(netmgrd, hwservicemanager_prop) |
Alessandro Astone | 9436452 | 2020-01-24 15:27:10 +0100 | [diff] [blame] | 97 | binder_use(netmgrd) |
Subash Abhinov Kasiviswanathan | 4828dd0 | 2017-08-08 14:22:19 -0600 | [diff] [blame] | 98 | hwbinder_use(netmgrd) |
| 99 | binder_call(netmgrd, netd) |
| 100 | allow netmgrd system_net_netd_hwservice:hwservice_manager find; |
Alessandro Astone | 9436452 | 2020-01-24 15:27:10 +0100 | [diff] [blame] | 101 | allow netmgrd netd_service:service_manager find; |
| 102 | allow netmgrd dnsresolver_service:service_manager find; |