Skip to content
Snippets Groups Projects
  1. Nov 16, 2018
  2. Oct 26, 2018
    • Tri Vo's avatar
      same_process_hal_file: access to individual coredomains · 90cf5a7f
      Tri Vo authored
      Remove blanket coredomain access to same_process_hal_file in favor of
      granular access. This change takes into account audits from go/sedenials
      (our internal dogfood program)
      
      Bug: 37211678
      Test: m selinux_policy
      Change-Id: I5634fb65c72d13007e40c131a600585a05b8c4b5
      90cf5a7f
  3. Aug 02, 2018
    • Nick Kralevich's avatar
      Start partitioning off privapp_data_file from app_data_file · 23c9d91b
      Nick Kralevich authored
      Currently, both untrusted apps and priv-apps use the SELinux file label
      "app_data_file" for files in their /data/data directory. This is
      problematic, as we really want different rules for such files. For
      example, we may want to allow untrusted apps to load executable code
      from priv-app directories, but disallow untrusted apps from loading
      executable code from their own home directories.
      
      This change adds a new file type "privapp_data_file". For compatibility,
      we adjust the policy to support access privapp_data_files almost
      everywhere we were previously granting access to app_data_files
      (adbd and run-as being exceptions). Additional future tightening is
      possible here by removing some of these newly added rules.
      
      This label will start getting used in a followup change to
      system/sepolicy/private/seapp_contexts, similar to:
      
        -user=_app isPrivApp=true domain=priv_app type=app_data_file levelFrom=user
        +user=_app isPrivApp=true domain=priv_app type=privapp_data_file levelFrom=user
      
      For now, this newly introduced label has no usage, so this change
      is essentially a no-op.
      
      Test: Factory reset and boot - no problems on fresh install.
      Test: Upgrade to new version and test. No compatibility problems on
            filesystem upgrade.
      
      Change-Id: I9618b7d91d1c2bcb5837cdabc949f0cf741a2837
      23c9d91b
  4. May 16, 2018
    • Jeff Vander Stoep's avatar
      Fix diff in cherry-pick · 141b00fb
      Jeff Vander Stoep authored
      Changes 2d626fd84ea0246c963ce2c87ae62461a60f8826 and
      869562e9 are the same
      commit, but with a different comment. Fix them up to be
      the same.
      
      Test: build
      Change-Id: I6311413357f457d6ba95886b729ffa53ab80e016
      141b00fb
  5. Apr 13, 2018
    • Jaekyun Seok's avatar
      Whitelist vendor-init-settable bluetooth_prop and wifi_prop · a11b16c9
      Jaekyun Seok authored
      Values of the following properties are set by SoC vendors on some
      devices including Pixels.
      - persist.bluetooth.a2dp_offload.cap
      - persist.bluetooth.a2dp_offload.enable
      - persist.vendor.bluetooth.a2dp_offload.enable
      - ro.bt.bdaddr_path
      - wlan.driver.status
      
      So they should be whitelisted for compatibility.
      
      Bug: 77633703
      Test: succeeded building and tested with Pixels
      Change-Id: Ib2b81bcc1fd70ddd571dc7fb2b923b576d62b7d5
      Merged-In: Ib2b81bcc1fd70ddd571dc7fb2b923b576d62b7d5
      (cherry picked from commit 224921d1)
      a11b16c9
    • Jaekyun Seok's avatar
      Whitelist vendor-init-settable bluetooth_prop and wifi_prop · 224921d1
      Jaekyun Seok authored
      Values of the following properties are set by SoC vendors on some
      devices including Pixels.
      - persist.bluetooth.a2dp_offload.cap
      - persist.bluetooth.a2dp_offload.enable
      - persist.vendor.bluetooth.a2dp_offload.enable
      - ro.bt.bdaddr_path
      - wlan.driver.status
      
      So they should be whitelisted for compatibility.
      
      Bug: 77633703
      Test: succeeded building and tested with Pixels
      Change-Id: Ib2b81bcc1fd70ddd571dc7fb2b923b576d62b7d5
      224921d1
  6. Feb 23, 2018
    • Robert Sesek's avatar
      Remove rules for starting the webview_zygote as a child of init. · 869562e9
      Robert Sesek authored
      The webview_zygote is now launched as a child-zygote process from the
      main zygote process.
      
      Bug: 63749735
      Test: m
      Test: Launch "Third-party licenses" activity from Settings, and it
            renders correctly via the WebView.
      Merged-In: I9c948b58a969d35d5a5add4b6ab62b8f990645d1
      Change-Id: I153476642cf14883b0dfea0d9f5b3b5e30ac1c08
      869562e9
  7. Feb 16, 2018
    • Robert Sesek's avatar
      Remove rules for starting the webview_zygote as a child of init. · ca4c4e57
      Robert Sesek authored
      The webview_zygote is now launched as a child-zygote process from the
      main zygote process.
      
      Bug: 63749735
      Test: m
      Test: Launch "Third-party licenses" activity from Settings, and it
            renders correctly via the WebView.
      Change-Id: I9c948b58a969d35d5a5add4b6ab62b8f990645d1
      ca4c4e57
  8. Feb 15, 2018
    • Robert Sesek's avatar
      SELinux changes to accomodate starting the webview_zygote as a child of the zygote. · febdfa4e
      Robert Sesek authored
      In this architecture, the system_server instructs the zygote to fork a
      child-zygote to be the webview_zygote. The system_server tells this new
      zygote to listen for fork requests on a random abstract unix socket of
      its choosing.
      
      A follow-up CL will remove the rules for starting webview_zygote via
      init.
      
      Bug: 63749735
      Test: m
      Test: Launch "Third-party licenses" activity from Settings, and it
            renders correctly via the WebView.
      Merged-In: I864743943c11c18de386010ecd4b616721cb9954
      Change-Id: I1c352e47b66eca3a3fa641daa6ecc3e7a889b54e
      febdfa4e
  9. Feb 14, 2018
    • Robert Sesek's avatar
      SELinux changes to accomodate starting the webview_zygote as a child of the zygote. · bacb19b9
      Robert Sesek authored
      In this architecture, the system_server instructs the zygote to fork a
      child-zygote to be the webview_zygote. The system_server tells this new
      zygote to listen for fork requests on a random abstract unix socket of
      its choosing.
      
      A follow-up CL will remove the rules for starting webview_zygote via
      init.
      
      Bug: 63749735
      Test: m
      Test: Launch "Third-party licenses" activity from Settings, and it
            renders correctly via the WebView.
      Change-Id: I864743943c11c18de386010ecd4b616721cb9954
      bacb19b9
  10. Feb 05, 2018
    • Chris Morin's avatar
      prevent benign dex2oat selinux denial temporarily · 9644df47
      Chris Morin authored
      Since we now call patchoat --verify in zygote art loading code, we have
      the unintended effect of webview zygote calling patchoat --verify. This
      is undesireable since webview zygote doesn't need to verify the .art
      files after the app_process zygote has already done so. The exec of
      patchoat fails for webview zygote, and this change hides that. This
      change should be reverted when b/72957399 is resolved.
      
      Bug: 66697305
      Test: Ensure no new selinux denials were introduced.
      Change-Id: I4152edc920e5c436516b958b8c861dcc1c4751d8
      9644df47
  11. Jan 03, 2018
    • Jeff Vander Stoep's avatar
      Fix permission typo · 42d82b42
      Jeff Vander Stoep authored
      zygote->webview_zygote.
      
      Forgot to ammend local change.
      
      Test: webview_zygote denials are gone.
      Change-Id: I02869812feafd127b39e567c28e7278133770e97
      42d82b42
  12. Jan 02, 2018
    • Jeff Vander Stoep's avatar
      webview_zygote: allow listing dirs in /system · 3588ddd0
      Jeff Vander Stoep authored
      For consistency with zygote, allow webview_zygote to list directories
      in /system.
      
      Test: Boot Taimen. Verify webiew_zygote denials during boot.
      Bug: 70857705
      Change-Id: I27eb18c377a5240d7430abf301c1c3af61704d59
      3588ddd0
  13. Nov 21, 2017
    • Benjamin Gordon's avatar
      sepolicy: Add rules for non-init namespaces · 9b2e0cbe
      Benjamin Gordon authored
      In kernel 4.7, the capability and capability2 classes were split apart
      from cap_userns and cap2_userns (see kernel commit
      8e4ff6f228e4722cac74db716e308d1da33d744f). Since then, Android cannot be
      run in a container with SELinux in enforcing mode.
      
      This change applies the existing capability rules to user namespaces as
      well as the root namespace so that Android running in a container
      behaves the same on pre- and post-4.7 kernels.
      
      This is essentially:
        1. New global_capability_class_set and global_capability2_class_set
           that match capability+cap_userns and capability2+cap2_userns,
           respectively.
        2. s/self:capability/self:global_capability_class_set/g
        3. s/self:capability2/self:global_capability2_class_set/g
        4. Add cap_userns and cap2_userns to the existing capability_class_set
           so that it covers all capabilities.  This set was used by several
           neverallow and dontaudit rules, and I confirmed that the new
           classes are still appropriate.
      
      Test: diff new policy against old and confirm that all new rules add
            only cap_userns or cap2_userns;
            Boot ARC++ on a device with the 4.12 kernel.
      Bug: crbug.com/754831
      
      Change-Id: I4007eb3a2ecd01b062c4c78d9afee71c530df95f
      9b2e0cbe
  14. Sep 26, 2017
  15. Jul 12, 2017
    • Jeff Vander Stoep's avatar
      suppress logspam · fc283871
      Jeff Vander Stoep authored
      avc: denied { search } for name="tmp" dev="sda13" ino=1867778
      scontext=u:r:isolated_app:s0:c512,c768
      tcontext=u:object_r:shell_data_file:s0 tclass=dir
      
      avc: denied { getattr } for path="/mnt/expand" dev="tmpfs" ino=9850
      scontext=u:r:webview_zygote:s0 tcontext=u:object_r:mnt_expand_file:s0
      tclass=dir
      
      Bug: 63631799
      Test: build. Denial no longer appears in the logs
      Change-Id: Ie8a297c73b0f0e9008a7bf24438ef5354bf893df
      fc283871
  16. Jun 26, 2017
    • Stephen Smalley's avatar
      Define smc_socket security class. · 2be9799b
      Stephen Smalley authored
      
      Linux kernel commit da69a5306ab9 ("selinux: support distinctions among all
      network address families") triggers a build error if a new address family
      is added without defining a corresponding SELinux security class.  As a
      result, the smc_socket class was added to the kernel to resolve a build
      failure as part of merge commit 3051bf36c25d that introduced AF_SMC circa
      Linux 4.11.  Define this security class and its access vector, add
      it to the socket_class_set macro, and exclude it from webview_zygote
      like other socket classes.
      
      Test:  Policy builds
      
      Change-Id: Idbb8139bb09c6d1c47f1a76bd10f4ce1e9d939cb
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      2be9799b
  17. Mar 29, 2017
    • Sandeep Patil's avatar
      seapp_context: explicitly label all seapp context files · 1e149967
      Sandeep Patil authored
      
      seapp_context files need to be explicitly labeled as they are now split
      cross system and vendor and won't have the generic world readable
      'system_file' label.
      
      Bug: 36002414
      Test: no new 'seapp_context' denials at boot complete on sailfish
      Test: successfully booted into recovery without denials and sideloaded
            OTA update.
      Test: ./cts-tradefed run singleCommand cts --skip-device-info \
            --skip-preconditions --skip-connectivity-check --abi \
            arm64-v8a --module CtsSecurityHostTestCases -t \
            android.security.cts.SELinuxHostTest#testAospSeappContexts
      Test: Launch 'chrome' and succesfully load a website.
      Test: Launch Camera and take a picture.
      Test: Launch Camera and record a video, succesfully playback recorded
            video
      
      Change-Id: I19b3e50c6a7c292713d3e56ef0448acf6e4270f7
      Signed-off-by: default avatarSandeep Patil <sspatil@google.com>
      1e149967
  18. Mar 24, 2017
    • Alex Klyubin's avatar
      Vendor domains must not use Binder · f5446eb1
      Alex Klyubin authored
      On PRODUCT_FULL_TREBLE devices, non-vendor domains (except vendor
      apps) are not permitted to use Binder. This commit thus:
      * groups non-vendor domains using the new "coredomain" attribute,
      * adds neverallow rules restricting Binder use to coredomain and
        appdomain only, and
      * temporarily exempts the domains which are currently violating this
        rule from this restriction. These domains are grouped using the new
        "binder_in_vendor_violators" attribute. The attribute is needed
        because the types corresponding to violators are not exposed to the
        public policy where the neverallow rules are.
      
      Test: mmm system/sepolicy
      Test: Device boots, no new denials
      Test: In Chrome, navigate to ip6.me, play a YouTube video
      Test: YouTube: play a video
      Test: Netflix: play a movie
      Test: Google Camera: take a photo, take an HDR+ photo, record video with
            sound, record slow motion video with sound. Confirm videos play
            back fine and with sound.
      Bug: 35870313
      Change-Id: I0cd1a80b60bcbde358ce0f7a47b90f4435a45c95
      f5446eb1
  19. Feb 06, 2017
    • Stephen Smalley's avatar
      Remove obsolete netlink_firewall_socket and netlink_ip6fw_socket classes. · 4921085d
      Stephen Smalley authored
      
      The implementation for NETLINK_FIREWALL and NETLINK_IP6_FW protocols
      was removed from the kernel in commit
      d16cf20e2f2f13411eece7f7fb72c17d141c4a84 ("netfilter: remove ip_queue
      support") circa Linux 3.5.  Unless we need to retain compatibility
      for kernels < 3.5, we can drop these classes from the policy altogether.
      
      Possibly the neverallow rule in app.te should be augmented to include
      the newer netlink security classes, similar to webview_zygote, but
      that can be a separate change.
      
      Test: policy builds
      
      Change-Id: Iab9389eb59c96772e5fa87c71d0afc86fe99bb6b
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      4921085d
    • Stephen Smalley's avatar
      Define extended_socket_class policy capability and socket classes · 431bdd9f
      Stephen Smalley authored
      
      Add a definition for the extended_socket_class policy capability used
      to enable the use of separate socket security classes for all network
      address families rather than the generic socket class.  The capability
      also enables the use of separate security classes for ICMP and SCTP
      sockets, which were previously mapped to rawip_socket class.  Add
      definitions for the new socket classes and access vectors enabled by
      this capability.  Add the new socket classes to the socket_class_set
      macro, and exclude them from webview_zygote domain as with other socket
      classes.
      
      Allowing access by specific domains to the new socket security
      classes is left to future commits.  Domains previously allowed
      permissions to the 'socket' class will require permission to the
      more specific socket class when running on kernels with this support.
      
      The kernel support will be included upstream in Linux 4.11.  The
      relevant kernel commits are da69a5306ab92e07224da54aafee8b1dccf024f6
      ("selinux: support distinctions among all network address families"),
      ef37979a2cfa3905adbf0c2a681ce16c0aaea92d ("selinux: handle ICMPv6
      consistently with ICMP"), and b4ba35c75a0671a06b978b6386b54148efddf39f
      ("selinux: drop unused socket security classes").
      
      This change requires selinux userspace commit
      d479baa82d67c9ac56c1a6fa041abfb9168aa4b3 ("libsepol: Define
      extended_socket_class policy capability") in order to build the
      policy with this capability enabled.  This commit is already in
      AOSP master.
      
      Test: policy builds
      
      Change-Id: I788b4be9f0ec0bf2356c0bbef101cd42a1af49bb
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      431bdd9f
    • Chad Brubaker's avatar
      Merge ephemeral data and apk files into app · 4c40d734
      Chad Brubaker authored
      The rules for the two types were the same and /data/app-ephemeral is
      being removed. Remove these types.
      
      Test: Builds
      Change-Id: I520c026395551ad1362dd2ced53c601d9e6f9b28
      4c40d734
  20. Jan 27, 2017
    • Alex Klyubin's avatar
      Move webview_zygote policy to private · a7653ee2
      Alex Klyubin authored
      This leaves only the existence of webview_zygote domain and its
      executable's webview_zygote_exec file label as public API. All other
      rules are implementation details of this domain's policy and are thus
      now private.
      
      Test: Device boots, with Multiproces WebView developer setting
            enabled, apps with WebView work fine. No new denials.
      Bug: 31364497
      
      Change-Id: I179476c43a50863ee3b327fc5155847d992a040d
      a7653ee2
  21. Nov 11, 2016
    • Robert Sesek's avatar
      Add the "webview_zygote" domain. · dc43f7cd
      Robert Sesek authored
      The webview_zygote is a new unprivileged zygote and has its own sockets for
      listening to fork requests. However the webview_zygote does not run as root
      (though it does require certain capabilities) and only allows dyntransition to
      the isolated_app domain.
      
      Test: m
      Test: angler boots
      
      Bug: 21643067
      Change-Id: I89a72ffe6dcb983c4a44048518efd7efb7ed8e83
      dc43f7cd
  22. 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
Loading