1# kickstart processes and scripts (system process)
2type kickstart, domain;
3type kickstart_exec, file_type, exec_type;
4
5init_daemon_domain(kickstart)
6
7# Spawn /system/bin/efsks and /system/bin/ks
8allow kickstart kickstart_exec:file { open execute_no_trans getattr };
9
10# Let qcks access /dev/mdm node (modem driver)
11allow kickstart radio_device:chr_file r_file_perms;
12
13# Access USB host ks bridge drivers
14allow kickstart kickstart_device:chr_file rw_file_perms;
15
16# Read and write for EFS
17allow kickstart efs_block_device:blk_file rw_file_perms;
18allow kickstart block_device:dir { getattr write search };
19
20# Write contents of block device to kickstart data dir
21allow kickstart kickstart_data_file:file create_file_perms;
22allow kickstart kickstart_data_file:dir create_dir_perms;
23allow kickstart efs_data_file:file create_file_perms;
24allow kickstart efs_data_file:dir rw_dir_perms;
25
26# Run dd from toolbox on firmware files
27allow kickstart shell_exec:file rx_file_perms;
28allow kickstart system_file:file execute_no_trans;
29
30# Wake lock access
31wakelock_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
36unix_socket_connect(kickstart, property, init)
37allow kickstart system_prop:property_service set;
38