summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Vakulenko <avakulenko@google.com>2015-12-29 16:13:29 -0800
committerAlex Vakulenko <avakulenko@google.com>2016-01-07 16:11:09 -0800
commitbfc956c8810c0fc736cc4286a2041092a2134088 (patch)
treed5ef9da952a537d02e04a03a15d946f488aade9f
parentc73b9919d3723e8c18574f13fad95211c53b3d19 (diff)
downloadbrillo-bfc956c8810c0fc736cc4286a2041092a2134088.tar.gz
Add SELinux policies to allow processes to talk to weaved over binder
Created necessary rules to allow Brillo daemons to talk to weaved over binder and for weaved to send command notifications to those daemons. BUG: 23782171 Change-Id: I9f02b9d396d6b7484bda4bc0a81852d31ecf0bff
-rw-r--r--sepolicy/metrics_collector.te3
-rw-r--r--sepolicy/service.te1
-rw-r--r--sepolicy/service_contexts1
-rw-r--r--sepolicy/te_macros9
-rw-r--r--sepolicy/update_engine.te3
-rw-r--r--sepolicy/weave.te2
6 files changed, 19 insertions, 0 deletions
diff --git a/sepolicy/metrics_collector.te b/sepolicy/metrics_collector.te
index 8eb8eab..8dc481b 100644
--- a/sepolicy/metrics_collector.te
+++ b/sepolicy/metrics_collector.te
@@ -19,6 +19,9 @@ allow metrics_collector metrics_data_file:file create_file_perms;
# metrics_collector adds metricscollectorservice binder interface.
allow metrics_collector metricscollectorservice:service_manager { add find };
+# Allow metrics_collector to talk to weaved over binder.
+allow_weave_service(metrics_collector)
+
# Rules for the metrics_collector daemon.
allow metrics_collector metrics_collector_data_file:dir rw_dir_perms;
allow metrics_collector metrics_collector_data_file:file create_file_perms;
diff --git a/sepolicy/service.te b/sepolicy/service.te
index bc8df5e..82fd0c5 100644
--- a/sepolicy/service.te
+++ b/sepolicy/service.te
@@ -1,2 +1,3 @@
type metricsd_service, service_manager_type;
type metricscollectorservice, service_manager_type;
+type weave_service, service_manager_type;
diff --git a/sepolicy/service_contexts b/sepolicy/service_contexts
index 1786e66..bc1f1cd 100644
--- a/sepolicy/service_contexts
+++ b/sepolicy/service_contexts
@@ -1,2 +1,3 @@
android.brillo.metrics.IMetricsd u:object_r:metricsd_service:s0
android.brillo.metrics.IMetricsCollectorService u:object_r:metricscollectorservice:s0
+weave_service u:object_r:weave_service:s0
diff --git a/sepolicy/te_macros b/sepolicy/te_macros
index f71588e..2489cc5 100644
--- a/sepolicy/te_macros
+++ b/sepolicy/te_macros
@@ -60,3 +60,12 @@ allow $1 webservd:fd use;
allow $1 webservd:fifo_file rw_file_perms;
allow $1 webservd_data_file:file r_file_perms;
')
+
+#####################################
+# allow_weave_service(domain)
+# Allow a domain and weaved to communicate with each other over binder.
+define(`allow_weave_service', `
+allow $1 weave_service:service_manager find;
+binder_call($1, weaved)
+binder_call(weaved, $1)
+')
diff --git a/sepolicy/update_engine.te b/sepolicy/update_engine.te
index cadbe98..1b0f012 100644
--- a/sepolicy/update_engine.te
+++ b/sepolicy/update_engine.te
@@ -18,3 +18,6 @@ r_dir_file(update_engine, os_release_file);
# Allow crash_reporter access to core dump files.
allow_crash_reporter(update_engine)
+
+# Allow update_engine to talk to weaved over binder.
+allow_weave_service(update_engine)
diff --git a/sepolicy/weave.te b/sepolicy/weave.te
index 96c1270..52f2af8 100644
--- a/sepolicy/weave.te
+++ b/sepolicy/weave.te
@@ -13,6 +13,8 @@ allow_crash_reporter(weaved)
# Allow setting weave properties.
set_prop(weaved, weave_prop)
+allow weaved weave_service:service_manager { add find };
+
allow weaved weaved_data_file:dir w_dir_perms;
allow weaved weaved_data_file:file create_file_perms;