Skip to content
Snippets Groups Projects
  1. Feb 17, 2017
    • Alex Klyubin's avatar
      Switch DRM HAL policy to _client/_server · 9b718c40
      Alex Klyubin authored
      This switches DRM HAL policy to the design which enables us to
      conditionally remove unnecessary rules from domains which are clients
      of DRM HAL.
      
      Domains which are clients of DRM HAL, such as mediadrmserver domain,
      are granted rules targeting hal_drm only when the DRM HAL runs in
      passthrough mode (i.e., inside the client's process). When the HAL
      runs in binderized mode (i.e., in another process/domain, with
      clients talking to the HAL over HwBinder IPC), rules targeting hal_drm
      are not granted to client domains.
      
      Domains which offer a binderized implementation of DRM HAL, such as
      hal_drm_default domain, are always granted rules targeting hal_drm.
      
      Test: Play movie using Google Play Movies
      Test: Play movie using Netflix
      Bug: 34170079
      Change-Id: I3ab0e84818ccd61e54b90f7ade3509b7dbf86fb9
      9b718c40
    • Nick Kralevich's avatar
      Add documentation on neverallow rules · 38c12828
      Nick Kralevich authored
      Better document the reasons behind the neverallow for tcp/udp sockets.
      
      Test: policy compiles.
      Change-Id: Iee386af3be6fc7495addc9300b5628d0fe61c8e9
      38c12828
    • Steven Moreland's avatar
      android.hidl.memory -> android.hidl.allocator · 33fb0a98
      Steven Moreland authored
      Test: hidl_test, device boots with allocator
      Bug: 35327976
      
      Merged-In: I6232a2823ff16058c70f173ec2332772048563f4
      Change-Id: I6232a2823ff16058c70f173ec2332772048563f4
      33fb0a98
    • Alex Klyubin's avatar
      Switch Bluetooth HAL policy to _client/_server · 168435fe
      Alex Klyubin authored
      This switches Bluetooth HAL policy to the design which enables us to
      conditionally remove unnecessary rules from domains which are clients
      of Bluetooth HAL.
      
      Domains which are clients of Bluetooth HAL, such as bluetooth domain,
      are granted rules targeting hal_bluetooth only when the Bluetooth HAL
      runs in passthrough mode (i.e., inside the client's process). When the
      HAL runs in binderized mode (i.e., in another process/domain, with
      clients talking to the HAL over HwBinder IPC), rules targeting
      hal_bluetooth are not granted to client domains.
      
      Domains which offer a binderized implementation of Bluetooth HAL, such
      as hal_bluetooth_default domain, are always granted rules targeting
      hal_bluetooth.
      
      Test: Toggle Bluetooth off and on
      Test: Pair with another Android, and transfer a file to that Android
            over Bluetooth
      Test: Pair with a Bluetooth speaker, play music through that
            speaker over Bluetooth
      Test: Add bluetooth_hidl_hal_test to device.mk, build & add to device,
            adb shell stop,
            adb shell /data/nativetest64/bluetooth_hidl_hal_test/bluetooth_hidl_hal_test
      Bug: 34170079
      Change-Id: I05c3ccf1e98cbbc1450a81bb1000c4fb75eb8a83
      168435fe
  2. Feb 16, 2017
    • Nick Kralevich's avatar
      Label /proc/config.gz · 929da014
      Nick Kralevich authored
      Add a label to /proc/config.gz, so we can distinguish this file from
      other /proc files in security policy.
      
      For now, only init is allowed read access. All others are denied.
      TODO: clarify exactly who needs access. Further access will be granted
      in a future commit.
      
      Bug: 35126415
      Test: policy compiles and no device boot problems.
      Change-Id: I8b480890495ce5b8aa3f8c7eb00e14159f177860
      929da014
    • Nick Kralevich's avatar
      Remove crash_dump from sys_ptrace neverallow exception · d419ed8f
      Nick Kralevich authored
      CAP_SYS_PTRACE is no longer used by crash_dump. There's no reason to
      exclude it from the neverallow compile time assertion.
      
      Test: policy compiles.
      Change-Id: Ib2dced19091406553c16e6ce538cfb68bbc1e5aa
      d419ed8f
  3. Feb 15, 2017
    • Eino-Ville Talvala's avatar
      System server: Allow get/setsched to hal_camera domain. · 6d9be831
      Eino-Ville Talvala authored
      Much like audio, the camera HAL may need to have key threads running
      in SCHED_FIFO or similar priority.  Allow system_server to raise
      thread priority for camera HALs to make this possible.
      
      Test: Video recording works, with EIS. No logspam about EIS failure.
      Bug: 35389145
      Change-Id: I1d92f9f10dc3aff22ce56b8b9cc57db043631919
      6d9be831
    • Alex Klyubin's avatar
      Use _client and _server for Audio HAL policy · ac2b4cd2
      Alex Klyubin authored
      This starts the switch for HAL policy to the approach where:
      * domains which are clients of Foo HAL are associated with
        hal_foo_client attribute,
      * domains which offer the Foo HAL service over HwBinder are
        associated with hal_foo_server attribute,
      * policy needed by the implementation of Foo HAL service is written
        against the hal_foo attribute. This policy is granted to domains
        which offer the Foo HAL service over HwBinder and, if Foo HAL runs
        in the so-called passthrough mode (inside the process of each
        client), also granted to all domains which are clients of Foo HAL.
        hal_foo is there to avoid duplicating the rules for hal_foo_client
        and hal_foo_server to cover the passthrough/in-process Foo HAL and
        binderized/out-of-process Foo HAL cases.
      
      A benefit of associating all domains which are clients of Foo HAL with
      hal_foo (when Foo HAL is in passthrough mode) is that this removes the
      need for device-specific policy to be able to reference these domains
      directly (in order to add device-specific allow rules). Instead,
      device-specific policy only needs to reference hal_foo and should no
      longer need to care which particular domains on the device are clients
      of Foo HAL. This can be seen in simplification of the rules for
      audioserver domain which is a client of Audio HAL whose policy is
      being restructured in this commit.
      
      This commit uses Audio HAL as an example to illustrate the approach.
      Once this commit lands, other HALs will also be switched to this
      approach.
      
      Test: Google Play Music plays back radios
      Test: Google Camera records video with sound and that video is then
            successfully played back with sound
      Test: YouTube app plays back clips with sound
      Test: YouTube in Chrome plays back clips with sound
      Bug: 34170079
      Change-Id: I2597a046753edef06123f0476c2ee6889fc17f20
      ac2b4cd2
    • Alex Klyubin's avatar
      Move hal_*_default policy to vendor image · ac1a6d44
      Alex Klyubin authored
      hal_*_default daemons whose policy is in common/device-agnostic policy
      are provided by the vendor image (see vendor/file_contexts). Thus,
      their policy should also reside in the vendor image, rather than in
      the system image. This means their policy should live in the vendor
      subdirectory of this project.
      
      Test: Device boots and appears to work
      Bug: 34135607
      Bug: 34170079
      Change-Id: I6613e43733e03d4a3d4726f849732d903e024016
      ac1a6d44
    • Josh Gao's avatar
      Revert "crash_dump: temporarily make permissive." · 3067af14
      Josh Gao authored
      This reverts commit 9cfe34b5.
      
      Bug: http://b/34978531
      Change-Id: I0702641c48fad273f16fa1a5f0e4483dfe408c05
      3067af14
  4. Feb 14, 2017
    • Jeff Vander Stoep's avatar
      untrusted_app: policy versioning based on targetSdkVersion · bacb6d79
      Jeff Vander Stoep authored
      Motivation:
      Provide the ability to phase in new security policies by
      applying them to apps with a minimum targetSdkVersion.
      
      Place untrusted apps with targetSdkVersion<=25 into the
      untrustd_app_25 domain. Apps with targetSdkVersion>=26 are placed
      into the untrusted_app domain. Common rules are included in the
      untrusted_app_all attribute. Apps with a more recent targetSdkVersion
      are granted fewer permissions.
      
      Test: Marlin builds and boots. Apps targeting targetSdkVersion<=25
      run in untrusted_app_25 domain. Apps targeting the current development
      build >=26 run in the untrusted_app domain with fewer permissions. No
      new denials observed during testing.
      Bug: 34115651
      Bug: 35323421
      Change-Id: Ie6a015566fac07c44ea06c963c40793fcdc9a083
      bacb6d79
    • Michael Peck's avatar
      Add minTargetSdkVersion input selector to seapp_contexts · f54b3622
      Michael Peck authored
      This new input selector allows phasing in new security policies by
      giving app developers an opportunity to make any needed compatibility
      changes before updating each app's targetSdkVersion.
      
      When all else is equal, matching entries with higher
      minTargetSdkVersion= values are preferred over entries with lower
      minTargetSdkVersion= values.
      
      Test: Marlin builds and boots. Apps targeting targetSdkVersion<=25
      run in untrusted_app_25 domain. Apps targeting the current development
      build >=26 run in the untrusted_app domain with fewer permissions. No
      new denials observed during testing.
      Bug: 34115651
      Change-Id: I14bf4f51dbe26cb9bd3f62ad0b281085441d9806
      f54b3622
  5. Feb 13, 2017
    • Steven Moreland's avatar
      Move hals to vendor partition. · aa11b6a9
      Steven Moreland authored
      Bug: 34135607
      Test: hals work
      
      Merged-In: I6a1f87438bb5b540fce900e9ec5df07d3f4f6bd4
      Change-Id: I6a1f87438bb5b540fce900e9ec5df07d3f4f6bd4
      aa11b6a9
    • Paul Lawrence's avatar
      Remove selinux denial · e9cb7638
      Paul Lawrence authored
      Don't audit directory writes to sysfs since they cannot succees
      and therefore cannot be a security issue
      
      Bug: 35303861
      Test: Make sure denial is no longer shown
      Change-Id: I1f31d35aa01e28e3eb7371b1a75fc4090ea40464
      e9cb7638
  6. Feb 12, 2017
    • Nick Kralevich's avatar
      tracefs: avoid overly generic regexes · 4cae28d4
      Nick Kralevich authored
      On boot, Android runs restorecon on a number of virtual directories,
      such as /sys and /sys/kernel/debug, to ensure that the SELinux labels
      are correct. To avoid causing excessive boot time delays, the restorecon
      code aggressively prunes directories, to avoid recursing down directory
      trees which will never have a matching SELinux label.
      
      See:
      * https://android-review.googlesource.com/93401
      * https://android-review.googlesource.com/109103
      
      The key to this optimization is avoiding unnecessarily broad regular
      expressions in file_contexts. If an overly broad regex exists, the tree
      pruning code is ineffective, and the restorecon ends up visiting lots of
      unnecessary directories.
      
      The directory /sys/kernel/debug/tracing contains approximately 4500
      files normally, and on debuggable builds, this number can jump to over
      9000 files when the processing from wifi-events.rc occurs. For
      comparison, the entire /sys/kernel/debug tree (excluding
      /sys/kernel/debug/tracing) only contains approximately 8000 files. The
      regular expression "/sys/kernel(/debug)?/tracing/(.*)?" ends up matching
      a significant number of files, which impacts boot performance.
      
      Instead of using an overly broad regex, refine the regex so only the
      files needed have an entry in file_contexts. This list of files is
      essentially a duplicate of the entries in
      frameworks/native/cmds/atrace/atrace.rc .
      
      This change reduces the restorecon_recursive call for /sys/kernel/debug
      from approximately 260ms to 40ms, a boot time reduction of approximately
      220ms.
      
      Bug: 35248779
      Test: device boots, no SELinux denials, faster boot.
      Change-Id: I70f8af102762ec0180546b05fcf014c097135f3e
      4cae28d4
  7. Feb 11, 2017
    • Nick Kralevich's avatar
      Don't try to relabel tracing directory · 6ebcfe47
      Nick Kralevich authored
      Use the default filesystem label from genfs_contexts for the directory
      /sys/kernel/debug/tracing and /sys/kernel/tracing, instead of explicitly
      attempting to relabel it.
      
      There are three cases we need to consider:
      
      1) Old-style tracing functionality is on debugfs
      2) tracing functionality is on tracefs, but mounted under debugfs
      3) tracefs is mounted at /sys/kernel/tracing
      
      For #1, the label on /sys/kernel/debug/tracing will be debugfs, and all
      processes are allowed debugfs:dir search, so having the label be debugfs
      instead of debugfs_tracing will not result in any permission change.
      
      For #2, the label on /sys/kernel/debug/tracing will be debugfs_tracing,
      which is the same as it is today. The empty directory
      /sys/kernel/tracing wlll retain the sysfs label, avoiding the denial
      below.
      
      For #3, /sys/kernel/debug/tracing won't exist, and /sys/kernel/tracing
      will have the debugfs_tracing label, where processes are allowed search
      access.
      
      Addresses the following denial:
      
      avc:  denied  { associate } for  pid=1 comm="init" name="tracing"
      dev="sysfs" ino=95 scontext=u:object_r:debugfs_tracing:s0
      tcontext=u:object_r:sysfs:s0 tclass=filesystem permissive=0
      
      Bug: 31856701
      Bug: 35197529
      Test: no denials on boot
      Change-Id: I7233ea92c6987b8edfce9c2f1d77eb25c7df820f
      6ebcfe47
    • Pawin Vongmasa's avatar
      Sepolicy for OMX hal. · 5559d21a
      Pawin Vongmasa authored
      Bug: 31399200
      Test: Compiles
      Change-Id: Ifb347a985df5deb85426a54c435c4a9c0248cb57
      5559d21a
    • Craig Donner's avatar
      Allow untrusted apps to access VrManager. · 9051eaf3
      Craig Donner authored
      There is only a single systemapi at the moment that is callable, and it is
      protected by a signature/preinstalled permission.
      
      (cherry picked from commit I778864afc9d02f8b2bfcf6b92a9f975ee87c4724)
      
      Bug: 35059826,33297721
      Test: manually on a marlin
      Change-Id: I3789ce8238f5a52ead8f466dfa3045fbcef1958e
      9051eaf3
  8. Feb 10, 2017
    • Jeff Vander Stoep's avatar
      surfaceflinger: grant access to vr_manager_service · 8bf3b7a8
      Jeff Vander Stoep authored
      Addresses
      avc:  denied  { find } for service=vrmanager pid=472 uid=1000
      scontext=u:r:surfaceflinger:s0 tcontext=u:object_r:vr_manager_service:s0
      tclass=service_manager
      
      Test: Marlin builds and boots. Denial no longer observed.
      Bug: 35258608
      Bug: 35197529
      Change-Id: I480dff3fdaf01f71e29e96f08350f705c6a23bba
      8bf3b7a8
    • Nick Kralevich's avatar
      Move net.dns* to it's own label. · 4e404290
      Nick Kralevich authored
      Move net.dns* from net_radio_prop to the newly created label
      net_dns_prop. This allows finer grain control over this specific
      property.
      
      Prior to this change, this property was readable to all SELinux domains,
      and writable by the following SELinux domains:
      
        * system_server
        * system_app (apps which run as UID=system)
        * netmgrd
        * radio
      
      This change:
      
      1) Removes read access to this property to everyone EXCEPT untrusted_app
      and system_server.
      2) Limit write access to system_server.
      
      In particular, this change removes read access to priv_apps. Any
      priv_app which ships with the system should not be reading this
      property.
      
      Bug: 34115651
      Test: Device boots, wifi turns on, no problems browsing the internet
      Change-Id: I8a32e98c4f573d634485c4feac91baa35d021d38
      4e404290
  9. Feb 09, 2017
  10. Feb 08, 2017
    • Jeff Tinker's avatar
      Fix selinux denial for binderized drm hal · fbd43f03
      Jeff Tinker authored
      Change-Id: I19d65a83c5c3f42296e8cd8a425bf1f64651068f
      related-to-bug:32815560
      fbd43f03
    • Alex Klyubin's avatar
      Move binderservicedomain policy to private · 84aebd3c
      Alex Klyubin authored
      This leaves only the existence of binderservicedomain attribute as
      public API. All other rules are implementation details of this
      attribute's policy and are thus now private.
      
      Test: No change to policy according to sesearch, except for
            disappearance of all allow rules to do with *_current targets
            referenced in binderservicedomain.te.
      Bug: 31364497
      Change-Id: Ic830bcc5ffb6d624e0b3aec831071061cccc513c
      84aebd3c
  11. Feb 07, 2017
    • Alex Klyubin's avatar
      Move blkid policy to private · 83ac242f
      Alex Klyubin authored
      This leaves only the existence of blkid and blkid_untrusted domains as
      public API. All other rules are implementation details of these
      domains' policy and are thus now private.
      
      Test: No change to policy according to sesearch, except for
            disappearance of all allow rules to do with blkid_current and
            blkid_untrusted_current (as expected).
      Bug: 31364497
      Change-Id: I0dda2feeb64608b204006eecd8a7c9b9c7bb2b81
      83ac242f
    • Joe Onorato's avatar
      Add incident command and incidentd daemon se policy. · 41f93db9
      Joe Onorato authored
      Test: adb shell incident
      Bug: 31122534
      Change-Id: I4ac9c9ab86867f09b63550707673149fe60f1906
      41f93db9
    • Alex Klyubin's avatar
      Move system_server policy to private · 59322f1a
      Alex Klyubin authored
      This leaves only the existence of system_server domain as public API.
      All other rules are implementation details of this domain's policy
      and are thus now private.
      
      Test: No change to policy according to sesearch, except for
            disappearance of all allow rules to do with
            system_server_current except those created by other domains'
            allow rules referencing system_server domain from public and
            vendor policies.
      Bug: 31364497
      
      Change-Id: Ifd76fa83c046b9327883eb6f0bbcd2113f2dd1a4
      59322f1a
    • Alex Klyubin's avatar
      Move atrace policy to private · 357c1617
      Alex Klyubin authored
      atrace and its atrace_exec now exist only in private policy.
      
      Test: No change to policy according to sesearch, except for
            disappearance of all allow rules to do with atrace_current
            which is expected now that atrace cannot be referenced from
            public or vendor policy.
      Bug: 31364497
      
      Change-Id: Ib726bcf73073083420c7c065cbd39dcddd7cabe3
      357c1617
    • Alex Klyubin's avatar
      Move audioserver policy to private · 238ce796
      Alex Klyubin authored
      This leaves only the existence of audioserver domain as public API.
      All other rules are implementation details of this domain's policy
      and are thus now private.
      
      Test: No change to policy according to sesearch, except for
            disappearance of all allow rules to do with audioserver_current
            except those created by other domains' allow rules referencing
            audioserver domain from public and vendor policies.
      Bug: 31364497
      
      Change-Id: I6662394d8318781de6e3b0c125435b66581363af
      238ce796
    • Alex Klyubin's avatar
      Move surfaceflinger policy to private · 5d30beb1
      Alex Klyubin authored
      This leaves only the existence of surfaceflinger domain as public API.
      All other rules are implementation details of this domain's policy
      and are thus now private.
      
      Test: No change to policy according to sesearch, except for
            disappearance of all allow rules to do with
            surfaceflinger_current except those created by other domains'
            allow rules referencing surfaceflinger domain from public and
            vendor policies.
      Bug: 31364497
      
      Change-Id: I177751afad82ec27a5b6d2440cf0672cb5b9dfb8
      5d30beb1
    • Alex Klyubin's avatar
      Move adbd policy to private · 8309f0a2
      Alex Klyubin authored
      This leaves only the existence of adbd domain as public API. All other
      rules are implementation details of this domain's policy and are thus
      now private.
      
      Test: No change to policy according to sesearch, except for
            disappearance of all allow rules to do with adbd_current except
            those created by other domains' allow rules referencing adbd
            domain from public and vendor policies.
      
      Bug: 31364497
      Change-Id: Icdce8b89f67c70c6c4c116471aaa412e55028cd8
      8309f0a2
  12. Feb 06, 2017
    • Alex Klyubin's avatar
      Move bluetoothdomain policy to private · 661430e0
      Alex Klyubin authored
      This leaves only the existence of bluetoothdomain attribute as public
      API. All other rules are implementation details of this attribute's
      policy and are thus now private.
      
      Test: No change to policy according to sesearch, except for
            disappearance of all allow bluetoothdomain bluetooth_current
            rule (as expected).
      Bug: 31364497
      
      Change-Id: I0edfc30d98e1cd9fb4f41a2900954d9cdbb4db14
      661430e0
    • Alex Klyubin's avatar
      Move bluetooth policy to private · 801b5ec4
      Alex Klyubin authored
      This leaves only the existence of bluetooth domain as public API.
      All other rules are implementation details of this domain's policy
      and are thus now private.
      
      Test: No change to policy according to sesearch, except for
            disappearance of all allow rules to do with bluetooth_current
            except those created by other domains' allow rules referencing
            bluetooth domain from public and vendor policy.
      Bug: 31364497
      
      Change-Id: I3521b74a1a9f6c5a5766b358e944dc5444e3c536
      801b5ec4
    • Alex Klyubin's avatar
      Move mdnsd policy to private · d833f6ba
      Alex Klyubin authored
      This leaves only the existence of mdnsd domain as public API. All
      other rules are implementation details of this domains's policy and
      are thus now private.
      
      Test: No change to policy according to sesearch, except for
            disappearance of all allow rules to do with mdnsd_current (as
            expected).
      Bug: 31364497
      
      Change-Id: Ia4f01d91e7d593401e8cde2d796a0f1023f6dae4
      d833f6ba
    • Alex Klyubin's avatar
      Move netdomain policy to private · 372dc67f
      Alex Klyubin authored
      This leaves only the existence of netdomain attribute as public API.
      All other rules are implementation details of this attribute's policy
      and are thus now private.
      
      Test: No change to policy according to sesearch, except for
            disappearance of all allow rules to do with netdomain_current
            and *_current attributes targeted when netdomain rules reference
            public types.
      Bug: 31364497
      Change-Id: I102e649374681ce1dd9e1e5ccbaaa5cb754e00a0
      372dc67f
    • Chia-I Wu's avatar
      Allow HWC to be binderized · 1b95d88c
      Chia-I Wu authored
      Test: manual
      Bug: 32021609
      Change-Id: I6793794f3b1fb95b8dd9336f75362447de618274
      1b95d88c
    • 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
    • Jin Qian's avatar
      storaged: allow register and callback from batteryproperties · 61670b86
      Jin Qian authored
      Test: adb shell dumpsys storaged
      Bug: 33086174
      Bug: 34198239
      Change-Id: I85d6bd05192a205662f69466d7d6208e8b834eff
      61670b86
    • 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
    • Stephen Smalley's avatar
      Define the user namespace capability classes and access vectors. · 8a003607
      Stephen Smalley authored
      
      Kernel commit 8e4ff6f228e4722cac74db716e308d1da33d744f
      (selinux: distinguish non-init user namespace capability checks)
      introduced support for distinguishing capability
      checks against a target associated with the init user namespace
      versus capability checks against a target associated with a non-init
      user namespace by defining and using separate security classes for the
      latter.  This support is needed on Linux to support e.g. Chrome usage of
      user namespaces for the Chrome sandbox without needing to allow Chrome to
      also exercise capabilities on targets in the init user namespace.
      
      Define the new security classes and access vectors for the Android policy.
      Refactor the original capability and capability2 access vector definitions
      as common declarations to allow reuse by the new cap_userns and cap2_userns
      classes.
      
      This change does not allow use of the new classes by any domain; that
      is deferred to future changes as needed if/when Android enables user
      namespaces and the Android version of Chrome starts using them.
      
      The kernel support went upstream in Linux 4.7.
      
      Based on the corresponding refpolicy patch by Chris PeBenito, but
      reworked for the Android policy.
      
      Test: policy builds
      
      Change-Id: I71103d39e93ee0e8c24816fca762944d047c2235
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      8a003607
    • Chad Brubaker's avatar
      Move neverallows from untrusted_app.te to app_neverallows.te · 46e5a060
      Chad Brubaker authored
      The neverallows in untrusted_app will all apply equally to ephemeral app
      and any other untrusted app domains we may add, so this moves them to a
      dedicated separate file.
      
      This also removes the duplicate rules from isolated_app.te and ensures
      that all the untrusted_app neverallows also apply to isolated_app.
      
      Test: builds
      Change-Id: Ib38e136216ccbe5c94daab732b7ee6acfad25d0b
      46e5a060
Loading