# kickstart processes and scripts (system process)
type kickstart, domain, domain_deprecated;
type kickstart_exec, file_type, exec_type;

init_daemon_domain(kickstart)

# Spawn /system/bin/efsks and /system/bin/ks
allow kickstart kickstart_exec:file { open execute_no_trans getattr };

# 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 for EFS
allow kickstart efs_block_device:blk_file 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 create_dir_perms;
allow kickstart efs_data_file:file create_file_perms;
allow kickstart efs_data_file:dir rw_dir_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)

# ro.hw.ril.baseband : to indicate which modem is used for single ROM ARCH
# sys.current.cnv : to indicate which NV file is used for dynamical customization
set_prop(kickstart, system_prop)