1# 2# init scriptures for logcatd persistent logging. 3# 4# Make sure any property changes are only performed with /data mounted, after 5# post-fs-data state because otherwise behavior is undefined. The exceptions 6# are device adjustments for logcatd service properties (persist.* overrides 7# notwithstanding) for logd.logpersistd.size logd.logpersistd.rotate_kbytes and 8# logd.logpersistd.buffer. 9 10# persist to non-persistent trampolines to permit device properties can be 11# overridden when /data mounts, or during runtime. 12on property:persist.logd.logpersistd.count=* 13 # expect /init to report failure if property empty (default) 14 setprop persist.logd.logpersistd.size ${persist.logd.logpersistd.count} 15 16on property:persist.logd.logpersistd.size=* 17 setprop logd.logpersistd.size ${persist.logd.logpersistd.size} 18 19on property:persist.logd.logpersistd.rotate_kbytes=* 20 setprop logd.logpersistd.rotate_kbytes ${persist.logd.logpersistd.rotate_kbytes} 21 22on property:persist.logd.logpersistd.buffer=* 23 setprop logd.logpersistd.buffer ${persist.logd.logpersistd.buffer} 24 25on property:persist.logd.logpersistd=logcatd 26 setprop logd.logpersistd logcatd 27 28# enable, prep and start logcatd service 29on load_persist_props_action 30 setprop logd.logpersistd.enable true 31 32on property:logd.logpersistd.enable=true && property:logd.logpersistd=logcatd 33 # log group should be able to read persisted logs 34 mkdir /data/misc/logd 0750 logd log 35 start logcatd 36 37# stop logcatd service and clear data 38on property:logd.logpersistd.enable=true && property:logd.logpersistd=clear 39 setprop persist.logd.logpersistd "" 40 stop logcatd 41 # logd for clear of only our files in /data/misc/logd 42 exec - logd log -- /system/bin/logcat -c -f /data/misc/logd/logcat -n ${logd.logpersistd.size:-256} 43 setprop logd.logpersistd "" 44 45# stop logcatd service 46on property:logd.logpersistd=stop 47 setprop persist.logd.logpersistd "" 48 stop logcatd 49 setprop logd.logpersistd "" 50 51on property:logd.logpersistd.enable=false 52 stop logcatd 53 54# logcatd service 55service logcatd /system/bin/logcatd -L -b ${logd.logpersistd.buffer:-all} -v threadtime -v usec -v printable -D -f /data/misc/logd/logcat -r ${logd.logpersistd.rotate_kbytes:-2048} -n ${logd.logpersistd.size:-256} --id=${ro.build.id} 56 class late_start 57 disabled 58 # logd for write to /data/misc/logd, log group for read from log daemon 59 user logd 60 group log 61 writepid /dev/cpuset/system-background/tasks 62 oom_score_adjust -600 63