Commit graph

213 commits

Author SHA1 Message Date
Tom Cherry
949d7cbc29 Support fine grain read access control for properties
Properties are now broken up from a single /dev/__properties__ file into
multiple files, one per property label.  This commit provides the
mechanism to control read access to each of these files and therefore
sets of properties.

This allows full access for all domains to each of these new property
files to match the current permissions of /dev/__properties__.  Future
commits will restrict the access.

Bug: 21852512

Change-Id: Ie9e43968acc7ac3b88e354a0bdfac75b8a710094
2015-12-03 14:06:10 -08:00
Sen Jiang
d33155be26 Add bspatch to update_engine_exec.
This allow bspatch to have same perssion as update_engine.

Also added a rule to allow update_engine to execute bspatch.

Bug: 24478450
Test: No more permission deny during delta update.

Change-Id: If94bc703b2f3fc32f901f0d7f300934316d4e9a4
2015-11-20 16:13:02 -08:00
Calin Juravle
2469b32e15 Remove handling of dalvik-cache/profiles
Bug: 24698874
Bug: 17173268
Change-Id: I8c502ae6aad3cf3c13fae81722c367f45d70fb18
2015-11-16 11:05:10 +00:00
Calin Juravle
f255d775fc Add SElinux rules for /data/misc/trace
The directory is to be used in eng/userdebug build to store method
traces (previously stored in /data/dalvik-cache/profiles).

Bug: 25612377

Change-Id: Ia4365a8d1f13d33ee54115dc5e3bf62786503993
2015-11-11 10:33:51 +00:00
Nick Kralevich
e9d261ff17 Create a new SELinux type for /data/nativetest
1) Don't use the generic "system_data_file" for the files in /data/nativetest.
Rather, ensure it has it's own special label. This allows us to distinguish
these files from other files in SELinux policy.

2) Allow the shell user to execute files from /data/nativetest, on
userdebug or eng builds only.

3) Add a neverallow rule (compile time assertion + CTS test) that nobody
is allowed to execute these files on user builds, and only the shell user
is allowed to execute these files on userdebug/eng builds.

Bug: 25340994
Change-Id: I3e292cdd1908f342699d6c52f8bbbe6065359413
2015-10-28 17:00:30 -07:00
Bruce Beare
59019fd72a Define the i2C device policy
Change-Id: I93d9cfea2f2148bb042d1cb8af3649524ad31034
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
2015-10-27 16:40:54 -07:00
Nick Kralevich
9e6effa15f delete procrank SELinux domain.
Simplify SELinux policy by deleting the procrank SELinux domain.
procrank only exists on userdebug/eng builds, and anyone wanting
to run procrank can just su to root.

Bug: 18342188
Change-Id: I71adc86a137c21f170d983e320ab55be79457c16
2015-10-07 16:44:15 -07:00
David Zeuthen
a10f789d28 Move update_engine policy to AOSP.
The update_engine daemon from Brillo is expected to be used also in
Android so move its selinux policy to AOSP.

Put update_engine in the whitelist (currently only has the recovery
there) allowing it to bypass the notallow for writing to partititions
labeled as system_block_device.

Also introduce the misc_block_device dev_type as update_engine in some
configurations may need to read/write the misc partition. Start
migrating uncrypt to use this instead of overly broad
block_device:blk_file access.

Bug: 23186405
Test: Manually tested with Brillo build.

Change-Id: Icf8cdb4133d4bbdf14bacc6c0fa7418810ac307a
2015-10-07 15:43:20 -04:00
Daniel Rosenberg
a945a362d8 am a984a9bf: file_contexts: Change file_contexts to file_contexts.bin
* commit 'a984a9bfb71b914738318f3617be653d3778b283':
  file_contexts: Change file_contexts to file_contexts.bin
