android_device_samsung_e1q/rootdir/bin/init.vendor.sensordebug.ssr_dump.sh
2024-10-19 09:55:36 +02:00

118 lines
4.2 KiB
Bash

#!/vendor/bin/sh
# Copyright (c) 2020 The Linux Foundation. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of The Linux Foundation nor
# the names of its contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
#
# Function to start sensors for SSC enabled platforms
#
echo "Sensor SSR Dump"
param=$1
echo "param: $param"
index=0
adsp_path="none"
adsp_str="adsp"
if [[ "$param" == "start" || "$param" == "stop" ]]; then
COUNT_CMD='ls -l /sys/class/remoteproc | grep ^l | wc -l'
count=$(eval $COUNT_CMD)
echo "count: $count"
for file in /sys/class/remoteproc/*
do
local_path=$file"/name"
echo "$local_path:$local_path"
name=$(eval cat $local_path)
echo "name:$name"
if [[ "$name" == *"$adsp_str"* ]]; then
echo "found~!! index: $index"
adsp_path=$file
break
fi
((index++))
done
if [ "$param" == "start" ]; then
echo "start"
if [ "$adsp_path" != "none" ]; then
echo "adsp_path:$adsp_path"
SSR_DUMP_CMD=""
ENABLE_RAMDUMPS_CMD='getprop persist.vendor.ssr.enable_ramdumps'
enable_ramdumps=$(eval $ENABLE_RAMDUMPS_CMD)
echo "enable_ramdumps:$enable_ramdumps"
if [ "$enable_ramdumps" == "0" ]; then
SSR_DUMP_CMD+="setprop persist.vendor.ssr.enable_ramdumps 1 &"
fi
RESTART_LEVEL_CMD='getprop persist.vendor.ssr.restart_level'
restart_level=$(eval $RESTART_LEVEL_CMD)
echo "restart_level:$restart_level"
if [ "$restart_level" == "ALL_ENABLE" ]; then
set_val="$restart_level"
elif [ "$restart_level" == "ALL_DISABLE" ]; then
set_val="adsp"
elif [ -n "$restart_level" ];then
if [[ "$restart_level" == *adsp* ]]; then
set_val="$restart_level"
else
set_val="$restart_level adsp"
fi
else
set_val="adsp"
fi
SSR_DUMP_CMD+="echo enabled > $adsp_path/recovery &"
SSR_DUMP_CMD+="echo enabled > $adsp_path/coredump &"
SSR_DUMP_CMD+="setprop persist.vendor.ssr.restart_level '$set_val'"
echo "SSR_DUMP_CMD:$SSR_DUMP_CMD"
eval $SSR_DUMP_CMD
fi
fi
if [ "$param" == "stop" ]; then
echo "stop"
if [ "$adsp_path" != "none" ]; then
echo "adsp_path:$adsp_path"
SSR_DUMP_CMD="setprop persist.vendor.ssr.enable_ramdumps 0 &"
SSR_DUMP_CMD+="echo 0 > /sys/module/qcom_ramdump/parameters/enable_dump_collection &"
SSR_DUMP_CMD+="echo disabled > $adsp_path/recovery &"
SSR_DUMP_CMD+="echo disabled > $adsp_path/coredump &"
SSR_DUMP_CMD+="setprop persist.vendor.ssr.restart_level ALL_DISABLE"
eval $SSR_DUMP_CMD
fi
fi
fi
if [ "$param" == "complete" ]; then
chown root:system /data/vendor/ramdump/remoteproc-adsp.elf
INTENT_CMD="am broadcast -a com.sec.android.ISSUE_TRACKER_ACTION "
INTENT_CMD+="--ei ERRCODE -126 "
INTENT_CMD+="--es ERRNAME \"Sensor Silent dump\" "
INTENT_CMD+="--es ERRPKG \"Sensor ADSP\" "
INTENT_CMD+="--es ERRMSG \"Sensor SSR Dump after SSR\" "
INTENT_CMD+="--es EXTLOG \"/data/vendor/ramdump/remoteproc-adsp.elf\""
echo "$INTENT_CMD" && eval "$INTENT_CMD"
fi