blob: 4b1ed3892713b86a564bcafed13193ef1d93d616 [file] [log] [blame]
Avijit Kanti Das0196c6a2014-07-23 23:44:35 -07001#permissive cnd;
Biswajit Paul6786a922017-03-16 11:53:53 -07002type cnd, domain, mlstrustedsubject;
Ravi Kumar Siddojigaric7def122017-06-13 00:49:19 +05303type cnd_exec, exec_type, vendor_file_type, file_type;
Avijit Kanti Das0196c6a2014-07-23 23:44:35 -07004file_type_auto_trans(cnd, socket_device, cnd_socket);
5
6# cnd is started by init, type transit from init domain to cnd domain
7init_daemon_domain(cnd)
Avijit Kanti Das441bad42015-05-12 14:07:41 -07008
Avijit Kanti Das0196c6a2014-07-23 23:44:35 -07009# associate netdomain as an attribute of cnd domain
10net_domain(cnd)
11
Biswajit Paul64f83f62014-10-13 14:36:16 -070012allow cnd smem_log_device:chr_file rw_file_perms;
13
Avijit Kanti Das0196c6a2014-07-23 23:44:35 -070014# allow cnd the following capability
Avijit Kanti Das441bad42015-05-12 14:07:41 -070015allow cnd self:capability {
Avijit Kanti Das441bad42015-05-12 14:07:41 -070016 net_admin
17 sys_module
Sunmeet Gille7e5f012016-06-30 16:01:07 -070018 net_bind_service
Avijit Kanti Das441bad42015-05-12 14:07:41 -070019};
20
Avijit Kanti Das0196c6a2014-07-23 23:44:35 -070021allow cnd self:capability2 block_suspend;
22
23# socket used to communicate with kernel via the netlink syscall
Avijit Kanti Das441bad42015-05-12 14:07:41 -070024allow cnd self:{
25 netlink_tcpdiag_socket
26 netlink_route_socket
27 netlink_socket
Biswajit Paulc6024d22016-07-06 17:35:41 -070028 netlink_generic_socket
Avijit Kanti Das441bad42015-05-12 14:07:41 -070029 # allow cnd to perform socket operation on itself
30 socket
Biswajit Paul2d35d982017-02-01 17:40:10 -080031} create_socket_perms_no_ioctl;
Avijit Kanti Das0196c6a2014-07-23 23:44:35 -070032
Sanket Khidkikar83999622015-08-19 11:03:48 -070033# allow cnd to read tcp diagnostics through netlink
34allow cnd self:netlink_tcpdiag_socket nlmsg_read;
35
Avijit Kanti Das0196c6a2014-07-23 23:44:35 -070036# allow cnd to set system property
sahil madekaa3608c92017-05-12 15:41:40 -070037set_prop(cnd, system_prop)
Avijit Kanti Das0196c6a2014-07-23 23:44:35 -070038
39# allow cnd to access cnd_data_file
40allow cnd cnd_data_file:file create_file_perms;
41allow cnd cnd_data_file:sock_file { unlink create setattr };
Avijit Kanti Das441bad42015-05-12 14:07:41 -070042allow cnd cnd_data_file:dir rw_dir_perms;
Avijit Kanti Das0196c6a2014-07-23 23:44:35 -070043
44# allow cnd to access qmux_radio_socket
Biswajit Paul64f83f62014-10-13 14:36:16 -070045qmux_socket(cnd)
Avijit Kanti Das0196c6a2014-07-23 23:44:35 -070046
Avijit Kanti Das0196c6a2014-07-23 23:44:35 -070047# allow cnd to access wpa_socket
Devi Sandeep Endluri V V98379eb2017-06-20 22:19:40 -070048unix_socket_send(cnd, wpa, hal_wifi_supplicant)
Avijit Kanti Das441bad42015-05-12 14:07:41 -070049allow cnd wpa_socket:dir rw_dir_perms;
50allow cnd wpa_socket:sock_file { create unlink setattr };
Devi Sandeep Endluri V V3e2b4522017-08-09 20:48:01 +053051allow cnd wifi_data_file:dir r_dir_perms;
Devi Sandeep Endluri V V98379eb2017-06-20 22:19:40 -070052allow cnd wifi_vendor_data_file:dir r_dir_perms;
Ayishwarya Narasimhan03b22d22017-08-02 15:29:55 -070053allow cnd wifi_vendor_wpa_socket:sock_file write;
Devi Sandeep Endluri V V98379eb2017-06-20 22:19:40 -070054
Avijit Kanti Das0196c6a2014-07-23 23:44:35 -070055# allow cnd to obtain wakelock
Avijit Kanti Das441bad42015-05-12 14:07:41 -070056wakelock_use(cnd)
Avijit Kanti Das0196c6a2014-07-23 23:44:35 -070057
Boxiang Pan278d3e92015-04-07 17:52:17 -070058# allow cnd to get appname and use inet socket
Ravi Kumar Siddojigaric7def122017-06-13 00:49:19 +053059#cnd_nims_socket_perm(appdomain)
60#cnd_nims_socket_perm(system_server)
61#cnd_nims_socket_perm(mediaserver)
62#cnd_nims_socket_perm(mtp)
63#cnd_nims_socket_perm(wfdservice)
64#cnd_nims_socket_perm(drmserver)
Sanket Khidkikaradfecd92015-02-13 18:06:23 -080065
Sanket Khidkikaradfecd92015-02-13 18:06:23 -080066# allow access to nims
67allow cnd socket_device:dir remove_name;
Ravinder Konka573a0372015-05-27 17:24:39 +053068
Bryse Flowers8054fe62015-06-16 10:57:02 -070069# explicitly allow udp socket permissions for appdomain
Ravi Kumar Siddojigaric7def122017-06-13 00:49:19 +053070#allow cnd appdomain:udp_socket rw_socket_perms;
Boxiang Pana5ec4ab2015-08-06 12:39:02 -070071
Michael Bestas0feb07d2018-10-05 00:37:23 +030072#allow cnd daemon to invoke hostapd_cli
73allow cnd vendor_shell_exec:file rx_file_perms;
74domain_auto_trans(cnd, hostapd_exec, hostapd)
75allow cnd hostapd_socket:dir r_dir_perms;
76unix_socket_send(cnd, hostapd, hostapd)
77
Sanket Khidkikar2e10de32015-10-05 20:26:00 -070078# only allow getopt for appdomain
79allow appdomain zygote:unix_dgram_socket getopt;
80dontaudit { domain -appdomain } zygote:unix_dgram_socket getopt;
Biswajit Paul277acbb2016-07-20 12:02:14 -070081
82#diag
83userdebug_or_eng(`
84 diag_use(cnd)
85')
Biswajit Paulf63bd142017-03-16 16:41:02 -070086
87allow cnd proc_meminfo:file r_file_perms;
88allow cnd self:socket ioctl;
89allowxperm cnd self:socket ioctl msm_sock_ipc_ioctls;
Devi Sandeep Endluri V Vbc24d252017-08-08 20:51:03 +053090
91allow cnd self:udp_socket ioctl;
92allowxperm cnd self:udp_socket ioctl wlan_sock_ioctls;
93
Biswajit Paulf63bd142017-03-16 16:41:02 -070094allow cnd sysfs:file r_file_perms;
Sunmeet Gill575d2492017-05-22 19:03:52 -070095allow cnd sysfs_data:file r_file_perms;
Devi Sandeep Endluri V V98379eb2017-06-20 22:19:40 -070096
97add_hwservice(cnd, hal_cne_hwservice)
Tyler Wearaa7b6c82017-09-06 13:14:16 -070098add_hwservice(cnd, hal_latency_hwservice)
Devi Sandeep Endluri V V98379eb2017-06-20 22:19:40 -070099hwbinder_use(cnd)
100get_prop(cnd, hwservicemanager_prop)
Nolen Johnson22b912c2020-06-26 15:46:09 -0400101get_prop(cnd, wifi_prop)
Devi Sandeep Endluri V V98379eb2017-06-20 22:19:40 -0700102binder_call(cnd, dataservice_app)
103binder_call(cnd, ims)