#!/bin/bash
#
###############################################################################
# #
# »ЄОЄЦХ¶ЛКэѕЭїЁlinux єуМЁЧўІбИнјю #
# °жИЁКфУЪ»ЄОЄјјКхУРПЮ№«ЛѕЈ¬І»µГµБУГЈ¬ОҐХЯ±Шѕї #
# Huawei linux MobilePartner licensed software #
# Copyright (c) 2007-2008 by Huawei Tech. Corp. Ltd.. #
# 2008.7.8 #
# #
###############################################################################
#
BAKCURRENTPATH=`pwd`
SOFTWARENAME="USB-modem Beeline"
INSTALLWORKPATH="$(dirname "$0")"
CONFIG_FILE="/etc/datacard_config"
HOOK_FILE="/etc/pm/sleep.d"
USERDATA_PATH="/usr/local/hw_mp_userdata"
PPPD_PATH="/usr/local/hw_pppd"
FULLVERSION=21.005.15.22.161
SOFTWARENAMEINDESKTOP=$SOFTWARENAME
SOFTWARENAME=$(echo $SOFTWARENAME | sed s\#\ \#_\#g)
INSTALLPATH="/usr/local/${SOFTWARENAME}"
TEMPWORKPATH="/tmp/${SOFTWARENAME}_$$"
TEMPFILE="${SOFTWARENAME}_install_$PPID"
PRINTDAY=`date +%m/%d/%Y`
PRINTDETAILTIME=`date +%H:%M:%S`
PRINTWEEK=`date +%A`
PRINTTIME=`echo Date=$PRINTDAY '('$PRINTWEEK')' Time=$PRINTDETAILTIME`
INSTALLLOGFILE="/tmp/UTPSInstall.log"
#System Language
SYSLANG="$(echo $LANG | cut -d '.' -f 1)"
#Language String
LANGUAGESTRING[0]="zh"
LANGUAGESTRING[1]="en_US"
LANGUAGECODE[0]=0
LANGUAGECODE[1]=1
LANGCODE=${LANGUAGECODE[1]}
i=0
while [ ".${LANGUAGESTRING[${i}]}" != "." ]
do
if [ ${LANGUAGESTRING[${i}]} = "${SYSLANG}" ]
then
LANGCODE=${LANGUAGECODE[${i}]}
break
fi
i=`expr ${i} + 1`
done
unset i
BEGININSTALL="Install..."
CREATETEMPWORKSPACE="Create temp work directory..."
SOFTINSTALLPATH="Installation Path is :"
EXTRACTDATABIN="Extract data.bin to install directory..."
EXTRACTDATABINRESULT="Extract data.bin success!"
EXTRACTMPBIN="Extract MobilePartner.bin to install directory..."
EXTRACTMPBINRESULT="Extract MobilePartner.bin success!"
INSTALLINGVERSION="PC will install new version is"
INSTALLHIGHVERSION="An old version has been installed."
INSTALLSAMEVERSION="An same version has been installed."
INSTALLOLDERVERSION="An new version new has been installed."
CREATEINSTALLDIR="Create install directory ..."
PREPARECOPYFILES="Copy MobilePartner.bin,data.bin,7zr..."
PREPARECOPYFILESRESULT="Copy files success!"
EXECUTEDRIVER="Execute driver..."
CREATEDESKTOP="Create Desktop Shortcut..."
CREATEPROGRAMDESKTOP="Create ProgramGroup Shortcut..."
DELETEALLLOCALFILES="Delete all local files (tempfiles,tempdirectory)..."
ENDINSTALL="Install Success!"
LYouMustBeRoot[0]="Дъ±ШРлТФrootУГ»§ФЛРР±ѕ°ІЧ°іМРт"
LYouMustBeRoot[1]="You must run the process by root"
LPlsInputInstallPath[0]="ЗлКдИл°ІЧ°µДѕш¶ФВ·ѕ¶"
LPlsInputInstallPath[1]="Please input the absolute path for install"
LInstallPath[0]="°ІЧ°В·ѕ¶"
LInstallPath[1]="install path"
LIllegal[0]="·З·Ё"
LIllegal[1]="illegal"
LNoFile[0]="ХТІ»µЅОДјюЈє"
LNoFile[1]="Can not find file: "
LCanNotCreateDir[0]="ОЮ·ЁґґЅЁДїВј"
LCanNotCreateDir[1]="Can not create dir"
LMobilePartnerInstall[0]="${SOFTWARENAMEINDESKTOP}°ІЧ°іМРт"
LMobilePartnerInstall[1]="${SOFTWARENAMEINDESKTOP} installer"
LStartInstallPartner[0]="їЄКј°ІЧ°єуМЁ, ЗлЙФєу..."
LStartInstallPartner[1]="Installing ${SOFTWARENAMEINDESKTOP}..."
LCompleteInstallPartner[0]="ТСѕНкіЙєуМЁ°ІЧ°"
LCompleteInstallPartner[1]="install have completed, local path is"
LLocalPath[0]="±ѕµШ°ІЧ°В·ѕ¶"
LLocalPath[1]="Local path is"
LOverwriteInstalled[0]="ТСѕ°ІЧ°УРєуМЁ, КЗ·сёІёЗ"
LOverwriteInstalled[1]="The software is exist. Do you want overwrite it"
LInstallJRE[0]="°ІЧ°JRE"
LInstallJRE[1]="install JRE"
LInstallMP[0]="°ІЧ°єуМЁ"
LInstallMP[1]="install ${SOFTWARENAMEINDESKTOP}"
LInstallAll[0]="°ІЧ°JREєНєуМЁ"
LInstallAll[1]="install JRE and ${SOFTWARENAMEINDESKTOP}"
LQuitInstall[0]="НЛіц"
LQuitInstall[1]="Exit"
LPlsSelect[0]="ЗлСЎФсЈє"
LPlsSelect[1]="Please select: "
LYouMustSelect[0]="Дг±ШРлСЎФсЈє"
LYouMustSelect[1]="You must select: "
LInstallEnd[0]="ЅбКш, °ґИОТвјьНЛіц"
LInstallEnd[1]="Finished, press any key to exit"
LInstallingVersionOlderThenInstalled[0]="ѕЇёжЈєХэФЪ°ІЧ°µД°ж±ѕ±ИПµНіЦРµД°ж±ѕѕЙЎЈКЗ·сёІёЗЈї"
LInstallingVersionOlderThenInstalled[1]="WARNING: The installing version is older than installed. Do you want to overwrite it"
LInstallingVersionLaterThenInstalled[0]="ПµНіЦРґжФЪѕЙ°ж±ѕЎЈКЗ·сЙэј¶Јї"
LInstallingVersionLaterThenInstalled[1]="There is a older version in your system. Do you want to update it"
LInstalledVersion[0]="ТС°ІЧ°°ж±ѕ:"
LInstalledVersion[1]="Installed version:"
LInstallingVersion[0]="ХэФЪ°ІЧ°°ж±ѕ:"
LInstallingVersion[1]="Installing version:"
LProgramRunning[0]="ЗлПИ№Ш±ХіМРтФЩЅшРРР¶ФШЎЈ"
LProgramRunning[1]="Program is running, you need close it before uninstalling."
LCheckRun[0]="Program is running, you need close it before installing.";
LCheckRun[1]="іМРтХэФЪФЛРРЈ¬°ІЧ°Ц®З°ЗлПИ№Ш±Х."
# /*yes or no №«№ІєЇКэ, yes·µ»Ш0, no·µ»Ш1*/
yes_or_no()
{
if [ ${#} -ne 2 ]
then
echo -e "yes_or_or: ${ErrorPara[${LANGCODE}]}"
return 1
fi
if [ "${2}" = "Y" ]
then
DEFPMPT="([Y]/N):\c "
DEFVAL="Y"
else
DEFPMPT="(Y/[N]):\c "
DEFVAL="N"
fi
echo -e "${1} ${DEFPMPT}"
read ANS
while [ "${ANS}" != "Y" -a "${ANS}" != "y" -a "${ANS}" != "N" -a "${ANS}" != "n" -a ! -z "${ANS}" ]
do
echo -e "${1} ${DEFPMPT}"
read ANS
done
: ${ANS:="${DEFVAL}"}
if [ "${ANS}" != "Y" -a "${ANS}" != "y" ]
then
unset ANS
return 1
fi
unset ASN
return 0
}
#јмІйЖф¶Ї°ІЧ°ЅЕ±ѕµДУГ»§КЗ·сОЄrootУГ»§
CheckID()
{
if [ `id | awk '{print $1}'` != "uid=0(root)" ]
then
echo -e "${LYouMustBeRoot[${LANGCODE}]}"
echo -e "\n${LInstallEnd[${LANGCODE}]}"
read -n 1
clear
exit
fi
}
#јмІйµ±З°КЗ·сУРєуМЁХэФЪФЛРР
CheckRunning()
{
RUNJAR=`ps -ef |grep -v grep |grep MobilePartner.jar | awk '{print $2}'`
RUNBIN=`ps -ef |grep -v grep |grep MobilePartner.bin | awk '{print $2}'`
if [ "x${RUNJAR}" != "x" ]
then
echo -e "${LCheckRun[${LANGCODE}]}"
read RESP
exit
fi
if [ "x${RUNBIN}" != "x" ]
then
echo -e "${LCheckRun[${LANGCODE}]}"
read RESP
exit
fi
}
#јмІйПа№ШОДјюЈ¬ФЪУІЕМЙПЅЁБўґж·Е°ІЧ°ОДјюµДБЩК±ДїВјЈ¬ІўїЅ±ґ°ІЧ°ОДјюµЅёГДїВј
PreInstall()
{
echo -e "========================================================" >> ${INSTALLLOGFILE}
echo -e $PRINTTIME ' ' ${BEGININSTALL} >> ${INSTALLLOGFILE}
#јмІй°ІЧ°°ьОДјю
if [ ! -f "${INSTALLWORKPATH}"/MobilePartner.bin ]
then
echo -e "${LNoFile[${LANGCODE}]}MobilePartner.bin"
exit
fi
if [ ! -f "${INSTALLWORKPATH}"/data.bin ]
then
echo -e "${LNoFile[${LANGCODE}]}data.bin"
exit
fi
if [ ! -f "${INSTALLWORKPATH}"/7zr ]
then
echo -e "${LNoFile[${LANGCODE}]}7zr"
exit
fi
if [ ! -d "${TEMPWORKPATH}" ]
then
mkdir ${TEMPWORKPATH}
echo -e $PRINTTIME ' ' ${CREATETEMPWORKSPACE} >> ${INSTALLLOGFILE}
fi
if [ ! -d "${TEMPWORKPATH}" ]
then
echo -e "\n${LCanNotCreateDir[${LANGCODE}]}: ${TEMPWORKPATH}"
exit
fi
#їЅ±ґєуМЁ°ІЧ°ОДјю
echo -e $PRINTTIME ' ' ${PREPARECOPYFILES} >> ${INSTALLLOGFILE}
cp -f "${INSTALLWORKPATH}"/MobilePartner.bin ${TEMPWORKPATH}
cp -f "${INSTALLWORKPATH}"/data.bin ${TEMPWORKPATH}
cp -f "${INSTALLWORKPATH}"/7zr ${TEMPWORKPATH}
echo -e $PRINTTIME ' ' ${PREPARECOPYFILESRESULT} >> ${INSTALLLOGFILE}
chmod +x ${TEMPWORKPATH}/7zr
#їЅ±ґ°ІЧ°ЅЕ±ѕµЅУІЕМЙП
cp -f "${INSTALLWORKPATH}"/install ${TEMPWORKPATH}
chmod a+x ${TEMPWORKPATH}/install
if [ -f $CONFIG_FILE ]
then
#»сИЎ°ж±ѕРЕПў
. $CONFIG_FILE
#»сИЎПµНіЦРТСѕ°ІЧ°µД°ж±ѕєЕ
VRVERSIONINSTALLED=`echo $FullVersion | cut -d '.' -f1`
BUILDVERSIONINSTALLED=`echo $FullVersion | cut -d '.' -f2`
DEVELOPVERSIONINSTALLED=`echo $FullVersion | cut -d '.' -f3`
SPVERSIONINSTALLED=`echo $FullVersion | cut -d '.' -f4`
CUSTOMIZEVERSIONINSTALLED=`echo $FullVersion | cut -d '.' -f5`
#»сИЎХэФЪ°ІЧ°µД°ж±ѕєЕ
VRVERSIONINSTALLING=`echo $FULLVERSION | cut -d '.' -f1`
BUILDVERSIONINSTALLING=`echo $FULLVERSION | cut -d '.' -f2`
DEVELOPVERSIONINSTALLING=`echo $FULLVERSION | cut -d '.' -f3`
SPVERSIONINSTALLING=`echo $FULLVERSION | cut -d '.' -f4`
CUSTOMIZEVERSIONINSTALLING=`echo $FULLVERSION | cut -d '.' -f5`
#ґтУЎ°ж±ѕРЕПў
echo "${LInstalledVersion[${LANGCODE}]} ${FullVersion}"
echo "${LInstallingVersion[${LANGCODE}]} ${FULLVERSION}"
echo -e $PRINTTIME ' ' "the installed version is " $FullVersion >> ${INSTALLLOGFILE}
echo -e $PRINTTIME ' ' "the installing version is " $FULLVERSION >> ${INSTALLLOGFILE}
#јмІйТСѕ°ІЧ°µД°ж±ѕКЗ·сёьРВ
while [ 1 ]
do
#±ИЅПVR°ж±ѕєЕЈ¬І»ПаН¬ФтМбКѕУГ»§ёІёЗ°ІЧ°
if [ $VRVERSIONINSTALLED -ne $VRVERSIONINSTALLING ]
then
InstallDifferentVersionPrompt
break
fi
#±ИЅПC°ж±ѕєЕЈ¬І»ПаН¬ФтМбКѕУГ»§ёІёЗ°ІЧ°
if [ $CUSTOMIZEVERSIONINSTALLED -ne $CUSTOMIZEVERSIONINSTALLING ]
then
InstallDifferentVersionPrompt
break
fi
#±ИЅПB°ж±ѕєЕ
if [ $BUILDVERSIONINSTALLED -gt $BUILDVERSIONINSTALLING ]
then
#Из№ыТС°ІЧ°µДB°ж±ѕєЕЅПРВЈ¬ФтМбКѕУГ»§ТСѕ°ІЧ°БЛЅПРВµДєуМЁ°ж±ѕЈ¬КЗ·сјМРш
InstallOlderVersionPrompt
break
elif [ $BUILDVERSIONINSTALLED -lt $BUILDVERSIONINSTALLING ]
then
#Из№ыТС°ІЧ°µДB°ж±ѕєЕЅПАПЈ¬І»РиТЄјМРш±ИЅПD°ж±ѕєНSP°ж±ѕЈ¬Ц±ЅУёІёЗ°ІЧ°
InstallLaterVersionPrompt
break
fi
#±ИЅПD°ж±ѕєЕ
if [ $DEVELOPVERSIONINSTALLED -gt $DEVELOPVERSIONINSTALLING ]
then
#Из№ыТС°ІЧ°µДD°ж±ѕєЕЅПРВЈ¬ФтМбКѕУГ»§ТСѕ°ІЧ°БЛЅПРВµДєуМЁ°ж±ѕЈ¬КЗ·сјМРш
InstallOlderVersionPrompt
break
elif [ $DEVELOPVERSIONINSTALLED -lt $DEVELOPVERSIONINSTALLING ]
then
#Из№ыТС°ІЧ°µДD°ж±ѕєЕЅПАПЈ¬І»РиТЄјМРш±ИЅПSP°ж±ѕЈ¬Ц±ЅУёІёЗ°ІЧ°
InstallLaterVersionPrompt
break
fi
#±ИЅПSP°ж±ѕєЕ
if [ $SPVERSIONINSTALLED -gt $SPVERSIONINSTALLING ]
then
#Из№ыТС°ІЧ°µДSP°ж±ѕєЕЅПРВЈ¬ФтМбКѕУГ»§ТСѕ°ІЧ°БЛЅПРВµДєуМЁ°ж±ѕЈ¬КЗ·сјМРш
InstallOlderVersionPrompt
break
elif [ $SPVERSIONINSTALLED -lt $SPVERSIONINSTALLING ]
then
#Из№ыТС°ІЧ°µДSP°ж±ѕєЕЅПАПЈ¬Ц±ЅУёІёЗ°ІЧ°
InstallLaterVersionPrompt
break
fi
#ЧЯµЅХв±нКѕЛщУР°ж±ѕєЕТ»ЦВЈ¬ёшіцМбКѕКЗ·сёІёЗ
InstallSameVersionPrompt
break
done
INSTALLPATH=`egrep "^path=" $CONFIG_FILE | awk -F '=' '{print $2}'`
else
#КдИл°ІЧ°ДїВј
echo -e "\n ${LPlsInputInstallPath[${LANGCODE}]}[${INSTALLPATH}]: \c"
read ANS
: ${ANS:="${INSTALLPATH}"}
INSTALLPATH=${ANS}
#јмІйДїВјµДєП·ЁРФ
if [[ ${INSTALLPATH} != /* ]]
then
echo -e "\n${LInstallPath[${LANGCODE}]} ${LIllegal[${LANGCODE}]}"
DisplayEndMsg
exit
fi
#К№°ІЧ°ДїВјєПАн»Ї
if [ -d "${INSTALLPATH}" ]
then
INSTALLPATH=${INSTALLPATH}/${SOFTWARENAME}
fi
fi
#ґґЅЁ°ІЧ°ДїВј
if [ ! -d "${INSTALLPATH}" ]
then
mkdir ${INSTALLPATH}
echo -e $PRINTTIME ' ' ${CREATEINSTALLDIR} >> ${INSTALLLOGFILE}
fi
if [ ! -d "${INSTALLPATH}" ]
then
echo -e "\n${LCanNotCreateDir[${LANGCODE}]}: ${INSTALLPATH}"
DisplayEndMsg
exit
fi
echo -e "\n${LLocalPath[${LANGCODE}]}: ${INSTALLPATH}"
echo -e $PRINTTIME ' ' ${SOFTINSTALLPATH} ${INSTALLPATH} >> ${INSTALLLOGFILE}
echo -e $PRINTTIME ' ' ${INSTALLINGVERSION} ${FULLVERSION} >> ${INSTALLLOGFILE}
}
InstallLaterVersionPrompt()
{
#РВ°ж±ѕЈ¬МбКѕКЗ·сЙэј¶
yes_or_no "\n${LInstallingVersionLaterThenInstalled[${LANGCODE}]}?" Y
if [ ${?} -ne 0 ]
then
DisplayEndMsg
exit
fi
echo -e $PRINTTIME ' ' $INSTALLHIGHVERSION >> ${INSTALLLOGFILE}
}
InstallSameVersionPrompt()
{
#Из№ыТФЗ°ТСѕ°ІЧ°№эєуМЁФтМбКѕКЗ·сёІёЗ
yes_or_no "\n${LOverwriteInstalled[${LANGCODE}]}?" Y
if [ ${?} -ne 0 ]
then
DisplayEndMsg
exit
fi
echo -e $PRINTTIME ' ' $INSTALLSAMEVERSION >> ${INSTALLLOGFILE}
}
InstallOlderVersionPrompt()
{
#°ІЧ°µД°ж±ѕ±ИПµНіЦРµД°ж±ѕѕЙЈ¬ёшіцМбКѕ
yes_or_no "\n${LInstallingVersionOlderThenInstalled[${LANGCODE}]}?" N
if [ ${?} -ne 0 ]
then
DisplayEndMsg
exit
fi
echo -e $PRINTTIME ' ' $INSTALLOLDERVERSION >> ${INSTALLLOGFILE}
}
InstallDifferentVersionPrompt()
{
#Из№ыТФЗ°ТСѕ°ІЧ°№эєуМЁФтМбКѕКЗ·сёІёЗ
yes_or_no "\n${LOverwriteInstalled[${LANGCODE}]}?" Y
if [ ${?} -ne 0 ]
then
DisplayEndMsg
exit
fi
}
#°ІЧ°єуМЁ
InstallMobilePartner()
{
# added to set the library path
echo -e "LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${INSTALLPATH} \n export LD_LIBRARY_PATH \n" > ${HOME}/.bash_profile
echo -e -n "\n${LStartInstallPartner[${LANGCODE}]}"
cd "${INSTALLPATH}"
#ФЪ°ІЧ°В·ѕ¶ПВЅвС№Лх°ІЧ°°ь
# tar jxf ${TEMPWORKPATH}/MobilePartner.tar.bz2 >/dev/null 2>&1
echo -e $PRINTTIME ' ' ${EXTRACTMPBIN} >> ${INSTALLLOGFILE}
"${TEMPWORKPATH}/7zr" x -y ${TEMPWORKPATH}/MobilePartner.bin >/dev/null 2>&1
echo -e $PRINTTIME ' ' ${EXTRACTMPBINRESULT} >> ${INSTALLLOGFILE}
echo -e $PRINTTIME ' ' ${EXTRACTDATABIN} >> ${INSTALLLOGFILE}
"${TEMPWORKPATH}/7zr" x -y ${TEMPWORKPATH}/data.bin >/dev/null 2>&1
echo -e $PRINTTIME ' ' ${EXTRACTDATABINRESULT} >> ${INSTALLLOGFILE}
# chmod -R a+w "${INSTALLPATH}"/userdata
# chmod -R a+w "${INSTALLPATH}"/log
chmod -R a+w "${INSTALLPATH}"/config
#ФЛРРЗэ¶Ї№¤ѕЯ°ІЧ°ЅЕ±ѕ
chmod -R a+x ./driver/*
#./driver/install ${INSTALLPATH} >/dev/null 2>&1
echo -e $PRINTTIME ' ' ${EXECUTEDRIVER} >> ${INSTALLLOGFILE}
./driver/install ${INSTALLPATH} .bin
#°ІЧ°CommMgrІўЙиЦГОЄПµНі·юОс
# chmod +x ./CommMgr/*
# cd CommMgr
# ./install_CommMgr ${INSTALLPATH} >/dev/null 2>&1
# cd ..
#copyПа№ШОДјюµЅПаУ¦ДїВј
#їЅ±ґІ¦єЕПа№ШОДјю
chmod a+x ./sbin/*
chmod -R a+w ./hw_pppd
chmod -R a+x ./hw_pppd
# ubuntu10.10 cann't modem connect begin
./hw_pppd/sbin/install_pppd
rm -rf ./hw_pppd/sbin/install_pppd
эрэм эрэф /usr/local/hw_pppd
# ubuntu10.10 cann't modem connect end
cp -rf ./hw_pppd /usr/local/
#copy QT libs to Mobile Partner directory
cp -lrf ${INSTALLPATH}/qtlib/lib*.so* ${INSTALLPATH}
#copyФЪПЯЙэј¶РиТЄµД¶ЇМ¬ївОДјюµЅПаУ¦ДїВј
#copy only when UpdateDog directory exists
if [ -d ${INSTALLPATH}/UpdateDog ]
then
cp -lrf ${INSTALLPATH}/qtlib/lib*.so* ${INSTALLPATH}/UpdateDog
cp -lrf ${INSTALLPATH}/plugins/imageformats/libqgif.so ${INSTALLPATH}/UpdateDog/plugins/imageformats
cp -lrf ${INSTALLPATH}/plugins/imageformats/libqico.so ${INSTALLPATH}/UpdateDog/plugins/imageformats
fi
#uncommenting this to create /usr/local/hw_mobile_userdata/Mobile_Partner
#їЅ±ґУГ»§КэѕЭОДјюјР
if [ ! -d ${USERDATA_PATH} ]
then
mkdir $USERDATA_PATH
mkdir ${USERDATA_PATH}/${SOFTWARENAME}
mkdir ${USERDATA_PATH}/${SOFTWARENAME}/userdata
# do not create userdata directory.
# cp -rf ./userdata ${USERDATA_PATH}/${SOFTWARENAME}
chmod -R a+w ${USERDATA_PATH}
chmod -R a+r ${USERDATA_PATH}
else
#Из№ыґжФЪПаН¬ИнјюГыіЖµДУГ»§КэѕЭЈ¬І»ёІёЗ
if [ ! -d ${USERDATA_PATH}/${SOFTWARENAME} ]
then
mkdir ${USERDATA_PATH}/${SOFTWARENAME}
mkdir ${USERDATA_PATH}/${SOFTWARENAME}/userdata
# do not create userdata directory.
# cp -rf ./userdata ${USERDATA_PATH}/${SOFTWARENAME}
chmod -R a+w ${USERDATA_PATH}
chmod -R a+r ${USERDATA_PATH}
fi
fi
chmod -R a+rwx ${USERDATA_PATH}/${SOFTWARENAME}
# create userdata/log directory for ui.
# mkdir -p ${USERDATA_PATH}/${SOFTWARENAME}/log
#РЮёДsudoersОДјю
grep -v "MobilePartner.sh" /etc/sudoers >/tmp/${TEMPFILE} 2>&1
DELETECOMMENT="delete requiretty for hw_mobile"
REQUIRETTY=`grep "${DELETECOMMENT}" /tmp/${TEMPFILE}`
if [ "x${REQUIRETTY}" != "x" ]
then
REQUIRETTY=`echo "${REQUIRETTY}" | awk -F ',' '{printf $2}'`
else
REQUIRETTY=`grep "requiretty" /tmp/${TEMPFILE}`
if [ "x${REQUIRETTY}" != "x" ]
then
sed -i "s/${REQUIRETTY}/# ,${REQUIRETTY},${DELETECOMMENT}/g" /tmp/${TEMPFILE} 2>/dev/null
fi
fi
echo -e "ALL ALL=(ALL) NOPASSWD:ALL" >> /tmp/${TEMPFILE}
# added a new batch file
# added to generate .bin file and to give access permissions in user mode: Begin
# exec ${INSTALLPATH}/MobilePartner.bin will now be put after the special steps for each distro.
#echo -e "#!/bin/bash \n LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${INSTALLPATH} \n export LD_LIBRARY_PATH \n export PATH=/sbin:$PATH \n sudo LD_LIBRARY_PATH=${INSTALLPATH} \n exec ${INSTALLPATH}/MobilePartner.bin" > ${INSTALLPATH}/MobilePartner_Bat
#DTS2010072902594 Xserver path add to PATH
echo -e "#!/bin/bash \n LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${INSTALLPATH} \n export LD_LIBRARY_PATH \n export PATH=/usr/bin/X11:/usr/X11R6/bin:/sbin:$PATH \n sudo LD_LIBRARY_PATH=${INSTALLPATH} \n" > ${INSTALLPATH}/MobilePartner_Bat
#DTS2010072902594 modify end
mv ${INSTALLPATH}/MobilePartner ${INSTALLPATH}/MobilePartner.bin
mv ${INSTALLPATH}/MobilePartner_Bat ${INSTALLPATH}/MobilePartner
chmod a+x ${INSTALLPATH}/MobilePartner
chmod a+x ${INSTALLPATH}/MobilePartner.bin
chmod 777 -R ${INSTALLPATH}/*
CURRENT_VERSION=$(grep VALUE "${INSTALLPATH}/SysConfig.dat" | head -n1 | cut -d = -f2 | tr -d "\015")
VERSION_TO_REPLACE=$(grep version= "${INSTALLPATH}/RunInfo.ini" | head -n1)
sed -e 's/'"${VERSION_TO_REPLACE}"'/version='"${CURRENT_VERSION}"'/' "${INSTALLPATH}/RunInfo.ini" > RunInfo.tmp
mv -f RunInfo.tmp ${INSTALLPATH}/RunInfo.ini
CURRENT_OPERATOR=$(grep operator "${INSTALLPATH}/SysConfig.dat" | head -n1 | cut -d = -f2 | tr -d "\015")
OPERATOR_TO_REPLACE=$(grep operator= "${INSTALLPATH}/RunInfo.ini" | head -n1)
sed -e 's/'"${OPERATOR_TO_REPLACE}"'/operator='"${CURRENT_OPERATOR}"'/' "${INSTALLPATH}/RunInfo.ini" > RunInfo.tmp
mv -f RunInfo.tmp ${INSTALLPATH}/RunInfo.ini
# added to generate .bin file and to give access permissions in user mode: End
cp -f /tmp/${TEMPFILE} /etc/sudoers
echo -e $PRINTTIME ' ' "active language is " $SYSLANG >> ${INSTALLLOGFILE}
#±ајІўґґЅЁЧАГжЖф¶ЇНј±кєНїЄКјІЛµҐЖф¶ЇНј±к
sed "s#\${HW_SOFTWARENAME}#${SOFTWARENAMEINDESKTOP}#g" ./MobilePartner.desktop > /tmp/${TEMPFILE} 2>/dev/null
sed "s#\${HW_INSTALLPATH}#${INSTALLPATH}#g" /tmp/${TEMPFILE} > ./MobilePartner.desktop 2>/dev/null
echo -e $PRINTTIME ' ' ${CREATEDESKTOP} >> ${INSTALLLOGFILE}
if [ -d /root/Desktop ]
then
cp -f ./MobilePartner.desktop /root/Desktop
else
cp -f ./MobilePartner.desktop /root
fi
echo -e $PRINTTIME ' ' ${CREATEPROGRAMDESKTOP} >> ${INSTALLLOGFILE}
cp -f ./MobilePartner.desktop /usr/share/applications
#±ајІўґґЅЁїЄКјІЛµҐР¶ФШНј±к
sed "s#\${HW_SOFTWARENAME}#${SOFTWARENAMEINDESKTOP}#g" ./UninstallMobilePartner.desktop > /tmp/${TEMPFILE} 2>/dev/null
sed "s#\${HW_INSTALLPATH}#${INSTALLPATH}#g" /tmp/${TEMPFILE} > ./UninstallMobilePartner.desktop 2>/dev/null
cp -f ./UninstallMobilePartner.desktop /usr/share/applications
#±ајІўґґЅЁФЛРРЅЕ±ѕ
echo -e "#!/bin/bash" > ./MobilePartner.sh
# for Ubuntu
UBUNTURELEASE=`grep Ubuntu /etc/issue 2>&1 | awk -F ' ' '{printf $1}'`
if [ "x${UBUNTURELEASE}" = "xUbuntu" ]
then
#DTS2010123003200 begin Refresh the Ubunto Menu Items After install
if [ -f /usr/share/gnome-menus/update-gnome-menus-cache ]
then
UpdateMenuForUbunto
fi
#DTS2010123003200 end
if [ ! -d /usr/share/fonts/truetype/arphic ]
then
mkdir -p /usr/share/fonts/truetype/arphic
fi
fi
# for Debian
DEBIANRELEASE=`grep Debian /etc/issue 2>&1 | awk -F ' ' '{printf $1}'`
if [ "x${DEBIANRELEASE}" = "xDebian" ]
then
if [ ! -d /usr/share/fonts/truetype/arphic ]
then
mkdir -p /usr/share/fonts/truetype/arphic
fi
fi
# for OpenSuSE
if [ -f /etc/SuSE-release ]
then
if [ ! -d /usr/share/fonts/truetype ]
then
mkdir -p /usr/share/fonts/truetype
fi
# echo -e "export DISPLAY=:0" >> ./MobilePartner.sh
#DTS2010062201326 modify begin
echo -e "export DISPLAY=:0" >> ${INSTALLPATH}/MobilePartner
fi
#DTS2010122702428 modify begin
# for ALTLinux
if [ -f /etc/altlinux-release ]
then
echo -e "export DISPLAY=:0" >> ${INSTALLPATH}/MobilePartner
fi
#DTS2010122702428 modify end
if [ ! -e /usr/bin/sudo ]
then
echo "There is no sudo command in your system,you'd better run the software by root"
echo "Press any key to continue..."
read -n 1
echo -e "#!/bin/bash \n ${INSTALLPATH}/MobilePartner \${DISPLAY}" > ${INSTALLPATH}/ReadDisplay
else
echo -e "#!/bin/bash \n sudo ${INSTALLPATH}/MobilePartner \${DISPLAY}" > ${INSTALLPATH}/ReadDisplay
fi
chmod +x ${INSTALLPATH}/ReadDisplay
#DTS2010062201326 modify end
#insert hook
if [ -d /etc/pm/sleep.d ]
then
cp -f ${INSTALLPATH}/sbin/67hw_hook /etc/pm/sleep.d
chmod +x /etc/pm/sleep.d/67hw_hook
fi
# for jre compatibility
echo -e "export LIBXCB_ALLOW_SLOPPY_LOCK=1" >> ./MobilePartner.sh
# added for executing MobilePartner.bin file from MobilePartner.sh file: Begin
echo -e "APPDIR=${INSTALLPATH}" >> ./MobilePartner.sh
echo -e "cd \${APPDIR}" >> ./MobilePartner.sh
echo -e "\${APPDIR}/MobilePartner.bin &" >> ./MobilePartner.sh
echo -e "exec ${INSTALLPATH}/MobilePartner.bin" >> ${INSTALLPATH}/MobilePartner
# added for executing MobilePartner.bin file from MobilePartner.sh file: End
chmod +x ./MobilePartner.sh
chmod a+x ./MobilePartner
#±ајІўґґЅЁР¶ФШЅЕ±ѕ
sed -i "s/{LYouMustBeRoot}/${LYouMustBeRoot[${LANGCODE}]}/g" ./UninstallMobilePartner
sed -i "s/{LInstallEnd}/${LInstallEnd[${LANGCODE}]}/g" ./UninstallMobilePartner
sed -i "s/{LProgramRunning}/${LProgramRunning[${LANGCODE}]}/g" ./UninstallMobilePartner
sed -i "s#{HOOK_FILE}#${HOOK_FILE}#g" ./UninstallMobilePartner
sed -i "s#{INSTALLPATH}#${INSTALLPATH}#g" ./UninstallMobilePartner
sed -i "s#{CONFIG_FILE}#${CONFIG_FILE}#g" ./UninstallMobilePartner
sed -i "s#{USERDATA_PATH}#${USERDATA_PATH}#g" ./UninstallMobilePartner
if [ "x${REQUIRETTY}" != "x" ]
then
sed -i "s/{REQUIRETTY}/${REQUIRETTY}/g" ./UninstallMobilePartner
sed -i "s/{DELETECOMMENT}/${DELETECOMMENT}/g" ./UninstallMobilePartner
else
grep -v {REQUIRETTY} ./UninstallMobilePartner > /tmp/${TEMPFILE}
cp -f /tmp/${TEMPFILE} ./UninstallMobilePartner
fi
chmod +x ./UninstallMobilePartner
DonePrompt "${LStartInstallPartner[${LANGCODE}]}"
#echo -e "\n${SOFTWARENAMEINDESKTOP} ${LCompleteInstallPartner[${LANGCODE}]} ${INSTALLPATH}"
#After install succeed, create a new file to let onlineupdate know it's finished
#This file should be delete by onlineupdate program
touch "${USERDATA_PATH}/${SOFTWARENAME}/userdata/install.flg"
#Зеіэ±ѕµШОДјю
# rm -rf ./userdata
rm -rf ./hw_pppd
rm -rf ./*.desktop
rm -f /tmp/${TEMPFILE}
rm -rf ${TEMPWORKPATH}
echo -e $PRINTTIME ' ' ${DELETEALLLOCALFILES} >> ${INSTALLLOGFILE}
#DTS2010062201326 add begin
chmod 777 ${INSTALLPATH}
#DTS2010062201326 add end
}
DonePrompt()
{
LOGCHARNUM=`echo "$1" | wc -m`
TERMCHARNUM=`stty size | awk -F ' ' '{printf $2}'`
LOGCHARNUM=`expr $TERMCHARNUM - $LOGCHARNUM`
echo "[ done ] " | awk '{printf "%"'"$LOGCHARNUM"'"s", $0}'
echo -e ""
}
# /*МṩѡФсУпСФ*/
SelectLanguage()
{
while :
do
case ${LANGCODE} in
0)
echo -e "\n\t1. јтМеЦРОД"
echo -e "\t2. УўОД"
echo -e "\n\tЗлСЎФсУпСФ: [1]\c"
read RESP
: ${RESP:="1"}
;;
*)
echo -e "\n\t1. Simplified Chinese"
echo -e "\t2. English"
echo -e "\n\tPlease select Language: [2]\c"
read RESP
: ${RESP:="2"}
;;
esac
case ${RESP} in
[1,2])
LANGCODE=`expr ${RESP} - 1`
return ${LANGCODE}
;;
*)
case ${LANGCODE} in
0)
echo -e - "\n\tДг±ШРлСЎФс: 1, 2\n"
;;
*)
echo -e "\n\tPlease select: 1, 2\n"
;;
esac
;;
esac
done
}
# /*ПФКѕіМРтЖф¶ЇК±µДРЕПў*/
DisplayStartMsg()
{
clear
}
# /*ПФКѕіМРтЅбКшК±µДРЕПў*/
DisplayEndMsg()
{
cd "${BAKCURRENTPATH}"
rm -rf "${TEMPWORKPATH}"
echo -e "\n${LInstallEnd[${LANGCODE}]}"
echo -e $PRINTTIME ' ' ${ENDINSTALL} >> ${INSTALLLOGFILE}
echo -e "========================================================" >> ${INSTALLLOGFILE}
read -n 1
clear
}
GenConfigFile()
{
cd $INSTALLPATH
echo "path=$INSTALLPATH" > $CONFIG_FILE
echo "name=MobilePartner" >> $CONFIG_FILE
echo "Exec=$INSTALLPATH/MobilePartner" >> $CONFIG_FILE
echo "FullVersion=$FULLVERSION" >> $CONFIG_FILE
}
#DTS2010123003200 begin Refresh the Ubunto Menu Items After install
UpdateMenuForUbunto()
{
for CACHE_FILE in ls /usr/share/applications/desktop.*.cache
do
if [ -f ${CACHE_FILE} ]; then
aa=`ls -l ${CACHE_FILE}|awk '{print substr($1, 2)}'|sed 's/-/0/g'|sed 's/r/1/g'|sed 's/w/1/g'|sed 's/x/1/g'`
chmod 777 ${CACHE_FILE}
/usr/share/gnome-menus/update-gnome-menus-cache /usr/share/applications/ > ${CACHE_FILE}
bb=$(echo "obase=8;ibase=2;$aa"|bc)
chmod ${bb} ${CACHE_FILE}
fi
done
}
#DTS2010123003200 end Refresh the Ubunto Menu Items After install
clear
CheckID
CheckRunning
#SelectLanguage
DisplayStartMsg
#µ±ИГУГ»§СЎФс°ІЧ°К±Ј¬ИзПВІї·ЦґъВлµЅУ¦ёГ·ЕµЅwhileС»·ЦР
PreInstall
InstallMobilePartner
GenConfigFile
#echo "Download Programs finished!" > "$INSTALLPATH/lib/UpdateInstall/inputLog.txt"
DisplayEndMsg
exit 0
#І»ИГУГ»§СЎФс°ІЧ°Ј¬ИзПВґъВлОЮР§
while :
do
echo -e - "***\t\t${LMobilePartnerInstall[${LANGCODE}]}\t\t***\n"
echo -e - "${LPlsSelect[${LANGCODE}]}\n"
echo -e - "\t1) ${LInstallMP[${LANGCODE}]}"
echo -e - "\t0) ${LQuitInstall[${LANGCODE}]}\n"
echo -e - "Choice:
read RESP
: ${RESP:="0"}
case ${RESP} in
1)
PreInstall
InstallJRE
InstallMobilePartner
GenConfigFile
;;
0)
DisplayEndMsg
exit 0
;;
*)
echo -e - "${LYouMustSelect[${LANGCODE}]}1, 0"
;;
esac
done