From 2d737011d6ba4389b15c7ac62b8964208391b884 Mon Sep 17 00:00:00 2001 From: Mark Salyzyn Date: Mon, 6 Jun 2016 11:22:13 -0700 Subject: [PATCH] logcatd: add stop and clear actions (cherry pick from commit cd5118bf1edc257cfd4ff02ea1145b5d7b3153d9) - add stop and clear (and stop) actions to logcatd.rc - use stop and clear actions in logpersist script Bug: 28788401 Bug: 28813587 Bug: 28936216 Change-Id: Id05118fb51e40609fd7b3a934cf9302f67ef6d1d --- logcat/logcatd.rc | 10 ++++++++++ logcat/logpersist | 28 ++++++++++++++-------------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/logcat/logcatd.rc b/logcat/logcatd.rc index 70d1dd446..7d70dd99f 100644 --- a/logcat/logcatd.rc +++ b/logcat/logcatd.rc @@ -5,6 +5,16 @@ on property:persist.logd.logpersistd=logcatd exec - logd log -- /system/bin/logcat -L -b ${persist.logd.logpersistd.buffer:-all} -v threadtime -v usec -v printable -D -f /data/misc/logd/logcat -r 1024 -n ${persist.logd.logpersistd.size:-256} start logcatd +on property:persist.logd.logpersistd=clear + stop logcatd + # logd for clear of only our files in /data/misc/logd + exec - logd log -- /system/bin/logcat -c -f /data/misc/logd/logcat -n ${persist.logd.logpersistd.size:-256} + setprop persist.logd.logpersistd "" + +on property:persist.logd.logpersistd=stop + stop logcatd + setprop persist.logd.logpersistd "" + service logcatd /system/bin/logcat -b ${persist.logd.logpersistd.buffer:-all} -v threadtime -v usec -v printable -D -f /data/misc/logd/logcat -r 1024 -n ${persist.logd.logpersistd.size:-256} class late_start disabled diff --git a/logcat/logpersist b/logcat/logpersist index a95f3d847..0b8cb2150 100755 --- a/logcat/logpersist +++ b/logcat/logpersist @@ -73,10 +73,7 @@ case ${progname} in current_size="`getprop ${property}.size`" if [ "${service}" = "`getprop ${property}`" ]; then if [ "true" = "${clear}" ]; then - su root stop ${service} - setprop ${property} "" - # 20ms done, guarantees content stop before rm - sleep 1 + setprop ${property} "clear" elif [ "${buffer}|${size}" != "${current_buffer}|${current_size}" ]; then echo "ERROR: Changing existing collection parameters from" >&2 if [ "${buffer}" != "${current_buffer}" ]; then @@ -98,9 +95,8 @@ case ${progname} in echo " To blindly override and retain data, ${progname%.*}.stop first." >&2 exit 1 fi - fi - if [ "true" = "${clear}" ]; then - su logd,misc rm -rf "${data}" + elif [ "true" = "${clear}" ]; then + setprop ${property} "clear" fi if [ -n "${buffer}${current_buffer}" ]; then setprop ${property}.buffer "${buffer}" @@ -108,6 +104,9 @@ case ${progname} in if [ -n "${size}${current_size}" ]; then setprop ${property}.size "${size}" fi + while [ "clear" = "`getprop ${property}`" ]; do + continue + done # ${service}.rc does the heavy lifting with the following trigger setprop ${property} ${service} getprop ${property} @@ -120,19 +119,20 @@ case ${progname} in if [ -n "${size}${buffer}" ]; then echo "WARNING: Can not use --size or --buffer with ${progname%.*}.stop" >&2 fi - su root stop ${service} - setprop ${property} "" + if [ "true" = "${clear}" ]; then + setprop ${property} "clear" + else + setprop ${property} "stop" + fi if [ -n "`getprop ${property}.buffer`" ]; then setprop ${property}.buffer "" fi if [ -n "`getprop ${property}.size`" ]; then setprop ${property}.size "" fi - if [ "true" = "${clear}" ]; then - # 20ms done, guarantees content stop before rm - sleep 1 - su logd,misc rm -rf "${data}" - fi + while [ "clear" = "`getprop ${property}`" ]; do + continue + done ;; *) echo "ERROR: Unexpected command ${0##*/} ${args}" >&2