# kickstart processes and scripts (system process)
type kickstart, domain;
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 rw_dir_perms;
allow kickstart efs_data_file:file create_file_perms;
allow kickstart efs_data_file:dir rw_dir_perms;
userdebug_or_eng(`
  allow kickstart ramdump_data_file:file create_file_perms;
  allow kickstart ramdump_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;

# Wake lock access
allow kickstart sysfs_wake_lock:file { open append read write };

# Talk to init over the property socket
# 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
unix_socket_connect(kickstart, property, init)
allow kickstart system_prop:property_service set;
