# kickstart processes and scripts (system process)
type kickstart, domain, device_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)
