blob: 0247bfea93e5dbfb3820d791d5d395167cd9b8db [file] [log] [blame]
Stephen Smalley2dd4e512012-01-04 12:33:27 -05001# volume manager
2type vold, domain;
3type vold_exec, exec_type, file_type;
4
5init_daemon_domain(vold)
Nick Kralevich7914a472013-06-28 20:15:37 -07006
7typeattribute vold mlstrustedsubject;
8allow vold system_file:file x_file_perms;
9allow vold block_device:dir create_dir_perms;
10allow vold block_device:blk_file create_file_perms;
11allow vold device:dir write;
12allow vold devpts:chr_file rw_file_perms;
13allow vold rootfs:dir mounton;
14allow vold sdcard_type:dir mounton;
15allow vold sdcard_type:filesystem { mount remount unmount };
16allow vold sdcard_type:dir create_dir_perms;
Jeff Sharkey80176dc2013-11-14 16:07:57 -080017allow vold sdcard_type:file create_file_perms;
Nick Kralevich7914a472013-06-28 20:15:37 -070018allow vold tmpfs:filesystem { mount unmount };
19allow vold tmpfs:dir create_dir_perms;
20allow vold tmpfs:dir mounton;
Alex Klyubinb25fe912013-07-08 15:48:36 -070021allow vold self:capability { net_admin dac_override mknod sys_admin chown fowner fsetid };
Stephen Smalley16011322014-02-24 15:06:11 -050022allow vold self:netlink_kobject_uevent_socket create_socket_perms;
Nick Kralevich7914a472013-06-28 20:15:37 -070023allow vold app_data_file:dir search;
24allow vold app_data_file:file rw_file_perms;
25allow vold loop_device:blk_file rw_file_perms;
26allow vold dm_device:chr_file rw_file_perms;
27# For vold Process::killProcessesWithOpenFiles function.
28allow vold domain:dir r_dir_perms;
29allow vold domain:{ file lnk_file } r_file_perms;
30allow vold domain:process { signal sigkill };
Geremy Condra7eb786b2013-09-11 10:16:57 -070031allow vold self:capability { sys_ptrace kill };
Nick Kralevich7914a472013-06-28 20:15:37 -070032
Jeff Sharkey2abfe7d2013-10-17 12:56:08 -070033# For blkid
34allow vold shell_exec:file rx_file_perms;
35
Nick Kralevich7914a472013-06-28 20:15:37 -070036# XXX Label sysfs files with a specific type?
37allow vold sysfs:file rw_file_perms;
38
39write_klog(vold)
40
Nick Kralevich3753c812013-12-19 15:23:43 -080041# Log fsck results
42allow vold fscklogs:dir rw_dir_perms;
43allow vold fscklogs:file create_file_perms;
44
Nick Kralevich7914a472013-06-28 20:15:37 -070045#
46# Rules to support encrypted fs support.
47#
48
49# Set property.
50unix_socket_connect(vold, property, init)
51
52# Unmount and mount the fs.
53allow vold labeledfs:filesystem { mount unmount remount };
54
55# Access /efs/userdata_footer.
56# XXX Split into a separate type?
57allow vold efs_file:file rw_file_perms;
58
59# Create and mount on /data/tmp_mnt.
60allow vold system_data_file:dir { create rw_dir_perms mounton };
61
62# Set scheduling policy of kernel processes
63allow vold kernel:process setsched;
64
65# Property Service
66allow vold vold_prop:property_service set;
67allow vold powerctl_prop:property_service set;
Robert Craig4b3893f2014-02-18 13:24:26 -050068allow vold ctl_fuse_prop:property_service set;
Nick Kralevich7914a472013-06-28 20:15:37 -070069
70# ASEC
71allow vold asec_image_file:file create_file_perms;
72allow vold asec_image_file:dir rw_dir_perms;
73security_access_policy(vold)
Stephen Smalleyf85c1fc2014-05-27 10:56:24 -040074allow vold asec_apk_file:dir { rw_dir_perms setattr relabelfrom relabelto };
Robert Craig48b18832014-02-04 11:36:41 -050075allow vold asec_public_file:dir { relabelto setattr };
Stephen Smalleyf85c1fc2014-05-27 10:56:24 -040076allow vold asec_apk_file:file { r_file_perms setattr relabelfrom relabelto };
Robert Craig48b18832014-02-04 11:36:41 -050077allow vold asec_public_file:file { relabelto setattr };
Stephen Smalleyf85c1fc2014-05-27 10:56:24 -040078# restorecon files in asec containers created on 4.2 or earlier.
79allow vold unlabeled:dir { r_dir_perms setattr relabelfrom };
80allow vold unlabeled:file { r_file_perms setattr relabelfrom };
Nick Kralevich3753c812013-12-19 15:23:43 -080081
82# Handle wake locks (used for device encryption)
Nick Kralevich8599e342014-05-23 13:33:32 -070083wakelock_use(vold)
Paul Lawrence01ba6832014-03-19 14:41:00 -070084
85# talk to batteryservice
86binder_use(vold)
87binder_call(vold, healthd)
Paul Lawrenced7567112014-04-14 12:05:43 -070088
89# talk to keymaster
90allow vold tee_device:chr_file rw_file_perms;
91