Skip to content
Snippets Groups Projects
  1. Feb 09, 2018
    • Chenbo Feng's avatar
      Block SDK 28 app from using proc/net/xt_qtaguid · 5ec8f843
      Chenbo Feng authored
      The file under /proc/net/xt_qtaguid is going away in future release.
      Apps should use the provided public api instead of directly reading the
      proc file. This change will block apps that based on SDK 28 or above to
      directly read that file and we will delete that file after apps move
      away from it.
      
      Test: Flashed with master branch on marlin, verified phone boot, can
            browse web, watch youtube video, make phone call and use google
            map for navigation with wifi on and off.
            run cts -m CtsNetTestCases -t android.net.cts.TrafficStatsTest
            run cts -m CtsAppSecurityHostTestCases -t \
            		android.appsecurity.cts.AppSecurityTests
      
      Change-Id: I4c4d6c9ab28b426acef23db53f171de8f20be1dc
      5ec8f843
  2. Feb 06, 2018
  3. Jan 30, 2018
    • Chenbo Feng's avatar
      Remove app access to qtaguid ctrl/stats file · fad0b04d
      Chenbo Feng authored
      Remove the untrusted apps and priviledged apps from the group that can
      directly access xt_qtaguid module related file. All apps that need to
      access app network usage data need to use the public API provided in
      framework.
      
      Test: Flashed with master branch on marlin, verified phone boot, can
            browse web, watch youtube video, make phone call and use google
            map for navigation with either wifi is on or off.
            run cts -m CtsNetTestCases -t android.net.cts.TrafficStatsTest
            run cts -m CtsNativeNetTestCases
      Bug: 68774956 30950746
      
      Change-Id: I9b3db819d6622611d5b512ef821abb4c28d6c9eb
      fad0b04d
  4. Jan 24, 2018
    • Marissa Wall's avatar
      sepolicy: restrict access to uid_cpupower files · dfe063c3
      Marissa Wall authored
      Do not let apps read /proc/uid_cpupower/time_in_state,
      /proc/uid_cpupower/concurrent_active_time,
      /proc/uid_cpupower/concurrent_policy_time.
      
      b/71718257
      
      Test: Check that they can't be read from the shell
          without root permissions and system_server was able
          to read them
      
      Change-Id: I812694adfbb4630f7b56aa7096dc2e6dfb148b15
      dfe063c3
  5. Jan 11, 2018
    • Jeff Vander Stoep's avatar
      relabel files in /proc/net/xt_qtaguid/ · 43303c8b
      Jeff Vander Stoep authored
      /proc/net/xt_qtaguid is used by apps to track their network data
      use. Limit access to just zygote spawned processes - apps and
      system_server, omitting access to isolated_app which is not allowed
      to create network sockets.
      As Android moves to eBPF for app's network data stats, access to
      /proc/net/xt_qtaguid will be removed entirely. Segmenting access off
      is the first step.
      Bug: 68774956
      
      This change also helps further segment and whitelist access to
      files in /proc/net and is a step in the lockdown of /proc/net.
      Bug: 9496886
      
      Test: boot Taimen. Walk through setup-wizard. Make phone call and
          video call. Browse web. Watch youtube. Navigate in maps.
      Test: cts-tradefed run cts -m CtsAppSecurityHostTestCases -t \
          android.appsecurity.cts.AppSecurityTests
      Test: cts-tradefed run cts -m CtsNativeNetTestCases
      Test: cts-tradefed run cts -m CtsIncidentHostTestCases -t \
          com.android.server.cts.NetstatsIncidentTest
      Test: cts-tradefed run cts -m CtsOsTestCases -t \
          android.os.cts.StrictModeTest
      Test: cts-tradefed run cts -m CtsNetTestCases -t \
          android.net.cts.TrafficStatsTest
      Test: cts-tradefed run cts -m CtsUsageStatsTestCases -t \
          android.app.usage.cts.NetworkUsageStatsTest
      Test: vts-tradefed run vts -m VtsQtaguidTest
      Change-Id: Idddd318c56b84564142d37b11dcc225a2f2800ea
      43303c8b
  6. Dec 22, 2017
  7. Dec 20, 2017
    • Jeff Vander Stoep's avatar
      app: move appdomain to public policy · 77b290f3
      Jeff Vander Stoep authored
      Vendor-specific app domains depend on the rules in app.te so they
      must reside in public policy.
      
      Bug: 70517907
      Test: build
      Change-Id: If45557a5732a06f78c752779a8182e053beb25a2
      Merged-In: If45557a5732a06f78c752779a8182e053beb25a2
      (cherry picked from commit 1f4cab8b)
      77b290f3
  8. Dec 19, 2017
    • Jeff Vander Stoep's avatar
      app: move appdomain to public policy · 1f4cab8b
      Jeff Vander Stoep authored
      Vendor-specific app domains depend on the rules in app.te so they
      must reside in public policy.
      
      Bug: 70517907
      Test: build
      Change-Id: If45557a5732a06f78c752779a8182e053beb25a2
      1f4cab8b
  9. Dec 16, 2017
    • Jeff Vander Stoep's avatar
      Audit app access to /proc/net/* · 84f96859
      Jeff Vander Stoep authored
      Many processes including third party apps are expected to
      access /proc/net/xt_qtaguid/stats. Give this file a new label
      to avoid spamming the logs and temporarily grant read access to
      all processes.
      
      Read-only permission is adequate for all processes based on unix
      permissions.
      sailfish:/ # ls -laZ /proc/net/xt_qtaguid/stats
      -r--r--r--  1 root net_bw_stats u:object_r:proc_net_xt_qtaguid_stats:s0 stats
      
      Bug: 9496886
      Bug: 68016944
      Bug: 70722355
      Test: Build/flash Sailfish. Browse in Chrome and watch videos in youtube.
          No "denied" or "granted" selinux messages observed in the logs.
      
      Change-Id: I29f1ee806c8149988b9b93a950790d14754927ef
      84f96859
  10. Dec 12, 2017
    • Marissa Wall's avatar
      Restrict access to uid_concurrent_*_time · 80ee23f7
      Marissa Wall authored
      Do not let apps read uid_concurrent_active_time and
      uid_concurrent_policy_time.
      
      b/68399339
      
      Test: Check that they can't be read from the shell
          without root permissions and system_server was able
          to read them
      
      Change-Id: I6f09ef608607cb9f4084ba403a1e7254b8c49a06
      80ee23f7
  11. Nov 21, 2017
    • Benjamin Gordon's avatar
      sepolicy: Add rules for non-init namespaces · 9b2e0cbe
      Benjamin Gordon authored
      In kernel 4.7, the capability and capability2 classes were split apart
      from cap_userns and cap2_userns (see kernel commit
      8e4ff6f228e4722cac74db716e308d1da33d744f). Since then, Android cannot be
      run in a container with SELinux in enforcing mode.
      
      This change applies the existing capability rules to user namespaces as
      well as the root namespace so that Android running in a container
      behaves the same on pre- and post-4.7 kernels.
      
      This is essentially:
        1. New global_capability_class_set and global_capability2_class_set
           that match capability+cap_userns and capability2+cap2_userns,
           respectively.
        2. s/self:capability/self:global_capability_class_set/g
        3. s/self:capability2/self:global_capability2_class_set/g
        4. Add cap_userns and cap2_userns to the existing capability_class_set
           so that it covers all capabilities.  This set was used by several
           neverallow and dontaudit rules, and I confirmed that the new
           classes are still appropriate.
      
      Test: diff new policy against old and confirm that all new rules add
            only cap_userns or cap2_userns;
            Boot ARC++ on a device with the 4.12 kernel.
      Bug: crbug.com/754831
      
      Change-Id: I4007eb3a2ecd01b062c4c78d9afee71c530df95f
      9b2e0cbe
  12. Sep 26, 2017
  13. Sep 18, 2017
  14. Sep 05, 2017
  15. Sep 01, 2017
  16. Aug 14, 2017
    • Steven Moreland's avatar
      Add screencap domain. · 9216a6ad
      Steven Moreland authored
      Only seeing this denial in permissive:
      allow shell screencap_exec:file getattr;
      
      Bug: 37565047
      Test: adb shell screencap w/o root
      Test: cts-tradefed run cts-dev --module CtsAadbHostTestCases
      Merged-In: I9f31d2067e002e7042646ee38dbfc06687481ac7
      Change-Id: I9f31d2067e002e7042646ee38dbfc06687481ac7
      9216a6ad
    • Steven Moreland's avatar
      Add screencap domain. · 6b780b35
      Steven Moreland authored
      Only seeing this denial in permissive:
      allow shell screencap_exec:file getattr;
      
      Bug: 37565047
      Test: adb shell screencap w/o root
      Test: cts-tradefed run cts-dev --module CtsAadbHostTestCases
      Merged-In: I9f31d2067e002e7042646ee38dbfc06687481ac7
      Change-Id: I9f31d2067e002e7042646ee38dbfc06687481ac7
      6b780b35
  17. Aug 11, 2017
    • Nick Kralevich's avatar
      Validate no-cross-domain /proc/PID access · 7a463809
      Nick Kralevich authored
      Android uses hidepid=2 to restrict visibility to other /proc entries on
      the system. This helps preserve user, application, and system
      confidentiality by preventing unauthorized access to application metadata,
      and addresses attacks such as
      http://www.cs.ucr.edu/~zhiyunq/pub/sec14_android_activity_inference.pdf
      
      Ensure the SELinux (weaker) equivalent is being enforced by adding
      neverallow compile time assertions.
      
      TODO: The "shell" user runs as both an Android application, as well as
      spawned via adb shell. This was a mistake. We should separate out the
      "shell" Android app into it's own SELinux domain. For now, exclude the
      shell from this assertion. (The shell Android app is covered by
      hidepid=2, so there's no leaking of data, but still, it's over
      privileged today and should be cleaned up.
      
      Bug: 23310674
      Test: policy compiles. Compile time assertion only.
      Change-Id: I0e1a6506b2719aabf7eb8127f046c4ada947ba90
      7a463809
    • Steven Moreland's avatar
      Add screencap domain. · f27bba93
      Steven Moreland authored
      Only seeing this denial in permissive:
      allow shell screencap_exec:file getattr;
      
      Bug: 37565047
      Test: adb shell screencap w/o root
      Test: cts-tradefed run cts-dev --module CtsAadbHostTestCases
      Change-Id: I9f31d2067e002e7042646ee38dbfc06687481ac7
      f27bba93
  18. Jul 28, 2017
    • Philip P. Moltmann's avatar
      Allow untrusted apps to read apks · bdac15aa
      Philip P. Moltmann authored
      Bug: 37281396
      Test: cts-tradefed run cts-dev -m CtsContentTestCases --test=android.content.pm.cts.InstallSessionTransferTest
      Change-Id: If2094057d1acfbbf007ae108225decd9ad70e459
      bdac15aa
  19. Jul 13, 2017
    • Andreas Gampe's avatar
      App: Allow wrapped app to send pid · 3a5abb3b
      Andreas Gampe authored
      Allow wrapped app to send pid back to zygote.
      
      (cherry picked from commit ee694980)
      
      Bug: 63566721
      Bug: 63635227
      Test: lunch angler-userdebug && m
      Test: lunch angler-user && m
      Test: lunch angler-user && m && fastboot flashall && m cts && cts-tradefed run commandAndExit cts-dev -m CtsWrapWrapDebugTestCases
      Change-Id: Ie1b41c3eb124aa5ee321c124d0121a0e965f0f0e
      3a5abb3b
    • Andreas Gampe's avatar
      App: Allow wrapped app to send pid · ee694980
      Andreas Gampe authored
      Allow wrapped app to send pid back to zygote.
      
      Bug: 63566721
      Bug: 63635227
      Test: lunch angler-userdebug && m
      Test: lunch angler-user && m
      Test: lunch angler-user && m && fastboot flashall && m cts && cts-tradefed run commandAndExit cts-dev -m CtsWrapWrapDebugTestCases
      Change-Id: Ie1b41c3eb124aa5ee321c124d0121a0e965f0f0e
      ee694980
  20. Jun 23, 2017
    • Jeff Vander Stoep's avatar
      system_server is a client of configstore · 23e0a7f2
      Jeff Vander Stoep authored
      avc:  denied  { find } for
      interface=android.hardware.configstore::ISurfaceFlingerConfigs
      scontext=u:r:system_server:s0
      tcontext=u:object_r:hal_configstore_ISurfaceFlingerConfigs:s0
      tclass=hwservice_manager permissive=0
      
      Bug: 35197529
      Test: Device boots without this denial
      Change-Id: Ia43bc5879e03a1f2056e373b17cc6533636f98b1
      23e0a7f2
    • Narayan Kamath's avatar
      DO NOT MERGE ANYWHERE Revert "SEPolicy: Changes for new stack dumping scheme." · 034f5840
      Narayan Kamath authored
      NOTE: This change is marked dnma because we don't want it on
      oc-dr1-dev-plus-aosp or any other downstream branch. Moreover,
      oc-dr1-dev-plus-aosp is the only outgoing merger from oc-dr1-dev for
      this project.
      
      This reverts commit 11bfcc1e.
      
      Bug: 62908344
      Test: make
      Change-Id: Ide61829cf99f15777c46f657a0e140d594f88243
      034f5840
  21. Jun 22, 2017
    • Daniel Rosenberg's avatar
      Add rules for vfat for sdcardfs · 8a65aeca
      Daniel Rosenberg authored
      
      This adds parellel rules to the ones added for media_rw_data_file
      to allow apps to access vfat under sdcardfs. This should be reverted
      if sdcardfs is modified to alter the secontext it used for access to
      the lower filesystem
      
      Change-Id: Idb123206ed2fac3ead88b0c1ed0b66952597ac65
      Bug: 62584229
      Test: Run android.appsecurity.cts.ExternalStorageHostTest with
            an external card formated as vfat
      Signed-off-by: default avatarDaniel Rosenberg <drosen@google.com>
      8a65aeca
  22. Jun 16, 2017
    • Daniel Rosenberg's avatar
      Add rules for vfat for sdcardfs · 260a4485
      Daniel Rosenberg authored
      
      This adds parellel rules to the ones added for media_rw_data_file
      to allow apps to access vfat under sdcardfs. This should be reverted
      if sdcardfs is modified to alter the secontext it used for access to
      the lower filesystem
      
      Change-Id: Idb123206ed2fac3ead88b0c1ed0b66952597ac65
      Bug: 62584229
      Test: Run android.appsecurity.cts.ExternalStorageHostTest with
            an external card formated as vfat
      Signed-off-by: default avatarDaniel Rosenberg <drosen@google.com>
      260a4485
  23. May 31, 2017
    • Narayan Kamath's avatar
      SEPolicy: Allow app / system_server to write to dumpstate pipes. · a34781ae
      Narayan Kamath authored
      tombstoned allows dumpstate to install "intercepts" to java trace
      requests for a given process. When an "intercept" is installed, all
      trace output is redirected to a pipe provided by dumpstate instead
      of the default location (usually in /data/anr or /data/tombstone).
      
      Note that these processes are already granted "write" and "getattr"
      on dumpstate:fifo_file in order to communicate with dumpstate; this
      change adds "append" to the existing set of permissions.
      
      Bug: 32064548
      Test: manual
      Change-Id: Iccbd78c59071252fef318589f3e55ece51a3c64c
      a34781ae
    • Narayan Kamath's avatar
      SEPolicy: Changes for new stack dumping scheme. · f194aad2
      Narayan Kamath authored
      Applications connect to tombstoned via a unix domain socket and request
      an open FD to which they can write their traces. This socket has a new
      label (tombstoned_java_trace_socket) and appdomain and system_server are
      given permissions to connect and write to it.
      
      Apps no longer need permissions to open files under /data/anr/ and
      these permissions will be withdrawn in a future change.
      
      Bug: 32064548
      Test: Manual
      
      (cherry picked from commit a8832dabc7f3b7b2381760d2b95f81abf78db709)
      
      (cherry picked from commit 11bfcc1e)
      
      Change-Id: Icc60d227331c8eee70a9389ff1e7e78772f37e6f
      f194aad2
    • Narayan Kamath's avatar
      SEPolicy: Changes for new stack dumping scheme. · e628cb5b
      Narayan Kamath authored
      Applications connect to tombstoned via a unix domain socket and request
      an open FD to which they can write their traces. This socket has a new
      label (tombstoned_java_trace_socket) and appdomain and system_server are
      given permissions to connect and write to it.
      
      Apps no longer need permissions to open files under /data/anr/ and
      these permissions will be withdrawn in a future change.
      
      Bug: 32064548
      Test: Manual
      
      Merged-In: I70a3e6e230268d12b454e849fa88418082269c4f
      Change-Id: Ib4b73fc130f4993c44d96c8d68f61b6d9bb2c7d5
      e628cb5b
  24. May 30, 2017
    • Narayan Kamath's avatar
      SEPolicy: Changes for new stack dumping scheme. · 11bfcc1e
      Narayan Kamath authored
      Applications connect to tombstoned via a unix domain socket and request
      an open FD to which they can write their traces. This socket has a new
      label (tombstoned_java_trace_socket) and appdomain and system_server are
      given permissions to connect and write to it.
      
      Apps no longer need permissions to open files under /data/anr/ and
      these permissions will be withdrawn in a future change.
      
      Bug: 32064548
      Test: Manual
      
      (cherry picked from commit a8832dabc7f3b7b2381760d2b95f81abf78db709)
      
      Change-Id: I70a3e6e230268d12b454e849fa88418082269c4f
      11bfcc1e
  25. May 25, 2017
  26. May 17, 2017
    • Jiyong Park's avatar
      sepolicy: allow apps to execute libs embedded inside vendor apk · 86539031
      Jiyong Park authored
      Currently, some jni libs in /vendor/lib are allowed to be executed
      in java process by labelling them as same_process_hal_file. This is
      wrong because those jni libs are not in fact same process HALs.
      
      After b/37481404, those jni libs for vendor apks are embedded inside the
      apk just like downloaded apks.
      
      In order to make this possible, appdomain is allowed to execute
      vendor_app_file. Note that allowing this is not a Treble violation because
      vendor_app_file is Java and JNI code only. Native libraries in
      /vendor/lib are still prevented from being loaded in apps except for
      those are labeled as same_process_hal_file AND are loaded via the
      'sphal' namespace.
      
      Bug: 37481404
      Test: Phone application does not crash.
      Change-Id: Ifaece2f05d0b20e28c4b1c0847f5ea0bb28ade02
      86539031
  27. May 15, 2017
    • Alex Vakulenko's avatar
      SELinux policies for PDX services · c4055f0d
      Alex Vakulenko authored
      Specify per-service rules for PDX transport. Now being able to
      grant permissions to individual services provided by processes,
      not all services of a process.
      
      Also tighter control over which permissions are required for
      client and server for individual components of IPC (endpoints,
      channels, etc).
      
      Bug: 37646189
      Change-Id: I78eb8ae8b6e08105666445a66bfcbd2f1d69d0ea
      Merged-Id: I78eb8ae8b6e08105666445a66bfcbd2f1d69d0ea
      c4055f0d
  28. May 11, 2017
    • Luke Song's avatar
      Move sensord sepolicy · 2dd9ae33
      Luke Song authored
      Sensord move in ag/2106763 should be accompanied by corresponding
      sepolicy move of sensord-related files/declarations.
      
      Bug: 36996994
      Test: Sailfish build shows no related permission errors
      Change-Id: Ibe41b363f7ca2752b5d3e0961298985cf784663d
      2dd9ae33
  29. May 10, 2017
    • Alex Vakulenko's avatar
      SELinux policies for PDX services · 41daa7f8
      Alex Vakulenko authored
      Specify per-service rules for PDX transport. Now being able to
      grant permissions to individual services provided by processes,
      not all services of a process.
      
      Also tighter control over which permissions are required for
      client and server for individual components of IPC (endpoints,
      channels, etc).
      
      Bug: 37646189
      Change-Id: I78eb8ae8b6e08105666445a66bfcbd2f1d69d0ea
      41daa7f8
  30. May 08, 2017
    • Nick Kralevich's avatar
      Further restrict SELinux API access · 14e2e926
      Nick Kralevich authored
      Remove SELinux access from domain_deprecated. Access to SELinux APIs can
      be granted on a per-domain basis.
      
      Remove appdomain access to SELinux APIs. SELinux APIs are not public and
      are not intended for application use. In particular, some exploits poll
      on /sys/fs/selinux/enforce to determine if the attack was successful,
      and we want to ensure that the behavior isn't allowed. This access was
      only granted in the past for CTS purposes, but all the relevant CTS
      tests have been moved to the shell domain.
      
      Bug: 27756382
      Bug: 28760354
      Test: Device boots and no obvious problems. No collected denials.
      Change-Id: Ide68311bd0542671c8ebf9df0326e512a1cf325b
      14e2e926
  31. Apr 28, 2017
  32. Apr 27, 2017
  33. Apr 21, 2017
    • Alex Klyubin's avatar
      Restrict access to hwservicemanager · 53656c17
      Alex Klyubin authored
      This adds fine-grained policy about who can register and find which
      HwBinder services in hwservicemanager.
      
      Test: Play movie in Netflix and Google Play Movies
      Test: Play video in YouTube app and YouTube web page
      Test: In Google Camera app, take photo (HDR+ and conventional),
            record video (slow motion and normal), and check that photos
            look fine and videos play back with sound.
      Test: Cast screen to a Google Cast device
      Test: Get location fix in Google Maps
      Test: Make and receive a phone call, check that sound works both ways
            and that disconnecting the call frome either end works fine.
      Test: Run RsHelloCompute RenderScript demo app
      Test: Run fast subset of media CTS tests:
            make and install CtsMediaTestCases.apk
            adb shell am instrument -e size small \
                -w 'android.media.cts/android.support.test.runner.AndroidJUnitRunner'
      Test: Play music using Google Play music
      Test: Adjust screen brightness via the slider in Quick Settings
      Test: adb bugreport
      Test: Enroll in fingerprint screen unlock, unlock screen using
            fingerprint
      Test: Apply OTA update:
            Make some visible change, e.g., rename Settings app.
            make otatools && \
            make dist
            Ensure device has network connectivity
            ota_call.py -s <serial here> --file out/dist/sailfish-ota-*.zip
            Confirm the change is now live on the device
      Bug: 34454312
      (cherry picked from commit 632bc494)
      Merged-In: Iecf74000e6c68f01299667486f3c767912c076d3
      Change-Id: I7a9a487beaf6f30c52ce08e04d415624da49dd31
      53656c17
  34. Apr 20, 2017
    • Alex Klyubin's avatar
      Restrict access to hwservicemanager · 632bc494
      Alex Klyubin authored
      This adds fine-grained policy about who can register and find which
      HwBinder services in hwservicemanager.
      
      Test: Play movie in Netflix and Google Play Movies
      Test: Play video in YouTube app and YouTube web page
      Test: In Google Camera app, take photo (HDR+ and conventional),
            record video (slow motion and normal), and check that photos
            look fine and videos play back with sound.
      Test: Cast screen to a Google Cast device
      Test: Get location fix in Google Maps
      Test: Make and receive a phone call, check that sound works both ways
            and that disconnecting the call frome either end works fine.
      Test: Run RsHelloCompute RenderScript demo app
      Test: Run fast subset of media CTS tests:
            make and install CtsMediaTestCases.apk
            adb shell am instrument -e size small \
                -w 'android.media.cts/android.support.test.runner.AndroidJUnitRunner'
      Test: Play music using Google Play music
      Test: Adjust screen brightness via the slider in Quick Settings
      Test: adb bugreport
      Test: Enroll in fingerprint screen unlock, unlock screen using
            fingerprint
      Test: Apply OTA update:
            Make some visible change, e.g., rename Settings app.
            make otatools && \
            make dist
            Ensure device has network connectivity
            ota_call.py -s <serial here> --file out/dist/sailfish-ota-*.zip
            Confirm the change is now live on the device
      Bug: 34454312
      Change-Id: Iecf74000e6c68f01299667486f3c767912c076d3
      632bc494
Loading