Skip to content
Snippets Groups Projects
  1. Sep 13, 2016
    • Andreas Gampe's avatar
      Sepolicy: Add otapreopt_slot · a3a0bb44
      Andreas Gampe authored
      (cherry picked from commit eb717421)
      
      The new A/B OTA artifact naming scheme includes the target slot so
      that the system is robust with respect to unexpected reboots. This
      complicates the renaming code after reboot, so it is moved from the
      zygote into a simple script (otapreopt_slot) that is hooked into
      the startup sequence in init.
      
      Give the script the subset of the rights that the zygote had so that
      it can move the artifacts from /data/ota into /data/dalvik-cache.
      Relabeling will be done in the init rc component, so relabeling
      rights can be completely removed.
      
      Bug: 25612095
      Bug: 28069686
      Change-Id: Iad56dc3d78ac759f4f2cce65633cdaf1cab7631b
      a3a0bb44
  2. Sep 12, 2016
  3. Sep 10, 2016
  4. Aug 29, 2016
  5. Jul 22, 2016
  6. Mar 11, 2016
  7. Mar 07, 2016
  8. Feb 17, 2016
    • Andreas Gampe's avatar
      dex2oat/patchoat: Add rights for A/B OTA · 5c5d6cd8
      Andreas Gampe authored
      Give dex2oat/patchoat link rights in /data/ota to produce a patched
      image.
      
      Give zygote rights to relabel links. Also give the zygote rights to
      unlink, which is required when relabeling fails (to clean up the
      dalvik-cache).
      
      Bug: 25612095
      Change-Id: I28bfb9cbeabe93b1f68ada9bcaf29f4f60028c2f
      5c5d6cd8
  9. Feb 09, 2016
  10. Jan 27, 2016
    • Jeff Vander Stoep's avatar
      zygote: grant perms from domain_deprecated · cee6a0e7
      Jeff Vander Stoep authored
      In preparation of removing permissions from domain_deprecated.
      
      Addresses:
      avc: denied { read } for name="ipv6_route" dev="proc" ino=4026536875 scontext=u:r:zygote:s0 tcontext=u:object_r:proc_net:s0 tclass=file
      avc: denied { open } for path="/proc/220/net/ipv6_route" dev="proc" ino=4026536875 scontext=u:r:zygote:s0 tcontext=u:object_r:proc_net:s0 tclass=file
      avc: denied { getattr } for path="/proc/220/net/ipv6_route" dev="proc" ino=4026536875 scontext=u:r:zygote:s0 tcontext=u:object_r:proc_net:s0 tclass=file
      
      Change-Id: Ie94d3db3c5dccb8077ef5da26221a6413f5d19c2
      cee6a0e7
    • Jeffrey Vander Stoep's avatar
      Revert "zygote: grant perms from domain_deprecated" · b9b07da0
      Jeffrey Vander Stoep authored
      This reverts commit e52fff83.
      
      Change-Id: Ieafb5214940585d63ff6f0b4802d8c7d1c126174
      b9b07da0
    • Jeffrey Vander Stoep's avatar
      Revert "zygote: grant perms from domain_deprecated" · b898360e
      Jeffrey Vander Stoep authored
      This reverts commit e52fff83.
      
      Change-Id: Ieafb5214940585d63ff6f0b4802d8c7d1c126174
      b898360e
    • Jeff Vander Stoep's avatar
      zygote: grant perms from domain_deprecated · e52fff83
      Jeff Vander Stoep authored
      In preparation of removing permissions from domain_deprecated.
      
      Addresses:
      avc: denied { read } for name="ipv6_route" dev="proc" ino=4026536875 scontext=u:r:zygote:s0 tcontext=u:object_r:proc_net:s0 tclass=file
      avc: denied { open } for path="/proc/220/net/ipv6_route" dev="proc" ino=4026536875 scontext=u:r:zygote:s0 tcontext=u:object_r:proc_net:s0 tclass=file
      avc: denied { getattr } for path="/proc/220/net/ipv6_route" dev="proc" ino=4026536875 scontext=u:r:zygote:s0 tcontext=u:object_r:proc_net:s0 tclass=file
      
      Change-Id: I5b505ad386a445113bc0a1bb35d4f88f7761c048
      e52fff83
  11. Nov 25, 2015
  12. Nov 12, 2015
  13. Nov 11, 2015
    • Calin Juravle's avatar
      Add SElinux rules for /data/misc/trace · f255d775
      Calin Juravle authored
      The directory is to be used in eng/userdebug build to store method
      traces (previously stored in /data/dalvik-cache/profiles).
      
      Bug: 25612377
      
      Change-Id: Ia4365a8d1f13d33ee54115dc5e3bf62786503993
      f255d775
  14. 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
  15. Jul 08, 2015
    • William Roberts's avatar
      neverallow: domain execute data_file_type · 7028bdcc
      William Roberts authored
      
      To help reduce code injection paths, a neverallow is placed
      to prevent domain, sans untrusted_app and shell, execute
      on data_file_type. A few data_file_type's are also exempt
      from this rule as they label files that should be executable.
      
      Additional constraints, on top of the above, are placed on domains
      system_server and zygote. They can only execute data_file_type's
      of type dalvikcache_data_file.
      
      Change-Id: I15dafbce80ba2c85a03c23128eae4725703d5f02
      Signed-off-by: default avatarWilliam Roberts <william.c.roberts@intel.com>
      7028bdcc
  16. Jun 30, 2015
    • Jeff Sharkey's avatar
      Let Zygote unmount inherited storage devices. · 24f3bcdb
      Jeff Sharkey authored
      For example, when launching into an isolated process, we need to drop
      all mounts inherited from the root namespace.
      
      avc: denied { unmount } for scontext=u:r:zygote:s0 tcontext=u:object_r:fuse:s0 tclass=filesystem permissive=1
      
      Bug: 22192518
      Change-Id: Iafbea2c365c1080bdf20d7fa066c304901e582ba
      24f3bcdb
  17. Jun 26, 2015
    • Jeff Sharkey's avatar
      Let's reinvent storage, yet again! · 6b75d099
      Jeff Sharkey authored
      Now that we're treating storage as a runtime permission, we need to
      grant read/write access without killing the app.  This is really
      tricky, since we had been using GIDs for access control, and they're
      set in stone once Zygote drops privileges.
      
      The only thing left that can change dynamically is the filesystem
      itself, so let's do that.  This means changing the FUSE daemon to
      present itself as three different views:
      
      /mnt/runtime_default/foo - view for apps with no access
      /mnt/runtime_read/foo - view for apps with read access
      /mnt/runtime_write/foo - view for apps with write access
      
      There is still a single location for all the backing files, and
      filesystem permissions are derived the same way for each view, but
      the file modes are masked off differently for each mountpoint.
      
      During Zygote fork, it wires up the appropriate storage access into
      an isolated mount namespace based on the current app permissions.  When
      the app is granted permissions dynamically at runtime, the system
      asks vold to jump into the existing mount namespace and bind mount
      the newly granted access model into place.
      
      avc: denied { sys_chroot } for capability=18 scontext=u:r:vold:s0 tcontext=u:r:vold:s0 tclass=capability permissive=1
      avc: denied { mounton } for path="/storage" dev="tmpfs" ino=4155 scontext=u:r:vold:s0 tcontext=u:object_r:storage_file:s0 tclass=dir permissive=1
      avc: denied { unmount } for scontext=u:r:zygote:s0 tcontext=u:object_r:tmpfs:s0 tclass=filesystem permissive=0
      
      Bug: 21858077
      Change-Id: Ie481d190c5e7a774fbf80fee6e39a980f382967e
      6b75d099
  18. Jun 19, 2015
    • Stephen Smalley's avatar
      Run idmap in its own domain. · b335e384
      Stephen Smalley authored
      
      Run idmap in its own domain rather than leaving it in installd's domain.
      This prevents misuse of installd's permissions by idmap.
      
      zygote also needs to run idmap.  For now, just run it in zygote's
      domain as it was previously since that is what is done for dex2oat
      invocation by zygote.  zygote appears to run idmap with system uid
      while installd runs it with app UIDs, so using different domains
      seems appropriate.
      
      Remove system_file execute_no_trans from both installd and zygote;
      this should no longer be needed with explicit labels for dex2oat and
      idmap.
      
      Change-Id: If47e2c1326b84c20e94a20f5e699300dce12bdfe
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      b335e384
  19. May 01, 2015
    • Stephen Smalley's avatar
      Ensure that domain and appdomain attributes are assigned. · 3c242caf
      Stephen Smalley authored
      
      Prevent defining any process types without the domain attribute
      so that all allow and neverallow rules written on domain are
      applied to all processes.
      
      Prevent defining any app process types without the appdomain
      attribute so that all allow and neverallow rules written on
      appdomain are applied to all app processes.
      
      Change-Id: I4cb565314fd40e1e82c4360efb671b175a1ee389
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      3c242caf
    • Stephen Smalley's avatar
      Ensure that domain and appdomain attributes are assigned. · 4a12d963
      Stephen Smalley authored
      
      Prevent defining any process types without the domain attribute
      so that all allow and neverallow rules written on domain are
      applied to all processes.
      
      Prevent defining any app process types without the appdomain
      attribute so that all allow and neverallow rules written on
      appdomain are applied to all app processes.
      
      Change-Id: I4cb565314fd40e1e82c4360efb671b175a1ee389
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      4a12d963
  20. Mar 31, 2015
    • Jeff Sharkey's avatar
      Updated policy for external storage. · f063f461
      Jeff Sharkey authored
      An upcoming platform release is redesigning how external storage
      works.  At a high level, vold is taking on a more active role in
      managing devices that dynamically appear.
      
      This change also creates further restricted domains for tools doing
      low-level access of external storage devices, including sgdisk
      and blkid.  It also extends sdcardd to be launchable by vold, since
      launching by init will eventually go away.
      
      For compatibility, rules required to keep AOSP builds working are
      marked with "TODO" to eventually remove.
      
      Slightly relax system_server external storage rules to allow calls
      like statfs().  Still neverallow open file descriptors, since they
      can cause kernel to kill us.
      
      Here are the relevant violations that this CL is designed to allow:
      
      avc: denied { search } for name="user" dev="tmpfs" ino=7441 scontext=u:r:zygote:s0 tcontext=u:object_r:mnt_user_file:s0 tclass=dir
      avc: denied { getattr } for path="/mnt/user/0" dev="tmpfs" ino=6659 scontext=u:r:zygote:s0 tcontext=u:object_r:mnt_user_file:s0 tclass=dir
      avc: denied { write } for name="user" dev="tmpfs" ino=6658 scontext=u:r:zygote:s0 tcontext=u:object_r:mnt_user_file:s0 tclass=dir
      avc: denied { add_name } for name="10" scontext=u:r:zygote:s0 tcontext=u:object_r:mnt_user_file:s0 tclass=dir
      avc: denied { create } for name="10" scontext=u:r:zygote:s0 tcontext=u:object_r:mnt_user_file:s0 tclass=dir
      avc: denied { setattr } for name="10" dev="tmpfs" ino=11348 scontext=u:r:zygote:s0 tcontext=u:object_r:mnt_user_file:s0 tclass=dir
      avc: denied { search } for name="/" dev="tmpfs" ino=3131 scontext=u:r:zygote:s0 tcontext=u:object_r:storage_file:s0 tclass=dir
      avc: denied { getattr } for path="/storage" dev="tmpfs" ino=6661 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:storage_file:s0 tclass=dir
      avc: denied { getattr } for path="/storage/self" dev="tmpfs" ino=6659 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:mnt_user_file:s0 tclass=dir
      avc: denied { getattr } for path="/storage" dev="tmpfs" ino=6661 scontext=u:r:untrusted_app:s0:c522,c768 tcontext=u:object_r:storage_file:s0 tclass=dir
      avc: denied { getattr } for path="/storage/self" dev="tmpfs" ino=11348 scontext=u:r:untrusted_app:s0:c522,c768 tcontext=u:object_r:mnt_user_file:s0 tclass=dir
      avc: denied { getattr } for path="/storage" dev="tmpfs" ino=6661 scontext=u:r:vold:s0 tcontext=u:object_r:storage_file:s0 tclass=dir
      avc: denied { read } for name="/" dev="tmpfs" ino=6661 scontext=u:r:vold:s0 tcontext=u:object_r:storage_file:s0 tclass=dir
      avc: denied { open } for name="/" dev="tmpfs" ino=6661 scontext=u:r:vold:s0 tcontext=u:object_r:storage_file:s0 tclass=dir
      avc: denied { search } for name="/" dev="tmpfs" ino=6661 scontext=u:r:vold:s0 tcontext=u:object_r:storage_file:s0 tclass=dir
      avc: denied { write } for name="data" dev="tmpfs" ino=11979 scontext=u:r:vold:s0 tcontext=u:object_r:storage_file:s0 tclass=dir
      avc: denied { add_name } for name="com.google.android.music" scontext=u:r:vold:s0 tcontext=u:object_r:storage_file:s0 tclass=dir
      avc: denied { create } for name="com.google.android.music" scontext=u:r:vold:s0 tcontext=u:object_r:storage_file:s0 tclass=dir
      avc: denied { use } for path="socket:[8297]" dev="sockfs" ino=8297 scontext=u:r:sdcardd:s0 tcontext=u:r:vold:s0 tclass=fd
      avc: denied { read write } for path="socket:[8297]" dev="sockfs" ino=8297 scontext=u:r:sdcardd:s0 tcontext=u:r:vold:s0 tclass=netlink_kobject_uevent_socket
      avc: denied { read } for path="pipe:[8298]" dev="pipefs" ino=8298 scontext=u:r:sdcardd:s0 tcontext=u:r:vold:s0 tclass=fifo_file
      avc: denied { write } for path="pipe:[8298]" dev="pipefs" ino=8298 scontext=u:r:sdcardd:s0 tcontext=u:r:vold:s0 tclass=fifo_file
      avc: denied { mounton } for path="/storage/emulated" dev="tmpfs" ino=8913 scontext=u:r:sdcardd:s0 tcontext=u:object_r:storage_file:s0 tclass=dir
      avc: denied { getattr } for path="/storage" dev="tmpfs" ino=7444 scontext=u:r:system_server:s0 tcontext=u:object_r:storage_file:s0 tclass=dir
      avc: denied { getattr } for path="/storage/self/primary" dev="tmpfs" ino=7447 scontext=u:r:system_server:s0 tcontext=u:object_r:storage_file:s0 tclass=lnk_file
      avc: denied { read } for name="primary" dev="tmpfs" ino=7447 scontext=u:r:system_server:s0 tcontext=u:object_r:storage_file:s0 tclass=lnk_file
      avc: denied { getattr } for path="/mnt/user" dev="tmpfs" ino=7441 scontext=u:r:system_server:s0 tcontext=u:object_r:mnt_user_file:s0 tclass=dir
      avc: denied { read } for name="disk:179,128" dev="tmpfs" ino=3224 scontext=u:r:sgdisk:s0 tcontext=u:object_r:vold_device:s0 tclass=blk_file
      avc: denied { open } for path="/dev/block/vold/disk:179,128" dev="tmpfs" ino=3224 scontext=u:r:sgdisk:s0 tcontext=u:object_r:vold_device:s0 tclass=blk_file
      avc: denied { getattr } for path="/dev/block/vold/disk:179,128" dev="tmpfs" ino=3224 scontext=u:r:sgdisk:s0 tcontext=u:object_r:vold_device:s0 tclass=blk_file
      avc: denied { read } for name="/" dev="fuse" ino=0 scontext=u:r:vold:s0 tcontext=u:object_r:fuse:s0 tclass=dir
      avc: denied { open } for path="/storage/public:81F3-13EC" dev="fuse" ino=0 scontext=u:r:vold:s0 tcontext=u:object_r:fuse:s0 tclass=dir
      avc: denied { write } for name="data" dev="fuse" ino=2 scontext=u:r:vold:s0 tcontext=u:object_r:fuse:s0 tclass=dir
      avc: denied { add_name } for name="com.google.android.googlequicksearchbox" scontext=u:r:vold:s0 tcontext=u:object_r:fuse:s0 tclass=dir
      avc: denied { create } for name="com.google.android.googlequicksearchbox" scontext=u:r:vold:s0 tcontext=u:object_r:fuse:s0 tclass=dir
      avc: denied { getattr } for path="/dev/block/vold/public:179,129" dev="tmpfs" ino=16953 scontext=u:r:blkid:s0 tcontext=u:object_r:vold_device:s0 tclass=blk_file
      avc: denied { read } for name="public:179,129" dev="tmpfs" ino=16953 scontext=u:r:blkid:s0 tcontext=u:object_r:vold_device:s0 tclass=blk_file
      avc: denied { open } for path="/dev/block/vold/public:179,129" dev="tmpfs" ino=16953 scontext=u:r:blkid:s0 tcontext=u:object_r:vold_device:s0 tclass=blk_file
      avc: denied { ioctl } for path="/dev/block/vold/public:179,129" dev="tmpfs" ino=16953 scontext=u:r:blkid:s0 tcontext=u:object_r:vold_device:s0 tclass=blk_file
      avc: denied { use } for path="pipe:[3264]" dev="pipefs" ino=3264 scontext=u:r:sgdisk:s0 tcontext=u:r:vold:s0 tclass=fd
      avc: denied { use } for path="pipe:[3264]" dev="pipefs" ino=3264 scontext=u:r:sgdisk:s0 tcontext=u:r:vold:s0 tclass=fd
      avc: denied { search } for name="block" dev="tmpfs" ino=2494 scontext=u:r:sgdisk:s0 tcontext=u:object_r:block_device:s0 tclass=dir
      avc: denied { use } for path="pipe:[4200]" dev="pipefs" ino=4200 scontext=u:r:sdcardd:s0 tcontext=u:r:vold:s0 tclass=fd
      avc: denied { use } for path="pipe:[4200]" dev="pipefs" ino=4200 scontext=u:r:sdcardd:s0 tcontext=u:r:vold:s0 tclass=fd
      avc: denied { search } for name="/" dev="tmpfs" ino=3131 scontext=u:r:sdcardd:s0 tcontext=u:object_r:storage_file:s0 tclass=dir
      avc: denied { search } for name="media_rw" dev="tmpfs" ino=3127 scontext=u:r:sdcardd:s0 tcontext=u:object_r:mnt_media_rw_file:s0 tclass=dir
      avc: denied { getattr } for path="pipe:[3648]" dev="pipefs" ino=3648 scontext=u:r:blkid:s0 tcontext=u:r:vold:s0 tclass=fifo_file
      avc: denied { use } for path="/dev/pts/12" dev="devpts" ino=15 scontext=u:r:fsck:s0 tcontext=u:r:vold:s0 tclass=fd
      avc: denied { use } for path="/dev/pts/12" dev="devpts" ino=15 scontext=u:r:fsck:s0 tcontext=u:r:vold:s0 tclass=fd
      avc: denied { use } for path="pipe:[4182]" dev="pipefs" ino=4182 scontext=u:r:fsck:s0 tcontext=u:r:vold:s0 tclass=fd
      
      Change-Id: Idf3b8561baecf7faa603fac5ababdcc5708288e1
      f063f461
  21. Nov 10, 2014
    • Igor Murashkin's avatar
      zygote/dex2oat: Grant additional symlink permissions · 3df12275
      Igor Murashkin authored
      * zygote needs to be able to symlink from dalvik cache to system
        to avoid having to copy boot.oat
        (when the boot.oat file was built with --compile-pic)
      * dex2oat needs to be able to read the symlink in the dalvik cache
        (the one that zygote creates)
      
      (cherry-picked from AOSP master
      83c5612e)
      
      Bug: 18035729
      
      (cherry picked from commit f7ccfd00)
      
      Change-Id: I5dca27241f46f481515b96e968fb2bef7866c89b
      3df12275
  22. Oct 31, 2014
    • Igor Murashkin's avatar
      zygote/dex2oat: Grant additional symlink permissions · f7ccfd00
      Igor Murashkin authored
      * zygote needs to be able to symlink from dalvik cache to system
        to avoid having to copy boot.oat
        (when the boot.oat file was built with --compile-pic)
      * dex2oat needs to be able to read the symlink in the dalvik cache
        (the one that zygote creates)
      
      (cherry-picked from AOSP master
      83c5612e)
      
      Bug: 18035729
      Change-Id: Ie1acad81a0fd8b2f24e1f3f07a06e6fdb548be62
      f7ccfd00
  23. Oct 28, 2014
    • Igor Murashkin's avatar
      zygote/dex2oat: Grant additional symlink permissions · 83c5612e
      Igor Murashkin authored
      * zygote needs to be able to symlink from dalvik cache to system
        to avoid having to copy boot.oat
        (when the boot.oat file was built with --compile-pic)
      * dex2oat needs to be able to read the symlink in the dalvik cache
        (the one that zygote creates)
      
      Bug: 18035729
      Change-Id: Ie1acad81a0fd8b2f24e1f3f07a06e6fdb548be62
      83c5612e
  24. Oct 20, 2014
  25. Oct 15, 2014
    • Robin Lee's avatar
      Pull keychain-data policy out of system-data · 51bfecf4
      Robin Lee authored
      Migrators should be allowed to write to /data/misc/keychain in order
      to remove it. Similarly /data/misc/user should be writable by system
      apps.
      
      TODO: Revoke zygote's rights to read from /data/misc/keychain on
      behalf of some preloaded security classes.
      
      Bug: 17811821
      Change-Id: I9e9c6883cff1dca3755732225404909c16a0e547
      51bfecf4
  26. Sep 26, 2014
    • Nick Kralevich's avatar
      zygote: allow replacing /proc/cpuinfo · f2c01189
      Nick Kralevich authored
      Android's native bridge functionality allows an Android native
      app written on one CPU architecture to run on a different architecture.
      For example, Android ARM apps may run on an x86 CPU.
      
      To support this, the native bridge functionality needs to replace
      /proc/cpuinfo with the version from /system/lib/<ISA>/cpuinfo
      using a bind mount. See commit ab0da5a9a6860046619629b8e6b83692d35dff86
      in system/core.
      
      This change:
      
      1) Creates a new label proc_cpuinfo, and assigns /proc/cpuinfo
      that label.
      2) Grants read-only access to all SELinux domains, to avoid
      breaking pre-existing apps.
      3) Grants zygote mounton capabilities for that file, so zygote
      can replace the file as necessary.
      
      Addresses the following denial:
      
        avc: denied { mounton } for path="/proc/cpuinfo" dev="proc" ino=4026532012 scontext=u:r:zygote:s0 tcontext=u:object_r:proc:s0 tclass=file
      
      Bug: 17671501
      
      (cherry picked from commit 2de02877)
      
      Change-Id: I2c2366bee4fe365288d14bca9778d23a43c368cb
      f2c01189
    • Nick Kralevich's avatar
      zygote: allow replacing /proc/cpuinfo · 2de02877
      Nick Kralevich authored
      Android's native bridge functionality allows an Android native
      app written on one CPU architecture to run on a different architecture.
      For example, Android ARM apps may run on an x86 CPU.
      
      To support this, the native bridge functionality needs to replace
      /proc/cpuinfo with the version from /system/lib/<ISA>/cpuinfo
      using a bind mount. See commit ab0da5a9a6860046619629b8e6b83692d35dff86
      in system/core.
      
      This change:
      
      1) Creates a new label proc_cpuinfo, and assigns /proc/cpuinfo
      that label.
      2) Grants read-only access to all SELinux domains, to avoid
      breaking pre-existing apps.
      3) Grants zygote mounton capabilities for that file, so zygote
      can replace the file as necessary.
      
      Addresses the following denial:
      
        avc: denied { mounton } for path="/proc/cpuinfo" dev="proc" ino=4026532012 scontext=u:r:zygote:s0 tcontext=u:object_r:proc:s0 tclass=file
      
      Bug: 17671501
      Change-Id: Ib70624fba2baeccafbc0a41369833f76b976ee20
      2de02877
  27. Jul 15, 2014
  28. Jul 10, 2014
    • Nick Kralevich's avatar
      Put dex2oat in it's own sandbox · 75d63fcf
      Nick Kralevich authored
      Currently, dex2oat runs in the installd sandbox, and has
      all the SELinux capabilities that installd does. That's too
      excessive.
      
      dex2oat handles untrusted user data, so we want to put it in
      it's own tighter sandbox.
      
      Bug: 15358102
      Change-Id: I08083b84b9769e24d6dad6dbd12401987cb006be
      75d63fcf
  29. Jun 16, 2014
    • Nick Kralevich's avatar
      Fix SELinux policies to allow resource overlays. · fad4d5fb
      Nick Kralevich authored
      The following commits added support for runtime resource overlays.
      
        New command line tool 'idmap'
        * 65a05fd56dbc9fd9c2511a97f49c445a748fb3c5
        Runtime resource overlay, iteration 2
        * 48d22323ce39f9aab003dce74456889b6414af55
        Runtime resource overlay, iteration 2, test cases
        * ad6ed950dbfa152c193dd7e49c369d9e831f1591
      
      During SELinux tightening, support for these runtime resource
      overlays was unknowingly broken. Fix it.
      
      This change has been tested by hackbod and she reports that
      everything is working after this change. I haven't independently
      verified the functionality.
      
      Test cases are available for this by running:
        * python frameworks/base/core/tests/overlaytests/testrunner.py
      
      Change-Id: I1c70484011fd9041bec4ef34f93f7a5509906f40
      fad4d5fb
  30. May 23, 2014
    • Stephen Smalley's avatar
      Restrict requesting contexts other than policy-defined defaults. · 356f4be6
      Stephen Smalley authored
      
      Writing to the /proc/self/attr files (encapsulated by the libselinux
      set*con functions) enables a program to request a specific security
      context for various operations instead of the policy-defined defaults.
      The security context specified using these calls is checked by an
      operation-specific permission, e.g. dyntransition for setcon,
      transition for setexeccon, create for setfscreatecon or
      setsockcreatecon, but the ability to request a context at all
      is controlled by a process permission.  Omit these permissions from
      domain.te and only add them back where required so that only specific
      domains can even request a context other than the default defined by
      the policy.
      
      Change-Id: I6a2fb1279318625a80f3ea8e3f0932bdbe6df676
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      356f4be6
  31. May 14, 2014
    • Stephen Smalley's avatar
      Remove zygote write access to system_data_file. · df48bd2c
      Stephen Smalley authored
      
      These rules seem to be a legacy of old Android or perhaps old policy
      before we began splitting types on /data.  I have not been able to
      trigger the auditallow rules on AOSP master.  Reduce the rules to
      only read access to system data.  If we need write access to some
      specific directory under /data, we should introduce a type for it.
      
      Change-Id: I780835950cc366c97b7d0901fc73527d9ea479b1
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      df48bd2c
  32. May 12, 2014
  33. May 01, 2014
    • Narayan Kamath's avatar
      Change zygote sepolicy whitelist. · 3a06a72c
      Narayan Kamath authored
      Allow the zygote to create instruction set specific
      directories under /data/dalvik-cache and to change their owner
      to the system UID.
      
      These subdirectories are required in order to support
      instruction set specific dex caches on devices that support
      multiple instruction sets. We can't ask init to create these
      directories for us, because init doesn't have any knowledge
      about the list of runtime instruction sets the device supports.
      
      The owner needs to be system because the package manager (running
      in the system_server) is allowed to manipulate files under this
      directory.
      
      (cherry picked from commit 032e5b0a)
      
      Change-Id: I3a85e8a6b4eed003a93490e7b93a4fd68c41a361
      3a06a72c
  34. Apr 29, 2014
    • Narayan Kamath's avatar
      Change zygote sepolicy whitelist. · 032e5b0a
      Narayan Kamath authored
      Allow the zygote to create instruction set specific
      directories under /data/dalvik-cache and to change their owner
      to the system UID.
      
      These subdirectories are required in order to support
      instruction set specific dex caches on devices that support
      multiple instruction sets. We can't ask init to create these
      directories for us, because init doesn't have any knowledge
      about the list of runtime instruction sets the device supports.
      
      The owner needs to be system because the package manager (running
      in the system_server) is allowed to manipulate files under this
      directory.
      
      Change-Id: Ibb248d198d4430ef8bc494111a60d537c7d04784
      032e5b0a
  35. Apr 08, 2014
Loading