Skip to content
Snippets Groups Projects
  1. Mar 22, 2017
    • Jeff Vander Stoep's avatar
      Grant additional permissions for ASAN builds · 74434848
      Jeff Vander Stoep authored
      ASAN builds may require additional permissions to launch processes
      with ASAN wrappers. In this case, system_server needs permission to
      execute /system/bin/sh.
      
      Create with_asan() macro which can be used exclusively on debug
      builds. Note this means that ASAN builds with these additional
      permission will not pass the security portion of CTS - like any
      other debug build.
      
      Addresses:
      avc: denied { execute } for name="sh" dev="dm-0" ino=571
      scontext=u:r:system_server:s0 tcontext=u:object_r:shell_exec:s0
      tclass=file
      
      Test: lunch aosp_marlin-userdebug;
            cd system/sepolicy; mm SANITIZE_TARGET=address;
            Verify permissions granted using with_asan() are granted.
      Test: lunch aosp_marlin-userdebug;
            cd system/sepolicy; mm;
            Verify permissions granted using with_asan() are not granted.
      Test: lunch aosp_marlin-user;
            cd system/sepolicy; mm SANITIZE_TARGET=address;
            Verify permissions granted using with_asan() are not granted.
      Bug: 36138508
      Change-Id: I6e39ada4bacd71687a593023f16b45bc16cd7ef8
      74434848
    • Treehugger Robot's avatar
    • Treehugger Robot's avatar
      cc45b87c
    • Treehugger Robot's avatar
    • Roshan Pius's avatar
      wpa_supplicant: Remove unnecessary permissions from system_server · f27e8f09
      Roshan Pius authored
      Now that the android wifi framework has fully switched over to HIDL,
      remove the sepolicy permissions for accessing wpa_supplicant using
      socket control interface.
      
      While there, also removed the redundant |hwbinder_use|.
      
      Bug: 35707797
      Test: Device boots up and able to connect to wifi networks.
      Test: Wifi integration tests passed.
      Change-Id: I55e24b852558d1a905b189116879179d62bdc76c
      f27e8f09
    • Nick Kralevich's avatar
      app.te: prevent locks of files on /system · 92c44a57
      Nick Kralevich authored
      Prevent app domains (processes spawned by zygote) from acquiring
      locks on files in /system. In particular, /system/etc/xtables.lock
      must never be lockable by applications, as it will block future
      iptables commands from running.
      
      Test: device boots and no obvious problems.
      Change-Id: Ifd8dc7b117cf4a622b30fd4fffbcab1b76c4421b
      92c44a57
    • Treehugger Robot's avatar
      9d5f97b3
  2. Mar 21, 2017
    • Alex Klyubin's avatar
      6de0d9a7
    • Chad Brubaker's avatar
    • Treehugger Robot's avatar
      Merge "Enforce one HAL per domain." · d3266558
      Treehugger Robot authored
      d3266558
    • Alex Klyubin's avatar
      Remove unnecessary binder_call from cameraserver · 57ab0015
      Alex Klyubin authored
      This is a follow-up to 93391686
      which added both
      hal_client_domain(cameraserver, hal_graphics_allocator) and
      binder_call(cameraserver, hal_graphics_allocator). The latter
      binder_call rule is no longer needed because it is automatically
      granted by virtue of cameraserver being marked as a client of
      Graphics Allocator HAL --
      see 49274721.
      
      Test: Take a photo (both HDR and conventional) using Google Camera
      Test: Record video using Google Camera
      Test: Record slow motion video using Google Camera
      Test: No denials to do with cameraserver and hal_graphics_allocator*
      Bug: 34170079
      Change-Id: If93fe310fa62923b5107a7e78d158f6e4b4d0b3a
      57ab0015
    • Chad Brubaker's avatar
      Disallow access to proc_net for ephemeral_app · c4a938e7
      Chad Brubaker authored
      Test: Boots, runs
      Bug: 32713782
      Change-Id: Ia58db3c4c0159482f08e72ef638f3e1736095918
      c4a938e7
    • Jeff Vander Stoep's avatar
      Enforce one HAL per domain. · 84b96a6b
      Jeff Vander Stoep authored
      HALs are intended to be limited responsibility and thus limited
      permission. In order to enforce this, place limitations on:
      1. What processes may transition into a HAL - currently only init
      2. What methods may be used to transition into a HAL - no using
         seclabel
      3. When HALs exec - only allow exec with a domain transition.
      
      Bug: 36376258
      Test: Build aosp_marlin, aosp_bullhead, aosp_dragon. Neverallow rules
            are compile time assertions, so building is a sufficient test.
      
      Change-Id: If4df19ced730324cf1079f7a86ceba7c71374131
      84b96a6b
    • Yin-Chia Yeh's avatar
    • Alex Klyubin's avatar
      Remove unused hal_impl_domain macro · cb839c64
      Alex Klyubin authored
      All previous users of this macro have been switched to
      hal_server_domain macro.
      
      Test: no hal_impl_domain in system/sepolicy/ and device/**/sepolicy
      Test: mmm system/sepolicy
      Bug: 34170079
      Change-Id: I4a71b3fd5046c0d215b056f1cae25fe6bda0fb45
      cb839c64
    • Treehugger Robot's avatar
      cc877324
    • Jiyong Park's avatar
      Allow app to access configstore HAL · ed4625f3
      Jiyong Park authored
      Apps should be able to access the configstore HAL since framework
      libraries which are loaded into app process can call configstore.
      
      Letting apps have direct access to this HAL is OK because: 
      
      (1) the API of this HAL does not make clients provide any sensitive 
      information to the HAL, which makes it impossible for the HAL to 
      disclose sensitive information of its clients when the HAL is 
      compromised, 
      
      (2) we will require that this HAL is binderized (i.e., does not run 
      inside the process of its clients), 
      
      (3) we will require that this HAL runs in a tight seccomp sandbox 
      (this HAL doesn't need much access, if at all) and,
      
      (4) we'll restrict the HALs powers via neverallows.
      
      Test: apps can use configstore hal.
      
      Change-Id: I04836b7318fbc6ef78deff770a22c68ce7745fa9
      ed4625f3
    • Alex Klyubin's avatar
  3. Mar 20, 2017
    • Yin-Chia Yeh's avatar
      Camera: allow cameraserver access hal_graphics_allocator · 93391686
      Yin-Chia Yeh authored
      Test: Google camera app snapshot/record/
            slow motion recording
      Bug: 36383997
      Change-Id: I565fb441aec529464474e0dd0e01dbfe0b167c82
      93391686
    • Alex Klyubin's avatar
      Switch Allocator HAL policy to _client/_server · 08d6f566
      Alex Klyubin authored
      This switches Allocator HAL policy to the design which enables us to
      identify all SELinux domains which host HALs and all domains which are
      clients of HALs.
      
      Allocator HAL is special in the sense that it's assumed to be always
      binderized. As a result, rules in Camera HAL target hal_allocator_server
      rather than hal_allocator (which would be the server and any client, if
      the Allocator HAL runs in passthrough mode).
      
      Test: Device boots up, no new denials
      Test: YouTube video plays back
      Test: Take photo using Google Camera app, recover a video, record a slow
            motion video
      Bug: 34170079
      Change-Id: Ifbbca554ec221712361ee6cda94c82f254d84936
      08d6f566
    • Alex Klyubin's avatar
      Move Graphics Allocator HAL IPC rules to proper location · 49274721
      Alex Klyubin authored
      Every client of Graphics Allocator HAL needs permission to (Hw)Binder
      IPC into the HAL.
      
      Test: Device boots, no denials to do with hal_graphics_allocator
            (also, removing the binder_call(hal_graphics_allocator_client,
            hal_graphics_allocator_server) leads to denials)
      Test: GUI works, YouTube works
      Bug: 34170079
      
      Change-Id: I5c64d966862a125994dab903c2eda5815e336a94
      49274721
    • Alex Klyubin's avatar
      Recovery can use HALs only in passthrough mode · 00a03d42
      Alex Klyubin authored
      This adjusts the grants for recovery to make it explicit that recovery
      can use the Boot Control HAL only in passthrough mode.
      
      Test: Device boots up, no new denials
      Test: Reboot into recovery, sideload OTA update succeeds
      Test: Apply OTA update via update_engine:
            1. make dist
            2. Ensure device has network connectivity
            3. ota_call.py -s <serial here> out/dist/sailfish-ota-*.zip
      Bug: 34170079
      
      Change-Id: I0888816eca4d77939a55a7816e6cae9176713ee5
      00a03d42
    • Treehugger Robot's avatar
    • Janis Danisevskis's avatar
      Fix sepolicy for Gatekeeper HAL · 12e960e6
      Janis Danisevskis authored
      This patch fixes Gatekeeper HAL rules.
      
      Bug: 34260418
      Test: Device boots with gatekeeper_hal using hwbinder and
            gatekeeperd does not fall back to software.
      Change-Id: I6aaacb08faaa7a90506ab569425dc525334c8171
      12e960e6
  4. Mar 18, 2017
    • Alex Klyubin's avatar
      Switch Boot Control HAL policy to _client/_server · 09d13e73
      Alex Klyubin authored
      This switches Boot Control HAL policy to the design which enables us
      to conditionally remove unnecessary rules from domains which are
      clients of Boot Control HAL.
      
      Domains which are clients of Boot Control HAL, such as update_server,
      are granted rules targeting hal_bootctl only when the Boot Control 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_bootctl are not granted to client domains.
      
      Domains which offer a binderized implementation of Boot Control HAL,
      such as hal_bootctl_default domain, are always granted rules targeting
      hal_bootctl.
      
      P. S. This commit removes direct access to Boot Control HAL from
      system_server because system_server is not a client of this HAL. This
      commit also removes bootctrl_block_device type which is no longer
      used. Finally, boot_control_hal attribute is removed because it is now
      covered by the hal_bootctl attribute.
      
      Test: Device boots up, no new denials
      Test: Reboot into recovery, sideload OTA update succeeds
      Test: Apply OTA update via update_engine:
            1. make dist
            2. Ensure device has network connectivity
            3. ota_call.py -s <serial here> out/dist/sailfish-ota-*.zip
      Bug: 34170079
      Change-Id: I9c410c092069e431a3852b66c04c4d2a9f1a25cf
      09d13e73
  5. Mar 17, 2017
    • Treehugger Robot's avatar
      11ce09bc
    • Jorge Lucangeli Obes's avatar
      ppp: Allow specific ioctls on mtp:socket. · fd21dc0e
      Jorge Lucangeli Obes authored
      The fix for b/35100237 surfaced this error. This SELinux policy
      fragment was included only on Marlin, but needs to be included in core
      policy.
      
      Bug: 35100237
      Test: With https://android-review.googlesource.com/#/c/354292/
      Test: Set up PPTP VPN using http://www.vpnbook.com/ on Marlin.
      Test: Connect:
      03-17 15:41:22.602  3809  3809 I mtpd    : Starting pppd (pppox = 9)
      03-17 15:41:22.628  3811  3811 I pppd    : Using PPPoX (socket = 9)
      03-17 15:41:22.637  3811  3811 I pppd    : pppd 2.4.7 started by vpn, uid 1016
      03-17 15:41:22.639  3811  3811 I pppd    : Using interface ppp0
      03-17 15:41:22.639  3811  3811 I pppd    : Connect: ppp0 <-->
      03-17 15:41:22.770  3811  3811 I pppd    : CHAP authentication succeeded
      03-17 15:41:22.909  3811  3811 I pppd    : MPPE 128-bit stateless compression enabled
      03-17 15:41:23.065  3811  3811 I pppd    : local  IP address 172.16.36.113
      03-17 15:41:23.065  3811  3811 I pppd    : remote IP address 172.16.36.1
      03-17 15:41:23.065  3811  3811 I pppd    : primary   DNS address 8.8.8.8
      03-17 15:41:23.065  3811  3811 I pppd    : secondary DNS address 91.239.100.100
      
      Change-Id: I192b4dfc9613d1000f804b9c4ca2727d502a1927
      fd21dc0e
    • Andreas Gampe's avatar
      Sepolicy: Allow postinstall to read links · 3cc71b09
      Andreas Gampe authored
      Certain libraries may actually be links. Allow OTA dexopt to read
      those links.
      
      Bug: 25612095
      Test: m
      Change-Id: Iafdb899a750bd8d1ab56e5f6dbc09d836d5440ed
      3cc71b09
    • Andreas Gampe's avatar
      Sepolicy: Allow getattr for otapreopt_slot · f7c2613e
      Andreas Gampe authored
      Allow getattr on links for otapreopt_slot. It reads links (to the
      boot image oat files) when collecting the size of the artifacts
      for logging purposes.
      
      Bug: 30832951
      Test: m
      Change-Id: If97f7a77fc9bf334a4ce8a613c212ec2cfc4c581
      f7c2613e
    • Treehugger Robot's avatar
    • Alex Klyubin's avatar
      Annotate most remaining HALs with _client/_server · 9e6b24c6
      Alex Klyubin authored
      This switches most remaining HALs to the _client/_server approach.
      To unblock efforts blocked on majority of HALs having to use this
      model, this change does not remove unnecessary rules from clients of
      these HALs. That work will be performed in follow-up commits. This
      commit only adds allow rules and thus does not break existing
      functionality.
      
      The HALs not yet on the _client/_server model after this commit are:
      * Allocator HAL, because it's non-trivial to declare all apps except
        isolated apps as clients of this HAL, which they are.
      * Boot HAL, because it's still on the non-attributized model and I'm
        waiting for update_engine folks to answer a couple of questions
        which will let me refactor the policy of this HAL.
      
      Test: mmm system/sepolicy
      Test: Device boots, no new denials
      Test: Device boots in recovery mode, no new denials
      Bug: 34170079
      Change-Id: I03e6bcec2fa02f14bdf17d11f7367b62c68a14b9
      9e6b24c6
    • Calin Juravle's avatar
  6. Mar 16, 2017
    • Mathias Agopian's avatar
      Allow apps to access the graphic allocator HAL · 312e7eaa
      Mathias Agopian authored
      Test: take a screenshot
      Test: run CTS ImageReaderTest
      Bug: 36194109
      
      (cherry picked from commit 49ed0cd6)
      
      Change-Id: I331bce37b35e30084ba9f7ecd063a344a79c5232
      312e7eaa
    • Treehugger Robot's avatar
      156ccbb2
    • Treehugger Robot's avatar
    • Calin Juravle's avatar
      Allow profman to analyze profiles for the secondary dex files · ebcec9b8
      Calin Juravle authored
      The secondary dex files are application dex files which gets reported
      back to the framework when using BaseDexClassLoader.
      
      Also, give dex2oat lock permissions as it needs to lock the profile
      during compilation.
      
      Example of SElinux denial:
      03-15 12:38:46.967  7529  7529 I profman : type=1400 audit(0.0:225):
      avc: denied { read } for
      path="/data/data/com.google.android.googlequicksearchbox/files/velour/verified_jars/JDM5LaUbYP1JPOLzJ81GLzg_1.jar.prof"
      dev="sda35" ino=877915 scontext=u:r:profman:s0
      tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=file permissive=1
      
      Test: adb shell cmd package bg-dexopt-job works for sercondary dex files
      Bug: 26719109
      Change-Id: Ie1890d8e36c062450bd6c54f4399fc0730767dbf
      ebcec9b8
    • Treehugger Robot's avatar
    • Jaesoo Lee's avatar
      enabled /sbin/modprobe for recovery mode · d363b0f9
      Jaesoo Lee authored
      This change defines new policy for modprobe (/sbin/modprobe) that should
      be used in both recovery and android mode.
      
      Denials:
      [   16.986440] c0    437 audit: type=1400 audit(6138546.943:5): avc:
      denied  { read } for  pid=437 comm="modprobe" name="modules" dev="proc"
      ino=4026532405 scontext=u:object_r:modprobe:s0
      tcontext=u:object_r:proc:s0 tclass=file permissive=1
      [   16.986521] c0    437 audit: type=1400 audit(6138546.943:6): avc:
      denied  { open } for  pid=437 comm="modprobe" path="/proc/modules"
      dev="proc" ino=4026532405 scontext=u:object_r:modprobe:s0
      tcontext=u:object_r:proc:s0 tclass=file permissive=1
      [   16.986544] c0    437 audit: type=1400 audit(6138546.943:7): avc:
      denied  { getattr } for  pid=437 comm="modprobe" path="/proc/modules"
      dev="proc" ino=4026532405 scontext=u:object_r:modprobe:s0
      tcontext=u:object_r:proc:s0 tclass=file permissive=1
      
      Bug: 35633646
      Test: Build and tested it works in sailfish recovery. The modprobe is
      invoked in init.rc (at the end of 'on init') with following command line
      
          exec u:r:modprobe:s0 -- /sbin/modprobe -a nilfs2 ftl
      
      Change-Id: Ie70be6f918bea6059f806e2eb38cd48229facafa
      d363b0f9
  7. Mar 15, 2017
    • Jiwen 'Steve' Cai's avatar
      Allow fd access between mediacodec and bufferhubd · eeb0d380
      Jiwen 'Steve' Cai authored
      bufferhubd should be able to use sync fence fd from mediacodec; and
      mediacodec should be able to use a gralloc buffer fd from the bufferhubd.
      
      Bug: 32213311
      Test: Ran exoplayer_demo and verify mediacodec can plumb buffer through
      bufferhub.
      
      Change-Id: Id175827c56c33890ecce33865b0b1167d872fc56
      eeb0d380
    • Yifan Hong's avatar
      Allow system_server binder_call into hal_graphics_allocator · 3107a6c3
      Yifan Hong authored
      Test: no log spam for graphics allocator
      Test: dmesg | audit2allow does not show denial for
      hal_graphics_allocator_default
      Test: system is responsive after boot (because
            android.hardware.graphics.allocator@2.0::IAllocator getService()
            will not be blocked)
      
      Bug: 36220026
      Change-Id: I3e103f88988fe4a94888e92ee8c5b1f27845ad9e
      3107a6c3
Loading