From 00c8e3d95ae20cee5643eb43d78b5852aab68a0e Mon Sep 17 00:00:00 2001
From: Lalit Maganti <lalitm@google.com>
Date: Fri, 20 Apr 2018 19:09:45 +0100
Subject: [PATCH] sepolicy: allow shell to read/write traced prop

This is to fix the CTS failures given by the bugs below where devices
where traced is not enabled by default causes test failures.

(cherry picked from commit 673b4db77706abb51f75ebfe685cf0b7af40f634)

Bug: 78215159
Bug: 78347829
Change-Id: Ib0f6a1cdb770528dbbeb857368534ff5040e464e
---
 private/compat/26.0/26.0.ignore.cil | 1 +
 private/compat/27.0/27.0.ignore.cil | 1 +
 private/property_contexts           | 1 +
 public/property.te                  | 1 +
 public/shell.te                     | 3 +++
 5 files changed, 7 insertions(+)

diff --git a/private/compat/26.0/26.0.ignore.cil b/private/compat/26.0/26.0.ignore.cil
index d45596ab9..0064bc026 100644
--- a/private/compat/26.0/26.0.ignore.cil
+++ b/private/compat/26.0/26.0.ignore.cil
@@ -109,6 +109,7 @@
     traceur_app_tmpfs
     traced
     traced_consumer_socket
+    traced_enabled_prop
     traced_exec
     traced_probes
     traced_probes_exec
diff --git a/private/compat/27.0/27.0.ignore.cil b/private/compat/27.0/27.0.ignore.cil
index aa322418f..11bd8b58d 100644
--- a/private/compat/27.0/27.0.ignore.cil
+++ b/private/compat/27.0/27.0.ignore.cil
@@ -85,6 +85,7 @@
     trace_data_file
     traced
     traced_consumer_socket
+    traced_enabled_prop
     traced_exec
     traced_probes
     traced_probes_exec
diff --git a/private/property_contexts b/private/property_contexts
index ecde9d3ea..4433bdf7d 100644
--- a/private/property_contexts
+++ b/private/property_contexts
@@ -59,6 +59,7 @@ persist.sys.audit_safemode      u:object_r:safemode_prop:s0
 persist.service.        u:object_r:system_prop:s0
 persist.service.bdroid. u:object_r:bluetooth_prop:s0
 persist.security.       u:object_r:system_prop:s0
+persist.traced.enable   u:object_r:traced_enabled_prop:s0
 persist.vendor.overlay.  u:object_r:overlay_prop:s0
 ro.boot.vendor.overlay.  u:object_r:overlay_prop:s0
 ro.boottime.             u:object_r:boottime_prop:s0
diff --git a/public/property.te b/public/property.te
index 0e2980988..42fce04c3 100644
--- a/public/property.te
+++ b/public/property.te
@@ -51,6 +51,7 @@ type shell_prop, property_type, core_property_type;
 type system_boot_reason_prop, property_type;
 type system_prop, property_type, core_property_type;
 type system_radio_prop, property_type, core_property_type;
+type traced_enabled_prop, property_type;
 type vold_prop, property_type, core_property_type;
 type wifi_log_prop, property_type, log_property_type;
 type wifi_prop, property_type;
diff --git a/public/shell.te b/public/shell.te
index 5e2745be4..7b676770e 100644
--- a/public/shell.te
+++ b/public/shell.te
@@ -66,6 +66,9 @@ set_prop(shell, debug_prop)
 set_prop(shell, powerctl_prop)
 set_prop(shell, log_tag_prop)
 set_prop(shell, wifi_log_prop)
+# Allow shell to start/stop traced via the persist.traced.enable
+# property (which also takes care of /data/misc initialization).
+set_prop(shell, traced_enabled_prop)
 # adjust is_loggable properties
 userdebug_or_eng(`set_prop(shell, log_prop)')
 # logpersist script
-- 
GitLab