1 # kickstart processes and scripts (system process) 2 type kickstart, domain; 3 type kickstart_exec, file_type, exec_type; 4 5 init_daemon_domain(kickstart) 6 7 # Spawn /system/bin/efsks and /system/bin/ks 8 allow kickstart kickstart_exec:file { open execute_no_trans getattr }; 9 10 # Let qcks access /dev/mdm node (modem driver) 11 allow kickstart radio_device:chr_file r_file_perms; 12 13 # Access USB host ks bridge drivers 14 allow kickstart kickstart_device:chr_file rw_file_perms; 15 16 # Read and write for EFS 17 allow kickstart efs_block_device:blk_file rw_file_perms; 18 allow kickstart block_device:dir { getattr write search }; 19 20 # Write contents of block device to kickstart data dir 21 allow kickstart kickstart_data_file:file create_file_perms; 22 allow kickstart kickstart_data_file:dir create_dir_perms; 23 allow kickstart efs_data_file:file create_file_perms; 24 allow kickstart efs_data_file:dir rw_dir_perms; 25 26 # Run dd from toolbox on firmware files 27 allow kickstart shell_exec:file rx_file_perms; 28 allow kickstart system_file:file execute_no_trans; 29 30 # Wake lock access 31 wakelock_use(kickstart) 32 33 # Talk to init over the property socket 34 # ro.hw.ril.baseband : to indicate which modem is used for single ROM ARCH 35 # sys.current.cnv : to indicate which NV file is used for dynamical customization 36 unix_socket_connect(kickstart, property, init) 37 allow kickstart system_prop:property_service set; 38