Skip to content
Snippets Groups Projects
  1. Feb 15, 2017
    • Alex Klyubin's avatar
      Move hal_*_default policy to vendor image · ac1a6d44
      Alex Klyubin authored
      hal_*_default daemons whose policy is in common/device-agnostic policy
      are provided by the vendor image (see vendor/file_contexts). Thus,
      their policy should also reside in the vendor image, rather than in
      the system image. This means their policy should live in the vendor
      subdirectory of this project.
      
      Test: Device boots and appears to work
      Bug: 34135607
      Bug: 34170079
      Change-Id: I6613e43733e03d4a3d4726f849732d903e024016
      ac1a6d44
  2. Feb 14, 2017
  3. Feb 13, 2017
  4. Feb 12, 2017
    • Nick Kralevich's avatar
      tracefs: avoid overly generic regexes · 4cae28d4
      Nick Kralevich authored
      On boot, Android runs restorecon on a number of virtual directories,
      such as /sys and /sys/kernel/debug, to ensure that the SELinux labels
      are correct. To avoid causing excessive boot time delays, the restorecon
      code aggressively prunes directories, to avoid recursing down directory
      trees which will never have a matching SELinux label.
      
      See:
      * https://android-review.googlesource.com/93401
      * https://android-review.googlesource.com/109103
      
      The key to this optimization is avoiding unnecessarily broad regular
      expressions in file_contexts. If an overly broad regex exists, the tree
      pruning code is ineffective, and the restorecon ends up visiting lots of
      unnecessary directories.
      
      The directory /sys/kernel/debug/tracing contains approximately 4500
      files normally, and on debuggable builds, this number can jump to over
      9000 files when the processing from wifi-events.rc occurs. For
      comparison, the entire /sys/kernel/debug tree (excluding
      /sys/kernel/debug/tracing) only contains approximately 8000 files. The
      regular expression "/sys/kernel(/debug)?/tracing/(.*)?" ends up matching
      a significant number of files, which impacts boot performance.
      
      Instead of using an overly broad regex, refine the regex so only the
      files needed have an entry in file_contexts. This list of files is
      essentially a duplicate of the entries in
      frameworks/native/cmds/atrace/atrace.rc .
      
      This change reduces the restorecon_recursive call for /sys/kernel/debug
      from approximately 260ms to 40ms, a boot time reduction of approximately
      220ms.
      
      Bug: 35248779
      Test: device boots, no SELinux denials, faster boot.
      Change-Id: I70f8af102762ec0180546b05fcf014c097135f3e
      4cae28d4
  5. Feb 11, 2017
    • Nick Kralevich's avatar
      Don't try to relabel tracing directory · 6ebcfe47
      Nick Kralevich authored
      Use the default filesystem label from genfs_contexts for the directory
      /sys/kernel/debug/tracing and /sys/kernel/tracing, instead of explicitly
      attempting to relabel it.
      
      There are three cases we need to consider:
      
      1) Old-style tracing functionality is on debugfs
      2) tracing functionality is on tracefs, but mounted under debugfs
      3) tracefs is mounted at /sys/kernel/tracing
      
      For #1, the label on /sys/kernel/debug/tracing will be debugfs, and all
      processes are allowed debugfs:dir search, so having the label be debugfs
      instead of debugfs_tracing will not result in any permission change.
      
      For #2, the label on /sys/kernel/debug/tracing will be debugfs_tracing,
      which is the same as it is today. The empty directory
      /sys/kernel/tracing wlll retain the sysfs label, avoiding the denial
      below.
      
      For #3, /sys/kernel/debug/tracing won't exist, and /sys/kernel/tracing
      will have the debugfs_tracing label, where processes are allowed search
      access.
      
      Addresses the following denial:
      
      avc:  denied  { associate } for  pid=1 comm="init" name="tracing"
      dev="sysfs" ino=95 scontext=u:object_r:debugfs_tracing:s0
      tcontext=u:object_r:sysfs:s0 tclass=filesystem permissive=0
      
      Bug: 31856701
      Bug: 35197529
      Test: no denials on boot
      Change-Id: I7233ea92c6987b8edfce9c2f1d77eb25c7df820f
      6ebcfe47
    • Pawin Vongmasa's avatar
      Sepolicy for OMX hal. · 5559d21a
      Pawin Vongmasa authored
      Bug: 31399200
      Test: Compiles
      Change-Id: Ifb347a985df5deb85426a54c435c4a9c0248cb57
      5559d21a
    • Treehugger Robot's avatar
      3651bae6
    • Craig Donner's avatar
      Allow untrusted apps to access VrManager. · 9051eaf3
      Craig Donner authored
      There is only a single systemapi at the moment that is callable, and it is
      protected by a signature/preinstalled permission.
      
      (cherry picked from commit I778864afc9d02f8b2bfcf6b92a9f975ee87c4724)
      
      Bug: 35059826,33297721
      Test: manually on a marlin
      Change-Id: I3789ce8238f5a52ead8f466dfa3045fbcef1958e
      9051eaf3
  6. Feb 10, 2017
    • Treehugger Robot's avatar
    • Treehugger Robot's avatar
    • Treehugger Robot's avatar
    • Treehugger Robot's avatar
      Merge changes Ia12e77c3,Iae34ae3b · b2513f98
      Treehugger Robot authored
      * changes:
        init.te: remove domain_deprecated
        Remove logspam
      b2513f98
    • Jeff Vander Stoep's avatar
      surfaceflinger: grant access to vr_manager_service · 8bf3b7a8
      Jeff Vander Stoep authored
      Addresses
      avc:  denied  { find } for service=vrmanager pid=472 uid=1000
      scontext=u:r:surfaceflinger:s0 tcontext=u:object_r:vr_manager_service:s0
      tclass=service_manager
      
      Test: Marlin builds and boots. Denial no longer observed.
      Bug: 35258608
      Bug: 35197529
      Change-Id: I480dff3fdaf01f71e29e96f08350f705c6a23bba
      8bf3b7a8
    • Jeff Vander Stoep's avatar
      hal_fingerprint: grant read access to /sys · 350a603e
      Jeff Vander Stoep authored
      avc: denied { read } for name="modalias" dev="sysfs" ino=17624 scontext=u:r:hal_fingerprint_default:s0 tcontext=u:object_r:sysfs:s0 tclass=file
      
      Test: Marlin builds and boots without this denial.
      Bug: 35197529
      Change-Id: I3b64db571ac10c843f3765ed557ceac07bc6580e
      350a603e
    • Treehugger Robot's avatar
    • Nick Kralevich's avatar
      domain_deprecated.te: remove auditallow statements on user builds · 596dd09f
      Nick Kralevich authored
      Make the policy smaller and less noisy on user builds by suppressing
      auditallow rules.
      
      Bug: 28760354
      Test: policy compiles and device boots. No obvious problems.
      Change-Id: Iddf6f12f8ce8838e84b09b2f9f3f0c8b700543f5
      596dd09f
    • Nick Kralevich's avatar
      init.te: remove domain_deprecated · b59c2016
      Nick Kralevich authored
      auditallows have been in place for a while, and no obvious denials.
      Remove domain_deprecated from init.te
      
      While I'm here, clean up the formatting of the lines in
      domain_deprecated.te.
      
      Bug: 28760354
      Test: policy compiles and device boots. No obvious problems.
      Change-Id: Ia12e77c3e25990957abf15744e083eed9ffbb056
      b59c2016
    • Jeff Vander Stoep's avatar
      Remove logspam · a1b45600
      Jeff Vander Stoep authored
      Grant observed uses of permissions being audited in domain_deprecated.
      
      fsck
      avc: granted { getattr } for path="/" dev="dm-0" ino=2 scontext=u:r:fsck:s0 tcontext=u:object_r:rootfs:s0 tclass=dir
      
      keystore
      avc: granted { read open } for path="/vendor/lib64/hw" dev="dm-1" ino=168 scontext=u:r:keystore:s0 tcontext=u:object_r:system_file:s0 tclass=dir
      
      sdcardd
      avc: granted { read open } for path="/proc/filesystems" dev="proc" ino=4026532412 scontext=u:r:sdcardd:s0 tcontext=u:object_r:proc:s0 tclass=file
      
      update_engine
      avc: granted { getattr } for path="/proc/misc" dev="proc" ino=4026532139 scontext=u:r:update_engine:s0 tcontext=u:object_r:proc:s0 tclass=file
      avc: granted { read open } for path="/proc/misc" dev="proc" ino=4026532139 scontext=u:r:update_engine:s0 tcontext=u:object_r:proc:s0 tclass=file
      avc: granted { read } for name="hw" dev="dm-1" ino=168 scontext=u:r:update_engine:s0 tcontext=u:object_r:system_file:s0 tclass=dir
      
      vold
      avc: granted { read open } for path="/vendor/lib64/hw" dev="dm-1" ino=168 scontext=u:r:vold:s0 tcontext=u:object_r:system_file:s0 tclass=dir
      
      Test: Marlin builds and boots, avc granted messages no longer observed.
      Bug: 35197529
      Change-Id: Iae34ae3b9e22ba7550cf7d45dc011ab043e63424
      a1b45600
    • Nick Kralevich's avatar
      Merge "Move net.dns* to it's own label." · 00910618
      Nick Kralevich authored
      00910618
    • Nick Kralevich's avatar
      exclude init from apk_data_file getattr · 5ee3151a
      Nick Kralevich authored
      Addresses the following auditallow spam:
      
      avc: granted { getattr } for comm="init"
      path="/data/app/com.sling-1/lib/x86/libavcodec-56.so" dev="mmcblk0p11"
      ino=32607 scontext=u:r:init:s0 tcontext=u:object_r:apk_data_file:s0
      tclass=file
      
      Test: policy compiles.
      Change-Id: I81775f8de93f0b4334279e9f5e19d27e6171616f
      5ee3151a
    • Treehugger Robot's avatar
      Merge "Add policies for new services." · 41b2b432
      Treehugger Robot authored
      41b2b432
    • Nick Kralevich's avatar
      Move net.dns* to it's own label. · 4e404290
      Nick Kralevich authored
      Move net.dns* from net_radio_prop to the newly created label
      net_dns_prop. This allows finer grain control over this specific
      property.
      
      Prior to this change, this property was readable to all SELinux domains,
      and writable by the following SELinux domains:
      
        * system_server
        * system_app (apps which run as UID=system)
        * netmgrd
        * radio
      
      This change:
      
      1) Removes read access to this property to everyone EXCEPT untrusted_app
      and system_server.
      2) Limit write access to system_server.
      
      In particular, this change removes read access to priv_apps. Any
      priv_app which ships with the system should not be reading this
      property.
      
      Bug: 34115651
      Test: Device boots, wifi turns on, no problems browsing the internet
      Change-Id: I8a32e98c4f573d634485c4feac91baa35d021d38
      4e404290
  7. Feb 09, 2017
    • Nick Bray's avatar
      Add policies for new services. · 084faf02
      Nick Bray authored
      Bug: 30989383
      Bug: 34731101
      Test: manual
      Change-Id: Icf9d48568b505c6b788f2f5f456f2d709969fbeb
      084faf02
    • Nick Kralevich's avatar
      Address auditallow spam from init · 8b63356b
      Nick Kralevich authored
      Init has access to a number of character devices inherited via
      domain.te. Exclude those character devices from the auditallow
      logging.
      
      In addition, init has access to a number of character devices explicitly
      listed in init.te. Exclude those from auditallow logging too.
      
      Addresses various auditallow spam, including:
      
      avc: granted { read open } for comm="init" path="/dev/urandom"
      dev="tmpfs" ino=1197 scontext=u:r:init:s0
      tcontext=u:object_r:random_device:s0 tclass=chr_file
      
      avc: granted { read open } for comm="init" path="/dev/ptmx" dev="tmpfs"
      ino=1294 scontext=u:r:init:s0 tcontext=u:object_r:ptmx_device:s0
      tclass=chr_file
      
      avc: granted { read } for comm="init" name="keychord" dev="tmpfs"
      ino=1326 scontext=u:r:init:s0 tcontext=u:object_r:keychord_device:s0
      tclass=chr_file
      
      avc: granted { read open } for comm="init" path="/dev/keychord"
      dev="tmpfs" ino=1326 scontext=u:r:init:s0
      tcontext=u:object_r:keychord_device:s0 tclass=chr_file
      
      and others not covered above.
      
      Bug: 35197529
      Bug: 33347297
      Test: policy compiles and no auditallow denials.
      Change-Id: Id869404a16c81c779943e9967eb32da226b6047e
      8b63356b
  8. Feb 08, 2017
  9. Feb 07, 2017
    • Alex Klyubin's avatar
      Move blkid policy to private · 83ac242f
      Alex Klyubin authored
      This leaves only the existence of blkid and blkid_untrusted domains as
      public API. All other rules are implementation details of these
      domains' policy and are thus now private.
      
      Test: No change to policy according to sesearch, except for
            disappearance of all allow rules to do with blkid_current and
            blkid_untrusted_current (as expected).
      Bug: 31364497
      Change-Id: I0dda2feeb64608b204006eecd8a7c9b9c7bb2b81
      83ac242f
Loading