Skip to content
Snippets Groups Projects
  1. Oct 11, 2018
    • Tri Vo's avatar
      Constrain cgroups access. · f55c989d
      Tri Vo authored
      What changed:
      - Removed cgroup access from untrusted and priv apps.
      - Settings app writes to /dev/stune/foreground/tasks, so system_app domain
      retains access to cgroup.
      - libcutils exports API to /dev/{cpuset, stune}/*. This API seems to be used
      abundantly in native code. So added a blanket allow rule for (coredomain - apps)
      to access cgroups.
      - For now, only audit cgroup access from vendor domains. Ultimately, we want to
      either constrain vendor access to individual domains or, even better, remove
      vendor access and have platform manage cgroups exclusively.
      
      Changes from original aosp/692189 which was reverted:
      - There seem to be spurious denials from vendor-specific apps. So added
      back access from { appdomain -all_untrusted_apps -priv_app } to cgroup.
      Audit this access with intent to write explicit per-domain rules for it.
      
      Bug: 110043362
      Test: adb shell setprop ro.config.per_app_memcg true, device correctly populates
      /dev/memcg on a per app basis on a device that supports that.
      Test: aosp_sailfish, wahoo boot without cgroup denials
      This reverts commit cacea25e.
      Change-Id: I05ab404f348a864e8409d811346c8a0bf49bc47a
      f55c989d
  2. Oct 10, 2018
    • Nick Kralevich's avatar
      Revert "Constrain cgroups access." · cacea25e
      Nick Kralevich authored
      This reverts commit 9899568f.
      
      Reason for revert: Reports of high numbers of SELinux denials
      showing up on the SELinux dashboard.
      
      Bug: 110043362
      Change-Id: Id8fc260c47ffd269ac2f15ff7dab668c959e3ab0
      cacea25e
  3. Oct 09, 2018
    • Tri Vo's avatar
      Constrain cgroups access. · 9899568f
      Tri Vo authored
      What changed:
      - Removed cgroup access from untrusted and priv apps.
      - Settings app writes to /dev/stune/foreground/tasks, so system_app domain
      retains access to cgroup.
      - libcutils exports API to /dev/{cpuset, stune}/*. This API seems to be used
      abundantly in native code. So added a blanket allow rule for (coredomain - apps)
      to access cgroups.
      - For now, only audit cgroup access from vendor domains. Ultimately, we want to
      either constrain vendor access to individual domains or, even better, remove
      vendor access and have platform manage cgroups exclusively.
      
      Bug: 110043362
      Test: adb shell setprop ro.config.per_app_memcg true, device correctly populates
      /dev/memcg on a per app basis on a device that supports that.
      Test: aosp_sailfish, wahoo boot without cgroup denials
      Change-Id: I9e441b26792f1edb1663c660bcff422ec7a6332b
      9899568f
  4. Oct 04, 2018
  5. Sep 28, 2018
    • Chenbo Feng's avatar
      Block access to xt_qtaguid proc files · 16dbe82e
      Chenbo Feng authored
      In the next Android release, there will be devices that have no
      xt_qtaguid module at all and framework and netd will decide which code
      path it takes for trafficStats depending on the device setup. So all
      apps and services should not depend on this device specific
      implementation anymore and use public API for the data they need.
      
      Bug: 114475331
      Bug: 79938294
      Test: QtaguidPermissionTest
      
      Change-Id: I0d37b2df23782eefa2e8977c6cdbf9210db3e0d2
      16dbe82e
  6. Sep 04, 2018
    • Jeff Vander Stoep's avatar
      app: Allow all apps to read dropbox FDs · 6026a4ad
      Jeff Vander Stoep authored
      DropboxManager may pass FDs to any app with the READ_LOGS
      permission which is available to all apps as a development
      permission.
      
      Test: atest CtsIncidentHostTestCases
      Fixes: 111856304
      Change-Id: I329e3125dab83de948b860061df9d232e31cb23e
      6026a4ad
  7. Aug 22, 2018
  8. 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
  9. Jun 29, 2018
  10. Jun 01, 2018
  11. May 04, 2018
    • Jeff Vander Stoep's avatar
      Start the process of locking down proc/net · 7a4af30b
      Jeff Vander Stoep authored
      Files in /proc/net leak information. This change is the first step in
      determining which files apps may use, whitelisting benign access, and
      otherwise removing access while providing safe alternative APIs.
      
      To that end, this change:
      * Introduces the proc_net_type attribute which will assigned to any
      new SELinux types in /proc/net to avoid removing access to privileged
      processes. These processes may be evaluated later, but are lower
      priority than apps.
      * Labels /proc/net/{tcp,tcp6,udp,udp6} as proc_net_vpn due to existing
      use by VPN apps. This may be replaced by an alternative API.
      * Audits all other proc/net access for apps.
      * Audits proc/net access for other processes which are currently
      granted broad read access to /proc/net but should not be including
      storaged, zygote, clatd, logd, preopt2cachename and vold.
      
      Bug: 9496886
      Bug: 68016944
      Test: Boot Taimen-userdebug. On both wifi and cellular: stream youtube
          navigate maps, send text message, make voice call, make video call.
          Verify no avc "granted" messages in the logs.
      Test: A few VPN apps including "VPN Monster", "Turbo VPN", and
      "Freighter". Verify no logspam with the current setup.
      Test: atest CtsNativeNetTestCases
      Test: atest netd_integration_test
      Test: atest QtaguidPermissionTest
      Test: atest FileSystemPermissionTest
      
      Change-Id: I7e49f796a25cf68bc698c6c9206e24af3ae11457
      Merged-In: I7e49f796a25cf68bc698c6c9206e24af3ae11457
      (cherry picked from commit 08731895)
      7a4af30b
  12. Apr 20, 2018
    • Joel Galenson's avatar
      Remove some priv_app logspam. · f5cfaa09
      Joel Galenson authored
      avc: denied { search } for name="/" scontext=u:r:priv_app:s0:c512,c768 tcontext=u:object_r:fs_bpf:s0 tclass=dir permissive=0
      
      Bug: 72749888
      Test: Boot without seeing the denial.
      Change-Id: Iaf3559928473c68066e6a42ba71655a683861901
      (cherry picked from commit 9ec59f6c)
      f5cfaa09
    • Joel Galenson's avatar
      Remove some priv_app logspam. · 9ec59f6c
      Joel Galenson authored
      avc: denied { search } for name="/" scontext=u:r:priv_app:s0:c512,c768 tcontext=u:object_r:fs_bpf:s0 tclass=dir permissive=0
      
      Bug: 72749888
      Test: Boot without seeing the denial.
      Change-Id: Iaf3559928473c68066e6a42ba71655a683861901
      9ec59f6c
  13. Apr 18, 2018
    • Jeff Vander Stoep's avatar
      Protect dropbox service data with selinux · 4d3ee1a5
      Jeff Vander Stoep authored
      Create a new label for /data/system/dropbox, and neverallow direct
      access to anything other than init and system_server.
      
      While all apps may write to the dropbox service, only apps with
      android.permission.READ_LOGS, a signature|privileged|development
      permission, may read them. Grant access to priv_app, system_app,
      and platform_app, and neverallow access to all untrusted_apps.
      
      Bug: 31681871
      Test: atest CtsStatsdHostTestCases
      Test: atest DropBoxTest
      Test: atest ErrorsTests
      Change-Id: Ice302b74b13c4d66e07b069c1cdac55954d9f5df
      4d3ee1a5
  14. 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
  15. Apr 10, 2018
    • Max Bires's avatar
      Merge "Adding ability for priv apps to read traceur fd" · a949ddb5
      Max Bires authored
      am: 8966b8e5
      
      Bug: 74435522
      Test: traceur can share to betterbug
      Change-Id: Ic24196b6a4050696d92f18a6879c569ccf5eaec7
      (cherry picked from commit f66fd522)
      a949ddb5
    • Jeff Vander Stoep's avatar
      priv_app: remove more logspam · 9dc1d538
      Jeff Vander Stoep authored
      avc: denied { read } for name="ext4" dev="sysfs" ino=32709
      scontext=u:r:priv_app:s0:c512,c768 tcontext=u:object_r:sysfs:s0
      tclass=dir permissive=0 b/72749888
      avc: denied { read } for name="state" dev="sysfs" ino=51318
      scontext=u:r:priv_app:s0:c512,c768
      tcontext=u:object_r:sysfs_android_usb:s0 tclass=file permissive=0
      b/72749888
      
      Bug: 72749888
      Test: build/boot taimen-userdebug. No more logspam
      Change-Id: Ic43d1c8b71e1e5e0e6f9af1e03816c4084120e7e
      Merged-In: Ic43d1c8b71e1e5e0e6f9af1e03816c4084120e7e
      (cherry picked from commit 558cdf1e)
      9dc1d538
  16. Apr 04, 2018
    • Jeff Vander Stoep's avatar
      priv_app: remove more logspam · 558cdf1e
      Jeff Vander Stoep authored
      avc: denied { read } for name="ext4" dev="sysfs" ino=32709
      scontext=u:r:priv_app:s0:c512,c768 tcontext=u:object_r:sysfs:s0
      tclass=dir permissive=0 b/72749888
      avc: denied { read } for name="state" dev="sysfs" ino=51318
      scontext=u:r:priv_app:s0:c512,c768
      tcontext=u:object_r:sysfs_android_usb:s0 tclass=file permissive=0
      b/72749888
      
      Bug: 72749888
      Test: build/boot taimen-userdebug. No more logspam
      Change-Id: Ic43d1c8b71e1e5e0e6f9af1e03816c4084120e7e
      558cdf1e
  17. Apr 03, 2018
    • Nathan Harold's avatar
      Allow getsockopt and setsockopt for Encap Sockets · 252b0153
      Nathan Harold authored
      Because applications should be able to set the receive
      timeout on UDP encapsulation sockets, we need to allow
      setsockopt(). getsockopt() is an obvious allowance as
      well.
      
      Bug: 68689438
      Test: compilation
      Merged-In: I2eaf72bcce5695f1aee7a95ec03111eca577651c
      Change-Id: I2eaf72bcce5695f1aee7a95ec03111eca577651c
      252b0153
    • Nathan Harold's avatar
      Allow getsockopt and setsockopt for Encap Sockets · ea4eaaf1
      Nathan Harold authored
      Because applications should be able to set the receive
      timeout on UDP encapsulation sockets, we need to allow
      setsockopt(). getsockopt() is an obvious allowance as
      well.
      
      Bug: 68689438
      Test: compilation
      Change-Id: I2eaf72bcce5695f1aee7a95ec03111eca577651c
      ea4eaaf1
  18. Mar 13, 2018
    • Max Bires's avatar
      Adding ability for priv apps to read traceur fd · 715e2ae3
      Max Bires authored
      Only untrusted apps had privilegs to read file descriptors passed in
      from traceur, which was an oversight. This fixes the policy so that priv
      apps can also access file descriptors from traceur in order to read
      reports shared from traceur.
      
      Bug: 74435522
      Test: better bug has access to reports shared from traceur
      Change-Id: I591872cdac31eec62edbc81d95f1220f1152427f
      715e2ae3
  19. Jan 30, 2018
  20. Jan 20, 2018
  21. Jan 19, 2018
    • Tao Bao's avatar
      Add rules for system_update service. · d7d9cfca
      Tao Bao authored
      system_update service manages system update information: system updater
      (priv_app) publishes the pending system update info through the service,
      while other apps can read the info accordingly (design doc in
      go/pi-ota-platform-api).
      
      This CL adds the service type, and grants priv_app to access the service.
      
      Bug: 67437079
      Test: Build and flash marlin image. The system_update service works.
      Change-Id: I7a3eaee3ecd3e2e16b410413e917ec603566b375
      d7d9cfca
  22. Jan 18, 2018
    • Jeff Vander Stoep's avatar
      Suppress denials for non-API access · 6d8a876a
      Jeff Vander Stoep authored
      avc: denied { read } scontext=u:r:priv_app:s0:c512,c768
      tcontext=u:object_r:proc_version:s0 tclass=file
      avc: denied { read } scontext=u:r:priv_app:s0:c512,c768
      tcontext=u:object_r:wifi_prop:s0 tclass=file
      avc: denied { read } scontext=u:r:priv_app:s0:c512,c768
      tcontext=u:object_r:net_dns_prop:s0 tclass=file
      
      Bug: 72151306
      Test: build
      Change-Id: I4b658ccd128746356f635ca7955385a89609eea1
      6d8a876a
  23. Jan 15, 2018
    • Nathan Harold's avatar
      Allow More Apps to Recv UDP Sockets from SystemServer · ee268643
      Nathan Harold authored
      This gives the privilege to system apps, platform apps,
      ephemeral apps, and privileged apps to receive a
      UDP socket from the system server. This is being added
      for supporting UDP Encapsulation sockets for IPsec, which
      must be provided by the system.
      
      This is an analogous change to a previous change that
      permitted these sockets for untrusted_apps:
      0f75a62e
      
      Bug: 70389346
      Test: IpSecManagerTest, System app verified with SL4A
      Change-Id: Iec07e97012e0eab92a95fae9818f80f183325c31
      ee268643
  24. Jan 10, 2018
    • Primiano Tucci's avatar
      Perfetto SELinux policies · c80f9e03
      Primiano Tucci authored
      Perfetto is a performance instrumentation and logging framework,
      living in AOSP's /external/pefetto.
      Perfetto introduces in the system one binary and two daemons
      (the binary can specialize in either depending on the cmdline).
      
      1) traced: unprivileged daemon. This is architecturally similar to logd.
         It exposes two UNIX sockets:
         - /dev/socket/traced_producer : world-accessible, allows to stream
           tracing data. A tmpfs file descriptor is sent via SCM_RIGHTS
           from traced to each client process, which needs to be able to
           mmap it R/W (but not X)
         - /dev/socket/traced_consumer : privilege-accessible (only from:
           shell, statsd). It allows to configure tracing and read the trace
           buffer.
      2) traced_probes: privileged daemon. This needs to:
         - access tracingfs (/d/tracing) to turn tracing on and off.
         - exec atrace
         - connect to traced_producer to stream data to traced.
      
      init.rc file:
      https://android-review.googlesource.com/c/platform/external/perfetto/+/575382/14/perfetto.rc
      
      Bug: 70942310
      Change-Id: Ia3b5fdacbd5a8e6e23b82f1d6fabfa07e4abc405
      c80f9e03
  25. Jan 09, 2018
  26. Nov 30, 2017
  27. Nov 09, 2017
    • Jeff Vander Stoep's avatar
      Allow vendor apps to use surfaceflinger_service · 63f46773
      Jeff Vander Stoep authored
      Vendor apps may only use servicemanager provided services
      marked as app_api_service. surfaceflinger_service should be
      available to vendor apps, so add this attribute and clean up
      duplicate grants.
      
      Addresses:
      avc:  denied  { find } scontext=u:r:qtelephony:s0
      tcontext=u:object_r:surfaceflinger_service:s0 tclass=service_manager
      avc:  denied  { find } scontext=u:r:ssr_detector:s0
      tcontext=u:object_r:surfaceflinger_service:s0 tclass=service_manager
      avc:  denied  { find } scontext=u:r:qcneservice:s0
      tcontext=u:object_r:surfaceflinger_service:s0 tclass=service_manager
      
      Bug: 69064190
      Test: build
      Change-Id: I00fcf43b0a8bde232709aac1040a5d7f4792fa0f
      63f46773
  28. Oct 20, 2017
  29. Sep 27, 2017
    • Dan Cashman's avatar
      Fix build. Split mediaprovider from priv_app. · 3e21c5f1
      Dan Cashman authored
      This CL was accidentally reverted a second time by commit:
      cb5129f9.  Submit it for the third,
      and final, time.
      
      (cherry-pick of 5637587d
      which was in AOSP and internal master but not stage-aosp-master)
      
      Bug: 62102757
      Test: Builds and boots.
      Change-Id: I0394907e808c737422e644aec452baa3e777cf6f
      3e21c5f1
  30. Sep 26, 2017
  31. Jul 10, 2017
  32. Jun 16, 2017
  33. Jun 15, 2017
    • Jeff Vander Stoep's avatar
      Suppress safetynet denials · 6e88ebf4
      Jeff Vander Stoep authored
      Clean up ~50 denials such as:
      avc: denied { getattr } for comm="highpool[2]" path="/system/bin/bufferhubd" dev="dm-0" ino=1029 scontext=u:r:priv_app:s0:c522,c768 tcontext=u:object_r:bufferhubd_exec:s0 tclass=file
      avc: denied { getattr } for comm="highpool[3]" path="/system/bin/cppreopts.sh" dev="dm-0" ino=2166 scontext=u:r:priv_app:s0:c512,c768 tcontext=u:object_r:cppreopts_exec:s0 tclass=file
      avc: denied { getattr } for comm="CTION_IDLE_MODE" path="/system/bin/fsck.f2fs" dev="dm-0" ino=1055 scontext=u:r:priv_app:s0:c522,c768 tcontext=u:object_r:fsck_exec:s0 tclass=file
      
      Bug: 62602225
      Bug: 62485981
      Test: build policy
      Change-Id: I5fbc84fb6c97c325344ac95ffb09fb0cfcb90b95
      6e88ebf4
  34. Jun 08, 2017
    • Jerry Zhang's avatar
      Revert "Split mediaprovider from priv_app." · cb5129f9
      Jerry Zhang authored
      This reverts commit c147b592.
      
      The new domain changed neverallows, breaking CTS compatability.
      Revert the domain now, with the intention to re-add for the next
      release.
      
      Bug: 62102757
      Test: domain is set to priv_app
      Change-Id: I907ff7c513cd642a306e3eaed3937352ced90005
      cb5129f9
  35. Jun 07, 2017
  36. Jun 02, 2017
    • Jerry Zhang's avatar
      Revert "Split mediaprovider from priv_app." · c00c07c1
      Jerry Zhang authored
      This reverts commit c147b592.
      
      The new domain changed neverallows, breaking CTS compatability.
      Revert the domain now, with the intention to re-add for the next
      release.
      
      Bug: 62102757
      Test: domain is set to priv_app
      Change-Id: I907ff7c513cd642a306e3eaed3937352ced90005
      c00c07c1
Loading