aboutsummaryrefslogtreecommitdiffstats
path: root/rootdir
diff options
context:
space:
mode:
authorJamie Gennis <jgennis@google.com>2012-06-06 18:12:48 -0700
committerJamie Gennis <jgennis@google.com>2012-06-08 14:26:29 -0700
commit1279013dee790c84758e5fc5bed33b5c9df2af9b (patch)
tree4fa97250b1edb75d88d29d722214c2d6606ebc8a /rootdir
parent88f11846a621b148387aa09754bc939933793717 (diff)
downloadsystem_core-1279013dee790c84758e5fc5bed33b5c9df2af9b.tar.gz
system_core-1279013dee790c84758e5fc5bed33b5c9df2af9b.tar.bz2
system_core-1279013dee790c84758e5fc5bed33b5c9df2af9b.zip
Enable tracing on user builds
This change adds init.rc steps to: * allow kernel tracing to be enabled via adb * allow a limited set of kernel trace events to be enabled via adb * allow the kernel trace to be read via adb * allow all users to write to the kernel trace from userland Bug: 6513400 Change-Id: Ic3c189b5697aa5edf88d2f507c932971bed6caff
Diffstat (limited to 'rootdir')
-rw-r--r--rootdir/init.rc6
-rw-r--r--rootdir/init.trace.rc31
2 files changed, 32 insertions, 5 deletions
diff --git a/rootdir/init.rc b/rootdir/init.rc
index aa1bb92a..ef1dc3d6 100644
--- a/rootdir/init.rc
+++ b/rootdir/init.rc
@@ -6,6 +6,7 @@
import /init.${ro.hardware}.rc
import /init.usb.rc
+import /init.trace.rc
on early-init
# Set init and its forked children's oom_adj.
@@ -367,10 +368,6 @@ service console /system/bin/sh
on property:ro.debuggable=1
start console
-# Allow writing to the kernel trace log. Enabling tracing still requires root.
-on property:ro.debuggable=1
- chmod 0222 /sys/kernel/debug/tracing/trace_marker
-
# adbd is controlled via property triggers in init.<platform>.usb.rc
service adbd /sbin/adbd
class core
@@ -505,4 +502,3 @@ service mdnsd /system/bin/mdnsd
socket mdnsd stream 0660 mdnsr inet
disabled
oneshot
-
diff --git a/rootdir/init.trace.rc b/rootdir/init.trace.rc
new file mode 100644
index 00000000..1d114f53
--- /dev/null
+++ b/rootdir/init.trace.rc
@@ -0,0 +1,31 @@
+## Permissions to allow system-wide tracing to the kernel trace buffer.
+##
+on boot
+
+# Allow writing to the kernel trace log.
+ chmod 0222 /sys/kernel/debug/tracing/trace_marker
+
+# Allow the shell group to enable (some) kernel tracing.
+ chown root shell /sys/kernel/debug/tracing/trace_clock
+ chown root shell /sys/kernel/debug/tracing/buffer_size_kb
+ chown root shell /sys/kernel/debug/tracing/options/overwrite
+ chown root shell /sys/kernel/debug/tracing/events/sched/sched_switch/enable
+ chown root shell /sys/kernel/debug/tracing/events/sched/sched_wakeup/enable
+ chown root shell /sys/kernel/debug/tracing/events/power/cpu_frequency/enable
+ chown root shell /sys/kernel/debug/tracing/events/power/cpu_idle/enable
+ chown root shell /sys/kernel/debug/tracing/events/cpufreq_interactive/enable
+ chown root shell /sys/kernel/debug/tracing/tracing_on
+
+ chmod 0664 /sys/kernel/debug/tracing/trace_clock
+ chmod 0664 /sys/kernel/debug/tracing/buffer_size_kb
+ chmod 0664 /sys/kernel/debug/tracing/options/overwrite
+ chmod 0664 /sys/kernel/debug/tracing/events/sched/sched_switch/enable
+ chmod 0664 /sys/kernel/debug/tracing/events/sched/sched_wakeup/enable
+ chmod 0664 /sys/kernel/debug/tracing/events/power/cpu_frequency/enable
+ chmod 0664 /sys/kernel/debug/tracing/events/power/cpu_idle/enable
+ chmod 0664 /sys/kernel/debug/tracing/events/cpufreq_interactive/enable
+ chmod 0664 /sys/kernel/debug/tracing/tracing_on
+
+# Allow only the shell group to read and truncate the kernel trace.
+ chown root shell /sys/kernel/debug/tracing/trace
+ chmod 0660 /sys/kernel/debug/tracing/trace