blob: 64d5500faf859064fd9c77bfd134a5d240e3b684 [file] [log] [blame]
Mark Salyzyn46fef162016-07-07 09:24:51 -07001#
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
Tian, Baofeng547ed6f2019-05-21 11:19:12 +08007# notwithstanding) for logd.logpersistd.size logd.logpersistd.rotate_kbytes and
8# logd.logpersistd.buffer.
Mark Salyzyn46fef162016-07-07 09:24:51 -07009
10# persist to non-persistent trampolines to permit device properties can be
11# overridden when /data mounts, or during runtime.
Tian, Baofeng547ed6f2019-05-21 11:19:12 +080012on 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
Mark Salyzyn46fef162016-07-07 09:24:51 -070016on property:persist.logd.logpersistd.size=*
Mark Salyzyn46fef162016-07-07 09:24:51 -070017 setprop logd.logpersistd.size ${persist.logd.logpersistd.size}
18
Tian, Baofeng547ed6f2019-05-21 11:19:12 +080019on property:persist.logd.logpersistd.rotate_kbytes=*
Tian Baofeng87b6d862019-07-12 15:09:36 +080020 setprop logd.logpersistd.rotate_kbytes ${persist.logd.logpersistd.rotate_kbytes}
Mark Salyzyn46fef162016-07-07 09:24:51 -070021
22on property:persist.logd.logpersistd.buffer=*
Mark Salyzyn46fef162016-07-07 09:24:51 -070023 setprop logd.logpersistd.buffer ${persist.logd.logpersistd.buffer}
24
Tom Cherry54951de2015-08-14 13:02:51 -070025on property:persist.logd.logpersistd=logcatd
Mark Salyzyn46fef162016-07-07 09:24:51 -070026 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
Mike Ma59bd7172020-01-17 18:01:03 -080033 # log group should be able to read persisted logs
34 mkdir /data/misc/logd 0750 logd log
Tom Cherry54951de2015-08-14 13:02:51 -070035 start logcatd
36
Mark Salyzyn46fef162016-07-07 09:24:51 -070037# stop logcatd service and clear data
38on property:logd.logpersistd.enable=true && property:logd.logpersistd=clear
39 setprop persist.logd.logpersistd ""
Mark Salyzynee5724d2016-06-06 11:22:13 -070040 stop logcatd
41 # logd for clear of only our files in /data/misc/logd
Mark Salyzyn46fef162016-07-07 09:24:51 -070042 exec - logd log -- /system/bin/logcat -c -f /data/misc/logd/logcat -n ${logd.logpersistd.size:-256}
43 setprop logd.logpersistd ""
Mark Salyzynee5724d2016-06-06 11:22:13 -070044
Mark Salyzyn46fef162016-07-07 09:24:51 -070045# stop logcatd service
46on property:logd.logpersistd=stop
47 setprop persist.logd.logpersistd ""
Mark Salyzynee5724d2016-06-06 11:22:13 -070048 stop logcatd
Mark Salyzyn46fef162016-07-07 09:24:51 -070049 setprop logd.logpersistd ""
Mark Salyzynee5724d2016-06-06 11:22:13 -070050
Mark Salyzyn46fef162016-07-07 09:24:51 -070051on property:logd.logpersistd.enable=false
52 stop logcatd
53
54# logcatd service
Jaegeuk Kim64352f22019-07-04 18:09:38 -070055service 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}
Tom Cherry54951de2015-08-14 13:02:51 -070056 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
Tom Cherrycd7685a2015-09-21 14:25:34 -070061 writepid /dev/cpuset/system-background/tasks
Mark Salyzynb5f3d342017-05-30 09:01:38 -070062 oom_score_adjust -600