| # Grant access to Qualcomm MSM Interface (QMI) radio sockets |
| qmux_socket(radio) |
| |
| allow radio uce_service:service_manager { add find }; |
| |
| # read access to sys/bus/esoc/devices/ directory. |
| allow radio sysfs:dir r_dir_perms; |
| |
| r_dir_file(radio, sysfs_msm_subsys) |
| |
| # Access to /vendor/framework/qti-vzw-ims-internal.jar for all |
| # IMS packages running with com.android.phone sharedUID |
| allow radio vendor_framework_file:dir { getattr search }; |
| allow radio vendor_framework_file:file { getattr open read }; |
| |
| # TODO(b/37164021): Remove this once radio no longer communicates with ims over sockets |
| typeattribute radio socket_between_core_and_vendor_violators; |
| typeattribute ims socket_between_core_and_vendor_violators; |
| # communicate with ims |
| unix_socket_connect(radio, ims, ims) |
| |
| # Allow radio to talk to rild over socket |
| unix_socket_connect(radio, rild, rild) |
| |
| # access to /dev/diag on debug builds |
| userdebug_or_eng(` |
| allow radio diag_device:chr_file rw_file_perms; |
| ') |
| dontaudit radio diag_device:chr_file rw_file_perms; |
| |
| # access to /dev/avtimer |
| allow radio avtimer_device:chr_file rw_file_perms; |
| |
| allowxperm radio self:udp_socket ioctl priv_sock_ioctls; |
| |
| # Needed for use .so files in /vendor/lib64 needed by ims which runs as com.android.phone (radio) |
| # r_dir_file(radio, vendor_file) |
| typeattribute radio system_executes_vendor_violators; |
| allow radio vendor_file:file rx_file_perms; |
| |
| # read access to sys/module/diagchar/parameters/timestamp_switch |
| allow radio sysfs_timestamp_switch:file r_file_perms; |
| |
| add_service(radio, qchook_service) |