type cros_bootstat, domain, chromeos_domain;

domain_auto_trans(cros_bootstat_domain, cros_bootstat_exec, cros_bootstat);

tmp_file(cros_bootstat, file);

r_dir_file(cros_bootstat, {
  sysfs
  sysfs_dm
  sysfs_loop
});
allow cros_bootstat cros_bootstat_domain:fd use;
allow cros_bootstat proc_uptime:file r_file_perms;
allow cros_bootstat device:blk_file getattr;
allow cros_bootstat cros_bootstat_tmp_file:file rw_file_perms;
