Skip to content
Snippets Groups Projects
  1. Sep 27, 2018
  2. Sep 24, 2018
    • Fan Xu's avatar
      Update SELinux Policy for bufferhubd · 26fa914c
      Fan Xu authored
      Create a new service type buffer_hub_binder_service for
      BufferHubBinderService and allow bufferhubd to publish the service.
      
      Add the service to 26.0, 27.0 and 28.0 compat ignore files since the
      service is not available in past versions.
      
      Fixes: 116022258
      Test: build passed
      
      Change-Id: I5a21f00329ed474433d96c8d1ce32377f20cada3
      26fa914c
  3. Feb 13, 2018
    • Bookatz's avatar
      Statsd allow shell in selinux policy · 022ab0e7
      Bookatz authored
      CTS tests need to be able to call, from hostside:
      adb shell cmd stats dump-report (and others)
      On a user build, this will fail because of an selinux policy violation
      from shell. This cl fixes this by granting shell permission.
      
      Similarly, Settings needs to communicate with statsd, so
      system_app-statsd binder calls are given permission.
      
      Bug: 72961153
      Bug: 73255014
      Test: run cts-dev -m CtsStatsdHostTestCases -t android.cts.statsd.atom.HostAtomTests
      Test: manual confirmation
      Change-Id: I6589ab4ef5c91a4a7f78eb97b63d9bb43e3d8f02
      022ab0e7
  4. Feb 05, 2018
    • Carmen Jackson's avatar
      Use a whitelisting strategy for tracefs. · 2c8ca45d
      Carmen Jackson authored
      This changes tracefs files to be default-enabled in debug mode, but
      default-disabled with specific files enabled in user mode.
      
      Bug: 64762598
      Test: Successfully took traces in user mode.
      
      Change-Id: I572ea22253e0c1e42065fbd1d2fd7845de06fceb
      2c8ca45d
  5. Jan 29, 2018
    • Primiano Tucci's avatar
      SELinux policies for Perfetto cmdline client (/system/bin/perfetto) · 1a9f4f7a
      Primiano Tucci authored
      Instead of having statsd linking the perfetto client library
      and talk directly to its socket, we let just statsd exec()
      the /system/bin/perfetto cmdline client.
      
      There are two reasons for this:
      1) Simplify the interaction between statsd and perfetto, reduce
        dependencies, binary size bloat and isolate faults.
      2) The cmdline client also takes care of handing the trace to
        Dropbox. This allows to expose the binder interaction surface
        to the short-lived cmdline client and avoid to grant binder
        access to the perfetto traced daemon.
      
      This cmdline client will be used by:
       - statsd
       - the shell user (for our UI and Studio)
      
      Bug: 70942310
      Change-Id: I8cdde181481ad0a1a5cae5937ac446cedac54a1f
      1a9f4f7a
  6. Jan 16, 2018
  7. Jan 10, 2018
    • Primiano Tucci's avatar
      Perfetto SELinux policies · c80f9e03
      Primiano Tucci authored
      Perfetto is a performance instrumentation and logging framework,
      living in AOSP's /external/pefetto.
      Perfetto introduces in the system one binary and two daemons
      (the binary can specialize in either depending on the cmdline).
      
      1) traced: unprivileged daemon. This is architecturally similar to logd.
         It exposes two UNIX sockets:
         - /dev/socket/traced_producer : world-accessible, allows to stream
           tracing data. A tmpfs file descriptor is sent via SCM_RIGHTS
           from traced to each client process, which needs to be able to
           mmap it R/W (but not X)
         - /dev/socket/traced_consumer : privilege-accessible (only from:
           shell, statsd). It allows to configure tracing and read the trace
           buffer.
      2) traced_probes: privileged daemon. This needs to:
         - access tracingfs (/d/tracing) to turn tracing on and off.
         - exec atrace
         - connect to traced_producer to stream data to traced.
      
      init.rc file:
      https://android-review.googlesource.com/c/platform/external/perfetto/+/575382/14/perfetto.rc
      
      Bug: 70942310
      Change-Id: Ia3b5fdacbd5a8e6e23b82f1d6fabfa07e4abc405
      c80f9e03
  8. Sep 26, 2017
  9. Sep 05, 2017
  10. Sep 01, 2017
  11. Aug 14, 2017
    • Steven Moreland's avatar
      Add screencap domain. · 9216a6ad
      Steven Moreland authored
      Only seeing this denial in permissive:
      allow shell screencap_exec:file getattr;
      
      Bug: 37565047
      Test: adb shell screencap w/o root
      Test: cts-tradefed run cts-dev --module CtsAadbHostTestCases
      Merged-In: I9f31d2067e002e7042646ee38dbfc06687481ac7
      Change-Id: I9f31d2067e002e7042646ee38dbfc06687481ac7
      9216a6ad
    • Steven Moreland's avatar
      Add screencap domain. · 6b780b35
      Steven Moreland authored
      Only seeing this denial in permissive:
      allow shell screencap_exec:file getattr;
      
      Bug: 37565047
      Test: adb shell screencap w/o root
      Test: cts-tradefed run cts-dev --module CtsAadbHostTestCases
      Merged-In: I9f31d2067e002e7042646ee38dbfc06687481ac7
      Change-Id: I9f31d2067e002e7042646ee38dbfc06687481ac7
      6b780b35
  12. Aug 11, 2017
    • Steven Moreland's avatar
      Add screencap domain. · f27bba93
      Steven Moreland authored
      Only seeing this denial in permissive:
      allow shell screencap_exec:file getattr;
      
      Bug: 37565047
      Test: adb shell screencap w/o root
      Test: cts-tradefed run cts-dev --module CtsAadbHostTestCases
      Change-Id: I9f31d2067e002e7042646ee38dbfc06687481ac7
      f27bba93
  13. Jul 27, 2017
    • Joel Galenson's avatar
      Move file labeling to genfs_contexts. · 27c0aa7a
      Joel Galenson authored
      This should improve performance, as file_contexts is slower than
      genfs_contexts.
      
      Bug: 62413700
      Test: Built, flashed, and booted Sailfish.  Verified that the
      files have the correct context and that wifi, web, and atrace work.
      
      Merged-In: Ia28707ec565a0792bc882fbffe9e8ab9968535f5
      Change-Id: I9546f3af3c95e3443684ae4764881b69987611ef
      27c0aa7a
  14. Jun 14, 2017
    • Joel Galenson's avatar
      Properly give some files the debugfs_tracing context only in debug mode. · 92fdd895
      Joel Galenson authored
      One of my previous commits removed this, so I am now restoring it.
      
      This commit also contains a bit of cleanup from previous commits by
      removing some unneeded types.
      
      It also fixes traceur by porting ag/2409144 to master.
      
      Bug: 62413700, 62547086
      Test: Built, flashed, and booted Marlin.  Verified that the files have
      the correct context.  Verified that atrace and traceur work.
      
      Change-Id: I76fa0e9060aff554687d57ab3976c8704a4068f0
      92fdd895
  15. Jun 07, 2017
    • Joel Galenson's avatar
      Move file labeling to genfs_contexts. · 7fa51593
      Joel Galenson authored
      This should improve performance, as file_contexts is slower than
      genfs_contexts.
      
      Bug: 62413700
      Test: Built, flashed, and booted Marlin.  Verified that some of the
      files have the correct context.
      Change-Id: Ia28707ec565a0792bc882fbffe9e8ab9968535f5
      7fa51593
  16. May 11, 2017
    • Siarhei Vishniakou's avatar
      Allow shell access on /dev/uhid node · 2a7f5710
      Siarhei Vishniakou authored
      Node for /dev/uhid driver needs to be accessible
      by shell for the 'hid' command in frameworks/base/cmds.
      This CL is in support of another CL c/2048848, topic
      'Refactor hid command in /frameworks/base/cmds'
      in internal master.
      
      Bug: 34052337
      Test: CTS test for GamepadTestCase#testButtonA; Checked that
      cat /dev/uhid does not raise permission error.
      
      Change-Id: I861c1226b4a67272af7c2a93d7811bf87a083478
      2a7f5710
  17. May 08, 2017
    • Yifan Hong's avatar
      Allow adbd and shell to read /proc/config.gz · 19a87733
      Yifan Hong authored
      for CTS device info collection purposes.
      
      Bug: 28656227
      Test: m cts -j && cts-tradefed run cts -m Gesture --test
      android.gesture.cts.GestureTest#testGetStrokes
      
      Change-Id: I8caf3580fb05fb489dc5abb917c8cb78cb089fb7
      19a87733
    • Nick Kralevich's avatar
      Further restrict SELinux API access · 14e2e926
      Nick Kralevich authored
      Remove SELinux access from domain_deprecated. Access to SELinux APIs can
      be granted on a per-domain basis.
      
      Remove appdomain access to SELinux APIs. SELinux APIs are not public and
      are not intended for application use. In particular, some exploits poll
      on /sys/fs/selinux/enforce to determine if the attack was successful,
      and we want to ensure that the behavior isn't allowed. This access was
      only granted in the past for CTS purposes, but all the relevant CTS
      tests have been moved to the shell domain.
      
      Bug: 27756382
      Bug: 28760354
      Test: Device boots and no obvious problems. No collected denials.
      Change-Id: Ide68311bd0542671c8ebf9df0326e512a1cf325b
      14e2e926
  18. Apr 18, 2017
    • Carmen Jackson's avatar
      Add selinux rules for additional file contexts in userdebug · 25788df1
      Carmen Jackson authored
      These rules allow the additional tracepoints we need for running traceur
      in userdebug builds to be writeable.
      
      Bug: 37110010
      Test: I'm testing by running atrace -l and confirming that the
      tracepoints that I'm attempting to enable are available.
      
      Change-Id: Ia352100ed67819ae5acca2aad803fa392d8b80fd
      25788df1
  19. Mar 31, 2017
  20. Mar 30, 2017
  21. Mar 24, 2017
    • 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
  22. 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
  23. Dec 08, 2016
    • dcashman's avatar
      Restore app_domain macro and move to private use. · 3e8dbf01
      dcashman authored
      app_domain was split up in commit: 2e00e637 to
      enable compilation by hiding type_transition rules from public policy.  These
      rules need to be hidden from public policy because they describe how objects are
      labeled, of which non-platform should be unaware.  Instead of cutting apart the
      app_domain macro, which non-platform policy may rely on for implementing new app
      types, move all app_domain calls to private policy.
      
      (cherry-pick of commit: 76035ea0)
      
      Bug: 33428593
      Test: bullhead and sailfish both boot. sediff shows no policy change.
      Change-Id: I4beead8ccc9b6e13c6348da98bb575756f539665
      3e8dbf01
    • dcashman's avatar
      Restore app_domain macro and move to private use. · 76035ea0
      dcashman authored
      app_domain was split up in commit: 2e00e637 to
      enable compilation by hiding type_transition rules from public policy.  These
      rules need to be hidden from public policy because they describe how objects are
      labeled, of which non-platform should be unaware.  Instead of cutting apart the
      app_domain macro, which non-platform policy may rely on for implementing new app
      types, move all app_domain calls to private policy.
      
      Bug: 33428593
      Test: bullhead and sailfish both boot. sediff shows no policy change.
      Change-Id: I4beead8ccc9b6e13c6348da98bb575756f539665
      76035ea0
  24. Dec 06, 2016
    • dcashman's avatar
      sepolicy: add version_policy tool and version non-platform policy. · 2e00e637
      dcashman authored
      In order to support platform changes without simultaneous updates from
      non-platform components, the platform and non-platform policies must be
      split.  In order to provide a guarantee that policy written for
      non-platform objects continues to provide the same access, all types
      exposed to non-platform policy are versioned by converting them and the
      policy using them into attributes.
      
      This change performs that split, the subsequent versioning and also
      generates a mapping file to glue the different policy components
      together.
      
      Test: Device boots and runs.
      Bug: 31369363
      Change-Id: Ibfd3eb077bd9b8e2ff3b2e6a0ca87e44d78b1317
      2e00e637
Loading