1type composd, domain, coredomain; 2type composd_exec, system_file_type, exec_type, file_type; 3 4# Host dynamic AIDL services 5init_daemon_domain(composd) 6binder_use(composd) 7add_service(composd, compos_service) 8 9# Call back into system server 10binder_call(composd, system_server) 11 12# Start a VM 13virtualizationservice_use(composd) 14 15# Prepare staging directory for odrefresh 16allow composd apex_art_data_file:dir { create_dir_perms relabelfrom }; 17allow composd apex_art_staging_data_file:dir { create_dir_perms relabelto }; 18allow composd apex_art_staging_data_file:file { getattr unlink }; 19 20# Delete files in the odrefresh target directory 21allow composd apex_art_data_file:file unlink; 22 23# Access our APEX data files 24allow composd apex_module_data_file:dir search; 25allow composd apex_compos_data_file:dir create_dir_perms; 26allow composd apex_compos_data_file:file create_file_perms; 27 28# Run fd_server in its own domain, and send SIGTERM when finished. 29domain_auto_trans(composd, fd_server_exec, compos_fd_server) 30allow composd compos_fd_server:process signal; 31 32# Read ART's properties 33get_prop(composd, dalvik_config_prop) 34get_prop(composd, device_config_runtime_native_boot_prop) 35 36# We never create any artifact files directly 37neverallow composd apex_art_data_file:file ~unlink; 38