2015-09-15 23:09:39 +00:00
Daniel Rosenberg
a984a9bfb7 file_contexts: Change file_contexts to file_contexts.bin
Change-Id: I0c17b4e36a14afd24763343c09eaca650ea4cefd
2015-09-15 12:57:41 -07:00
Samuel Tan
3cd73c0c7c am 72388335: sepolicy: Apply dhcpcd sepolicy to dhcpcd-6.8.2
* commit '72388335d20291e808affb1131ba920e28d6fc76':
  sepolicy: Apply dhcpcd sepolicy to dhcpcd-6.8.2
2015-08-27 16:13:41 +00:00
Samuel Tan
72388335d2 sepolicy: Apply dhcpcd sepolicy to dhcpcd-6.8.2
Apply the same sepolicy used on dhcpcd to dhcpcd-6.8.2,
which is have it run with the dhcp context, and have its
data files possess the dhcp_data_file context.

BUG: 22956197
Change-Id: I7915b694038bb309d93691ef5d4d293593ef3b5e
2015-08-26 18:20:36 -07:00
Jeffrey Vander Stoep
72d5918c69 am e5c7321e: Merge "file_contexts: label zram devices"
* commit 'e5c7321e0c4141598588b2d9f10ad6a153851b8e':
  file_contexts: label zram devices
2015-08-25 22:23:48 +00:00
William Roberts
5bc4a95a16 file_contexts: label zram devices
Since ram devices are labeled in base contexts, also add a label
for devices using zram.

Change-Id: I002baebf40246e78c6f9fb367ac6fb019101cc86
Signed-off-by: William Roberts <william.c.roberts@intel.com>
2015-08-25 12:40:32 -07:00
Jeff Sharkey
b626dcfe06 am 25725b63: Protect runtime storage mount points.
* commit '25725b63301d786374ef132549793d61a7015689':
  Protect runtime storage mount points.
2015-08-06 19:58:07 +00:00
Jeff Sharkey
25725b6330 Protect runtime storage mount points.
We have a bunch of magic that mounts the correct view of storage
access based on the runtime permissions of an app, but we forgot to
protect the real underlying data sources; oops.

This series of changes just bumps the directory heirarchy one level
to give us /mnt/runtime which we can mask off as 0700 to prevent
people from jumping to the exposed internals.

Also add CTS tests to verify that we're protecting access to
internal mount points like this.

Bug: 22964288
Change-Id: Ic585c4d4381fe51bd764902ef28c38db63b7f2cc
2015-08-06 11:52:51 -07:00
Yasuhiro Matsuda
3bc351b3ad am 3d328179: Add SELinux settings to support tracing during boot.
* commit '3d328179a17364e7bde6c496b6e99fb6601176f6':
  Add SELinux settings to support tracing during boot.
2015-07-30 08:05:09 +00:00
Yasuhiro Matsuda
3d328179a1 Add SELinux settings to support tracing during boot.
This CL adds the SELinux settings required to support tracing
during boot.
https://android-review.googlesource.com/#/c/157163/

BUG: 21739901
Change-Id: Ib3a7107776141ac8cf4f1ca06674f47a0d4b6ae0
2015-07-30 14:34:41 +09:00
Daniel Rosenberg
7d06836563 am f71decc3: Merge "Add support for building without ramdisk"
* commit 'f71decc373505f6d0f0e30b1b82f3e52d36124e5':
  Add support for building without ramdisk
2015-07-29 20:44:02 +00:00
Daniel Rosenberg
e6b6744ce4 Add support for building without ramdisk
Change-Id: I9496af008aa3ad1bf33fb5911c8dd711af219440
2015-07-27 17:24:00 -07:00
Jeff Sharkey
025ca795d2 am 6b75d099: Let\'s reinvent storage, yet again!
* commit '6b75d099e17dad2cf691e0a31a084d4d15d5b5ab':
  Let's reinvent storage, yet again!
2015-06-26 16:05:28 +00:00
Jeff Sharkey
6b75d099e1 Let's reinvent storage, yet again!
Now that we're treating storage as a runtime permission, we need to
grant read/write access without killing the app.  This is really
tricky, since we had been using GIDs for access control, and they're
set in stone once Zygote drops privileges.

