#!/bin/bash

tag="/tmp/ttrace_tag"
conf="/etc/ttrace.conf"
change_permission="--update"

function init_perms(){
    chown root:developer /tmp/ttrace_tag
    chmod 0664 /tmp/ttrace_tag
    chsmack -a '*' /tmp/ttrace_tag

    chmod 0755 /sys/kernel/debug
    chown root:developer /sys/kernel/debug/tracing/trace_marker
    chmod 0222 /sys/kernel/debug/tracing/trace_marker
    chsmack -a '*' /sys/kernel/debug/tracing/trace_marker

    chown root:developer /sys/kernel/debug/tracing/trace_clock
    chmod 0664 /sys/kernel/debug/tracing/trace_clock
    chsmack -a '*' /sys/kernel/debug/tracing/trace_clock

    chown root:developer /sys/kernel/debug/tracing/buffer_size_kb
    chmod 0664 /sys/kernel/debug/tracing/buffer_size_kb
    chsmack -a '*' /sys/kernel/debug/tracing/buffer_size_kb

    chown root:developer /sys/kernel/debug/tracing/options/overwrite
    chmod 0664 /sys/kernel/debug/tracing/options/overwrite
    chsmack -a '*' /sys/kernel/debug/tracing/options/overwrite

    chown root:developer /sys/kernel/debug/tracing/options/print-tgid
    chmod 0664 /sys/kernel/debug/tracing/options/print-tgid
    chsmack -a '*' /sys/kernel/debug/tracing/options/print-tgid

    chown root:developer /sys/kernel/debug/tracing/events/sched/sched_switch/enable
    chmod 0664 /sys/kernel/debug/tracing/events/sched/sched_switch/enable
    chsmack -a '*' /sys/kernel/debug/tracing/events/sched/sched_switch/enable

    chown root:developer /sys/kernel/debug/tracing/events/sched/sched_wakeup/enable
    chmod 0664 /sys/kernel/debug/tracing/events/sched/sched_wakeup/enable
    chsmack -a '*' /sys/kernel/debug/tracing/events/sched/sched_wakeup/enable

    chown root:developer /sys/kernel/debug/tracing/events/power/cpu_frequency/enable
    chmod 0664 /sys/kernel/debug/tracing/events/power/cpu_frequency/enable
    chsmack -a '*' /sys/kernel/debug/tracing/events/power/cpu_frequency/enable

    chown root:developer /sys/kernel/debug/tracing/events/power/clock_set_rate/enable
    chmod 0664 /sys/kernel/debug/tracing/events/power/clock_set_rate/enable
    chsmack -a '*' /sys/kernel/debug/tracing/events/power/clock_set_rate/enable

    chown root:developer /sys/kernel/debug/tracing/events/cpufreq_interactive/enable
    chmod 0664 /sys/kernel/debug/tracing/events/cpufreq_interactive/enable
    chsmack -a '*' /sys/kernel/debug/tracing/events/cpufreq_interactive/enable

    chown root:developer /sys/kernel/debug/tracing/events/power/cpu_idle/enable
    chmod 0664 /sys/kernel/debug/tracing/events/power/cpu_idle/enable
    chsmack -a '*' /sys/kernel/debug/tracing/events/power/cpu_idle/enable

    chown root:developer /sys/kernel/debug/tracing/events/ext4/ext4_sync_file_enter/enable
    chmod 0664 /sys/kernel/debug/tracing/events/ext4/ext4_sync_file_enter/enable
    chsmack -a '*' /sys/kernel/debug/tracing/events/ext4/ext4_sync_file_enter/enable

    chown root:developer /sys/kernel/debug/tracing/events/ext4/ext4_sync_file_exit/enable
    chmod 0664 /sys/kernel/debug/tracing/events/ext4/ext4_sync_file_exit/enable
    chsmack -a '*' /sys/kernel/debug/tracing/events/ext4/ext4_sync_file_exit/enable

    chown root:developer /sys/kernel/debug/tracing/events/block/block_rq_issue/enable
    chmod 0664 /sys/kernel/debug/tracing/events/block/block_rq_issue/enable
    chsmack -a '*' /sys/kernel/debug/tracing/events/block/block_rq_issue/enable

    chown root:developer /sys/kernel/debug/tracing/events/block/block_rq_complete/enable
    chmod 0664 /sys/kernel/debug/tracing/events/block/block_rq_complete/enable
    chsmack -a '*' /sys/kernel/debug/tracing/events/block/block_rq_complete/enable

    chown root:developer /sys/kernel/debug/tracing/events/mmc/enable
    chmod 0664 /sys/kernel/debug/tracing/events/mmc/enable
    chsmack -a '*' /sys/kernel/debug/tracing/events/mmc/enable

    chown root:developer /sys/kernel/debug/tracing/events/sync/enable
    chmod 0664 /sys/kernel/debug/tracing/events/sync/enable
    chsmack -a '*' /sys/kernel/debug/tracing/events/sync/enable

    chown root:developer /sys/kernel/debug/tracing/events/workqueue/enable
    chmod 0664 /sys/kernel/debug/tracing/events/workqueue/enable
    chsmack -a '*' /sys/kernel/debug/tracing/events/workqueue/enable

    chown root:developer /sys/kernel/debug/tracing/current_tracer
    chmod 0664 /sys/kernel/debug/tracing/current_tracer
    chsmack -a '*' /sys/kernel/debug/tracing/current_tracer

    chown root:developer /sys/kernel/debug/tracing/tracing_on
    chmod 0664 /sys/kernel/debug/tracing/tracing_on
    chsmack -a '*' /sys/kernel/debug/tracing/tracing_on

    chown root:developer /sys/kernel/debug/tracing/trace
    chmod 0660 /sys/kernel/debug/tracing/trace
    chsmack -a '*' /sys/kernel/debug/tracing/trace

    chown root:developer /usr/bin/atrace
    chmod 0755 /usr/bin/atrace
}


if [ -e "$tag" ]
then
	echo "$tag was created already!!!"
	exit 0
else
	# create ttrace tag 
	atrace --init_exec

	# initialize permission, smack rule for ttrace_tag, sysfs nodes
	init_perms
fi

if [ -e "$conf" ]
then
	echo "$conf was found!!!"

	while read line
	do
		options=$line
		echo "File name is - $conf"
		echo "Options is - $options"
	done < "$conf"
	# below script is not available on TV profile
	change-booting-mode.sh "$change_permission" 
	$options
	rm "$conf"
else
	echo "$conf was NOT found!!!"
fi
exit 0
