Skip to content
Snippets Groups Projects
  1. Dec 10, 2015
    • Nick Kralevich's avatar
      su.te: dontaudit su property_type:file · 1638208f
      Nick Kralevich authored
      The "su" domain is in globally permissive mode on userdebug/eng
      builds. No SELinux denials are suppose to be generated when running
      under "su".
      
      Get rid of useless SELinux denials coming from su trying to stat
      files in /dev/__properties__. For example: "ls -la /dev/__properties__"
      as root.
      
      Addresses the following denials:
      
        avc: denied { getattr } for pid=14692 comm="ls" path="/dev/__properties__/u:object_r:wc_transport_prop:s0" dev="tmpfs" ino=10597 scontext=u:r:su:s0 tcontext=u:object_r:wc_transport_prop:s0 tclass=file permissive=1
        avc: denied { getattr } for pid=14692 comm="ls" path="/dev/__properties__/u:object_r:qseecomtee_prop:s0" dev="tmpfs" ino=10596 scontext=u:r:su:s0 tcontext=u:object_r:qseecomtee_prop:s0 tclass=file permissive=1
        avc: denied { getattr } for pid=14692 comm="ls" path="/dev/__properties__/u:object_r:radio_atfwd_prop:s0" dev="tmpfs" ino=10595 scontext=u:r:su:s0 tcontext=u:object_r:radio_atfwd_prop:s0 tclass=file permissive=1
        avc: denied { getattr } for pid=14692 comm="ls" path="/dev/__properties__/u:object_r:qcom_ims_prop:s0" dev="tmpfs" ino=10594 scontext=u:r:su:s0 tcontext=u:object_r:qcom_ims_prop:s0 tclass=file permissive=1
        avc: denied { getattr } for pid=14692 comm="ls" path="/dev/__properties__/u:object_r:contexthub_prop:s0" dev="tmpfs" ino=10593 scontext=u:r:su:s0 tcontext=u:object_r:contexthub_prop:s0 tclass=file permissive=1
      
      Change-Id: Ief051a107f48c3ba596a31d01cd90fb0f3442a69
      1638208f
  2. Nov 03, 2015
    • Jeff Vander Stoep's avatar
      Create attribute for moving perms out of domain · d22987b4
      Jeff Vander Stoep authored
      Motivation: Domain is overly permissive. Start removing permissions
      from domain and assign them to the domain_deprecated attribute.
      Domain_deprecated and domain can initially be assigned to all
      domains. The goal is to not assign domain_deprecated to new domains
      and to start removing domain_deprecated where it is not required or
      reassigning the appropriate permissions to the inheriting domain
      when necessary.
      
      Bug: 25433265
      Change-Id: I8b11cb137df7bdd382629c98d916a73fe276413c
      d22987b4
  3. Aug 25, 2015
  4. Jun 08, 2015
    • dcashman's avatar
      Remove service_manager_local_audit_domain. · 4b4b2b92
      dcashman authored
      service_manager_local_audit_domain was used to fine tune the service_manager
      auditallow rules when introducing the service_manager SELinux rules.  This is no
      longer needed.
      
      (cherry-pick of commit: eab26faa)
      
      Bug: 21656807
      Change-Id: Ia042a887e7bf9eb2a2b08b8d831e68dfe6395f75
      4b4b2b92
    • dcashman's avatar
      Remove service_manager_local_audit_domain. · eab26faa
      dcashman authored
      service_manager_local_audit_domain was used to fine tune the service_manager
      auditallow rules when introducing the service_manager SELinux rules.  This is no
      longer needed.
      
      Bug: 21656807
      Change-Id: Ia042a887e7bf9eb2a2b08b8d831e68dfe6395f75
      eab26faa
  5. Apr 16, 2015
    • Nick Kralevich's avatar
      su.te: add filesystem dontaudit rule · 85416e06
      Nick Kralevich authored
      Addresses su denials which occur when mounting filesystems not
      defined by policy.
      
      Addresses denials similar to:
      
        avc: denied { mount } for pid=12361 comm="mount" name="/" dev="binfmt_misc" ino=1 scontext=u:r:su:s0 tcontext=u:object_r:unlabeled:s0 tclass=filesystem permissive=1
      
      Change-Id: Ifa0d7c781152f9ebdda9534ac3a04da151f8d78e
      85416e06
  6. Feb 25, 2015
    • Nick Kralevich's avatar
      su: don't auditallow service_manager for su · 28ddd104
      Nick Kralevich authored
      Addresses the following auditallow messages:
      
        avc: granted { find } for service=accessibility scontext=u:r:su:s0 tcontext=u:object_r:accessibility_service:s0 tclass=service_manager
        avc: granted { find } for service=activity scontext=u:r:su:s0 tcontext=u:object_r:activity_service:s0 tclass=service_manager
        avc: granted { find } for service=package scontext=u:r:su:s0 tcontext=u:object_r:package_service:s0 tclass=service_manager
        avc: granted { find } for service=user scontext=u:r:su:s0 tcontext=u:object_r:user_service:s0 tclass=service_manager
        avc: granted { find } for service=window scontext=u:r:su:s0 tcontext=u:object_r:window_service:s0 tclass=service_manager
      
      Change-Id: Ie58ad3347e9ef1aacd39670cfec7d095875e237b
      28ddd104
  7. Feb 04, 2015
    • Christopher Ferris's avatar
      Dumpstate runs the same from shell as service. · 5ec38c49
      Christopher Ferris authored
      Without this change, any selinux warning you might get when running
      dumpstate from init do not show up when running from the shell
      as root. This change makes them run the same.
      
      Change-Id: I6b74e0f6f48f47952a2dbe7728b1853008f60dbb
      5ec38c49
  8. Jan 06, 2015
    • Nick Kralevich's avatar
      su.te: suppress service_manager related denials. · bf254b46
      Nick Kralevich authored
      The su domain is always permissive, and will always be permissive.
      It never makes sense to show su related denials, as they just cause
      a false sense of alarm.
      
      Suppress service_manager related denials. For example:
      
        SELinux : avc:  denied  { find } for service=SurfaceFlinger scontext=u:r:su:s0 tcontext=u:object_r:surfaceflinger_service:s0 tclass=service_manager
        SELinux : avc:  denied  { find } for service=activity scontext=u:r:su:s0 tcontext=u:object_r:system_server_service:s0 tclass=service_manager
      
      While I'm here, suppress other recent additionsl to security_classes as
      well (keystore_key, debuggerd, drmservice)
      
      Change-Id: I844ad8da5ada09775646b5f32c9405e7b73797f9
      bf254b46
  9. Sep 23, 2014
    • Nick Kralevich's avatar
      make su an mlstrustedsubject · b54f92bb
      Nick Kralevich authored
      Otherwise the following denial occurs when I3972f846ff5e7363799ba521f1258d662b18d64e
      is present and "adb root" is run.
      
        <6>[   64.507223] type=1400 audit(1411432079.100:471): avc: denied { connectto } for pid=717 comm="JDWP" path=006A6477702D636F6E74726F6C scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:r:su:s0 tclass=unix_stream_socket permissive=1
        <6>[   64.507617] type=1400 audit(1411432079.100:472): avc: denied { connectto } for pid=1659 comm="JDWP" path=006A6477702D636F6E74726F6C scontext=u:r:platform_app:s0:c512,c768 tcontext=u:r:su:s0 tclass=unix_stream_socket permissive=1
      
      Change-Id: I1772912b2ca1446b822303ad6ea3154427f8331f
      b54f92bb
  10. Jul 15, 2014
    • Nick Kralevich's avatar
      Tweak rules for su domain. · caf347b5
      Nick Kralevich authored
      1) Remove explicit allow statements. Since su is in permmissive,
      there's no need to ever specify allow statements for su.
      
      2) Remove unconfined_domain(su). Su is already permissive, so there's
      no need to join the unconfined domain, and it just makes getting
      rid of unconfined more difficult.
      
      3) Put su into app_domain(). This addresses, in a roundabout sorta
      way, the following denial:
      
        type=1400 audit(0.0:4): avc: denied { setsched } for scontext=u:r:system_server:s0 tcontext=u:r:su:s0 tclass=process permissive=0
      
      which comes up while testing media processes as root. We already put
      the shell user into this domain, so adding su to this domain ensures
      other processes can communicate consistently with su spawned processes.
      
      Bug: 16261280
      Bug: 16298582
      
      (cherry picked from commit 213bb45b)
      
      Change-Id: If9c3483184ecdf871efee394c0b696e30f61d15d
      caf347b5
  11. Jul 14, 2014
    • Nick Kralevich's avatar
      Tweak rules for su domain. · 213bb45b
      Nick Kralevich authored
      1) Remove explicit allow statements. Since su is in permmissive,
      there's no need to ever specify allow statements for su.
      
      2) Remove unconfined_domain(su). Su is already permissive, so there's
      no need to join the unconfined domain, and it just makes getting
      rid of unconfined more difficult.
      
      3) Put su into app_domain(). This addresses, in a roundabout sorta
      way, the following denial:
      
        type=1400 audit(0.0:4): avc: denied { setsched } for scontext=u:r:system_server:s0 tcontext=u:r:su:s0 tclass=process permissive=0
      
      which comes up while testing media processes as root. We already put
      the shell user into this domain, so adding su to this domain ensures
      other processes can communicate consistently with su spawned processes.
      
      Bug: 16261280
      Bug: 16298582
      Change-Id: I30b6d3cc186bda737a23c25f4fa2a577c2afd4d7
      213bb45b
  12. Jun 03, 2014
    • Nick Kralevich's avatar
      eliminate duplicate line · fad6759d
      Nick Kralevich authored
      Somehow net_domain(su) showed up twice in internal master.
      Delete the duplicate line.
      
      Change-Id: I15c102850946c30c2322d6d4edcf59407d430531
      fad6759d
  13. May 27, 2014
    • Nick Kralevich's avatar
      dontaudit su · af7deffb
      Nick Kralevich authored
      Denials generated from the su domain aren't meaningful security
      warnings, and just serve to confuse people. Don't log them.
      
      Change-Id: Id38314d4e7b45062c29bed63df4e50e05e4b131e
      af7deffb
  14. May 14, 2014
  15. May 02, 2014
  16. Mar 18, 2014
    • Nick Kralevich's avatar
      debuggerd: Allow "debug.db.uid" usage · 77aa370c
      Nick Kralevich authored
      Allow the use of debug.db.uid on userdebug / eng builds.
      Setting this property allows debuggerd to suspend a process
      if it detects a crash.
      
      Make debug.db.uid only accessible to the su domain. This should
      not be used on a user build.
      
      Only support reading user input on userdebug / eng builds.
      
      Steps to reproduce with the "crasher" program:
      
        adb root
        adb shell setprop debug.db.uid 20000
        mmm system/core/debuggerd
        adb sync
        adb shell crasher
      
      Addresses the following denials:
      
      <5>[  580.637442] type=1400 audit(1392412124.612:149): avc:  denied  { read } for  pid=182 comm="debuggerd" name="input" dev="tmpfs" ino=5665 scontext=u:r:debuggerd:s0 tcontext=u:object_r:input_device:s0 tclass=dir
      <5>[  580.637589] type=1400 audit(1392412124.612:150): avc:  denied  { open } for  pid=182 comm="debuggerd" name="input" dev="tmpfs" ino=5665 scontext=u:r:debuggerd:s0 tcontext=u:object_r:input_device:s0 tclass=dir
      <5>[  580.637706] type=1400 audit(1392412124.612:151): avc:  denied  { read write } for  pid=182 comm="debuggerd" name="event5" dev="tmpfs" ino=6723 scontext=u:r:debuggerd:s0 tcontext=u:object_r:input_device:s0 tclass=chr_file
      <5>[  580.637823] type=1400 audit(1392412124.612:152): avc:  denied  { open } for  pid=182 comm="debuggerd" name="event5" dev="tmpfs" ino=6723 scontext=u:r:debuggerd:s0 tcontext=u:object_r:input_device:s0 tclass=chr_file
      <5>[  580.637958] type=1400 audit(1392412124.612:153): avc:  denied  { ioctl } for  pid=182 comm="debuggerd" path="/dev/input/event5" dev="tmpfs" ino=6723 scontext=u:r:debuggerd:s0 tcontext=u:object_r:input_device:s0 tclass=chr_file
      
      Bug: 12532622
      Change-Id: I63486edb73efb1ca12e9eb1994ac9e389251a3f1
      
      Conflicts:
      	debuggerd.te
      77aa370c
  17. Feb 21, 2014
    • Stephen Smalley's avatar
      Clarify init_shell, shell, and su domain usage. · b3cb9695
      Stephen Smalley authored
      
      init_shell domain is now only used for shell commands or scripts
      invoked by init*.rc files, never for an interactive shell.  It
      was being used for console service for a while but console service
      is now assigned shell domain via seclabel in init.rc.  We may want
      to reconsider the shelldomain rules for init_shell and whether they
      are still appropriate.
      
      shell domain is now used by both adb shell and console service, both
      of which also run in the shell UID.
      
      su domain is now used not only for /system/bin/su but also for
      adbd and its descendants after an adb root is performed.
      
      Change-Id: I502ab98aafab7dafb8920ccaa25e8fde14a8f572
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      b3cb9695
  18. Feb 18, 2014
    • Nick Kralevich's avatar
      debuggerd: Allow "debug.db.uid" usage · 116a20fd
      Nick Kralevich authored
      Allow the use of debug.db.uid on userdebug / eng builds.
      Setting this property allows debuggerd to suspend a process
      if it detects a crash.
      
      Make debug.db.uid only accessible to the su domain. This should
      not be used on a user build.
      
      Only support reading user input on userdebug / eng builds.
      
      Steps to reproduce with the "crasher" program:
      
        adb root
        adb shell setprop debug.db.uid 20000
        mmm system/core/debuggerd
        adb sync
        adb shell crasher
      
      Addresses the following denials:
      
      <5>[  580.637442] type=1400 audit(1392412124.612:149): avc:  denied  { read } for  pid=182 comm="debuggerd" name="input" dev="tmpfs" ino=5665 scontext=u:r:debuggerd:s0 tcontext=u:object_r:input_device:s0 tclass=dir
      <5>[  580.637589] type=1400 audit(1392412124.612:150): avc:  denied  { open } for  pid=182 comm="debuggerd" name="input" dev="tmpfs" ino=5665 scontext=u:r:debuggerd:s0 tcontext=u:object_r:input_device:s0 tclass=dir
      <5>[  580.637706] type=1400 audit(1392412124.612:151): avc:  denied  { read write } for  pid=182 comm="debuggerd" name="event5" dev="tmpfs" ino=6723 scontext=u:r:debuggerd:s0 tcontext=u:object_r:input_device:s0 tclass=chr_file
      <5>[  580.637823] type=1400 audit(1392412124.612:152): avc:  denied  { open } for  pid=182 comm="debuggerd" name="event5" dev="tmpfs" ino=6723 scontext=u:r:debuggerd:s0 tcontext=u:object_r:input_device:s0 tclass=chr_file
      <5>[  580.637958] type=1400 audit(1392412124.612:153): avc:  denied  { ioctl } for  pid=182 comm="debuggerd" path="/dev/input/event5" dev="tmpfs" ino=6723 scontext=u:r:debuggerd:s0 tcontext=u:object_r:input_device:s0 tclass=chr_file
      
      Bug: 12532622
      Change-Id: I63486edb73efb1ca12e9eb1994ac9e389251a3f1
      116a20fd
  19. Jan 23, 2014
    • Nick Kralevich's avatar
      Support running adbd in the su domain. · 7d0f955e
      Nick Kralevich authored
      When adbd runs as root, it transitions into the
      su domain. Add the various rules to support this.
      
      This is needed to run the adbd and shell domains in
      enforcing on userdebug / eng devices without breaking
      developer workflows.
      
      Change-Id: Ib33c0dd2dd6172035230514ac84fcaed2ecf44d6
      7d0f955e
  20. Jan 09, 2014
    • Nick Kralevich's avatar
      Create new conditional userdebug_or_eng · 88ce951d
      Nick Kralevich authored
      Create a new m4 macro called userdebug_or_eng. Arguments
      passed to this macro are only emitted if we're performing
      a userdebug or eng build.
      
      Merge shell.te and shell_user.te and eliminate duplicate
      lines. Same for su.te and su_user.te
      
      Change-Id: I8fbabca65ec392aeafd5b90cef57b5066033fad0
      88ce951d
  21. Dec 16, 2013
    • Nick Kralevich's avatar
      initial dumpstate domain · 09e6abd9
      Nick Kralevich authored
      Add the necessary rules to support dumpstate.
      Start off initially in permissive until it has more testing.
      
      Dumpstate is triggered by running "adb bugreport"
      
      Change-Id: Ic17a60cca1f6f40daa4f2c51e9ad6009ef36cfbd
      09e6abd9
  22. Dec 02, 2013
  23. Oct 21, 2013
    • Nick Kralevich's avatar
      Move unconfined domains out of permissive mode. · 353c72e3
      Nick Kralevich authored
      This change removes the permissive line from unconfined
      domains. Unconfined domains can do (mostly) anything, so moving
      these domains into enforcing should be a no-op.
      
      The following domains were deliberately NOT changed:
      1) kernel
      2) init
      
      In the future, this gives us the ability to tighten up the
      rules in unconfined, and have those tightened rules actually
      work.
      
      When we're ready to tighten up the rules for these domains,
      we can:
      
      1) Remove unconfined_domain and re-add the permissive line.
      2) Submit the domain in permissive but NOT unconfined.
      3) Remove the permissive line
      4) Wait a few days and submit the no-permissive change.
      
      For instance, if we were ready to do this for adb, we'd identify
      a list of possible rules which allow adbd to work, re-add
      the permissive line, and then upload those changes to AOSP.
      After sufficient testing, we'd then move adb to enforcing.
      We'd repeat this for each domain until everything is enforcing
      and out of unconfined.
      
      Change-Id: If674190de3262969322fb2e93d9a0e734f8b9245
      353c72e3
  24. Sep 27, 2013
  25. May 15, 2013
  26. Nov 01, 2012
  27. Jul 18, 2012
  28. Jan 04, 2012
Loading