Commit graph

2161 commits

Author SHA1 Message Date
Nick Kralevich
224be2c21a am 62af8381: Merge "Allow installd to chown/chmod app data files."
* commit '62af83810baa7a6c07a8673136c1cdf5a6763b48':
  Allow installd to chown/chmod app data files.
2014-06-11 14:21:43 +00:00
Stephen Smalley
ad44208285 am 7c11bdc4: Allow dnsmasq to inherit/use netd UDP socket.
* commit '7c11bdc414e10d0e570ff35394d209784a647105':
  Allow dnsmasq to inherit/use netd UDP socket.
2014-06-11 14:21:42 +00:00
Stephen Smalley
7c11bdc414 Allow dnsmasq to inherit/use netd UDP socket.
Addresses denials such as:
avc: denied { read write } for comm="dnsmasq" path="socket:[1054090]" dev="sockfs" ino=1054090 scontext=u:r:dnsmasq:s0 tcontext=u:r:netd:s0 tclass=udp_socket
This may not be needed (need to check netd to see if it should be closing
all of these sockets before exec'ing other programs), but should be harmless.

Change-Id: I77c7af5e050e039fd48322914eeabbcb8a716040
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2014-06-11 14:16:36 +00:00
Stephen Smalley
d352fba1b9 am 42fb824c: Refactor the shell domains.
* commit '42fb824ca9f3e46b4419f05083f2694ac67a8229':
  Refactor the shell domains.
2014-06-11 13:10:30 +00:00
Stephen Smalley
42fb824ca9 Refactor the shell domains.
Originally we used the shell domain for ADB shell only and
the init_shell domain for the console service, both transitioned
via automatic domain transitions on sh.  So they originally
shared a common set of rules.  Then init_shell started to be used
for sh commands invoked by init.<board>.rc files, and we switched
the console service to just use the shell domain via seclabel entry
in init.rc.  Even most of the sh command instances in init.<board>.rc
files have been converted to use explicit seclabel options with
more specific domains (one lingering use is touch_fw_update service
in init.grouper.rc).  The primary purpose of init_shell at this point
is just to shed certain permissions from the init domain when init invokes
a shell command.  And init_shell and shell are quite different in
their permission requirements since the former is used now for
uid-0 processes spawned by init whereas the latter is used for
uid-shell processes spawned by adb or init.

Given these differences, drop the shelldomain attribute and take those
rules directly into shell.te.  init_shell was an unconfined_domain(),
so it loses nothing from this change.  Also switch init_shell to
permissive_or_unconfined() so that we can see its actual denials
in the future in userdebug/eng builds.

Change-Id: I6e7e45724d1aa3a6bcce8df676857bc8eef568f0
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2014-06-11 07:31:34 -04:00
Ruchi Kandoi
0bcbc6c470 am 13d58863: system_server: Adds permission to system_server to write sysfs file
* commit '13d5886363675915e5115ccc0a95ca5d7776730b':
  system_server: Adds permission to system_server to write sysfs file
2014-06-10 23:51:12 +00:00
Ruchi Kandoi
13d5886363 system_server: Adds permission to system_server to write sysfs file
Need this for changing the max_cpufreq and min_cpufreq for the low power
mode.

Denials:
type=1400 audit(1402431554.756:14): avc: denied { write } for pid=854
comm="PowerManagerSer" name="scaling_max_freq" dev="sysfs" ino=9175
scontext=u:r:system_server:s0 tcontext=u:object_r:sysfs_devices_system_cpu:s0
tclass=file

Change required for Change-Id: I1cf458c4f128818ad1286e5a90b0d359b6913bb8

Change-Id: Ic5ce3c8327e973bfa1d53f298c07dcea1550b646
Signed-off-by: Ruchi Kandoi<kandoiruchi@google.com>
2014-06-10 23:43:33 +00:00
Nick Kralevich
62af83810b Merge "Allow installd to chown/chmod app data files." 2014-06-10 22:15:14 +00:00
Stephen Smalley
89b9ff7e87 Allow installd to chown/chmod app data files.
Addresses denials such as:
avc: denied { setattr } for comm="installd" name="com.android.calendar_preferences_no_backup.xml" dev="mmcblk0p28" ino=1499393 scontext=u:r:installd:s0 tcontext=u:object_r:app_data_file:s0 tclass=file                                        avc: denied { setattr } for comm="installd" name="calendar_alerts.xml" dev="mmcblk0p28" ino=1499463 scontext=u:r:installd:s0 tcontext=u:object_r:app_data_file:s0 tclass=file
avc: denied { setattr } for comm="installd" name="_has_set_default_values.xml" dev="mmcblk0p28" ino=1499428 scontext=u:r:installd:s0 tcontext=u:object_r:app_data_file:s0 tclass=file

Change-Id: I0622f1a9d2b10e28be2616f91edf33bc048b4ac7
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2014-06-11 14:16:43 +00:00
Nick Kralevich
aa15a5002c am f4e69028: recovery: don\'t use single quote
* commit 'f4e690285022ff80381d6e371d2e7747b6894fcd':
  recovery: don't use single quote
2014-06-10 13:06:14 +00:00
Nick Kralevich
f4e6902850 recovery: don't use single quote
single quotes make the m4 parser think it's at the end of
a block, and generates the following compile time warning:

  external/sepolicy/recovery.te:9:WARNING 'unrecognized character' at token ''' on line 7720:

Change-Id: I2502f16f0d9ec7528ec0fc2ee65ad65635d0101b
2014-06-09 20:36:59 -07:00
Nick Kralevich
71eecd330a am a8281adf: dumpstate: allow pstore access
* commit 'a8281adf994623c6e1404d3102915a93eb0b70aa':
  dumpstate: allow pstore access
2014-06-10 01:14:56 +00:00
Nick Kralevich
a8281adf99 dumpstate: allow pstore access
Dumpstate reads from /sys/fs/pstore/console-ramoops when generating
a bug report. Allow it.

Addresses the following denials:
  <12>[ 2187.362750] type=1400 audit(1402346777.139:9): avc: denied { search } for pid=4155 comm="dumpstate" name="/" dev="pstore" ino=9954 scontext=u:r:dumpstate:s0 tcontext=u:object_r:pstorefs:s0 tclass=dir permissive=1
  <12>[ 2187.363025] type=1400 audit(1402346777.139:10): avc: denied { getattr } for pid=4155 comm="dumpstate" path="/sys/fs/pstore/console-ramoops" dev="pstore" ino=9955 scontext=u:r:dumpstate:s0 tcontext=u:object_r:pstorefs:s0 tclass=file permissive=1
  <12>[ 2187.363185] type=1400 audit(1402346777.139:11): avc: denied { read } for pid=4155 comm="dumpstate" name="console-ramoops" dev="pstore" ino=9955 scontext=u:r:dumpstate:s0 tcontext=u:object_r:pstorefs:s0 tclass=file permissive=1
  <12>[ 2187.363321] type=1400 audit(1402346777.139:12): avc: denied { open } for pid=4155 comm="dumpstate" path="/sys/fs/pstore/console-ramoops" dev="pstore" ino=9955 scontext=u:r:dumpstate:s0 tcontext=u:object_r:pstorefs:s0 tclass=file permissive=1

Change-Id: Ia20b7a03ed8e0c61b023eea93415a50af82e1bbf
2014-06-09 13:46:38 -07:00
Nick Kralevich
75927265f5 am b2ed044f: dumpstate: allow gpu_device access
* commit 'b2ed044f8d6ed31acd814f5346148e762f3a5751':
  dumpstate: allow gpu_device access
2014-06-09 20:19:34 +00:00
Nick Kralevich
b2ed044f8d dumpstate: allow gpu_device access
dumpstate calls screencap to take a screenshot. screencap
requires the ability to access the gpu device. Allow it.

Bug: 15514427
Change-Id: Iad8451b6108786653146de471f6be2d26b0e3297
2014-06-09 12:52:01 -07:00
Nick Kralevich
3e7eddf70e am 7fd03e9c: Merge "remove shell_data_file from unconfined."
* commit '7fd03e9c83cf60d8864bb2a0d6090fb85de2aed6':
  remove shell_data_file from unconfined.
2014-06-09 19:32:08 +00:00
Nick Kralevich
7fd03e9c83 Merge "remove shell_data_file from unconfined." 2014-06-09 19:24:45 +00:00
Nick Kralevich
a8890f9381 am ac23ff9e: Merge "label usbfs"
* commit 'ac23ff9ea8b11fff0e75c618a34e996e6e59f9e2':
  label usbfs
2014-06-09 16:24:48 +00:00
Nick Kralevich
ac23ff9ea8 Merge "label usbfs" 2014-06-09 16:18:05 +00:00
Nick Kralevich
d7bedd6078 am e79433d8: Merge "add attach_queue to tun_socket"
* commit 'e79433d8574993a7857a2406ea312bfa1f65a59f':
  add attach_queue to tun_socket
2014-06-09 15:52:09 +00:00
Nick Kralevich
6db62fd50b am ddc90255: Merge "Refine recovery domain."
* commit 'ddc902553d55c2cddec1aea010bf943b0e7e6252':
  Refine recovery domain.
2014-06-09 15:52:09 +00:00
Nick Kralevich
d37603dcd7 am 442b6f10: Merge "allow adb push to create directories."
* commit '442b6f10532cc6a03bcfbb7940a18a23d480e098':
  allow adb push to create directories.
2014-06-09 15:52:09 +00:00
Nick Kralevich
62ab866ad4 am 7ada3bdf: Merge "surfaceflinger: remove unconfined domain reference."
* commit '7ada3bdf976acae90fb3004a38f44bd1e6ef4dd3':
  surfaceflinger: remove unconfined domain reference.
2014-06-09 15:52:08 +00:00
Nick Kralevich
e79433d857 Merge "add attach_queue to tun_socket" 2014-06-09 15:43:23 +00:00
Nick Kralevich
ddc902553d Merge "Refine recovery domain." 2014-06-09 15:43:11 +00:00
Nick Kralevich
442b6f1053 Merge "allow adb push to create directories." 2014-06-09 15:42:52 +00:00
Nick Kralevich
7ada3bdf97 Merge "surfaceflinger: remove unconfined domain reference." 2014-06-09 15:42:42 +00:00
Nick Kralevich
5a5fb85f1e label usbfs
Right now usbfs doesn't have any labels, generating the
following kernel warnings:

<7>[    3.009582] SELinux: initialized (dev usbfs, type usbfs), not configured for labeling

and the occasional SELinux unlabeled auditallow logs:

<4>[  285.579254] type=1400 audit(1402010345.094:16): avc: granted { search } for pid=371 comm="qcks" name="/" dev="usbfs" ino=15794 scontext=u:r:kickstart:s0 tcontext=u:object_r:unlabeled:s0 tclass=dir
<4>[  285.632354] type=1400 audit(1402010345.154:18): avc: granted { search } for pid=371 comm="qcks" name="001" dev="usbfs" ino=15796 scontext=u:r:kickstart:s0 tcontext=u:object_r:unlabeled:s0 tclass=dir

Make sure usbfs is assigned via genfscon

Change-Id: I7191f2584014ba55a3c3a98e7efd0350dc958782
2014-06-09 08:36:14 -07:00
Nick Kralevich
5eafefd112 am a1cd65b8: Make dumpstate domain enforcing.
* commit 'a1cd65b81021645835123ccddd8b8998d05b21b1':
  Make dumpstate domain enforcing.
2014-06-09 08:30:18 +00:00
Stephen Smalley
57b4399055 am d1591224: Make system_app enforcing.
* commit 'd1591224818092e5f4abad7ba5b71cd2137ffd02':
  Make system_app enforcing.
2014-06-09 08:30:17 +00:00
Nick Kralevich
a1cd65b810 Make dumpstate domain enforcing.
Change-Id: I74bf300c1b80e94e5acf9ba00ab443dfabad7408
2014-06-09 05:48:31 +00:00
Nick Kralevich
b53e84a723 surfaceflinger: remove unconfined domain reference.
surfaceflinger has been enforcing for a while now. Remove
the reference to the unconfined domain.

Change-Id: Ia86a0553e9c2db3c89f93e26179c79278d1d3bed
2014-06-08 22:30:58 -07:00
Stephen Smalley
d159122481 Make system_app enforcing.
Change-Id: I9c3ff0a79d947a14084638772451d06298c43e47
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2014-06-09 05:27:11 +00:00
Stephen Smalley
8100da48b7 am 6bb672e6: Make the system_server domain enforcing.
* commit '6bb672e6b3df2fb3dbb49f32e5f30589ff539e6e':
  Make the system_server domain enforcing.
2014-06-09 02:51:22 +00:00
Stephen Smalley
6bb672e6b3 Make the system_server domain enforcing.
Change-Id: I1ea20044bd6789dde002da7fc9613cfbf1ee2d23
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2014-06-09 02:45:53 +00:00
Nick Kralevich
98b7ab5396 allow adb push to create directories.
Addresses the following denial:

  type=1400 audit(0.0:24): avc: denied { create } for comm="adbd" name="md5sum" scontext=u:r:adbd:s0 tcontext=u:object_r:shell_data_file:s0 tclass=dir

Change-Id: Ibb1708af85b2235cbad2794993cfeef896f8db4a
2014-06-08 13:47:33 -07:00
Nick Kralevich
8b7ca455a6 Refine recovery domain.
Addresses the following denials:

    avc:  denied  { read write } for  pid=132 comm="recovery" name="tty0" dev="tmpfs" ino=5730 scontext=u:r:recovery:s0 tcontext=u:object_r:tty_device:s0 tclass=chr_file
    avc:  denied  { open } for  pid=132 comm="recovery" name="tty0" dev="tmpfs" ino=5730 scontext=u:r:recovery:s0 tcontext=u:object_r:tty_device:s0 tclass=chr_file
    avc:  denied  { ioctl } for  pid=132 comm="recovery" path="/dev/tty0" dev="tmpfs" ino=5730 scontext=u:r:recovery:s0 tcontext=u:object_r:tty_device:s0 tclass=chr_file
    avc:  denied  { sys_tty_config } for  pid=132 comm="recovery" capability=26  scontext=u:r:recovery:s0 tcontext=u:r:recovery:s0 tclass=capability
    avc:  denied  { setfcap } for  pid=142 comm="update_binary" capability=31  scontext=u:r:recovery:s0 tcontext=u:r:recovery:s0 tclass=capability

Change-Id: I5219303fbd5afe8f74919db153af6525c0b54154
2014-06-07 11:53:54 -07:00
Nick Kralevich
ee49c0e36a remove shell_data_file from unconfined.
Domains which want to access /data/local/tmp must do so by
creating their own SELinux domain.

Bug: 15164984
Change-Id: I0061129c64e659c552cf6565058b0786fba59ae0
2014-06-07 10:00:59 -07:00
Nick Kralevich
d7af45d374 add attach_queue to tun_socket
Modeled after http://oss.tresys.com/pipermail/refpolicy/2013-January/006283.html

Addresses the following kernel error message:

  <6>[    3.855423] SELinux:  Permission attach_queue in class tun_socket not defined in policy.
  <6>[    3.862482] SELinux: the above unknown classes and permissions will be denied
  <7>[    3.869668] SELinux:  Completing initialization.

Change-Id: Iad87fcd5348d121a808dbe7ae3c63f8c90fc09fc
2014-06-06 16:51:11 -07:00
Nick Kralevich
754e64b9b7 am 90cb59fd: Merge "Remove domain unlabeled access."
* commit '90cb59fd513441622323c77762a96df6a85a7100':
  Remove domain unlabeled access.
2014-06-06 02:31:08 +00:00
Nick Kralevich
90cb59fd51 Merge "Remove domain unlabeled access." 2014-06-06 02:16:42 +00:00
Nick Kralevich
a5afe484ef am 4fd4a205: Allow adbd / shell /data/anr access
* commit '4fd4a2054db06329acc524c7eb07715ec625dc5d':
  Allow adbd / shell /data/anr access
2014-06-05 21:27:01 +00:00
Nick Kralevich
4fd4a2054d Allow adbd / shell /data/anr access
The shell user needs to be able to run commands like
"cat /data/anr/traces.txt". Allow it.

We also need to be able to pull the file via adb.
"adb pull /data/anr/traces.txt". Allow it.

Addresses the following denials:

<4>[   20.212398] type=1400 audit(1402000262.433:11): avc: denied { getattr } for pid=1479 comm="adbd" path="/data/anr/traces.txt" dev="mmcblk0p28" ino=325763 scontext=u:r:adbd:s0 tcontext=u:object_r:anr_data_file:s0 tclass=file
<4>[   20.252182] type=1400 audit(1402000262.473:12): avc: denied { read } for pid=1479 comm="adbd" name="traces.txt" dev="mmcblk0p28" ino=325763 scontext=u:r:adbd:s0 tcontext=u:object_r:anr_data_file:s0 tclass=file
<4>[   20.252579] type=1400 audit(1402000262.473:13): avc: denied { open } for pid=1479 comm="adbd" name="traces.txt" dev="mmcblk0p28" ino=325763 scontext=u:r:adbd:s0 tcontext=u:object_r:anr_data_file:s0 tclass=file
<4>[   27.104068] type=1400 audit(1402000268.479:14): avc: denied { read } for pid=2377 comm="sh" name="traces.txt" dev="mmcblk0p28" ino=325763 scontext=u:r:shell:s0 tcontext=u:object_r:anr_data_file:s0 tclass=file

Bug: 15450720
Change-Id: I767102a7182895112838559b0ade1cd7c14459ab
2014-06-05 13:31:31 -07:00
Nick Kralevich
88c611a949 am 0341e1ab: Merge "Don\'t grant domain device:dir rw_dir_perms"
* commit '0341e1abb1017b12985a4e1e904bc4f900601a2c':
  Don't grant domain device:dir rw_dir_perms
2014-06-05 17:00:40 +00:00
Nick Kralevich
6d00459dfd am a03d761f: refine recovery domain.
* commit 'a03d761f191320662dfea3182164d4166c7ad1c7':
  refine recovery domain.
2014-06-05 17:00:39 +00:00
Nick Kralevich
0341e1abb1 Merge "Don't grant domain device:dir rw_dir_perms" 2014-06-05 16:44:13 +00:00
Nick Kralevich
a03d761f19 refine recovery domain.
Make sure we have all necessary rules to modify system_file and
exec_type.

Allow writing to /proc/sys/vm/drop_caches and other proc
files.

Addresses denials like:

  avc:  denied  { getattr } for  pid=152 comm="update_binary" path="/system/bin/debuggerd" dev="mmcblk0p21" ino=88 scontext=u:r:recovery:s0 tcontext=u:object_r:debuggerd_exec:s0 tclass=file
  avc:  denied  { read } for  pid=152 comm="update_binary" name="debuggerd" dev="mmcblk0p21" ino=88 scontext=u:r:recovery:s0 tcontext=u:object_r:debuggerd_exec:s0 tclass=file
  avc:  denied  { open } for  pid=152 comm="update_binary" name="debuggerd" dev="mmcblk0p21" ino=88 scontext=u:r:recovery:s0 tcontext=u:object_r:debuggerd_exec:s0 tclass=file
  avc:  denied  { remove_name } for  pid=152 comm="update_binary" name="framework.jar" dev="mmcblk0p21" ino=1600 scontext=u:r:recovery:s0 tcontext=u:object_r:system_file:s0 tclass=dir
  avc:  denied  { add_name } for  pid=152 comm="update_binary" name="Foo.apk.patch" scontext=u:r:recovery:s0 tcontext=u:object_r:system_file:s0 tclass=dir
  avc:  denied  { write } for  pid=152 comm="update_binary" name="drop_caches" dev="proc" ino=8288 scontext=u:r:recovery:s0 tcontext=u:object_r:proc:s0 tclass=file

recovery is still in permissive_or_unconfined(), so no rules are
being enforced.

Change-Id: I14ca777fe27a2b0fd9a0aefce5ddcc402b1e5a59
2014-06-04 23:43:03 -07:00
Nick Kralevich
2bcea0a313 Don't grant domain device:dir rw_dir_perms
write_logd() is allowed for domain, which means that all domains
are permitted read/write access to /dev. That's overly permissive
and causes substantial differences between user and userdebug/eng
devices.

Remove domain device:dir rw_dir_perms access. It's not needed.

Allow all domains to write/append to logd_debug. logd is responsible
for creating this file if need be. Remove logd_debug file create
permissions. This also eliminates the need for the type_transition
rules.

Bug: 15419803
Change-Id: I7dc3c4df8d413c649c24ae7bc15546d64226ce3b
2014-06-04 16:43:04 -07:00
Nick Kralevich
2e0be79840 am dde428a9: Merge "More recovery rules"
* commit 'dde428a978319fadb24aa41b613c7e97d9863ced':
  More recovery rules
2014-06-04 20:11:01 +00:00
Nick Kralevich
7463d76e59 am 3d2eb27d: Merge "Make racoon enforcing."
* commit '3d2eb27dede73008685bdb290ff705290ef22cf3':
  Make racoon enforcing.
2014-06-04 20:11:00 +00:00