The only thing left that can change dynamically is the filesystem
itself, so let's do that.  This means changing the FUSE daemon to
present itself as three different views:

/mnt/runtime_default/foo - view for apps with no access
/mnt/runtime_read/foo - view for apps with read access
/mnt/runtime_write/foo - view for apps with write access

There is still a single location for all the backing files, and
filesystem permissions are derived the same way for each view, but
the file modes are masked off differently for each mountpoint.

During Zygote fork, it wires up the appropriate storage access into
an isolated mount namespace based on the current app permissions.  When
the app is granted permissions dynamically at runtime, the system
asks vold to jump into the existing mount namespace and bind mount
the newly granted access model into place.

avc: denied { sys_chroot } for capability=18 scontext=u:r:vold:s0 tcontext=u:r:vold:s0 tclass=capability permissive=1
avc: denied { mounton } for path="/storage" dev="tmpfs" ino=4155 scontext=u:r:vold:s0 tcontext=u:object_r:storage_file:s0 tclass=dir permissive=1
avc: denied { unmount } for scontext=u:r:zygote:s0 tcontext=u:object_r:tmpfs:s0 tclass=filesystem permissive=0

Bug: 21858077
Change-Id: Ie481d190c5e7a774fbf80fee6e39a980f382967e
2015-06-25 22:26:30 -07:00
Daniel Cashman
8328eaf672 am 3cba84e2: Merge "Run idmap in its own domain."
* commit '3cba84e2638a47df8aacefb56ccc728b165e7a23':
  Run idmap in its own domain.
2015-06-23 18:06:52 +00:00
Stephen Smalley
b335e3847f Run idmap in its own domain.
Run idmap in its own domain rather than leaving it in installd's domain.
This prevents misuse of installd's permissions by idmap.

zygote also needs to run idmap.  For now, just run it in zygote's
domain as it was previously since that is what is done for dex2oat
invocation by zygote.  zygote appears to run idmap with system uid
while installd runs it with app UIDs, so using different domains
seems appropriate.

Remove system_file execute_no_trans from both installd and zygote;
this should no longer be needed with explicit labels for dex2oat and
idmap.

Change-Id: If47e2c1326b84c20e94a20f5e699300dce12bdfe
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
2015-06-19 14:34:20 -04:00
Paul Lawrence
b708e2c9a0 am dc496c2b: Merge "Move crypt commands to a different listener in vold" into mnc-dev
* commit 'dc496c2bfb5fe53c86d317ed041836f5262802cf':
  Move crypt commands to a different listener in vold
2015-06-04 21:53:45 +00:00
Paul Lawrence
dc496c2bfb Merge "Move crypt commands to a different listener in vold" into mnc-dev 2015-06-04 21:32:50 +00:00
Paul Lawrence
3aac44ed17 Move crypt commands to a different listener in vold
In order to prevent this bug from happening, we must allow vold cryptfs
commands to complete while a long running mount is underway.

While waiting for vold to be changed to a binder interface, we will simply
create two listeners, one for cryptfs and one for everything else.

Bug: 19197175
Change-Id: I819f6a54c0a232826016823f2fde3adf7be31f9d
2015-06-03 14:09:21 -07:00
Mark Salyzyn
27b8cad3a3 am 0d22c6ce: logd: logpersistd
* commit '0d22c6cec62d2fa31fa013513a46440d71a65835':
  logd: logpersistd
2015-06-02 22:45:23 +00:00
Mark Salyzyn
7e0838aaeb logd: logpersistd
(cherry pick from commit 0d22c6cec6)

- Enable logpersistd to write to /data/misc/logd
- Enable logpersistd to read from pstore to help complete any content
  lost by reboot disruption
- Enable shell readonly ability logpersistd files in /data/misc/logd
- Enable logcat -f when placed into logd context to act as a
  logpersistd (nee logcatd) agent, restrict access to run only in
  userdebug or eng

