Skip to content
Snippets Groups Projects
  1. Feb 13, 2017
  2. 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
  3. 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
    • 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
  4. 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
  5. 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
  6. Feb 08, 2017
  7. 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
    • Joe Onorato's avatar
      Add incident command and incidentd daemon se policy. · 41f93db9
      Joe Onorato authored
      Test: adb shell incident
      Bug: 31122534
      Change-Id: I4ac9c9ab86867f09b63550707673149fe60f1906
      41f93db9
    • Alex Klyubin's avatar
      29dee538
    • Alex Klyubin's avatar
      Merge "Move atrace policy to private" · a2a538ee
      Alex Klyubin authored
      a2a538ee
    • Alex Klyubin's avatar
      Merge "Move audioserver policy to private" · 7562c044
      Alex Klyubin authored
      7562c044
    • Treehugger Robot's avatar
      2ba80ab0
    • Alex Klyubin's avatar
      Merge "Move adbd policy to private" · 432bc0e5
      Alex Klyubin authored
      432bc0e5
    • Alex Klyubin's avatar
      Move system_server policy to private · 59322f1a
      Alex Klyubin authored
      This leaves only the existence of system_server domain as public API.
      All other rules are implementation details of this domain's policy
      and are thus now private.
      
      Test: No change to policy according to sesearch, except for
            disappearance of all allow rules to do with
            system_server_current except those created by other domains'
            allow rules referencing system_server domain from public and
            vendor policies.
      Bug: 31364497
      
      Change-Id: Ifd76fa83c046b9327883eb6f0bbcd2113f2dd1a4
      59322f1a
    • Alex Klyubin's avatar
      Move atrace policy to private · 357c1617
      Alex Klyubin authored
      atrace and its atrace_exec now exist only in private policy.
      
      Test: No change to policy according to sesearch, except for
            disappearance of all allow rules to do with atrace_current
            which is expected now that atrace cannot be referenced from
            public or vendor policy.
      Bug: 31364497
      
      Change-Id: Ib726bcf73073083420c7c065cbd39dcddd7cabe3
      357c1617
    • Alex Klyubin's avatar
      Move audioserver policy to private · 238ce796
      Alex Klyubin authored
      This leaves only the existence of audioserver domain as public API.
      All other rules are implementation details of this domain's policy
      and are thus now private.
      
      Test: No change to policy according to sesearch, except for
            disappearance of all allow rules to do with audioserver_current
            except those created by other domains' allow rules referencing
            audioserver domain from public and vendor policies.
      Bug: 31364497
      
      Change-Id: I6662394d8318781de6e3b0c125435b66581363af
      238ce796
    • Dimitry Ivanov's avatar
      Allow getattr on rootfs:lnk_file for all domains · c7125fa2
      Dimitry Ivanov authored
      Bug: http://b/32123312
      Test: mm && boot
      Change-Id: I6550fbe2bd5f9f5a474419b483b0f786d4025e88
      c7125fa2
    • Alex Klyubin's avatar
      Move surfaceflinger policy to private · 5d30beb1
      Alex Klyubin authored
      This leaves only the existence of surfaceflinger domain as public API.
      All other rules are implementation details of this domain's policy
      and are thus now private.
      
      Test: No change to policy according to sesearch, except for
            disappearance of all allow rules to do with
            surfaceflinger_current except those created by other domains'
            allow rules referencing surfaceflinger domain from public and
            vendor policies.
      Bug: 31364497
      
      Change-Id: I177751afad82ec27a5b6d2440cf0672cb5b9dfb8
      5d30beb1
    • Alex Klyubin's avatar
      Move adbd policy to private · 8309f0a2
      Alex Klyubin authored
      This leaves only the existence of adbd domain as public API. All other
      rules are implementation details of this domain's policy and are thus
      now private.
      
      Test: No change to policy according to sesearch, except for
            disappearance of all allow rules to do with adbd_current except
            those created by other domains' allow rules referencing adbd
            domain from public and vendor policies.
      
      Bug: 31364497
      Change-Id: Icdce8b89f67c70c6c4c116471aaa412e55028cd8
      8309f0a2
Loading