Skip to content
Snippets Groups Projects
blkid_untrusted.te 1.07 KiB
Newer Older
  • Learn to ignore specific revisions
  • # blkid for untrusted block devices
    
    type blkid_untrusted, domain;
    
    
    # Allowed read-only access to vold block devices to extract UUID/label
    allow blkid_untrusted block_device:dir search;
    allow blkid_untrusted vold_device:blk_file r_file_perms;
    
    # Allow stdin/out back to vold
    allow blkid_untrusted vold:fd use;
    allow blkid_untrusted vold:fifo_file { read write getattr };
    
    # For blkid launched through popen()
    allow blkid_untrusted blkid_exec:file rx_file_perms;
    
    ###
    ### neverallow rules
    ###
    
    # Untrusted blkid should never be run on block devices holding sensitive data
    neverallow blkid_untrusted {
      boot_block_device
      frp_block_device
      metadata_block_device
      recovery_block_device
      root_block_device
      swap_block_device
      system_block_device
      userdata_block_device
      cache_block_device
      dm_device
    }:blk_file no_rw_file_perms;
    
    # Only allow entry from vold via blkid binary
    neverallow { domain -vold } blkid_untrusted:process transition;
    neverallow domain blkid_untrusted:process dyntransition;
    neverallow blkid_untrusted { file_type fs_type -blkid_exec -shell_exec }:file entrypoint;