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