- Nov 10, 2014
-
-
Nick Kralevich authored
-
Stephen Smalley authored
init.rc files can potentially chown/chmod any character device, so allow it for everything except for kmem (prohibited by neverallow). While we could whitelist each of the device types, doing so would also require device-specific changes for the device-specific types and may be difficult to maintain. Resolves (permissive) denials such as: avc: denied { read } for pid=1 comm="init" name="ttySAC0" dev="tmpfs" ino=4208 scontext=u:r:init:s0 tcontext=u:object_r:hci_attach_dev:s0 tclass=chr_file permissive=1 avc: denied { open } for pid=1 comm="init" name="ttySAC0" dev="tmpfs" ino=4208 scontext=u:r:init:s0 tcontext=u:object_r:hci_attach_dev:s0 tclass=chr_file permissive=1 avc: denied { setattr } for pid=1 comm="init" name="ttySAC0" dev="tmpfs" ino=4208 scontext=u:r:init:s0 tcontext=u:object_r:hci_attach_dev:s0 tclass=chr_file permissive=1 avc: denied { read } for pid=1 comm="init" name="smd7" dev="tmpfs" ino=6181 scontext=u:r:init:s0 tcontext=u:object_r:radio_device:s0 tclass=chr_file avc: denied { open } for pid=1 comm="init" name="smd7" dev="tmpfs" ino=6181 scontext=u:r:init:s0 tcontext=u:object_r:radio_device:s0 tclass=chr_file avc: denied { read } for pid=1 comm="init" name="wcnss_wlan" dev="tmpfs" ino=7475 scontext=u:r:init:s0 tcontext=u:object_r:wlan_device:s0 tclass=chr_file avc: denied { open } for pid=1 comm="init" name="wcnss_wlan" dev="tmpfs" ino=7475 scontext=u:r:init:s0 tcontext=u:object_r:wlan_device:s0 tclass=chr_file avc: denied { setattr } for pid=1 comm="init" name="wcnss_wlan" dev="tmpfs" ino=7475 scontext=u:r:init:s0 tcontext=u:object_r:wlan_device:s0 tclass=chr_file Change-Id: If8d14e9e434fab645d43db12cc1bdbfd3fc5d354 Signed-off-by:
Stephen Smalley <sds@tycho.nsa.gov>
-
- Nov 08, 2014
-
-
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 Change-Id: I68a7b804336a3d5776dcc31622f1279380282030
-
- Nov 07, 2014
-
-
Nick Kralevich authored
tilapia's OTA code for updating the radio image needs to create files on rootfs and create a character device in /dev. Add an exception for recovery the the various neverallow rules blocking this behavior. (cherrypick, with modifications, from 0055ea90) Bug: 18281224 Change-Id: I5c57afe0a10b4598fea17f9c5c833bd39551907e
-
Stephen Smalley authored
Change-Id I52fd5fbe30a7f52f1143f176915ce55fb6a33f87 was only intended for lollipop, not for master. This reverts commit 2aa727e3. Change-Id: If2101939eb50cd6bbcde118b91c003d1f30d811c Signed-off-by:
Stephen Smalley <sds@tycho.nsa.gov>
-
- Nov 06, 2014
-
-
Nick Kralevich authored
* commit 'f7e98fe2': recovery.te: add /data neverallow rules
-
Nick Kralevich authored
* commit '35a4ed80': Add wpa neverallow rule
-
Nick Kralevich authored
-
Nick Kralevich authored
wpa should never trust any data coming from the sdcard. Add a compile time assertion to make sure no rules are ever added allowing this access. Change-Id: I5f50a8242aa30f6cc0cfd89d82b2b153625105f6
-
- Nov 05, 2014
-
-
Nick Kralevich authored
Recovery should never be accessing files from /data. In particular, /data may be encrypted, and the files within /data will be inaccessible to recovery, because recovery doesn't know the decryption key. Enforce write/execute restrictions on recovery. We can't tighten it up further because domain.te contains some /data read-only access rules, which shouldn't apply to recovery but do. Create neverallow_macros, used for storing permission macros useful for neverallow rules. Standardize recovery.te and property_data_file on the new macros. Change-Id: I02346ab924fe2fdb2edc7659cb68c4f8dffa1e88
-
- Nov 04, 2014
-
-
Robert Greenwalt authored
* commit '3bcdec8a': Allow radio access to netd_pid file.
-
- Nov 03, 2014
-
-
Robert Greenwalt authored
They need to see when it changes so they know when netd bounces. (cherrypicked from commit 71e9a7c4) bug:18069270 Change-Id: I954cf43ff02f1d352015f128ef88b659e6d0f95a
-
- Oct 31, 2014
-
-
Nick Kralevich authored
* commit 'ca62a8b7': allow coredump functionality
-
Nick Kralevich authored
(cherrypick of commit d7e004eb) Change-Id: I7993698ac96f21db0039681275280dbd43ff61ba
-
dcashman authored
-
dcashman authored
Also, divide each sepolicy-analyze function into its own component for simplified command-line parsing and potentially eventual modularization. Bug: 18005561 Change-Id: I45fa07d776cf1bec7d60dba0c03ee05142b86c19
-
- Oct 30, 2014
-
-
Stephen Smalley authored
* commit 'c457572b': Allow init to restorecon /data directories on upgrades.
-
Stephen Smalley authored
Resolves (permissive) denials on upgrades from 4.4. Change-Id: Ia9eed4938a7235c23bb65de7ad65e6e7c325dfd7 Signed-off-by:
Stephen Smalley <sds@tycho.nsa.gov>
-
Daniel Cashman authored
* commit 'f3926937': Switch kernel and init to permissive_or_unconfined().
-
Daniel Cashman authored
-
- Oct 29, 2014
-
-
Stephen Smalley authored
Switch the kernel and init domains from unconfined_domain() to permissive_or_unconfined() so that we can start collecting and addressing denials in -userdebug/-eng builds. Also begin to address denials for kernel and init seen after making this switch. I intentionally did not allow the following denials on hammerhead: avc: denied { create } for pid=1 comm="init" name="memory.move_charge_at_immigrate" scontext=u:r:init:s0 tcontext=u:object_r:init_tmpfs:s0 tclass=file avc: denied { open } for pid=1 comm="init" name="memory.move_charge_at_immigrate" dev="tmpfs" ino=6550 scontext=u:r:init:s0 tcontext=u:object_r:init_tmpfs:s0 tclass=file These occur when init.rc does: write /sys/fs/cgroup/memory/memory.move_charge_at_immigrate 1 because the prior command to mount the cgroup failed: mount cgroup none /sys/fs/cgroup/memory memory I think this is because that cgroup is not enabled in the kernel configuration. If the cgroup mount succeeded, then this would have been a write to a cgroup:file and would have been allowed already. Change-Id: I9d7e31bef6ea91435716aa4312c721fbeaeb69c0 Signed-off-by:
Stephen Smalley <sds@tycho.nsa.gov>
-
Igor Murashkin authored
* commit '0ae33a8d': zygote/dex2oat: Grant additional symlink permissions
-
- Oct 28, 2014
-
-
Igor Murashkin authored
-
Nick Kralevich authored
* commit '5fad3d98': recovery: allow changing unlabeled symbolic links
-
Nick Kralevich authored
* commit 'b519949d': system_server: assert app data files never opened directly
-
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) Bug: 18035729 Change-Id: Ie1acad81a0fd8b2f24e1f3f07a06e6fdb548be62
-
- Oct 23, 2014
-
-
Nick Kralevich authored
* commit '46f3ce87': remove init_shell
-
Stephen Smalley authored
* commit 'd4731ad8': Remove -kernel -recovery from keystore_data_file neverallow.
-
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. (cherrypicked from commit 683ac49d) Bug: 18079773 Change-Id: I8e5c33602cdc38ec9a95b4e83f9ccbb06fe9da7c
-
Nick Kralevich authored
Add a compile time assertion that app data files are never directly opened by system_server. Instead, system_server always expects files to be passed via file descriptors. This neverallow rule will help prevent accidental regressions and allow us to perform other security tightening, for example bug 7208882 - Make an application's home directory 700 Bug: 7208882 Change-Id: I49c725982c4af0b8c76601b2a5a82a5c96df025d
-
- Oct 22, 2014
-
-
Nick Kralevich authored
-
Bill Yi authored
-
Stephen Smalley authored
Aside from the keystore daemon itself, only init needs any access to keystore_data_file (in order to create and potentially restorecon /data/misc/keystore). The exceptions for the kernel and recovery domains are unnecessary; no allow rule permits this access in current policy. Change-Id: I5cf6f29ec08174017ac8f5fb36fef166ce360ca0 Signed-off-by:
Stephen Smalley <sds@tycho.nsa.gov>
-
- Oct 21, 2014
-
-
Nick Kralevich authored
This domain was originally intended to be a place to hold rules for all init.*.rc shell scripts. However, it's now recommended that every init service have it's own SELinux domain, and the use of init_shell is to be avoided. Delete init_shell. No policy is using it anymore, and it's causing confusion for people implementing device specific SELinux policy. Bug: 18062250 Change-Id: I7c90851784b233443642ea69722f3281fd457621
-
Stephen Smalley authored
With the sepolicy-analyze neverallow checking, attribute expansion is performed against the device policy and therefore we do not want our neverallow rules to exempt domains from consideration based on an attribute (e.g. -unconfineddomain). Otherwise, device policy could pass the neverallow check just by adding more domains to unconfineddomain. We could of course add a CTS test to check the list of unconfineddomains against a whitelist, but it seems desirable regardless to narrow these neverallow rules to only the specific domains required. There are three such neverallow rules in current policy: one on creating unlabeled files, one on accessing /dev/hw_random, and one on accessing a character device without a specific type. The only domain in unconfineddomain that appears to have a legitimate need for any of these permissions is the init domain. Replace -unconfineddomain with -init in these neverallow rules, exclude these permissions from unconfineddomain, and add these permissions to init if not already explicitly allowed. auditallow accesses by init to files and character devices left in the generic device type so we can monitor what is being left there, although it is not necessarily a problem unless the file or device should be accessible to others. Change-Id: If6ee1b1a337c834971c6eb21dada5810608babcf Signed-off-by:
Stephen Smalley <sds@tycho.nsa.gov>
-
Nick Kralevich authored
-
Nick Kralevich authored
adbd writes debugging information to /data/adb when persist.adb.trace_mask is set. Allow it. Bug: https://code.google.com/p/android/issues/detail?id=72895 Change-Id: Ia5af09045e9f72a95325b429c30a5ae78e104bdc
-
Stephen Smalley authored
Now that we have assigned specific types to userdata and cache block devices, we can remove the ability of fsck to run on other block devices. Change-Id: I8cfb3dc0e4ebe6b73346ff291ecb11397bb0c2d0 Signed-off-by:
Stephen Smalley <sds@tycho.nsa.gov>
-
- Oct 20, 2014
-
-
Nick Kralevich authored
* commit 'beb279c7': allow init swapon()
-