| # Modem helper service. Spawns kickstart. |
| type mdm_helper, domain, device_domain_deprecated; |
| type mdm_helper_exec, file_type, exec_type; |
| |
| init_daemon_domain(mdm_helper) |
| |
| # access /sys/power/wakelock |
| allow mdm_helper self:capability dac_override; |
| |
| # Spawn /system/bin/efsks and /system/bin/ks |
| allow mdm_helper mdm_helper_exec:file rx_file_perms; |
| |
| # Access USB host ks bridge drivers |
| allow mdm_helper mdm_helper_device:chr_file rw_file_perms; |
| |
| # Read and write for EFS |
| allow mdm_helper efs_block_device:blk_file rw_file_perms; |
| allow mdm_helper block_device:dir { getattr write search }; |
| |
| # Let qcks access /dev/mdm node (modem driver)?? |
| allow mdm_helper radio_device:chr_file r_file_perms; |
| # Access the modem Hand Over Block (HOB) |
| allow mdm_helper modem_hob_block_device:blk_file rw_file_perms; |
| # ks checks the writeback path (dir) for the EFS block devices to make sure it is valid |
| allow mdm_helper block_device:dir getattr; |
| |
| allow mdm_helper firmware_file:dir r_dir_perms; |
| allow mdm_helper firmware_file:file r_file_perms; |
| |
| allow mdm_helper fsg_file:dir r_dir_perms; |
| allow mdm_helper fsg_file:file r_file_perms; |
| |
| allow mdm_helper persist_file:dir r_dir_perms; |
| allow mdm_helper persist_modem_file:dir rw_dir_perms; |
| allow mdm_helper persist_modem_file:file create_file_perms; |
| |
| # Runs commands via sh. |
| allow mdm_helper shell_exec:file rx_file_perms; |
| # TODO remove once the modem team removes system() calls to toolbox functions |
| allow mdm_helper toolbox_exec:file rx_file_perms; |
| allow mdm_helper system_file:file x_file_perms; |
| |
| allow mdm_helper sysfs_xhci_msm_hsic:dir r_dir_perms; |
| allow mdm_helper sysfs_xhci_msm_hsic:file rw_file_perms; |
| allow mdm_helper sysfs_msm_hsic_host:file write; |
| |
| # host_ready not labeled correctly |
| allow mdm_helper sysfs:file write; |
| allow mdm_helper sysfs_usb:file write; |
| |
| wakelock_use(mdm_helper) |
| |
| # change ownership of modem log files |
| allow mdm_helper self:capability { fowner chown fsetid }; |
| |
| # Write ram dump logs |
| allow mdm_helper ram_dump_logs:dir create_dir_perms; |
| allow mdm_helper ram_dump_logs:file create_file_perms; |
| |
| # write modem logs to dropbox |
| allow mdm_helper dropbox_data_file:dir rw_dir_perms; |
| allow mdm_helper dropbox_data_file:file create_file_perms; |
| |
| # write radio properties |
| set_prop(mdm_helper, radio_prop) |