Skip to content
Snippets Groups Projects
  1. Mar 03, 2015
    • dcashman's avatar
      Record observed system_server servicemanager service requests. · 23f33615
      dcashman authored
      Also formally allow dumpstate access to all services and grant system_server
      access to address the following non-system_server_service entries:
      
      avc:  granted  { find } for service=drm.drmManager scontext=u:r:system_server:s0 tcontext=u:object_r:drmserver_service:s0 tclass=service_manager
      avc:  granted  { find } for service=nfc scontext=u:r:system_server:s0 tcontext=u:object_r:nfc_service:s0 tclass=service_manager
      
      Bug: 18106000
      Change-Id: Iad16b36acf44bce52c4824f8b53c0e7731c25602
      23f33615
  2. Jan 17, 2015
    • dcashman's avatar
      Record service accesses. · 566e8fe2
      dcashman authored
      Reduce logspam and record further observed service connections.
      
      Bug: 18106000
      Change-Id: I9a57e4bb8f1c8e066861719fb208c691498842a8
      566e8fe2
  3. Jan 15, 2015
    • dcashman's avatar
      Remove known system_server service accesses from auditing. · c631ede7
      dcashman authored
      Address observed  audit logs of the form:
      granted  { find } for service=XXX scontext=u:r:YYY:s0:c512,c768 tcontext=u:object_r:XXX_service:s0 tclass=service_manager
      
      in order to record existing relationships with services.
      
      Bug: 18106000
      Change-Id: I99a68f329c17ba67ebf3b87729b8405bdc925ef4
      c631ede7
  4. Jan 14, 2015
    • dcashman's avatar
      Make system_server_service an attribute. · 4a89cdfa
      dcashman authored
      Temporarily give every system_server_service its own
      domain in preparation for splitting it and identifying
      special services or classes of services.
      
      Change-Id: I81ffbdbf5eea05e0146fd7fd245f01639b1ae0ef
      4a89cdfa
  5. Dec 23, 2014
    • dcashman's avatar
      Allow find access to drmserver_service from nfc and · 3fbeb180
      dcashman authored
       platform_app.
      
      Address the following denials:
      SELinux : avc:  denied  { find } for service=drm.drmManager scontext=u:r:nfc:s0 tcontext=u:object_r:drmserver_service:s0 tclass=service_manage
      SELinux : avc:  denied  { find } for service=drm.drmManager scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:drmserver_service:s0 tclass=service_manager
      
      Bug: 18831075
      Change-Id: I2c162f58f4adae9f6c544f9d9c6a9300877b4f36
      3fbeb180
  6. Dec 15, 2014
    • dcashman's avatar
      Restrict service_manager find and list access. · cd82557d
      dcashman authored
      All domains are currently granted list and find service_manager
      permissions, but this is not necessary.  Pare the permissions
      which did not trigger any of the auditallow reporting.
      
      Bug: 18106000
      Change-Id: Ie0ce8de2af8af2cbe4ce388a2dcf4534694c994a
      cd82557d
  7. Jul 25, 2014
    • Nick Kralevich's avatar
      Resync lmp-dev-plus-aosp with master · d065f048
      Nick Kralevich authored
      A DO NOT MERGE change merged from lmp-dev to lmp-dev-plus-aosp.
      This is expected, but it's causing unnecessary merge conflicts
      when handling AOSP contributions.
      
      Resolve those conflicts.
      
      This is essentially a revert of bf696327
      for lmp-dev-plus-aosp only.
      
      Change-Id: Icc66def7113ab45176ae015f659cb442d53bce5c
      d065f048
  8. Jul 18, 2014
  9. Jul 15, 2014
    • Riley Spahn's avatar
      Add access control for each service_manager action. · 344fc109
      Riley Spahn authored
      Add SELinux MAC for the service manager actions list
      and find. Add the list and find verbs to the
      service_manager class. Add policy requirements for
      service_manager to enforce policies to binder_use
      macro.
      
      (cherry picked from commit b8511e0d)
      
      Change-Id: I980d4a8acf6a0c6e99a3a7905961eb5564b1be15
      344fc109
  10. Jul 14, 2014
    • Riley Spahn's avatar
      Add access control for each service_manager action. · b8511e0d
      Riley Spahn authored
      Add SELinux MAC for the service manager actions list
      and find. Add the list and find verbs to the
      service_manager class. Add policy requirements for
      service_manager to enforce policies to binder_use
      macro.
      
      Change-Id: I224b1c6a6e21e3cdeb23badfc35c82a37558f964
      b8511e0d
  11. Jul 09, 2014
    • Jeff Sharkey's avatar
      Let DCS read staged APK clusters. · d3356826
      Jeff Sharkey authored
      DCS is DefaultContainerService.
      
      avc: denied { getattr } for path="/data/app/vmdl2.tmp"
          dev="mmcblk0p28" ino=162910 scontext=u:r:platform_app:s0
          tcontext=u:object_r:apk_tmp_file:s0 tclass=dir
      
      Bug: 14975160
      Change-Id: Ifca9afb4e74ebbfbeb8c01e1e9ea65f5b55e9375
      d3356826
  12. May 10, 2014
  13. May 07, 2014
  14. Apr 04, 2014
    • Stephen Smalley's avatar
      Coalesce shared_app, media_app, release_app into untrusted_app. · 9ba844fe
      Stephen Smalley authored
      
      This change folds the shared_app, media_app, and release_app
      domains into untrusted_app, reducing the set of app domains down
      to just distinct domains for the fixed UID apps (e.g. system_app, bluetooth,
      nfc, radio), a single domain for apps signed by the platform key
      (platform_app), and a single domain for all other apps (untrusted_app).
      Thus, SELinux only distinguishes when already distinguished by a predefined
      Android ID (AID) or by the platform certificate (which get the signature-only
      Android permissions and thus may require special OS-level accesses).
      
      It is still possible to introduce specific app domains for specific
      apps by adding signer and package stanzas to mac_permissions.xml,
      but this can be done on an as-needed basis for specialized apps that
      require particular OS-level permissions outside the usual set.
      
      As there is now only a single platform app domains, get rid of the
      platformappdomain attribute and platform_app_domain() macro.  We used
      to add mlstrustedsubject to those domains but drop this since we are not
      using MLS in AOSP presently; we can revisit which domains need it if/when
      we use MLS.
      
      Since we are dropping the shared, media, and release seinfo entries from
      seapp_contexts, drop them from mac_permissions.xml as well.  However,
      we leave the keys.conf entries in case someone wants to add a signer
      entry in the future for specific apps signed by those keys to
      mac_permissions.xml.
      
      Change-Id: I877192cca07360c4a3c0ef475f016cc273e1d968
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      9ba844fe
  15. Mar 14, 2014
  16. Mar 07, 2014
    • Stephen Smalley's avatar
      Clean up, unify, and deduplicate app domain rules. · b0db712b
      Stephen Smalley authored
      
      Coalesce a number of allow rules replicated among multiple
      app domains.
      
      Get rid of duplicated rules already covered by domain, appdomain,
      or platformappdomain rules.
      
      Split the platformappdomain rules to their own platformappdomain.te
      file, document them more fully, and note the inheritance in each
      of the relevant *_app.te files.
      
      Generalize isolated app unix_stream_socket rules to all app domains
      to resolve denials such as:
      
      avc:  denied  { read write } for  pid=11897 comm="Binder_2" path="socket:[203881]" dev="sockfs" ino=203881 scontext=u:r:release_app:s0 tcontext=u:r:untrusted_app:s0 tclass=unix_stream_socket
      
      avc:  denied  { getattr } for  pid=11990 comm=4173796E635461736B202334 path="socket:[203881]" dev="sockfs" ino=203881 scontext=u:r:release_app:s0 tcontext=u:r:untrusted_app:s0 tclass=unix_stream_socket
      
      avc:  denied  { getopt } for  pid=11990 comm=4173796E635461736B202334 scontext=u:r:release_app:s0 tcontext=u:r:untrusted_app:s0 tclass=unix_stream_socket
      
      avc:  denied  { read write } for  pid=6890 comm="Binder_10" path="socket:[205010]" dev="sockfs" ino=205010 scontext=u:r:release_app:s0 tcontext=u:r:media_app:s0 tclass=unix_stream_socket
      
      avc:  denied  { getattr } for  pid=11990 comm=4173796E635461736B202334 path="socket:[205010]" dev="sockfs" ino=205010 scontext=u:r:release_app:s0 tcontext=u:r:media_app:s0 tclass=unix_stream_socket
      
      avc:  denied  { getopt } for  pid=11990 comm=4173796E635461736B202334 scontext=u:r:release_app:s0 tcontext=u:r:media_app:s0 tclass=unix_stream_socket
      
      Change-Id: I770d7d51d498b15447219083739153265d951fe5
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      b0db712b
  17. 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
  18. Jan 02, 2014
    • Stephen Smalley's avatar
      Allow use of art as the Android runtime. · 527316a2
      Stephen Smalley authored
      
      system_server and app domains need to map dalvik-cache files with PROT_EXEC.
      
      type=1400 msg=audit(13574814.073:132): avc: denied { execute } for pid=589 comm="system_server" path="/data/dalvik-cache/system@priv-app@SettingsProvider.apk@classes.dex" dev="mmcblk0p30" ino=684132 scontext=u:r:system_server:s0 tcontext=u:object_r:dalvikcache_data_file:s0 tclass=file
      
      Apps need to map cached dex files with PROT_EXEC.  We already allow this
      for untrusted_app to support packaging of shared objects as assets
      but not for the platform app domains.
      
      type=1400 audit(1387810571.697:14): avc:  denied  { execute } for  pid=7822 comm="android.youtube" path="/data/data/com.google.android.youtube/cache/ads1747714305.dex" dev="mmcblk0p30" ino=603259 scontext=u:r:platform_app:s0 tcontext=u:object_r:platform_app_data_file:s0 tclass=file
      
      Change-Id: I309907d591ea6044e3e6aeb57bde7508e426c033
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      527316a2
  19. Dec 17, 2013
    • Stephen Smalley's avatar
      Label /data/media with its own type and allow access. · e13fabd7
      Stephen Smalley authored
      
      /data/media presently is left in system_data_file, which requires
      anything that wants to write to it to be able to write to system_data_file.
      Introduce a new type for /data/media, media_rw_data_file (to match
      the media_rw UID assigned to it and distinguish it from /data/misc/media
      which has media UID and media_data_file type), and allow access to it.
      
      We allow this for all platform app domains as WRITE_MEDIA_STORAGE permission is granted
      to signature|system.  We should not have to allow it to untrusted_app.
      
      Set up type transitions in sdcardd to automatically label any directories
      or files it creates with the new type.
      
      Change-Id: I5c7e6245b854a9213099e40a41d9583755d37d42
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      e13fabd7
  20. Oct 23, 2013
  21. 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
  22. Jul 13, 2013
    • Nick Kralevich's avatar
      Move *_app into their own file · 748fdef6
      Nick Kralevich authored
      app.te covers a lot of different apps types (platform_app, media_app,
      shared_app, release_app, isolated_app, and untrusted_app), all
      of which are going to have slightly different security policies.
      
      Separate the different domains from app.te. Over time, these
      files are likely to grow substantially, and mixing different domain types
      is a recipe for confusion and mistakes.
      
      No functional change.
      
      Change-Id: Ida4e77fadb510f5993eb2d32f2f7649227edff4f
      748fdef6
Loading