#!/bin/sh
#
# © Copyright 1996-2014, ZsoltTech.Com
# by Ser Lev Arris <arris@ZsoltTech.Com>
#
# donated for the SamyGo Project
#
Sie müssen registriert sein, um Links zu sehen.
#
#
. /dtv/SGO.env
LIB_OSCAM=libOSCAM_v0.2.7.so
#LIB_OSCAM=libOSCAM_v0.3.0.so
OSCAM=oscam-samygo
DIR_OSCAM=/mtd_rwcommon/oscam
BIN_OSCAM=${DIR_OSCAM}/${OSCAM}
LOG_libOSCAM=${DIR_OSCAM}/libOSCAM.log
LOG_OSCAM=${DIR_OSCAM}/oscam.log
PATH=$PATH:./
PAUSE="5" #adjust time individualy...
channel_zap()
{
source $SYSROOT/etc/rc_codes
echo "checking source for rc_codes. just for debug:" >> $LOGFILE
echo "KEY_CHUP=$KEY_CHUP KEY_CHDOWN=$KEY_CHDOWN" >> $LOGFILE
sleep $PAUSE
INJECT_PID=$(pidof exeTV || pidof exeDSP)
samyGOrc -p $INJECT_PID $KEY_CHUP
sleep 1
samyGOrc -p $INJECT_PID $KEY_CHDOWN
}
delete_log()
{
[ -f ${LOG_libOSCAM} ] && rm -f ${LOG_libOSCAM}
[ -f ${LOG_OSCAM} ] && rm -f ${LOG_OSCAM}
}
case $1 in
start)
echo " " >> $LOGFILE 2>&1
echo "+++++++++++++++++ OSCAM ++++++++++++++++" >> $LOGFILE 2>&1
echo " " >> $LOGFILE 2>&1
if [ $USER_FIRMWARE == "MST" ]; then
echo "Not supported device (MST)" >> $LOGFILE 2>&1
exit 1
fi
# call delete function
delete_log
if [ -e ${DIR_OSCAM}/LIB_OSCAM.disabled ]; then
echo "***** Disabled due to previous crash."
echo "***** Remove ${LIB_OSCAM}.disabled first and try again."
exit 1
fi
chmod +x ${BIN_OSCAM} > /dev/null
if [ "$(pidof ntpclient)" == "" ]; then
ntpclient -s -h pool.ntp.org &> /dev/null
ntpclient -h pool.ntp.org &> /dev/null &
else
echo "ntpclient already running"
fi
INJPID=$(pidof exeTV || pidof exeDSP)
if [ "$INJPID" == "" ]; then
echo "Process not found."
exit 1
fi
X=$(grep -c OSCAM /proc/$INJPID/smaps) &> /dev/null
if [ $X -gt 0 ]; then
echo "libOSCAM already injected!"
else
#echo Injecting ${LIB_OSCAM} into pid $INJPID
samyGOso -p $INJPID -l $LIBSO_DIR/$LIB_OSCAM -r
fi
if [ "$(pidof ${OSCAM})" == "" ]; then
echo "Starting oscam"
#channel_zap #channel change
${BIN_OSCAM} -c ${DIR_OSCAM} -t ${DIR_OSCAM} &
else
echo "oscam already running"
fi
channel_zap
if [ $X -le 0 ]; then
echo "Checking pid $INJPID for crash"
sleep 10
fi
if [ ! -e /proc/$INJPID ]; then
echo "***** Process crash detected."
echo "***** Disabling libOSCAM."
touch ${DIR_OSCAM}/LIB_OSCAM.disabled
fi
;;
stop)
;;
status)
;;
*)
echo "Usage: $0 {start|status}" 1>&2
exit 0
;;
esac