Skip to content
Snippets Groups Projects
  • Alex Klyubin's avatar
    Vendor domains must not use Binder · f5446eb1
    Alex Klyubin authored
    On PRODUCT_FULL_TREBLE devices, non-vendor domains (except vendor
    apps) are not permitted to use Binder. This commit thus:
    * groups non-vendor domains using the new "coredomain" attribute,
    * adds neverallow rules restricting Binder use to coredomain and
      appdomain only, and
    * temporarily exempts the domains which are currently violating this
      rule from this restriction. These domains are grouped using the new
      "binder_in_vendor_violators" attribute. The attribute is needed
      because the types corresponding to violators are not exposed to the
      public policy where the neverallow rules are.
    
    Test: mmm system/sepolicy
    Test: Device boots, no new denials
    Test: In Chrome, navigate to ip6.me, play a YouTube video
    Test: YouTube: play a video
    Test: Netflix: play a movie
    Test: Google Camera: take a photo, take an HDR+ photo, record video with
          sound, record slow motion video with sound. Confirm videos play
          back fine and with sound.
    Bug: 35870313
    Change-Id: I0cd1a80b60bcbde358ce0f7a47b90f4435a45c95
    f5446eb1
logd.te 839 B
typeattribute logd coredomain;

init_daemon_domain(logd)

# logd is not allowed to write anywhere other than /data/misc/logd, and then
# only on userdebug or eng builds
# TODO: deal with tmpfs_domain pub/priv split properly
neverallow logd {
  file_type
  -logd_tmpfs
  -runtime_event_log_tags_file
  userdebug_or_eng(`-coredump_file -misc_logd_file')
}:file { create write append };

# protect the event-log-tags file
neverallow {
  domain
  -appdomain # covered below
  -bootstat
  -dumpstate
  -init
  -logd
  userdebug_or_eng(`-logpersist')
  -servicemanager
  -system_server
  -surfaceflinger
  -zygote
} runtime_event_log_tags_file:file no_rw_file_perms;

neverallow {
  appdomain
  -bluetooth
  -platform_app
  -priv_app
  -radio
  -shell
  userdebug_or_eng(`-su')
  -system_app
} runtime_event_log_tags_file:file no_rw_file_perms;