blob: cd98d4beef93210f8ea640238378b03d04c7fca6 [file] [log] [blame] [edit]
# aconfigd_mainline -- manager for mainline aconfig flags
type aconfigd_mainline, domain, coredomain, mlstrustedsubject;
type aconfigd_mainline_exec, exec_type, file_type, system_file_type;
init_daemon_domain(aconfigd_mainline)
# allow aconfigd_mainline to search /metadata dir as it needs to access files under
# /metadata/aconfig dir
allow aconfigd_mainline metadata_file:dir search;
# aconfigd_mainline should be able to create storage files under /metadata/aconfig dir
allow aconfigd_mainline {
aconfig_storage_metadata_file
aconfig_storage_flags_metadata_file
}:dir create_dir_perms;
allow aconfigd_mainline {
aconfig_storage_metadata_file
aconfig_storage_flags_metadata_file
}:file create_file_perms;
# allow aconfigd_mainline to log to the kernel.
allow aconfigd_mainline kmsg_device:chr_file write;
# allow aconfigd_mainline to read /apex dir, aconfigd_mainline need to loop thru all
# dirs under /apex to find all currently mounted mainline modules and get their
# storage files
allow aconfigd_mainline apex_mnt_dir:dir r_dir_perms;
allow aconfigd_mainline apex_mnt_dir:file r_file_perms;
dontaudit aconfigd_mainline apex_info_file:file r_file_perms;
###
### Neverallow assertions
###
# only init is allowed to enter the aconfigd_mainline domain
neverallow { domain -init } aconfigd_mainline:process transition;
neverallow * aconfigd_mainline:process dyntransition;