Bug: 19608716
Change-Id: I3209582bc796a1093c325c90068a48bf268e5ab5
2015-06-02 15:24:11 -07:00
Mark Salyzyn
0d22c6cec6 logd: logpersistd
- Enable logpersistd to write to /data/misc/logd
- Enable logpersistd to read from pstore to help complete any content
  lost by reboot disruption
- Enable shell readonly ability logpersistd files in /data/misc/logd
- Enable logcat -f when placed into logd context to act as a
  logpersistd (nee logcatd) agent, restrict access to run only in
  userdebug or eng

Bug: 19608716
Change-Id: I3209582bc796a1093c325c90068a48bf268e5ab5
2015-06-02 13:56:01 -07:00
dcashman
894911d78f Expand rtc_device label to match all rtc class drivers.
/dev/rtc0 is not the only possible rtc device node, make sure all are given the
rtc_device label.

(cherry-pick of 1b4b3b918b)

Change-Id: Iea6e1271fb054ea7f44860724e04143875867d78
2015-05-21 15:39:11 -07:00
dcashman
0d525e66be am a9bfc888: Merge "Expand rtc_device label to match all rtc class drivers."
* commit 'a9bfc888143150126363b9b9676d6197965da66f':
  Expand rtc_device label to match all rtc class drivers.
2015-05-21 18:51:42 +00:00
dcashman
1b4b3b918b Expand rtc_device label to match all rtc class drivers.
/dev/rtc0 is not the only possible rtc device node, make sure all are given the
rtc_device label.

Change-Id: I50d15aa62e87509e940acd168474433803b2115d
2015-05-21 10:35:57 -07:00
Jim Miller
523397621b am 5d78c07d: Merge "Add selinux policy for fingerprintd" into mnc-dev
* commit '5d78c07d4a463ec5ed0403850be718de670c9e97':
  Add selinux policy for fingerprintd
2015-05-21 12:22:19 +00:00
Jim Miller
264eb6566a Add selinux policy for fingerprintd
Change-Id: Ibcb714248c28abf21272986facaade376dcbd7ef
2015-05-19 18:28:45 -07:00
dcashman
53d3b99c5d resolved conflicts for merge of c7594898 to mnc-dev-plus-aosp
Change-Id: I81937479a0cb37d4e781e076c2e5ff6551cbf822
2015-05-18 15:15:15 -07:00
dcashman
807d8d0249 Label /dev/rtc0 as rtc_device.
Grant access to system_server, as it is used by AlarmManagerService.

(cherry-pick of c7594898db)

Change-Id: I8b5795cb4739bb7fb6b2673d0b1b12be40db7a7f
2015-05-18 14:18:11 -07:00
dcashman
c7594898db Label /dev/rtc0 as rtc_device.
Grant access to system_server, as it is used by AlarmManagerService.

Change-Id: I4f099fe30ba206db07d636dd454d43d3df9d3015
2015-05-18 14:01:37 -07:00
Jeff Sharkey
cf010b55e1 am e5acc38f: Merge "drop_caches label, vold scratch space on expanded." into mnc-dev
* commit 'e5acc38f09e4375c8cb9fced716e3242505d2400':
  drop_caches label, vold scratch space on expanded.
2015-05-15 22:22:34 +00:00
Jeff Sharkey
c960596cc3 drop_caches label, vold scratch space on expanded.
Define an explicit label for /proc/sys/vm/drop_caches and grant to
the various people who need it, including vold which uses it when
performing storage benchmarks.

Also let vold create new directories under it's private storage area
where the benchmarks will be carried out.  Mirror the definition of
the private storage area on expanded media.

avc: denied { write } for name="drop_caches" dev="proc" ino=20524 scontext=u:r:vold:s0 tcontext=u:object_r:proc:s0 tclass=file permissive=0

