Skip to content
Snippets Groups Projects
  • Jeff Vander Stoep's avatar
    Create attribute for moving perms out of domain · d22987b4
    Jeff Vander Stoep authored
    Motivation: Domain is overly permissive. Start removing permissions
    from domain and assign them to the domain_deprecated attribute.
    Domain_deprecated and domain can initially be assigned to all
    domains. The goal is to not assign domain_deprecated to new domains
    and to start removing domain_deprecated where it is not required or
    reassigning the appropriate permissions to the inheriting domain
    when necessary.
    
    Bug: 25433265
    Change-Id: I8b11cb137df7bdd382629c98d916a73fe276413c
    d22987b4
fsck_untrusted.te 1.08 KiB
# Any fsck program run on untrusted block devices
type fsck_untrusted, domain, domain_deprecated;

# Inherit and use pty created by android_fork_execvp_ext().
allow fsck_untrusted devpts:chr_file { read write ioctl getattr };

# Allow stdin/out back to vold
allow fsck_untrusted vold:fd use;
allow fsck_untrusted vold:fifo_file { read write getattr };

# Run fsck on vold block devices
allow fsck_untrusted block_device:dir search;
allow fsck_untrusted vold_device:blk_file rw_file_perms;

###
### neverallow rules
###

# Untrusted fsck should never be run on block devices holding sensitive data
neverallow fsck_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 fsck binaries
neverallow { domain -vold } fsck_untrusted:process transition;
neverallow domain fsck_untrusted:process dyntransition;
neverallow fsck_untrusted { file_type fs_type -fsck_exec }:file entrypoint;