Skip to content
Snippets Groups Projects
  1. Dec 07, 2016
  2. 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
  3. Nov 20, 2016
    • Daniel Micay's avatar
      only permit text relocations in untrusted_app · dc083f59
      Daniel Micay authored
      The other domains either don't have the same backwards compatibility
      issues (isolated_app) or are privileged components that are pretty much
      part of the platform and can be expected to meet a higher standard.
      
      It would be possible to expose a build option for disabling the ART JIT,
      allowing conditional removal of execmem from some of these domains too
      (ones not ever using the WebView, until that's always in isolated_app).
      
      Bug: 20013628
      Change-Id: Ic22513157fc8b958b2a3d60381be0c07b5252fa5
      dc083f59
  4. Nov 16, 2016
    • Nick Kralevich's avatar
      shell.te: revoke syslog(2) access to shell user · c9630dc6
      Nick Kralevich authored
      external/toybox commit a583afc812cf7be74ebab72294c8df485908ff04 started
      having dmesg use /dev/kmsg, which is unreadable to the unprivileged
      shell user. Revoke syslog(2) to the shell user for consistency.
      
      The kernel dmesg log is a source of kernel pointers, which can leak
      kASLR information from the kernel. Restricting access to kernel
      information will make attacks against Android more difficult. Having
      said that, dmesg information is still available from "adb bugreport", so
      this change doesn't completely shutdown kernel info leaks.
      
      This change essentially reverts us to the state we were in between Nov 8
      2011 and May 27 2014. During that almost 3 year period, the unprivileged
      shell user was unable to access dmesg, and there was only one complaint
      during that time.
      
      References:
      * https://android.googlesource.com/platform/system/core/+/f9557fb
      * https://android.googlesource.com/platform/system/sepolicy/+/f821b5a
      
      TODO: Further unify /dev/kmsg permissions with syslog_read permissions.
      
      Test: policy compiles, no dmesg output
      Change-Id: Icfff6f765055bdbbe85f302b781aed2568ef532f
      c9630dc6
  5. Nov 15, 2016
    • Nick Kralevich's avatar
      exclude su from app auditallow · e0d5c532
      Nick Kralevich authored
      su is an appdomain, and as such, any auditallow statements applicable to
      appdomain also apply to su. However, su is never enforced, so generating
      SELinux denials for such domains is pointless. Exclude su from
      ion_device auditallow rules.
      
      Addresses the following auditallow spam:
      
        avc: granted { ioctl } for comm="screencap" path="/dev/ion" dev="tmpfs"
        ino=10230 ioctlcmd=4906 scontext=u:r:su:s0
        tcontext=u:object_r:ion_device:s0 tclass=chr_file
      
      Test: policy compiles
      Change-Id: I2e783624b9e53ad365669bd6f2d4db40da475a16
      e0d5c532
    • Daichi Hirono's avatar
      Allow apps to search appfuse mount point and open a file on appfuse mount point. · 4c7044e0
      Daichi Hirono authored
      Bug: 29970149
      Test: None
      Change-Id: I59f49f3bf20d93effde5e1a9a3c1ed64fbecb7a8
      4c7044e0
  6. Nov 14, 2016
    • Chia-I Wu's avatar
      Add sepolicy for gralloc-alloc HAL · dd958e5a
      Chia-I Wu authored
      Allow SurfaceFlinger to call into IAllocator, and allow everyone to access
      IAllocator's fd.
      
      Specifically,
      
      hwbinder_use(...) for
      avc: denied { call } for scontext=u:r:hal_graphics_allocator:s0 tcontext=u:r:hwservicemanager:s0 tclass=binder permissive=1
      avc: denied { transfer } for scontext=u:r:hal_graphics_allocator:s0 tcontext=u:r:hwservicemanager:s0 tclass=binder permissive=1
      
      allow ... ion_device:chr_file r_file_perms for
      avc: denied { read } for name="ion" dev="tmpfs" ino=15014 scontext=u:r:hal_graphics_allocator:s0 tcontext=u:object_r:ion_device:s0 tclass=chr_file permissive=1
      avc: denied { open } for path="/dev/ion" dev="tmpfs" ino=15014 scontext=u:r:hal_graphics_allocator:s0 tcontext=u:object_r:ion_device:s0 tclass=chr_file permissive=1
      avc: denied { ioctl } for path="/dev/ion" dev="tmpfs" ino=15014 ioctlcmd=4900 scontext=u:r:hal_graphics_allocator:s0 tcontext=u:object_r:ion_device:s0 tclass=chr_file permissive=1
      
      allow ... gpu_device:chr_file rw_file_perms; for
      avc: denied { read write } for name="kgsl-3d0" dev="tmpfs" ino=14956 scontext=u:r:hal_graphics_allocator:s0 tcontext=u:object_r:gpu_device:s0 tclass=chr_file permissive=1
      avc: denied { open } for path="/dev/kgsl-3d0" dev="tmpfs" ino=14956 scontext=u:r:hal_graphics_allocator:s0 tcontext=u:object_r:gpu_device:s0 tclass=chr_file permissive=1
      avc: denied { ioctl } for path="/dev/kgsl-3d0" dev="tmpfs" ino=14956 ioctlcmd=940 scontext=u:r:hal_graphics_allocator:s0 tcontext=u:object_r:gpu_device:s0 tclass=chr_file permissive=1
      
      binder_call(surfaceflinger, ...) for
      avc: denied { call } for scontext=u:r:surfaceflinger:s0 tcontext=u:r:hal_graphics_allocator:s0 tclass=binder permissive=1
      
      allow ... ...:fd use for
      avc: denied { use } for path="anon_inode:dmabuf" dev="anon_inodefs" ino=12794 scontext=u:r:surfaceflinger:s0 tcontext=u:r:hal_graphics_allocator:s0 tclass=fd permissive=1
      
      Bug: 32021161
      Test: make bootimage
      Change-Id: Ie7700142313407ac438c43dd1a85544dc4c67f13
      dd958e5a
  7. Oct 21, 2016
    • Jeff Vander Stoep's avatar
      isolated_app: no sdcard access · ce4b5eea
      Jeff Vander Stoep authored
      Remove and neverallow isolated_app access to external storage and
      USB accessories.
      
      Test: aosp_angler-userdebug builds
      Bug: 21643067
      Change-Id: Ie912706a954a38610f2afd742b1ab4b8cd4b1f36
      ce4b5eea
  8. Oct 06, 2016
    • dcashman's avatar
      Split general policy into public and private components. · cc39f637
      dcashman authored
      Divide policy into public and private components.  This is the first
      step in splitting the policy creation for platform and non-platform
      policies.  The policy in the public directory will be exported for use
      in non-platform policy creation.  Backwards compatibility with it will
      be achieved by converting the exported policy into attribute-based
      policy when included as part of the non-platform policy and a mapping
      file will be maintained to be included with the platform policy that
      maps exported attributes of previous versions to the current platform
      version.
      
      Eventually we would like to create a clear interface between the
      platform and non-platform device components so that the exported policy,
      and the need for attributes is minimal.  For now, almost all types and
      avrules are left in public.
      
      Test: Tested by building policy and running on device.
      
      Change-Id: Idef796c9ec169259787c3f9d8f423edf4ce27f8c
      cc39f637
  9. Oct 03, 2016
    • Jeff Vander Stoep's avatar
      app: audit usage of ion ioctls · 96a85d12
      Jeff Vander Stoep authored
      Test: builds and boots on Bullhead with no selinux audit messages.
      
      Bug: 29795149
      Bug: 30400942
      Change-Id: I93295424a03488234b233d5e2f86d3bf329e53fd
      96a85d12
  10. Sep 27, 2016
    • Jeff Vander Stoep's avatar
      Audit access to libart · 88cef4df
      Jeff Vander Stoep authored
      Grant access to all processes and audit access. The end goal is to
      whitelist all access to the interpreter. Several processes including
      dex2oat, apps, and zygote were observed using libart, so omit them
      from auditing and explicitly grant them access.
      
      Test: Angler builds and boots
      
      Bug: 29795519
      Change-Id: I9b93c7dbef5c49b95a18fd26307955d05a1c8e88
      88cef4df
  11. Sep 12, 2016
    • Nick Kralevich's avatar
      Remove platform_app from neverallow execute from /data · c255e377
      Nick Kralevich authored
      Apparently some manufacturers sign APKs with the platform key
      which use renderscript. Renderscript works by compiling the
      .so file, and placing it in the app's home directory, where the
      app loads the content.
      
      Drop platform_app from the neverallow restriction to allow partners
      to add rules allowing /data execute for this class of apps.
      
      We should revisit this in the future after we have a better
      solution for apps which use renderscript.
      
      (cherry picked from commit c55cf17a)
      
      Bug: 29857189
      Change-Id: I058a802ad5eb2a67e657b6d759a3ef4e21cbb8cc
      c255e377
    • Eino-Ville Talvala's avatar
      Rework neverallow for /data execute permission · 6bb6c16e
      Eino-Ville Talvala authored
      Previously appdomains allowed to execute off of /data
      where whitelisted. This had the unfortunate side effect of
      disallowing the creation of device specific app domains
      with fewer permissions than untrusted_app. Instead grant
      all apps a neverallow exemption and blacklist specific app
      domains that should still abide by the restriction.
      
      This allows devices to add new app domains that need
      /data execute permission without conflicting with this rule.
      
      Bug: 26906711
      
      (cherry picked from commit c5266df9)
      
      Change-Id: I4adb58e8c8b35122d6295db58cedaa355cdd3924
      6bb6c16e
  12. Sep 10, 2016
  13. Aug 29, 2016
  14. Aug 24, 2016
  15. Aug 22, 2016
    • Nick Kralevich's avatar
      Remove platform_app from neverallow execute from /data · c55cf17a
      Nick Kralevich authored
      Apparently some manufacturers sign APKs with the platform key
      which use renderscript. Renderscript works by compiling the
      .so file, and placing it in the app's home directory, where the
      app loads the content.
      
      Drop platform_app from the neverallow restriction to allow partners
      to add rules allowing /data execute for this class of apps.
      
      We should revisit this in the future after we have a better
      solution for apps which use renderscript.
      
      Bug: 29857189
      Change-Id: I058a802ad5eb2a67e657b6d759a3ef4e21cbb8cc
      c55cf17a
    • Eino-Ville Talvala's avatar
      Rework neverallow for /data execute permission · eedacf83
      Eino-Ville Talvala authored
      Previously appdomains allowed to execute off of /data
      where whitelisted. This had the unfortunate side effect of
      disallowing the creation of device specific app domains
      with fewer permissions than untrusted_app. Instead grant
      all apps a neverallow exemption and blacklist specific app
      domains that should still abide by the restriction.
      
      This allows devices to add new app domains that need
      /data execute permission without conflicting with this rule.
      
      Bug: 26906711
      
      (cherry picked from commit c5266df9)
      
      Change-Id: I4adb58e8c8b35122d6295db58cedaa355cdd3924
      eedacf83
  16. Jul 26, 2016
  17. Jul 22, 2016
  18. Jun 24, 2016
    • Eino-Ville Talvala's avatar
      Rework neverallow for /data execute permission · c5266df9
      Eino-Ville Talvala authored
      Previously appdomains allowed to execute off of /data
      where whitelisted. This had the unfortunate side effect of
      disallowing the creation of device specific app domains
      with fewer permissions than untrusted_app. Instead grant
      all apps a neverallow exemption and blacklist specific app
      domains that should still abide by the restriction.
      
      This allows devices to add new app domains that need
      /data execute permission without conflicting with this rule.
      
      Bug: 26906711
      Change-Id: Ia876cc1dfd5b12908c59bd9e8620a6b890729c28
      c5266df9
  19. May 12, 2016
    • Jeff Vander Stoep's avatar
      move gpsd domain to device specific policy · 3ba2d466
      Jeff Vander Stoep authored
      Only used by Flounder.
      
      Bug: 8435593
      Change-Id: I06655e897ab68a1724190950e128cd390617f2bd
      3ba2d466
    • Jeff Vander Stoep's avatar
      Remove domain_deprecated from isolated_app · 0b430aba
      Jeff Vander Stoep authored
      Address denials:
      avc: denied { read } for name="meminfo" dev="proc" ino=4026544360 scontext=u:r:isolated_app:s0:c512,c768 tcontext=u:object_r:proc_meminfo:s0 tclass=file permissive=0
      
      Bug: 28722489
      Change-Id: I3c55bd95bb82ec54e88e9e9bc42d6392a216a936
      0b430aba
    • Jeff Vander Stoep's avatar
      Re-introduce camera_device type · 68339ac3
      Jeff Vander Stoep authored
      (cherry-picked from commit cc8a09f5)
      
      camera_device was previously removed in AOSP commit: b7aace2d
      "camera_device: remove type and add typealias" because the
      same domains required access to both without exception, meaning
      there was no benefit to distinguishing between the two. However,
      with the split up of mediaserver this is no longer the case and
      distinguishing between the camera and video  provides a legitimate
      security benefit. For example, the mediacodec domain requires access
      to the video_device for access to hardware accelerated codecs but does
      not require access to the camera.
      
      Bug: 28359909
      Change-Id: I8a4592722d8e6391c0e91b440914284b7245e232
      68339ac3
  20. May 10, 2016
  21. Apr 24, 2016
    • Jeff Vander Stoep's avatar
      Re-introduce camera_device type · cc8a09f5
      Jeff Vander Stoep authored
      camera_device was previously removed in AOSP commit: b7aace2d
      "camera_device: remove type and add typealias" because the
      same domains required access to both without exception, meaning
      there was no benefit to distinguishing between the two. However,
      with the split up of mediaserver this is no longer the case and
      distinguishing between the camera and video  provides a legitimate
      security benefit. For example, the mediacodec domain requires access
      to the video_device for access to hardware accelerated codecs but does
      not require access to the camera.
      
      Bug: 28359909
      Change-Id: I8a4592722d8e6391c0e91b440914284b7245e232
      cc8a09f5
  22. Apr 23, 2016
  23. Apr 13, 2016
    • Nick Kralevich's avatar
      Restore /mnt/sdcard symlink read access · e3151bd1
      Nick Kralevich authored
      Allow adbd and app domains to read the symlink at /mnt/sdcard.
      This symlink was suppose to have been removed in the Gingerbread
      time frame, but lives on.
      
      Read access for this symlink was removed from adbd and the shell user in
      8ca19368, and from untrusted_app in
      cbf7ba18.
      
      Addresses the following denials:
      
        avc: denied { read } for name="sdcard" dev="tmpfs" ino=9486 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:tmpfs:s0 tclass=lnk_file permissive=0
        avc: denied { read } for pid=4161 comm=73657276696365203137 name="sdcard" dev="tmpfs" ino=5114 scontext=u:r:adbd:s0 tcontext=u:object_r:tmpfs:s0 tclass=lnk_file permissive=0
      
      Bug: 25801877
      Bug: 28108983
      Change-Id: Ia31cd8b53c9c3a5b7d11be42c2fde170f96affb0
      e3151bd1
  24. Mar 11, 2016
  25. Mar 10, 2016
  26. Mar 09, 2016
    • Makoto Onuki's avatar
      Allow "shortcut manager" icons to be returned to apps · 085c1691
      Makoto Onuki authored
      ... and client apps to read them.
      
      A full path looks like this:
      /data/system_ce/[user-id]/shortcut_service/bitmaps/[creator-app-package]/[timestamp].png
      
      System server will:
      - Create/delete the directories.
      - Write/remove PNG files in them.
      - Open the PNG files and return file descriptors to client apps
      
      Client apps will:
      - Receive file descriptors and read from them.
      
      Bug 27548047
      
      Change-Id: I3d9ac6ab0c92b2953b84c3c5aabe1f653e6bea6b
      085c1691
  27. Mar 07, 2016
  28. Mar 01, 2016
    • Calin Juravle's avatar
      Add SElinux policies to allow foreign dex usage tracking. · 837bc42f
      Calin Juravle authored
      This is a special profile folder where apps will leave profile markers
      for the dex files they load and don't own. System server will read the
      markers and decide which apk should be fully compiled instead of
      profile guide compiled.
      
      Apps need only to be able to create (touch) files in this directory.
      System server needs only to be able to check wheter or not a file with a
      given name exists.
      
      Bug: 27334750
      Bug: 26080105
      
      Change-Id: I2256e4aba1ec0e5117de6497123223b9a74f404e
      837bc42f
  29. Feb 29, 2016
    • Nick Kralevich's avatar
      Allow bluetooth access to the tun device. · ba12da95
      Nick Kralevich authored
      Bluetooth uses the tun device for tethering. Allow access.
      
        STEPS TO REPRODUCE:
        0. Have two devices to test on, say Device A and Device B
        1. On Device A, Go to settings ->Bluetooth .
        2. Turn on the Bluetooth .
        3. Pair it with device B
        4. Tap on the paired device
      
        OBSERVED RESULTS:
        -Bluetooth share crash is observed with "Bluetooth share has stopped"
        error message
        -Unable to use Bluetooth tethering due to this issue
      
        EXPECTED RESULTS:
        No crash and Bluetooth devices should be able to connect for tethering
      
      Addresses the following denial:
      
      com.android.bluetooth: type=1400 audit(0.0:131): avc: denied { open }
      for comm=425420536572766963652043616C6C path="/dev/tun" dev="tmpfs"
      ino=12340 scontext=u:r:bluetooth:s0 tcontext=u:object_r:tun_device:s0
      tclass=chr_file permissive=0
      
      Bug: 27372573
      
      (cherry picked from commit 9a1347ee)
      
      Change-Id: Ibd16e48c09fe80ebb4f3779214de3b4806c12497
      ba12da95
    • Nick Kralevich's avatar
      Allow bluetooth access to the tun device. · 9a1347ee
      Nick Kralevich authored
      Bluetooth uses the tun device for tethering. Allow access.
      
        STEPS TO REPRODUCE:
        0. Have two devices to test on, say Device A and Device B
        1. On Device A, Go to settings ->Bluetooth .
        2. Turn on the Bluetooth .
        3. Pair it with device B
        4. Tap on the paired device
      
        OBSERVED RESULTS:
        -Bluetooth share crash is observed with "Bluetooth share has stopped"
        error message
        -Unable to use Bluetooth tethering due to this issue
      
        EXPECTED RESULTS:
        No crash and Bluetooth devices should be able to connect for tethering
      
      Addresses the following denial:
      
      com.android.bluetooth: type=1400 audit(0.0:131): avc: denied { open }
      for comm=425420536572766963652043616C6C path="/dev/tun" dev="tmpfs"
      ino=12340 scontext=u:r:bluetooth:s0 tcontext=u:object_r:tun_device:s0
      tclass=chr_file permissive=0
      
      Bug: 27372573
      Change-Id: I07724d8d68ffcdda691f1179787a4f40a0ab1c73
      9a1347ee
  30. Feb 23, 2016
    • Jeff Sharkey's avatar
      Offer to cache ringtones in system DE storage. · 62bb52c4
      Jeff Sharkey authored
      Ringtones often live on shared media, which is now encrypted with CE
      keys and not available until after the user is unlocked.  To improve
      the user experience while locked, cache the default ringtone,
      notification sound, and alarm sound in a DE storage area.
      
      Also fix bug where wallpaper_file wasn't getting data_file_type.
      
      Bug: 26730753
      Change-Id: Ib1f08d03eb734c3dce91daab41601d3ed14f4f0d
      62bb52c4
  31. Feb 22, 2016
  32. Feb 19, 2016
Loading