# type_transition must be private policy the domain_trans rules could stay # public, but conceptually should go with this # Technically not a daemon but we do want the transition from init domain to # asan_extract to occur. with_asan(` typeattribute asan_extract coredomain; init_daemon_domain(asan_extract) # We need to signal a reboot when done. set_prop(asan_extract, powerctl_prop) # Allow asan_extract to execute itself using #!/system/bin/sh allow asan_extract shell_exec:file rx_file_perms; # We execute log, rm, gzip and tar. allow asan_extract toolbox_exec:file rx_file_perms; allow asan_extract system_file:file execute_no_trans; # asan_extract deletes old /data/lib. allow asan_extract system_file:dir { open read remove_name rmdir write }; allow asan_extract system_file:file unlink; # asan_extract untars ASAN libraries into /data. allow asan_extract system_data_file:dir create_dir_perms ; allow asan_extract system_data_file:{ file lnk_file } create_file_perms ; # Relabel the libraries with restorecon. allow asan_extract file_contexts_file:file r_file_perms; allow asan_extract system_data_file:{ dir file } relabelfrom; allow asan_extract system_file:dir { relabelto setattr }; allow asan_extract system_file:file relabelto; # Restorecon will actually already try to run with sanitized libraries (libpackagelistparser). allow asan_extract system_data_file:file execute; ')