Skip to content
Snippets Groups Projects
  1. Mar 04, 2014
    • Stephen Smalley's avatar
      Allow getopt / getattr to bluetooth unix_stream_socket. · 495e9d12
      Stephen Smalley authored
      
      Resolve denials such as:
      
      avc:  denied  { getattr } for  pid=16226 comm="Thread-2096" path="socket:[414657]" dev="sockfs" ino=414657 scontext=u:r:untrusted_app:s0 tcontext=u:r:bluetooth:s0 tclass=unix_stream_socket
      
      avc:  denied  { getopt } for  pid=5890 comm="FinalizerDaemon" scontext=u:r:untrusted_app:s0 tcontext=u:r:bluetooth:s0 tclass=unix_stream_socket
      
      Change-Id: Iea7790aa4f8e24f3ec0d2c029933a3902333472e
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      495e9d12
  2. Feb 25, 2014
    • Stephen Smalley's avatar
      Clean up socket rules. · 16011320
      Stephen Smalley authored
      
      Replace * or any permission set containing create with
      create_socket_perms or create_stream_socket_perms.
      
      Add net_domain() to all domains using network sockets and
      delete rules already covered by domain.te or net.te.
      
      For netlink_route_socket, only nlmsg_write needs to be separately
      granted to specific domains that are permitted to modify the routing
      table.   Clarification:  read/write permissions are just ability to
      perform read/recv() or write/send() on the socket, whereas nlmsg_read/
      nlmsg_write permissions control ability to observe or modify the
      underlying kernel state accessed via the socket.
      See security/selinux/nlmsgtab.c in the kernel for the mapping of
      netlink message types to nlmsg_read or nlmsg_write.
      
      Delete legacy rule for b/12061011.
      
      This change does not touch any rules where only read/write were allowed
      to a socket created by another domain (inherited across exec or
      received across socket or binder IPC).  We may wish to rewrite some or all
      of those rules with the rw_socket_perms macro but that is a separate
      change.
      
      Change-Id: Ib0637ab86f6d388043eff928e5d96beb02e5450e
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      16011320
    • Stephen Smalley's avatar
      Resolve overlapping rules between app.te and net.te. · 85708ec4
      Stephen Smalley authored
      
      There is some overlap between socket rules in app.te and the net.te rules,
      but they aren't quite identical since not all app domains presently include
      the net_domain() macro and because the rules in app.te allow more permissions
      for netlink_route_socket and allow rawip_socket permissions for ping.
      The current app.te rules prevent one from ever creating a non-networked app
      domain.  Resolve this overlap by:
      
      1) Adding the missing permissions allowed by app.te to net.te for
      netlink_route_socket and rawip_socket.
      2) Adding net_domain() calls to all existing app domains that do not already
      have it.
      3) Deleting the redundant socket rules from app.te.
      
      Then we'll have no effective change in what is allowed for apps but
      allow one to define app domains in the future that are not allowed
      network access.
      
      Also cleanup net.te to use the create_socket_perms macro rather than *
      and add macros for stream socket permissions.
      
      Change-Id: I6e80d65b0ccbd48bd2b7272c083a4473e2b588a9
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      85708ec4
  3. Jan 29, 2014
    • Nick Kralevich's avatar
      bluetooth: allow media_rw_data_file · 997680a3
      Nick Kralevich authored
      Allow bluetooth to handle media_rw_data_file file descriptors
      sent to it from other processes. Without this, bluetooth
      picture / video sharing is broken.
      
      Steps to reproduce:
      1. Take few pictures
      2. launch gallery and choose a picture/video and click on share and choose
         available BT device and share
      
      Other info from bug report:
      
      - Bluetooth process queries media content provider for a file descriptor,
        with an Uri like "content://media/external/images/media/69"
      - Media server resolves the uri to a file on the filesystem, in the case of
        Gallery at "/storage/emulated/0/DCIM/Camera/IMG_20140128_141656.jpg"
      - Media server returns the FD over binder to bluetooth
      - Bluetooth is unable to read the file backed by the file descriptor.
      
      Fixes Denial:
      
      <5>[  821.040286] type=1400 audit(1390952161.805:11): avc:  denied  { read } for  pid=1348 comm="Binder_3" path="/data/media/0/DCIM/Camera/IMG_20140128_141656.jpg" dev="mmcblk0p23" ino=236246 scontext=u:r:bluetooth:s0 tcontext=u:object_r:media_rw_data_file:s0 tclass=file
      
      Bug: 12457805
      Change-Id: I1423d06a98416ae4ab19508f0d005a6353acadc4
      997680a3
  4. Jan 18, 2014
  5. Jan 16, 2014
    • Stephen Smalley's avatar
      Allow mediaserver to connect to bluetooth. · 09f6a99b
      Stephen Smalley authored
      
      Re-purpose the existing bluetooth_socket type, originally
      for /dev/socket/bluetooth used by bluetoothd in the old
      bluetooth stack, for sockets created by bluedroid under
      /data/misc/bluedroid, and allow mediaserver to connect
      to such sockets.  This is required for playing audio
      on paired BT devices.
      
      Based on b/12417855.
      
      Change-Id: I24ecdf407d066e7c4939ed2a0edb97222a1879f6
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      09f6a99b
  6. Jan 11, 2014
    • Nick Kralevich's avatar
      Support forcing permissive domains to unconfined. · 623975fa
      Nick Kralevich authored
      Permissive domains are only intended for development.
      When a device launches, we want to ensure that all
      permissive domains are in, at a minimum, unconfined+enforcing.
      
      Add FORCE_PERMISSIVE_TO_UNCONFINED to Android.mk. During
      development, this flag is false, and permissive domains
      are allowed. When SELinux new feature development has been
      frozen immediately before release, this flag will be flipped
      to true. Any previously permissive domains will move into
      unconfined+enforcing.
      
      This will ensure that all SELinux domains have at least a
      minimal level of protection.
      
      Unconditionally enable this flag for all user builds.
      
      Change-Id: I1632f0da0022c80170d8eb57c82499ac13fd7858
      623975fa
  7. Jan 10, 2014
    • Nick Kralevich's avatar
      Revert "Make bluetooth enforcing." · 85396e93
      Nick Kralevich authored
      The following CTS tests are failing on nakasig-userdebug
      
      Failing tests
      android.bluetooth.cts.BasicAdapterTest#test_enableDisable
      android.bluetooth.cts.BasicAdapterTest#test_getAddress
      android.bluetooth.cts.BasicAdapterTest#test_getBondedDevices
      android.bluetooth.cts.BasicAdapterTest#test_getName
      android.bluetooth.cts.BasicAdapterTest#test_listenUsingRfcommWithServiceRecord
      
      Logs
      =====
      junit.framework.AssertionFailedError: expected:<11> but was:<10>
      at android.bluetooth.cts.BasicAdapterTest.enable(BasicAdapterTest.java:278)
      at android.bluetooth.cts.BasicAdapterTest.test_enableDisable(BasicAdapterTest.java:128)
      at java.lang.reflect.Method.invokeNative(Native Method)
      at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
      at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
      at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)
      at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)
      
      Reverting this change until we get a proper fix in place.
      
      SELinux bluetooth denials:
      
      nnk@nnk:~$ grep "avc: " Redirecting.txt | grep bluetooth
      <5>[  831.249360] type=1400 audit(1389206307.416:215): avc:  denied  { write } for  pid=14216 comm="BluetoothAdapte" name="state" dev=sysfs ino=4279 scontext=u:r:bluetooth:s0 tcontext=u:object_r:sysfs:s0 tclass=file
      <5>[  834.329536] type=1400 audit(1389206310.496:217): avc:  denied  { write } for  pid=14218 comm="BTIF" name="state" dev=sysfs ino=4279 scontext=u:r:bluetooth:s0 tcontext=u:object_r:sysfs:s0 tclass=file
      
      This reverts commit 2eba9c5f.
      
      Bug: 12475767
      Change-Id: Id4989f6b371fa02986299114db70279e151ad64a
      85396e93
  8. Dec 06, 2013
  9. Oct 31, 2013
    • Stephen Smalley's avatar
      Change the type on /dev/uinput to match /dev/uhid. · b3c48b66
      Stephen Smalley authored
      
      /dev/uinput is accessed in the same way as /dev/uhid,
      and unlike /dev/input/*.  bluetooth requires access to
      the former and not to the latter, while shell requires access
      to the latter and not the former.  This is also consistent
      with their DAC group ownerships (net_bt_stack for /dev/uinput
      and /dev/uhid vs input for /dev/input/*).
      
      Change-Id: I0059d832a7fe036ed888c91e1fb96f3e6e0bd2d4
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      b3c48b66
  10. Oct 29, 2013
    • Nick Kralevich's avatar
      Allow bluetooth to write to bluetooth properties · 5b38c47b
      Nick Kralevich authored
      Some bluetooth implementations write to bluetooth.* properties.
      It seems reasonable to allow this for all bluetooth implementations.
      
      This addresses the following denial (seen on mako):
      
      <4>[  132.182755] avc:  denied  { set } for property=bluetooth.hciattach scontext=u:r:bluetooth:s0 tcontext=u:object_r:bluetooth_prop:s0 tclass=property_service
      
      Change-Id: I6d92c0ff108838dd1107c5fb3c436699ef824814
      5b38c47b
  11. Oct 22, 2013
    • Stephen Smalley's avatar
      Confine bluetooth app. · d7fd22e6
      Stephen Smalley authored
      
      Remove unconfined_domain() from the bluetooth app domain,
      restore the rules from our policy, and move the neverallow
      rule for bluetooth capabilities to bluetooth.te.
      Make the bluetooth domain permissive again until it has
      received sufficient testing.
      
      Change-Id: I3b3072d76e053eefd3d0e883a4fdb7c333bbfc09
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      d7fd22e6
  12. 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
  13. May 20, 2013
    • repo sync's avatar
      Make all domains unconfined. · 77d4731e
      repo sync authored
      This prevents denials from being generated by the base policy.
      Over time, these rules will be incrementally tightened to improve
      security.
      
      Change-Id: I4be1c987a5d69ac784a56d42fc2c9063c402de11
      77d4731e
  14. May 15, 2013
  15. May 06, 2013
  16. Mar 27, 2013
    • Robert Craig's avatar
      Various policy updates. · 65d4f44c
      Robert Craig authored
      
      Assortment of policy changes include:
       * Bluetooth domain to talk to init and procfs.
       * New device node domains.
       * Allow zygote to talk to its executable.
       * Update system domain access to new device node domains.
       * Create a post-process sepolicy with dontaudits removed.
       * Allow rild to use the tty device.
      
      Change-Id: Ibb96b590d0035b8f6d1606cd5e4393c174d10ffb
      Signed-off-by: default avatarrpcraig <rpcraig@tycho.ncsc.mil>
      65d4f44c
  17. Mar 22, 2013
  18. Mar 21, 2013
  19. Nov 19, 2012
    • Stephen Smalley's avatar
      Update policy for Android 4.2 / latest master. · 61c80d5e
      Stephen Smalley authored
      
      Update policy for Android 4.2 / latest master.
      Primarily this consists of changes around the bluetooth subsystem.
      The zygote also needs further permissions to set up /storage/emulated.
      adbd service now gets a socket under /dev/socket.
      keystore uses the binder.
      
      Change-Id: I8c5aeb8d100313c75169734a0fa614aa974b3bfc
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      61c80d5e
  20. Jan 04, 2012
Loading