| # kickstart processes and scripts (system process) |
| type kickstart, domain; |
| type kickstart_exec, file_type, exec_type; |
| |
| init_daemon_domain(kickstart) |
| |
| # Run kickstart_checker.sh |
| allow kickstart shell_exec:file rx_file_perms; |
| allow kickstart kickstart_exec:file rx_file_perms; |
| |
| # kickstart_checker.sh changes block devices |
| # /dev/block/platform/msm_sdcc.1/by-name/m9kefs* |
| allow kickstart self:capability { chown fowner }; |
| |
| # Let qcks access /dev/mdm node (modem driver) |
| allow kickstart radio_device:chr_file r_file_perms; |
| |
| # Access USB host ks bridge drivers |
| allow kickstart kickstart_device:chr_file rw_file_perms; |
| |
| # Read and write to /dev/block/mmcblk0p[567] |
| allow kickstart efs_block_device:blk_file { setattr rw_file_perms }; |
| allow kickstart block_device:dir { getattr write search }; |
| |
| # Write contents of block device to kickstart data dir |
| allow kickstart kickstart_data_file:file create_file_perms; |
| allow kickstart kickstart_data_file:dir rw_dir_perms; |
| |
| # Read radio firmware file(s) |
| allow kickstart radio_efs_file:dir search; |
| allow kickstart radio_efs_file:file r_file_perms; |
| |
| # Run dd from toolbox on firmware files |
| allow kickstart shell_exec:file rx_file_perms; |
| allow kickstart system_file:file execute_no_trans; |
| allow kickstart toolbox_exec:file rx_file_perms; |
| |
| # Wake lock access |
| wakelock_use(kickstart) |
| |
| # Set property key gsm.radio.kickstart |
| set_prop(kickstart, radio_prop) |
| |
| # Access /sys/module/rmnet_usb/parameters/rmnet_data_init |
| allow kickstart sysfs_rmnet:file w_file_perms; |