Skip to content
Snippets Groups Projects
  1. Feb 17, 2017
  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
    • Nick Kralevich's avatar
      system_server: replace sys_resource with sys_ptrace · 44866954
      Nick Kralevich authored
      Commit https://android.googlesource.com/kernel/common/+/f0ce0eee added
      CAP_SYS_RESOURCE as a capability check which would allow access to
      sensitive /proc/PID files. However, in an SELinux based world, allowing
      this access causes CAP_SYS_RESOURCE to duplicate what CAP_SYS_PTRACE
      (without :process ptrace) already provides.
      
      Use CAP_SYS_PTRACE instead of CAP_SYS_RESOURCE.
      
      Add a neverallow rule to prevent system_server from using this
      capability to ptrace attach to any other process. This limits the
      capability of system_server to only reading sensitive /proc files, but
      not ptrace() access.
      
      Test: Device boots, functionality remains identical, no sys_resource
      denials from system_server.
      Bug: 34951864
      Change-Id: I04d745b436ad75ee1ebecf0a61c6891858022e34
      44866954
    • Alex Vakulenko's avatar
      Add SELinux policies for vr_window_manager · c5680561
      Alex Vakulenko authored
      This set of rules is neeeded to allow vr_windows_manager to run
      successfully on the system.
      
      Bug: 32541196
      Test: `m -j32` succeeds. Sailfish device boots.
      Change-Id: I0aec94d80f655a6f47691cf2622dd158ce9e475f
      c5680561
    • 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
    • Eino-Ville Talvala's avatar
      System server: Allow get/setsched to hal_camera domain. · 6d53c9e1
      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
      6d53c9e1
    • 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
    • Steven Moreland's avatar
      Move hals to vendor partition. · 079f2dd1
      Steven Moreland authored
      Bug: 34135607
      Test: hals work
      Change-Id: I6a1f87438bb5b540fce900e9ec5df07d3f4f6bd4
      079f2dd1
    • 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
    • Craig Donner's avatar
      Allow untrusted apps to access VrManager. · eaa6bb7c
      Craig Donner authored
      There is only a single systemapi at the moment that is callable, and it is
      protected by a signature/preinstalled permission.
      
      Bug: 35059826,33297721
      Test: manually on a marlin
      Change-Id: I778864afc9d02f8b2bfcf6b92a9f975ee87c4724
      eaa6bb7c
    • 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
    • Todd Poynor's avatar
      Add /data/misc/reboot and reboot_data_file context · ca051f6d
      Todd Poynor authored
      Add a file context for keeping track of last reboot reason and label
      directory /data/misc/reboot/ for this purpose.
      
      Bug: 30994946
      Test: manual: reboot ocmmand, setprop sys.powerctl, SoC thermal mgr
      Change-Id: I9569420626b4029a62448b3f729ecbbeafbc3e66
      ca051f6d
    • 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
Loading