Bug: 21172095
Change-Id: I300b1cdbd235ff60e64064d3ba6e5ea783baf23f
2015-05-14 20:55:33 -07:00
Nick Kralevich
8cc7ea7216 am 540be83b: Merge "Label /oem files"
* commit '540be83b82a395147388b54a8c8197d84cd255ab':
  Label /oem files
2015-05-07 21:10:25 +00:00
Nick Kralevich
415f0ba73c Label /oem files
Files on the /oem partition are weird. The /oem partition is an ext4
partition, built in the Android tree using the "oem_image" build target
added in build/ commit b8888432f0bc0706d5e00e971dde3ac2e986f2af. Since
it's an ext4 image, it requires SELinux labels to be defined at build
time. However, the partition is mounted using context=u:object_r:oemfs:s0,
which ignores the labels on the filesystem.

Assign all the files on the /oem image to be oemfs, which is consistent
with how they'll be mounted when /oem is mounted.

Other options would be to use an "unlabeled" label, or try to fix the
build system to not require SELinux labels for /oem images.

(cherrypicked from commit 2025fd1476)

Bug: 20816563
Change-Id: Ibe8d9ff626eace8a2d5d02c3f06290105baa59fe
2015-05-07 13:49:42 -07:00
Nick Kralevich
15b68e7281 am 1212235f: Don\'t label simpleperf system_file
* commit '1212235ff4693f2140a9724bc52032e25afcabef':
  Don't label simpleperf system_file
2015-05-07 16:15:26 +00:00
Nick Kralevich
2025fd1476 Label /oem files
Files on the /oem partition are weird. The /oem partition is an ext4
partition, built in the Android tree using the "oem_image" build target
added in build/ commit b8888432f0bc0706d5e00e971dde3ac2e986f2af. Since
it's an ext4 image, it requires SELinux labels to be defined at build
time. However, the partition is mounted using context=u:object_r:oemfs:s0,
which ignores the labels on the filesystem.

Assign all the files on the /oem image to be oemfs, which is consistent
with how they'll be mounted when /oem is mounted.

Other options would be to use an "unlabeled" label, or try to fix the
build system to not require SELinux labels for /oem images.

Bug: 20816563
Change-Id: Ibe8d9ff626eace8a2d5d02c3f06290105baa59fe
2015-05-06 16:33:56 -07:00
Dehao Chen
34a468fad2 Update sepolicy to add label for /data/misc/perfprofd.
Bug: 19483574
(cherry picked from commit 7d66f783c2)

Change-Id: If617e29b6fd36c88c157941bc9e11cf41329da48
2015-05-06 15:26:03 -07:00
Nick Kralevich
1212235ff4 Don't label simpleperf system_file
The default label for files on /system is already system_file. No
need to explicitly specify it.

Change-Id: If0c92a0da4119a0d8f83b4a3e05101cfcdb9a82d
2015-05-06 15:19:52 -07:00
Than McIntosh
38d0247da0 New sepolicy for perfprofd, simpleperf.
Bug: http://b/19483574

(cherry picked from commit 0fdd364e89)

Change-Id: If29946a5d7f92522f3bbb807cea5f9f1b42a6513
2015-05-06 15:16:42 -07:00
Dehao Chen
7d66f783c2 Update sepolicy to add label for /data/misc/perfprofd.
Bug: 19483574
Change-Id: I7e4c0cf748d2b216dcb3aede3803883552b58b64
2015-05-06 14:45:44 -07:00
Than McIntosh
0fdd364e89 New sepolicy for perfprofd, simpleperf.
Bug: http://b/19483574

Change-Id: I594f04004cccd2cbfadbd0f9d1bbb9815a2ea59d
2015-05-04 13:49:15 -04:00
Elliott Hughes
9b8505b1e7 am a331c593: am 5aac86dc: Revert "Revert "SELinux policy changes for re-execing init.""
* commit 'a331c593d1ed9ad5da8e68626a59b3a33a225531':
  Revert "Revert "SELinux policy changes for re-execing init.""
2015-04-24 21:09:36 +00:00