From 1279013dee790c84758e5fc5bed33b5c9df2af9b Mon Sep 17 00:00:00 2001 From: Jamie Gennis Date: Wed, 6 Jun 2012 18:12:48 -0700 Subject: [PATCH] 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 --- rootdir/init.rc | 6 +----- rootdir/init.trace.rc | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 rootdir/init.trace.rc diff --git a/rootdir/init.rc b/rootdir/init.rc index aa1bb92ad..ef1dc3d66 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..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 000000000..1d114f538 --- /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