Modify bluetooth logdump scripts
[platform/core/connectivity/bluetooth-tools.git] / scripts / bt-run-hci-logger.sh.in
1 #!/bin/sh
2
3 MKDIR="/bin/mkdir"
4 CP="/bin/cp"
5 RM="/bin/rm"
6 MV="/bin/mv"
7 DATE="/bin/date"
8 GREP="/bin/grep"
9 CUT="/usr/bin/cut"
10 PGREP="/usr/bin/pgrep"
11 BTMON="/usr/bin/btmon"
12 HCIDUMP="/usr/bin/hcidump"
13 CHOWN="/bin/chown"
14
15 eval $(tzplatform-get TZ_USER_DOWNLOADS)
16
17 # When *#9900# is typed, this is executed to archive logs.
18 LOGDUMP_DIR="/opt/etc/dump.d/module.d"
19 LOGDUMP_PATH="${LOGDUMP_DIR}/bt-hci-logdump.sh"
20
21 # BT HCI Log is saved here
22 #LOG_BASEDIR=${TZ_USER_DOWNLOADS}
23 LOG_BASEDIR=/opt/usr/media/Downloads
24 LOG_DIR="${LOG_BASEDIR}/.bt_dump"
25
26 HCIDUMP_LOG_FILENAME="bt_hcidump.log"
27 BTMON_LOG_FILENAME="btmon.log"
28
29 HCIDUMP_LOG_PATH="${LOG_DIR}/${HCIDUMP_LOG_FILENAME}"
30 BTMON_LOG_PATH="${LOG_DIR}/${BTMON_LOG_FILENAME}"
31 TMP_PID_FILE="/tmp/.bt_hci_logger.pid"
32
33 DUMP_SIZE=@BT_HCI_LOG_SIZE@
34
35 ## Step 1. Check debug mode and force configuration
36 debug_mode=`/bin/cat /sys/module/sec_debug/parameters/enable`
37 debug_mode_user=`/bin/cat /sys/module/sec_debug/parameters/enable_user`
38
39 case "$1" in
40    force)
41 # Re-initialize the log directory for force mode
42       LOG_DIR="${LOG_DIR}/force"
43       HCIDUMP_LOG_PATH="${LOG_DIR}/${HCIDUMP_LOG_FILENAME}"
44       BTMON_LOG_PATH="${LOG_DIR}/${BTMON_LOG_FILENAME}"
45       TMP_PID_FILE="/tmp/.bt_hci_force_logger.pid"
46       ;;
47    normal)
48       if [ ${debug_mode} != '1' -a ${debug_mode_user} != '1' ]
49       then
50          if [ -e ${LOG_DIR} ]
51          then
52             ${RM} -rf ${LOG_DIR}
53          fi
54
55          if [ ! -e ${TMP_PID_FILE} ]
56          then
57             exit 0
58          fi
59
60          bt_hci_logger_pid=`cat ${TMP_PID_FILE}`
61          kill $bt_hci_logger_pid
62          ${RM} -f ${TMP_PID_FILE}
63          exit 0
64       fi
65       ;;
66    *)
67       echo "Usage : bt-run-hci-logger.sh {force | normal} {start | stop} {hcidump | btmon} [keep_old_dump]"
68       exit 255
69       ;;
70 esac
71
72 ## Step 2. Check start / stop parameter
73 case "$2" in
74    start)
75       ;;
76    stop)
77       if [ ! -e ${TMP_PID_FILE} ]
78       then
79          exit 0
80       fi
81
82       bt_hci_logger_pid=`cat ${TMP_PID_FILE}`
83       kill $bt_hci_logger_pid
84       ${RM} -f ${TMP_PID_FILE}
85       exit 0
86       ;;
87    *)
88       echo "Usage : bt-run-hci-logger.sh {force | normal} {start | stop} {hcidump | btmon} [keep_old_dump]"
89       exit 255
90       ;;
91 esac
92
93 ## Step 3. Configure log tool
94 case "$3" in
95    hcidump)
96       LOG_TOOL=${HCIDUMP}
97       LOG_PATH=${HCIDUMP_LOG_PATH}
98       LOG_OPT_END="-c 2 -s ${DUMP_SIZE}"
99       ;;
100    btmon)
101       BTMON_DUMP_SIZE=`expr ${DUMP_SIZE} \* 1000000`
102       LOG_TOOL=${BTMON}
103       LOG_PATH=${BTMON_LOG_PATH}
104       LOG_OPT_END="-C 2 -W ${BTMON_DUMP_SIZE}"
105       ;;
106    *)
107       echo "Usage : bt-run-hci-logger.sh {force | normal} {start | stop} {hcidump | btmon} [keep_old_dump]"
108       exit 255
109       ;;
110 esac
111
112 ## Step 4. Configure keep_old_dump option
113 case "$4" in
114    keep_old_dump)
115       KEEP_OLD_DUMP=1
116       LOG_PATH="${LOG_PATH}_`${DATE} +%s_%N`"
117       ;;
118    *)
119       KEEP_OLD_DUMP=0
120       ;;
121 esac
122
123 ## Step 5. Copy a log archive script for all_log_dump.sh
124 if [ ! -e ${LOGDUMP_PATH} ]
125 then
126    ${MKDIR} -p ${LOGDUMP_DIR}
127    ${CP} -f /usr/etc/bluetooth/bt-hci-logdump.sh ${LOGDUMP_PATH}
128 fi
129
130 ## Step 6. Check logging base directory
131 # If it doesn't exist, exit
132 if [ ! -e ${LOG_BASEDIR} ]
133 then
134    exit 0
135 fi
136
137 ## Step 7. Backup old log and Start logging
138 if [ ! -e ${LOG_DIR}/old_hcidump ]
139 then
140    ${MKDIR} -p ${LOG_DIR}/old_hcidump
141    #Make system owner/group to allow systemd.service logging service
142    ${CHOWN} -R 200:200 ${LOG_DIR}
143 fi
144
145 if [ ${KEEP_OLD_DUMP} = '0' ]
146 then
147    ${RM} -f ${LOG_DIR}/old_hcidump/*
148 fi
149
150 ${MV} ${LOG_DIR}/*.log* ${LOG_DIR}/old_hcidump/;\
151 ${LOG_TOOL} -w ${LOG_PATH} ${LOG_OPT_END} > /dev/null &
152 echo $! > ${TMP_PID_FILE}
153
154 exit 0