# volume manager type vold, domain; type vold_exec, exec_type, file_type; init_daemon_domain(vold) typeattribute vold mlstrustedsubject; allow vold system_file:file x_file_perms; allow vold block_device:dir create_dir_perms; allow vold block_device:blk_file create_file_perms; allow vold device:dir write; allow vold devpts:chr_file rw_file_perms; allow vold rootfs:dir mounton; allow vold sdcard_type:dir mounton; allow vold sdcard_type:filesystem { mount remount unmount }; allow vold sdcard_type:dir create_dir_perms; allow vold sdcard_type:file create_file_perms; allow vold tmpfs:filesystem { mount unmount }; allow vold tmpfs:dir create_dir_perms; allow vold tmpfs:dir mounton; allow vold self:capability { net_admin dac_override mknod sys_admin chown fowner fsetid }; allow vold self:netlink_kobject_uevent_socket create_socket_perms; allow vold app_data_file:dir search; allow vold app_data_file:file rw_file_perms; allow vold loop_device:blk_file rw_file_perms; allow vold dm_device:chr_file rw_file_perms; # For vold Process::killProcessesWithOpenFiles function. allow vold domain:dir r_dir_perms; allow vold domain:{ file lnk_file } r_file_perms; allow vold domain:process { signal sigkill }; allow vold self:capability { sys_ptrace kill }; # For blkid allow vold shell_exec:file rx_file_perms; # XXX Label sysfs files with a specific type? allow vold sysfs:file rw_file_perms; write_klog(vold) # Log fsck results allow vold fscklogs:dir rw_dir_perms; allow vold fscklogs:file create_file_perms; # # Rules to support encrypted fs support. # # Set property. unix_socket_connect(vold, property, init) # Unmount and mount the fs. allow vold labeledfs:filesystem { mount unmount remount }; # Access /efs/userdata_footer. # XXX Split into a separate type? allow vold efs_file:file rw_file_perms; # Create and mount on /data/tmp_mnt. allow vold system_data_file:dir { create rw_dir_perms mounton }; # Set scheduling policy of kernel processes allow vold kernel:process setsched; # Property Service allow vold vold_prop:property_service set; allow vold powerctl_prop:property_service set; allow vold ctl_fuse_prop:property_service set; # ASEC allow vold asec_image_file:file create_file_perms; allow vold asec_image_file:dir rw_dir_perms; security_access_policy(vold) allow vold asec_apk_file:dir { rw_dir_perms setattr relabelfrom relabelto }; allow vold asec_public_file:dir { relabelto setattr }; allow vold asec_apk_file:file { r_file_perms setattr relabelfrom relabelto }; allow vold asec_public_file:file { relabelto setattr }; # restorecon files in asec containers created on 4.2 or earlier. allow vold unlabeled:dir { r_dir_perms setattr relabelfrom }; allow vold unlabeled:file { r_file_perms setattr relabelfrom }; # Handle wake locks (used for device encryption) wakelock_use(vold) # talk to batteryservice binder_use(vold) binder_call(vold, healthd) # talk to keymaster allow vold tee_device:chr_file rw_file_perms;