Skip to content
Snippets Groups Projects
  1. Aug 26, 2016
    • Christopher Wiley's avatar
      Separate permissions to set WiFi related properties · bf18eca5
      Christopher Wiley authored
      wificond would like to be able to set WiFi related properties
      without access to the rest of the system properties.  Today,
      this only involves marking the driver as loaded or unloaded.
      
      avc: denied { write } for name="property_service" dev="tmpfs" ino=10100
      scontext=u:r:wificond:s0 tcontext=u:object_r:property_socket:s0
      tclass=sock_file permissive=0
      
      Bug: 29579539
      Test: No avc denials related to system properties across
            various WiFi events.
      
      Change-Id: I6d9f1de3fbef04cb7750cc3753634f9e02fdb71f
      (cherry picked from commit 1ebfdd6a)
      bf18eca5
  2. Jul 08, 2016
  3. Jun 07, 2016
  4. Jun 03, 2016
  5. Jun 02, 2016
    • Daniel Micay's avatar
      expose control over unpriv perf access to shell · 7005e25e
      Daniel Micay authored
      (Cherry picked from commit 38ac77e4)
      
      This allows the shell user to control whether unprivileged access to
      perf events is allowed.
      
      To enable unprivileged access to perf:
      
          adb shell setprop security.perf_harden 0
      
      To disable it again:
      
          adb shell setprop security.perf_harden 1
      
      This allows Android to disable this kernel attack surface by default,
      while still allowing profiling tools to work automatically. It can also
      be manually toggled, but most developers won't ever need to do that if
      tools end up incorporating this.
      
      Bug: 29054680
      
      Change-Id: Idcf6a2f6cbb35b405587deced7da1f6749b16a5f
      7005e25e
  6. May 31, 2016
    • Daniel Micay's avatar
      expose control over unpriv perf access to shell · 38ac77e4
      Daniel Micay authored
      This allows the shell user to control whether unprivileged access to
      perf events is allowed.
      
      To enable unprivileged access to perf:
      
          adb shell setprop security.perf_harden 0
      
      To disable it again:
      
          adb shell setprop security.perf_harden 1
      
      This allows Android to disable this kernel attack surface by default,
      while still allowing profiling tools to work automatically. It can also
      be manually toggled, but most developers won't ever need to do that if
      tools end up incorporating this.
      
      Bug: 29054680
      
      Change-Id: Idcf6a2f6cbb35b405587deced7da1f6749b16a5f
      38ac77e4
  7. Apr 19, 2016
    • mukesh agrawal's avatar
      allow system server to set log.tag.WifiHAL · e651f6f4
      mukesh agrawal authored
      On eng and userdebug builds (only), allow system server
      to change the value of log.tag.WifiHAL. WifiStateMachine
      will set this property to 'D' by default. If/when a user
      enables "Developer options -> Enable Wi-Fi Verbose Logging",
      WifiStateMachine change log.tag.WifiHAL to 'V'.
      
      BUG=27857554
      TEST=manual (see below)
      
      Test detail
      1. on user build:
         $ adb shell setprop log.tag.WifiHAL V
         $ adb shell getprop log.tag.WifiHAL
         <blank line>
         $ adb bugreport | grep log.tag.WifiHAL
         <11>[  141.918517] init: avc:  denied  { set } for property=log.tag.WifiHAL pid=4583 uid=2000 gid=2000 scontext=u:r:shell:s0 tcontext=u:object_r:wifi_log_prop:s0 tclass=property_service permissive=0
         <11>[  141.918566] init: sys_prop: permission denied uid:2000  name:log.tag.WifiHAL
      2. on userdebug build:
         $ adb shell getprop log.tag.WifiHAL
         $ <blank line>
         $ adb shell setprop log.tag.WifiHAL V
         $ adb shell getprop log.tag.WifiHAL
         V
      3. on userdebug build with modified WifiStateMachine:
         $ adb shell getprop log.tag.WifiHAL
         D
      
      Change-Id: I9cdd52a2b47a3dd1065262ea8c329130b7b044db
      e651f6f4
    • mukesh agrawal's avatar
      limit shell's access to log.* properties · 84cfde22
      mukesh agrawal authored
      Restrict the ability of the shell to set the log.*
      properties. Namely: only allow the shell to set
      such properities on eng and userdebug builds.
      
      The shell (and other domains) can continue to
      read log.* properties on all builds.
      
      While there: harmonize permissions for log.* and
      persist.log.tag. Doing so introduces two changes:
      - log.* is now writable from from |system_app|. This
        mirrors the behavior of persist.log.tag, which is
        writable to support "Developer options" ->
        "Logger buffer sizes" -> "Off".
        (Since this option is visible on user builds, the
        permission is enabled for all builds.)
      - persist.log.tag can now be set from |shell| on
        userdebug_or_eng().
      
      BUG=28221972
      TEST=manual (see below)
      
      Testing details
      - user build (log.tag)
        $ adb shell setprop log.tag.foo V
        $ adb shell getprop log.tag
        <blank line>
        $ adb bugreport | grep log.tag.foo
        [  146.525836] init: avc:  denied  { set } for property=log.tag.foo pid=4644 uid=2000 gid=2000 scontext=u:r:shell:s0 tcontext=u:object_r:log_prop:s0 tclass=property_service permissive=0
        [  146.525878] init: sys_prop: permission denied uid:2000  name:log.tag.foo
      - userdebug build (log.tag)
        $ adb shell getprop log.tag.foo
        <blank line>
        $ adb shell setprop log.tag.foo V
        $ adb shell getprop log.tag.foo
        V
      - user build (persist.log.tag)
        $ adb shell getprop | grep log.tag
        <no match>
        - Developer options -> Logger buffer sizes -> Off
        $ adb shell getprop | grep log.tag
        [persist.log.tag]: [Settings]
        [persist.log.tag.snet_event_log]: [I]
      
      Change-Id: Idf00e7a623723a7c46bf6d01e386aeca92b2ad75
      84cfde22
  8. Apr 08, 2016
  9. Mar 24, 2016
  10. Feb 22, 2016
  11. Feb 10, 2016
  12. Feb 09, 2016
  13. Feb 04, 2016
  14. Jan 19, 2016
    • Rubin Xu's avatar
      SELinux rule for ro.device_owner and persist.logd.security · 0c8286fe
      Rubin Xu authored
      They are introduced for the device owner process logging feature.
      That is, for enterprise-owned devices with device owner app provisioned,
      the device owner may choose to turn on additional device-wide logging for
      auditing and intrusion detection purposes. Logging includes histories of
      app process startup, commands issued over ADB and lockscreen unlocking
      attempts. These logs will available to the device owner for analysis,
      potentially shipped to a remote server if it chooses to.
      
      ro.device_owner will be a master switch to turn off logging, if the device
      has no device owner provisioned. persist.logd.security is a switch that
      device owner can toggle (via DevicePoliyManager) to enable/disable logging.
      Writing to both properties should be only allowed by the system server.
      
      Bug: 22860162
      Change-Id: Iabfe2347b094914813b9d6e0c808877c25ccd038
      0c8286fe
  15. Jan 11, 2016
    • Tom Cherry's avatar
      Remove special case handling of "ro." properties · f89847a9
      Tom Cherry authored
      Currently, properties that begin with "ro." are special cased to skip
      over the "ro." part of the prefix before matching with entries in
      property_contexts.  A change to init is removing this special case and
      therefore, the "ro." prefixes must be explicitly added to
      property_contexts.
      
      Bug 26425619
      
      Change-Id: I343f139a39abef99924e84e0d27699284f335d63
      f89847a9
  16. Dec 23, 2015
  17. Dec 04, 2015
    • Felipe Leme's avatar
      Increase communication surface between dumpstate and Shell: · 83fd8a54
      Felipe Leme authored
      - Add a new 'dumpstate' context for system properties. This context
        will be used to share state between dumpstate and Shell. For example,
        as dumpstate progresses, it will update a system property, which Shell
        will use to display the progress in the UI as a system
        notification. The user could also rename the bugreport file, in which
        case Shell would use another system property to communicate such
        change to dumpstate.
      - Allow Shell to call 'ctl.bugreport stop' so the same system
        notification can be used to stop dumpstate.
      
      BUG: 25794470
      
      Change-Id: I74b80bda07292a91358f2eea9eb8444caabc5895
      83fd8a54
  18. Jul 30, 2015
  19. Jun 09, 2015
    • Jeff Sharkey's avatar
      New "selinux.restorecon" control property. · 7617cd48
      Jeff Sharkey authored
      This new property is used as a control verb for running a recursive
      restorecon at the path contained in the property value.
      
      Defines a new label and grants access to vold, which invokes it when
      mounting private adopted volumes.
      
      Bug: 21121357
      Change-Id: I8ff12a146e54a505aa5b43a542578891563d647a
      7617cd48
  20. Apr 24, 2015
  21. Feb 27, 2015
  22. Feb 18, 2015
    • Sami Tolvanen's avatar
      Allow ueventd to set verity.* properties · 47cd53a5
      Sami Tolvanen authored
      On dm-verity errors, we catch uevents in ueventd and set the value
      for a matching verity.* property. Allow ueventd to actually change
      property values.
      
      Needed by changes from
        Ibb82953594d234f81ad21c40f524190b88e4ac8f
      
      Change-Id: I79bc90733edf8a45b27e64795f4adfbb3bc028dc
      47cd53a5
  23. Nov 19, 2014
  24. Nov 18, 2014
  25. Sep 28, 2014
    • Stephen Smalley's avatar
      Dependencies for new goldfish service domains. · 54e9bc45
      Stephen Smalley authored
      
      In order to support the new goldfish service domains in
      a change with the same Change-Id for the build project, we need
      the following changes in external/sepolicy:
      - /system/bin/logcat needs its own type so that it can be used as an
      entrypoint for the goldfish-logcat service.  A neverallow rule prevents
      us from allowing entrypoint to any type not in exec_type.
      - The config. and dalvik. property namespaces need to be labeled
      with something other than default_prop so that the qemu-props
      service can set them.  A neverallow rule prevents us from allowing
      qemu-props to set default_prop.
      
      We allow rx_file_perms to logcat_exec for any domain that
      was previously allowed read_logd() as many programs will read
      the logs by running logcat.  We do not do this for all domains
      as it would violate a neverallow rule on the kernel domain executing
      any file without transitioning to another domain, and as we ultimately
      want to apply the same restriction to the init domain (and possibly others).
      
      Change-Id: Idce1fb5ed9680af84788ae69a5ace684c6663974
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      54e9bc45
  26. Sep 26, 2014
  27. Sep 25, 2014
  28. Jun 23, 2014
    • Stephen Smalley's avatar
      Align SELinux property policy with init property_perms. · fee49159
      Stephen Smalley authored
      
      Introduce a net_radio_prop type for net. properties that can be
      set by radio or system.
      Introduce a system_radio_prop type for sys. properties that can be
      set by radio or system.
      Introduce a dhcp_prop type for properties that can be set by dhcp or system.
      Drop the rild_prop vs radio_prop distinction; this was an early
      experiment to see if we could separate properties settable by rild
      versus other radio UID processes but it did not pan out.
      
      Remove the ability to set properties from unconfineddomain.
      Allow init to set any property.  Allow recovery to set ctl_default_prop
      to restart adbd.
      
      Change-Id: I5ccafcb31ec4004dfefcec8718907f6b6f3e0dfd
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      fee49159
  29. Jun 19, 2014
  30. Jun 12, 2014
  31. May 30, 2014
    • Stephen Smalley's avatar
      Restrict /data/security and setprop selinux.reload_policy access. · 3235f61a
      Stephen Smalley authored
      
      Remove /data/security and setprop selinux.reload_policy access
      from unconfineddomain, and only add back what is needed to
      init (system_server already gets the required allow rules via
      the selinux_manage_policy macro).
      
      init (via init.rc post-fs-data) originally creates /data/security
      and may later restorecon it.  init also sets the property (also from
      init.rc post-fs-data) to trigger a reload once /data is mounted.
      The system_server (SELinuxPolicyInstallReceiver in particular) creates
      subdirectories under /data/security for updates, writes files to these
      subdirectories, creates the /data/security/current symlink to the update
      directory, and sets the property to trigger a reload when an update bundle
      is received.
      
      Add neverallow rules to ensure that we do not allow undesired access
      to security_file or security_prop.
      
      This is only truly meaningful if the support for /data/security policies
      is restored, but is harmless otherwise.
      
      Also drop the persist.mmac property_contexts entry; it was never used in
      AOSP, only in our tree (for middleware MAC) and is obsolete.
      
      Change-Id: I5ad5e3b6fc7abaafd314d31723f37b708d8fcf89
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      3235f61a
  32. May 29, 2014
    • Stephen Smalley's avatar
      Label ril.cdma with radio_prop. · 3a099879
      Stephen Smalley authored
      
      Resolves denials such as:
      avc:  denied  { set } for property=ril.cdma.inecmmode scontext=u:r:radio:s0 tcontext=u:object_r:rild_prop:s0 tclass=property_service
      
      This makes ril.cdma consistent with net.cdma.
      
      We may ultimately need to coalesce rild_prop and radio_prop; they
      were an attempt to distinguish what can be set by rild from what can be
      set by com.android.phone, but the init property service DAC checking
      permits any of them to be set by anything with the radio AID.  We
      presently allow rild to set either type, but radio can only set radio_prop.
      
      Change-Id: Ia3852db187e52427e18075e24b2beab19dd59c1f
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      3a099879
Loading