xref: /aosp_15_r20/system/logging/logcat/logcatd.rc (revision 598139dc91b21518d67c408eaea2644226490971)
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