Skip to content
Snippets Groups Projects
  1. Feb 05, 2015
    • Nick Kralevich's avatar
      appdomain: relax netlink_socket neverallow rule · 87f3802a
      Nick Kralevich authored
      Relax the neverallow netlink restrictions for app domains.
      In particular, some non-AOSP app domains may use netlink sockets
      to communicate with a kernel driver.
      
      Continue to neverallow generic netlink sockets for untrusted_app.
      The intention here is that only app domains which explicitly need
      this functionality should be able to request it.
      
      This change does not add or remove any SELinux rules. Rather, it
      just changes SELinux compile time assertions, as well as allowing
      this behavior in CTS.
      
      Modify other neverallow rules to use "domain" instead of "self".
      Apps shouldn't be able to handle netlink sockets, even those
      created in other SELinux domains.
      
      (cherry picked from commit d31936f8)
      
      Change-Id: I4763cb0c9510220693c506636dbb7584712b67e2
      87f3802a
    • Stephen Smalley's avatar
      Add neverallow checking to sepolicy-analyze. · c423b1aa
      Stephen Smalley authored
      
      See NEVERALLOW CHECKING in tools/README for documentation.
      
      Depends on change I45b3502ff96b1d093574e1fecff93a582f8d00bd
      for libsepol to support reporting all neverallow failures.
      
      Cherry-pick of commit: 59906bf8
      with build-fix from commit: 74bbf703
      added manually.
      
      Bug: 19191637
      
      Change-Id: I1c18fa854b3c5f5e05d5dc42d9006c5fdacebdc3
      Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      c423b1aa
  2. Nov 12, 2014
  3. Nov 10, 2014
    • Jeff Hao's avatar
    • Igor Murashkin's avatar
      zygote/dex2oat: Grant additional symlink permissions · 3df12275
      Igor Murashkin authored
      * zygote needs to be able to symlink from dalvik cache to system
        to avoid having to copy boot.oat
        (when the boot.oat file was built with --compile-pic)
      * dex2oat needs to be able to read the symlink in the dalvik cache
        (the one that zygote creates)
      
      (cherry-picked from AOSP master
      83c5612e)
      
      Bug: 18035729
      
      (cherry picked from commit f7ccfd00)
      
      Change-Id: I5dca27241f46f481515b96e968fb2bef7866c89b
      3df12275
    • Nick Kralevich's avatar
      allow run-as to access /data/local/tmp · b7934922
      Nick Kralevich authored
      Otherwise denials like the following occur:
      
      avc: denied { write } for path="/data/local/tmp/foo" dev="dm-0" ino=325769 scontext=u:r:runas:s0 tcontext=u:object_r:shell_data_file:s0 tclass=file
      avc: denied { read } for path="/data/local/tmp/foo" dev="dm-0" ino=325769 scontext=u:r:runas:s0 tcontext=u:object_r:shell_data_file:s0 tclass=file
      
      Steps to reproduce:
      
      $ run-as com.google.android.talk id > /data/local/tmp/id.out
      $ run-as com.google.android.talk cat < /data/local/tmp/id.out
      
      (cherry picked from commit dd8571aa)
      
      Change-Id: I80bb26e06d932229c286f0389f28ad6868d79100
      b7934922
  4. Nov 07, 2014
  5. Nov 05, 2014
  6. Oct 24, 2014
    • Nick Kralevich's avatar
      allow system_server to set kernel scheduling priority · 2d1650f4
      Nick Kralevich authored
      Addresses the following denial:
      
        avc: denied { setsched } for comm="system_server" scontext=u:r:system_server:s0 tcontext=u:r:kernel:s0 tclass=process permissive=0
      
      It's not clear why system_server is adjusting the scheduling priority
      of kernel processes (ps -Z | grep kernel). For now, allow the operation,
      although this is likely a kernel bug.
      
      Maybe fix bug 18085992.
      
      Bug: 18085992
      Change-Id: Ic10a4da63a2c392d90084eb1106bc5b42f95b855
      2d1650f4
  7. Oct 23, 2014
    • Nick Kralevich's avatar
      recovery: allow changing unlabeled symbolic links · 683ac49d
      Nick Kralevich authored
      Currently, recovery is allowed write access to the following three
      file labels:
      
      * system_file (directories, files, and symbolic links)
      * exec_type (directories, files, and symbolic links)
      * unlabeled (directory and files)
      
      system_file is the default label on all files in /system. exec_type
      is the attribute used to mark executables on /system.
      
      The third file type, "unlabeled", refers to filesystem objects where
      the label hasn't been set, or a label is set but isn't defined by the
      currently loaded policy.
      
      The current policy only allows unlabeled files or directories to
      be modified. Symbolic links were accidentally excluded. This causes
      problems when trying to fix up labels/permissions on unlabeled
      symbolic links.
      
      Allow unlabeled symbolic link modifications.
      
      Bug: 18079773
      Change-Id: I8e5c33602cdc38ec9a95b4e83f9ccbb06fe9da7c
      683ac49d
  8. Oct 22, 2014
    • Nick Kralevich's avatar
      DO NOT MERGE: allow access to labeled executables in /system · 2c38b3b8
      Nick Kralevich authored
      Most files on /system are labeled with the "system_file" label, and
      are readable by default by all SELinux domains. However, select
      executables are labeled with their own label, so that SELinux knows
      what domains to enter upon running the executable.
      
      Allow adbd read access to labeled executables in /system. We do
      this by granting adbd read access to exec_type, the attribute
      assigned to all executables on /system.
      
      This allows "adb pull /system" to work without generating
      SELinux denials.
      
      Bug: 18078338
      Change-Id: I97783759af083968890f15f7b1d8fff989e80604
      2c38b3b8
  9. Oct 16, 2014
    • Nick Kralevich's avatar
      Fix compile time / CTS gps_data_files neverallow assertion · 480374e4
      Nick Kralevich authored
      Currently, zygote spawned apps are prohibited from modifying GPS
      data files. If someone tries to allow GPS access to any app domain,
      it generates a compile time / CTS exception.
      
      Relax the rules slightly for system_app. These apps run with UID=system,
      and shouldn't be banned from handling gps data files.
      
      This change doesn't add or remove any SELinux rules. Rather, it just
      relaxes a compile time assertion, allow partners to create SELinux
      rules allowing the access if they desire.
      
      Bug: 18021422
      Change-Id: Iad0c6a3627efe129246e2c817f6f71d2735eba93
      480374e4
  10. Oct 15, 2014
    • Robin Lee's avatar
      Pull keychain-data policy out of system-data · 51bfecf4
      Robin Lee authored
      Migrators should be allowed to write to /data/misc/keychain in order
      to remove it. Similarly /data/misc/user should be writable by system
      apps.
      
      TODO: Revoke zygote's rights to read from /data/misc/keychain on
      behalf of some preloaded security classes.
      
      Bug: 17811821
      Change-Id: I9e9c6883cff1dca3755732225404909c16a0e547
      51bfecf4
  11. Oct 10, 2014
    • Nick Kralevich's avatar
      allow oemfs:dir search · ebfd9f87
      Nick Kralevich authored
      mediaserver and drmserver both have permission to read oemfs
      related files. However, there are no search permissions on the
      directory, so the files would be unreachable.
      
      Grant search permissions on the oemfs directory, so that the files
      within that directory can be read.
      
      Bug: 17954291
      Change-Id: I9e36dc7b940bd46774753c1fa07b0f47c36ff0db
      ebfd9f87
    • Nick Kralevich's avatar
      allow system_server oemfs read access · 2380d05f
      Nick Kralevich authored
      Bug: 17954291
      Change-Id: Ia904fff65df5142732928561d81ea0ece0c52a8d
      2380d05f
  12. Oct 02, 2014
  13. Sep 26, 2014
    • Nick Kralevich's avatar
      zygote: allow replacing /proc/cpuinfo · f2c01189
      Nick Kralevich authored
      Android's native bridge functionality allows an Android native
      app written on one CPU architecture to run on a different architecture.
      For example, Android ARM apps may run on an x86 CPU.
      
      To support this, the native bridge functionality needs to replace
      /proc/cpuinfo with the version from /system/lib/<ISA>/cpuinfo
      using a bind mount. See commit ab0da5a9a6860046619629b8e6b83692d35dff86
      in system/core.
      
      This change:
      
      1) Creates a new label proc_cpuinfo, and assigns /proc/cpuinfo
      that label.
      2) Grants read-only access to all SELinux domains, to avoid
      breaking pre-existing apps.
      3) Grants zygote mounton capabilities for that file, so zygote
      can replace the file as necessary.
      
      Addresses the following denial:
      
        avc: denied { mounton } for path="/proc/cpuinfo" dev="proc" ino=4026532012 scontext=u:r:zygote:s0 tcontext=u:object_r:proc:s0 tclass=file
      
      Bug: 17671501
      
      (cherry picked from commit 2de02877)
      
      Change-Id: I2c2366bee4fe365288d14bca9778d23a43c368cb
      f2c01189
    • Martijn Coenen's avatar
  14. Sep 25, 2014
  15. Sep 24, 2014
    • Nick Kralevich's avatar
      allow apps to read the contents of mounted OBBs · 62083414
      Nick Kralevich authored
      Apps should be able to read the contents of mounted OBBs.
      
      Steps to reproduce:
      
        1) Install com.namcobandaigames.soulcaliburgp (SoulCalibur)
        2) Attempt to run the app.
      
      Expected:
        App runs successfully.
      
      Actual:
        App crashes. See denials below.
      
      This can also be reproduced by running the newly introduced CTS
      test in I2018b63b0236ce6b5aee4094e40473315b1948c3
      
      Addresses the following denials:
      
        avc: denied { read } for pid=4133 comm="roidJUnitRunner" name="test1.txt" dev="loop0" ino=23 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:vfat:s0 tclass=file
        avc: denied { open } for pid=4133 comm="roidJUnitRunner" name="test1.txt" dev="loop0" ino=23 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:vfat:s0 tclass=file
        avc: denied { getattr } for pid=4133 comm="roidJUnitRunner" path="/mnt/obb/f73da56689d166b5389d49ad31ecbadb/test1.txt" dev="loop0" ino=23 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:vfat:s0 tclass=file
        avc: denied { search } for name="/" dev="loop0" ino=1 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:vfat:s0 tclass=dir permissive=0
      
      Bug: 17633509
      Change-Id: I49b722b24c1c7d9ab084ebee7c1e349d8d660ffa
      62083414
  16. Sep 23, 2014
    • Nick Kralevich's avatar
      relax appdomain efs_file neverallow rules [DO NOT MERGE] · a8b651bf
      Nick Kralevich authored
      During factory provisioning, some manufacturers may need to pull files
      from /factory (label efs_file and bluetooth_efs_file) to collect
      device specific identifiers such as the mac address, using commands
      similar to the following:
      
        adb shell cat /factory/ssn
        adb shell cat /factory/bt/bd_addr.conf
        adb shell cat /factory/wifi/mac.txt
        adb shell cat /factory/60isn
      
      read-only access to these files is currently disallowed by a
      neverallow rule. Relax the rules to allow read-only access to the
      shell user if desired.
      
      No new SELinux rules are added or deleted by this change. This is
      only a relaxation in what's allowed for vendor specific policy.
      
      Bug: 17600278
      
      (cherry picked from commit 200a9f0e)
      
      Change-Id: I2e277b1068a35cc06e0973df994ec3a49f2c26e7
      a8b651bf
  17. Sep 22, 2014
    • Vineeta Srivastava's avatar
      sepolicy for oem cutomization · b4fcaeea
      Vineeta Srivastava authored
      Added read permissions for bootanimation
      
      Bug: 16635599
      Change-Id: Ib5d0ba5a6d1144ff831f4f0eda092879f853c376
      b4fcaeea
    • Nick Kralevich's avatar
      relax neverallow rules on NETLINK_KOBJECT_UEVENT sockets · 36fb1f1b
      Nick Kralevich authored
      Netlink uevent sockets are used by the kernel to inform userspace
      when certain events occur, for example, when new hardware is added
      or removed. This allows userspace to take some action based on those
      messages.
      
      Relax the neverallow rule for NETLINK_KOBJECT_UEVENT sockets.
      Certain device specific app domains, such as system_app, may have a
      need to receive messages from this socket type.
      
      Continue to neverallow NETLINK_KOBJECT_UEVENT sockets for untrusted_app.
      These sockets have been the source of rooting attacks in Android
      in the past, and it doesn't make sense to expose this to untrusted_apps.
      
      No new SELinux rules are introduced by this change. This is an
      adjustment of compile time assertions only.
      
      Bug: 17525863
      
      (cherry picked from commit 642b8042)
      
      Change-Id: I35f3dc8b1ead9f427645a13fb202e760d1e68e64
      36fb1f1b
  18. Sep 20, 2014
  19. Sep 16, 2014
  20. Sep 13, 2014
  21. Sep 10, 2014
    • Tyler Gunn's avatar
      Renaming Telecomm to Telecom. · 69cdca91
      Tyler Gunn authored
      - Changing package from android.telecomm to android.telecom
      - Changing package from com.android.telecomm to
      com.android.server.telecomm.
      - Renaming TelecommManager to TelecomManager.
      
      Bug: 17364651
      Change-Id: I70e9ecdab7482327f25387ecc6223f46e9cbe10e
      69cdca91
  22. Sep 09, 2014
    • dcashman's avatar
    • dcashman's avatar
      Enable selinux read_policy for adb pull. · 309cc668
      dcashman authored
      Remove permission from appdomain.
      
      Bug: 16866291
      
      Change-Id: I37936fed33c337e1ab2816258c2aff52700af116
      309cc668
    • Nick Kralevich's avatar
      Allow kernel thread to read app data files · b0a99513
      Nick Kralevich authored
      When vold mounts an OBB on behalf of another application, the kernel
      spins up the "loop0" thread to perform the mount operation. Grant
      the kernel thread the ability to read app data files, so the mount
      operation can succeed.
      
      Steps to reproduce:
      
        1) Run: runtest --path cts/tests/tests/os/src/android/os/storage/cts/StorageManagerTest.java
      
      Expected:
      
        1) All tests pass
      
      Actual:
      
        Test failure, with the following error message:
      
        loop0   : type=1400 audit(0.0:46): avc: denied { read } for path="/data/data/com.android.cts.stub/files/test1.obb" dev="mmcblk0p16" ino=115465 scontext=u:r:kernel:s0 tcontext=u:object_r:app_data_file:s0 tclass=file permissive=0
        Vold    : Image mount failed (I/O error)
        MountService: Couldn't mount OBB file: -1
        StorageManager: Received message.  path=/data/data/com.android.cts.stub/files/test1.obb, state=21
        TestRunner: failed: testMountAndUnmountObbNormal(android.os.storage.cts.StorageManagerTest)
        TestRunner: ----- begin exception -----
        TestRunner: junit.framework.AssertionFailedError: OBB should be mounted
        TestRunner:    at junit.framework.Assert.fail(Assert.java:50)
        TestRunner:    at junit.framework.Assert.assertTrue(Assert.java:20)
        TestRunner:    at android.os.storage.cts.StorageManagerTest.mountObb(StorageManagerTest.java:235)
      
      Bug: 17428116
      Change-Id: Id1a39a809b6c3942ff7e08884b40e3e4eec73b6a
      b0a99513
  23. Sep 08, 2014
    • dcashman's avatar
      Add support for factory reset protection. · 47bd7300
      dcashman authored
      Address the following denials:
      <12>[  417.732129] type=1400 audit(365340.189:47): avc: denied { read } for pid=1737 comm="Binder_2" name="mmcblk0p18" dev="tmpfs" ino=12406 scontext=u:r:system_server:s0 tcontext=u:object_r:block_device:s0 tclass=blk_file permissive=0
      <12>[  417.882126] type=1400 audit(365340.339:48): avc: denied { read } for pid=1737 comm="Binder_2" name="mmcblk0p18" dev="tmpfs" ino=12406 scontext=u:r:system_server:s0 tcontext=u:object_r:block_device:s0 tclass=blk_file permissive=0
      
      Bug: 16710840
      Change-Id: I8cb5b4b17dffe14f0bf05d63eb8f6ab8d5c09f53
      47bd7300
  24. Sep 04, 2014
    • Nick Kralevich's avatar
      sdcardd: grant unmount · abfd427a
      Nick Kralevich authored
      If the sdcard daemon is restarted (crash or otherwise), one of the first
      things it attempts to do is umount the previously mounted /mnt/shell/emulated
      fuse filesystem, which is denied by SELinux with the following denial:
      
        sdcard  : type=1400 audit(0.0:6997): avc: denied { unmount } for scontext=u:r:sdcardd:s0 tcontext=u:object_r:fuse:s0 tclass=filesystem permissive=0
      
      Allow the operation.
      
      Steps to reproduce:
      
        1) adb shell into the device and su to root
        2) run "kill -9 [PID OF SDCARD]
      
      Expected:
      
        sdcard daemon successfully restarts without error message.
      
      Actual:
      
        SELinux denial above, plus attempts to mount a new filesystem
        on top of the existing filesystem.
      
      Bug: 17383009
      Change-Id: I386bfc98e2b5b32b1d11408f7cfbd6e3c1af68f4
      abfd427a
  25. Sep 01, 2014
    • Mark Salyzyn's avatar
      logd: permit app access to clear logs · bcdff890
      Mark Salyzyn authored
      I/auditd(19949): type=1400 audit(0.0:71): avc:  denied  { write } for  comm="logcat" name="logd" dev="tmpfs" ino=5924 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:logd_socket:s0 tclass=sock_file
      
      (cherry picked from 60f0be84)
      
      Bug: 17323719
      Change-Id: Id8399195196ffad884eef98030d544c68ed0596f
      bcdff890
  26. Aug 29, 2014
  27. Aug 27, 2014
    • dcashman's avatar
    • dcashman's avatar
      Add permissive domains check to sepolicy-analyze. · c30dd63f
      dcashman authored
      Also enable global reading of kernel policy file. Motivation for this is to
      allow read access to the kernel version of the binary selinux policy.
      
      Bug: 17288791
      
      Change-Id: I1eefb457cea1164a8aa9eeb7683b3d99ee56ca99
      c30dd63f
    • Nick Kralevich's avatar
      support kernel writes to external SDcards · 28b26bcf
      Nick Kralevich authored
      The kernel, when it creates a loop block device, starts a new
      kernel thread "loop0" (drivers/block/loop.c). This kernel thread,
      which performs writes on behalf of other processes, needs read/write
      privileges to the sdcard. Allow it.
      
      Steps to reproduce:
      0) Get device with external, removable sdcard
      1) Run: "adb install -s foo.apk"
      
      Expected:
      
        APK installs successfully.
      
      Actual:
      
        APK fails to install. Error message:
      
          Vold  E  Failed to write superblock (I/O error)
          loop0  W  type=1400 audit(0.0:3123): avc: denied { read } for path="/mnt/secure/asec/smdl1645334795.tmp.asec" dev="mmcblk1p1" ino=528 scontext=u:r:kernel:s0 tcontext=u:object_r:vfat:s0 tclass=file permissive=0
          PackageHelper  E  Failed to create secure container smdl1645334795.tmp
          DefContainer  E  Failed to create container smdl1645334795.tmp
      
      Bug: 17158723
      
      (cherry picked from commit 4c6b1350)
      
      Change-Id: Iea727ac7958fc31d85a037ac79badbe9c85693bd
      28b26bcf
Loading