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
logpersist.te 994 B
typeattribute logpersist coredomain;

# android debug log storage in logpersist domains (eng and userdebug only)
userdebug_or_eng(`

  r_dir_file(logpersist, cgroup)

  allow logpersist misc_logd_file:file create_file_perms;
  allow logpersist misc_logd_file:dir rw_dir_perms;

  allow logpersist self:capability sys_nice;
  allow logpersist pstorefs:dir search;
  allow logpersist pstorefs:file r_file_perms;

  control_logd(logpersist)
  unix_socket_connect(logpersist, logdr, logd)
  read_runtime_log_tags(logpersist)

')

# logpersist is allowed to write to /data/misc/log for userdebug and eng builds
neverallow logpersist { file_type userdebug_or_eng(`-misc_logd_file -coredump_file') }:file { create write append };
neverallow { domain -init userdebug_or_eng(`-logpersist -logd -dumpstate') } misc_logd_file:file no_rw_file_perms;
neverallow { domain -init userdebug_or_eng(`-logpersist -logd') } misc_logd_file:dir { add_name link relabelfrom remove_name rename reparent rmdir write };