116fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzyn# android recovery refresh log manager
216fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzyntype recovery_refresh, domain;
316fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzyntype recovery_refresh_exec, exec_type, file_type;
416fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzyn
516fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzynallow recovery_refresh pstorefs:dir search;
616fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzynallow recovery_refresh pstorefs:file r_file_perms;
716fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzyn# NB: domain inherits write_logd which hands us write to pmsg_device
816fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzyn
916fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzyn###
1016fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzyn### Neverallow rules
1116fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzyn###
1216fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzyn### recovery_refresh should NEVER do any of this
1316fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzyn
1416fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzyn# Block device access.
1516fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzynneverallow recovery_refresh dev_type:blk_file { read write };
1616fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzyn
1716fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzyn# ptrace any other app
1816fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzynneverallow recovery_refresh domain:process ptrace;
1916fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzyn
2016fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzyn# Write to /system.
2116fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzynneverallow recovery_refresh system_file:dir_file_class_set write;
2216fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzyn
2316fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzyn# Write to files in /data/data or system files on /data
2416fe52c90caae18c0d91918d6bfc471f2e637207Mark Salyzynneverallow recovery_refresh { app_data_file system_data_file }:dir_file_class_set write;
25