Skip to content
Snippets Groups Projects
  • Tri Vo's avatar
    d276b434
    Remove access to 'sysfs' files from healtd and charger. · d276b434
    Tri Vo authored
    We rely on vendors to label all dependencies of healthd/charger under
    /sys/class/power_supply with sysfs_batteryinfo type.
    
    Bug: 65643247
    Bug: 32659667
    Test: boots without denials from healthd, to sysfs_batteryinfo or to
    sysfs_msm_subsys.
    Test: charging with device turned off works without /sys denials.
    
    Change-Id: I893f309ecad8a0caf7d0b81f5f945725907255c2
    d276b434
    History
    Remove access to 'sysfs' files from healtd and charger.
    Tri Vo authored
    We rely on vendors to label all dependencies of healthd/charger under
    /sys/class/power_supply with sysfs_batteryinfo type.
    
    Bug: 65643247
    Bug: 32659667
    Test: boots without denials from healthd, to sysfs_batteryinfo or to
    sysfs_msm_subsys.
    Test: charging with device turned off works without /sys denials.
    
    Change-Id: I893f309ecad8a0caf7d0b81f5f945725907255c2
domain.te 2.36 KiB
# Transition to crash_dump when /system/bin/crash_dump* is executed.
# This occurs when the process crashes.
domain_auto_trans(domain, crash_dump_exec, crash_dump);
allow domain crash_dump:process sigchld;

# Limit ability to ptrace or read sensitive /proc/pid files of processes
# with other UIDs to these whitelisted domains.
neverallow {
  domain
  -vold
  -dumpstate
  -storaged
  -system_server
  userdebug_or_eng(`-perfprofd')
} self:global_capability_class_set sys_ptrace;

# Limit ability to generate hardware unique device ID attestations to priv_apps
neverallow { domain -priv_app } *:keystore_key gen_unique_id;

# Core domains are not permitted to use kernel interfaces which are not
# explicitly labeled.
# TODO(b/65643247): Apply these neverallow rules to all coredomain.
full_treble_only(`
  # /proc
  neverallow {
    coredomain
    -dumpstate
    -platform_app
    -priv_app
    -system_app
    -vold
    -vendor_init
  } proc:file no_rw_file_perms;

  # /sys
  neverallow {
    coredomain
    -dumpstate
    -init
    -priv_app
    -storaged
    -system_app
    -ueventd
    -vold
    -vendor_init
  } sysfs:file no_rw_file_perms;

  # /dev
  neverallow {
    coredomain
    -fsck
    -init
    -shell
    -ueventd
    -vendor_init
  } device:{ blk_file file } no_rw_file_perms;

  # debugfs
  neverallow {
    coredomain
    -dumpstate
    -init
    -system_server
    -vendor_init
  } debugfs:file no_rw_file_perms;

  # tracefs
  neverallow {
    coredomain
    userdebug_or_eng(`-atrace')
    -dumpstate
    -init
    userdebug_or_eng(`-perfprofd')
    -shell
    -vendor_init
  } debugfs_tracing:file no_rw_file_perms;

  # inotifyfs
  neverallow {
    coredomain
    -init
    -vendor_init
  } inotify:file no_rw_file_perms;

  # pstorefs
  neverallow {
    coredomain
    -bootstat
    -charger
    -dumpstate
    -healthd
    -init
    -logd
    -logpersist
    -recovery_persist
    -recovery_refresh
    -shell
    -system_server
    -vendor_init
  } pstorefs:file no_rw_file_perms;

  # configfs
  neverallow {
    coredomain
    -init
    -system_server
    -vendor_init
  } configfs:file no_rw_file_perms;

  # functionfs
  neverallow {
    coredomain
    -adbd
    -init
    -mediaprovider
    -vendor_init
  }functionfs:file no_rw_file_perms;

  # usbfs and binfmt_miscfs
  neverallow {
    coredomain
    -init
    -vendor_init
  }{ usbfs binfmt_miscfs }:file no_rw_file_perms;
')