Skip to content
Snippets Groups Projects
  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. May 25, 2017
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. Apr 28, 2017
  15. Apr 27, 2017
  16. 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
  17. 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
  18. Apr 19, 2017
    • Andreas Gampe's avatar
      Sepolicy: Fix asanwrapper · c848d37d
      Andreas Gampe authored
      Add asanwrapper support for system server under sanitization.
      
      Bug: 36138508
      Test: m && m SANITIZE_TARGET=address SANITIZE_LITE=true
      Test: adb root && adb shell setprop wrap.system_server asanwrapper
      Change-Id: Id930690d2cfd8334c933e0ec5ac62f88850331d0
      c848d37d
  19. Apr 18, 2017
    • Alex Klyubin's avatar
      surfaceflinger and apps are clients of Configstore HAL · 75ca4832
      Alex Klyubin authored
      This commit marks surfaceflinger and app domain (except isolated_app)
      as clients of Configstore HAL. This cleans up the policy and will make
      it easier to restrict access to HwBinder services later.
      
      Test: Play YouTube clip in YouTube app and YouTube web page in Chrome
      Test: Take an HDR+ photo, a normal photo, a video, and slow motion
            video in Google Camera app. Check that photos show up fine and
            that videos play back with sound.
      Test: Play movie using Google Play Movies
      Test: Google Maps app displays the Android's correct location
      Bug: 34454312
      Change-Id: I0f468a4289132f4eaacfb1d13ce4e61604c2a371
      75ca4832
  20. Apr 17, 2017
    • Alex Klyubin's avatar
      Apps and system_server are gralloc HAL clients · 5007c10a
      Alex Klyubin authored
      This commit marks system_server and app domains (except isolated_app)
      as clients of Graphics Allocator HAL. This makes the policy cleaner
      and prepares ground for restricting access to HwBinder services.
      
      Test: Play video in YouTube app and in Google Chrome YouTube web page
      Test: Using Google Camera app, take an HDR+ photo, a conventional
            photo, record a video with sound and a slow motion video with
            sound, then check that photos look good and videos play back
            fine, including sound.
      Bug: 34454312
      Change-Id: Iea04d38fa5520432f06af94570fa6ce16ed7979a
      5007c10a
  21. Apr 16, 2017
    • Martijn Coenen's avatar
      Remove mediacodec from binder violators. · fc80f480
      Martijn Coenen authored
      The new binder_call() lines had to be added
      because this change removes mediacodec from
      binderservicedomain (on full-treble), hence
      domains that could previously reach mediacodec
      with binder_call(domain, binderservicedomain)
      now need explicit calls instead.
      
      Test: Youtube, Netflix, Maps, Chrome, Music
      Change-Id: I3325ce20d9304bc07659fd435554cbcbacbc9829
      fc80f480
  22. Apr 14, 2017
    • Martijn Coenen's avatar
      Give apps, cameraserver, and system_server access to sync fences. · de2e79c5
      Martijn Coenen authored
      Since hal_graphics_composer_default is now no longer
      a member of binderservicedomain, these domains would
      no longer be able to use filedescriptors from it.
      
      Bug: 36569525
      Bug: 35706331
      Test: marlin boots, YouTube, Maps, Camera, video
      Change-Id: I4c110cf7530983470ae079e4fbc8cf11aa0fab7f
      de2e79c5
    • Jeff Vander Stoep's avatar
      restore permissions to /vendor for non-treble devices · f627e558
      Jeff Vander Stoep authored
      Relabeling /vendor and /system/vendor to vendor_file removed
      previously granted permissions. Restore these for non-treble devices.
      
      Addresses:
      avc: denied { execute_no_trans } for pid=2944 comm="dumpstate"
      path="/system/vendor/bin/wpa_cli" dev="mmcblk0p10" ino=1929
      scontext=u:r:dumpstate:s0 tcontext=u:object_r:vendor_file:s0
      tclass=file
      
      And potentially some other bugs that have yet to surface.
      
      Bug: 37105075
      Test: build Fugu
      Change-Id: I8e7bd9c33819bf8206f7c110cbce72366afbcef8
      f627e558
  23. Apr 10, 2017
    • Sandeep Patil's avatar
      sepolicy: Fix renderscript driver lookup · 3af3a13b
      Sandeep Patil authored
      
      Renderscript drivers are loaded from /vendor/lib64 by following the
      /system/vendor symlink. This change fixes a couple of things.
      - Allows all domains access to follow the symlink
      - Restores app domain permissions for /vendor for non-treble devices
      - Allow app domains to peek into /vendor/lib64, but NOT grant 'execute'
        permissions for everything. Since RS drivers can be loaded into any
        process, their vendor implementation and dependencies have been
        marked as 'same process HALs' already.
      
      Bug: 37169158
      Test: Tested on sailfish (Treble) & Angler (non-treble)
            ./cts-tradefed run cts -m CtsRenderscriptTestCases \
            --skip-device-info --skip-preconditions --skip-connectivity-check \
            --abi arm64-v8a
            Result: Tests Passed: 743 Tests Failed: 0
      
      Change-Id: I36f5523381428629126fc196f615063fc7a50b8e
      Signed-off-by: default avatarSandeep Patil <sspatil@google.com>
      3af3a13b
  24. Apr 07, 2017
    • Jaesoo Lee's avatar
      allow access to vendor_framework_file to dex2oat and appdomain · 5377be65
      Jaesoo Lee authored
      We should give appdomain the access to the /vendor/framework directory
      since the jar in the directory is not dexopt-ed.AFAIK, jars which are
      not in the bootclasspath are not dexopt-ed by default.
      
      Bug: b/37129319
      Test: built and confirmed that embms.apk not crashed
      
      Change-Id: Ic2b1eef472f2fba53e26403dde8ad9ede8105a03
      5377be65
  25. Apr 06, 2017
    • Sandeep Patil's avatar
      sepolicy: restrict /vendor/overlay from most coredomains · 9075699a
      Sandeep Patil authored
      
      The change makes 'vendor_overlay_file' accessible only to few platform
      domains like idmap, system_server, zygote and appdomain.
      
      The overlay files contains RROs (runtime resource overlays)
      
      Bug: 36681210
      Test: Boot sailfish (treble device) from wiped flashall
      Test: Connect to wifi and launch chrome to load few websites.
      Test: Launch camera and record + playback video
      
      Change-Id: I3596ca89ad51d0e7d78c75121f22ea71209ee332
      Signed-off-by: default avatarSandeep Patil <sspatil@google.com>
      9075699a
    • Sandeep Patil's avatar
      sepolicy: restrict /vendor/app from most coredomains · 1b5f81a2
      Sandeep Patil authored
      
      The change makes 'vendor_app_file' accessible only to few platform
      domains like dex2oat, idmap, installd, system_server and appdomain.
      
      Bug: 36681210
      Test: Boot sailfish (treble device) from wiped flashall
      Test: Connect to wifi and launch chrome to load few websites.
      Test: Launch camera and record + playback video
      
      Change-Id: Ib8757fedbf2e19c8381c8cd0f8f2693b2345534b
      Signed-off-by: default avatarSandeep Patil <sspatil@google.com>
      1b5f81a2
  26. Mar 24, 2017
    • Alex Klyubin's avatar
      Mark all clients of Allocator HAL · 7cda44f4
      Alex Klyubin authored
      This change associates all domains which are clients of Allocator HAL
      with hal_allocator_client and the, required for all HAL client
      domains, halclientdomain.
      
      This enables this commit to remove the now unnecessary hwallocator_use
      macro because its binder_call(..., hal_allocator_server) is covered by
      binder_call(hal_allocator_client, hal_allocator_server) added in this
      commit.
      
      Unfortunately apps, except isolated app, are clients of Allocator HAL
      as well. This makes it hard to use the hal_client_domain(...,
      hal_allocator) macro because it translates into "typeattribute" which
      currently does not support being provided with a set of types, such as
      { appdomain -isolated_app }. As a workaround, hopefully until
      typeattribute is improved, this commit expresses the necessary
      association operation in CIL. private/technical_debt.cil introduced by
      this commit is appended into the platform policy CIL file, thus
      ensuring that the hack has effect on the final monolithic policy.
      
      P. S. This change also removes Allocator HAL access from isolated_app.
      Isolated app shouldn't have access to this HAL anyway.
      
      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: Id00bba6fde83e7cf04fb58bc1c353c2f66333f92
      7cda44f4
  27. Mar 23, 2017
  28. Mar 22, 2017
    • 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
  29. Mar 21, 2017
    • 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
    • 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
  30. Mar 16, 2017
  31. Mar 07, 2017
    • Calin Juravle's avatar
      SElinux: Clean up code related to foreign dex use · 2b291121
      Calin Juravle authored
      We simplified the way we track whether or not a dex file is used by
      other apps. DexManager in the framework keeps track of the data and we
      no longer need file markers on disk.
      
      Test: device boots, foreign dex markers are not created anymore
      
      Bug: 32871170
      Change-Id: I464ed6b09439cf0342020ee07596f9aa8ae53b62
      2b291121
  32. Mar 05, 2017
    • Yin-Chia Yeh's avatar
      Camera: hal_camera FD access update · 6824dfd7
      Yin-Chia Yeh authored
      Add FD accessing rules related to media,gralloc and ashmem.
      Also move a few rules to where they belong.
      
      Change-Id: I0bff6f86665a8a049bd767486275740fa369da3d
      6824dfd7
Loading