1#!/bin/bash
2#
3# add test
4# damon install script of pc suite 
5# created by wangxiaoming 20101229
6#
7
8BAKCURRENTPATH=`pwd`
9SOFTWARENAME="MMX353W 3G USB Manager"
10INSTALLWORKPATH="$(dirname "$0")"
11CONFIG_FILE="/etc/lcUSBCard"
12USERDATA_PATH="/usr/local/lcData"
13PPPD_PATH="/usr/local/lcDial"
14#tata
15FULLVERSION=J2.1.17.2
16#3161
17#FULLVERSION=J1.1.6.12
18SOFTWARENAMEINDESKTOP=$SOFTWARENAME
19SOFTWARENAME=$(echo $SOFTWARENAME | sed s\#\ \#_\#g)
20
21INSTALLPATH="/usr/local/${SOFTWARENAME}"
22TEMPWORKPATH="/tmp/${SOFTWARENAME}_$$"
23TEMPFILE="${SOFTWARENAME}_install_$PPID"
24USERinfoDATA_PATH="/usr/local/lcData/${SOFTWARENAME}/data/userdata.xml"
25CHIPTYPE="1"
26DEVICETYPE="0"
27#userinfo overwrite 
28OVERWRITE=1
29#Language String
30LANGUAGESTRING[0]="zh"
31LANGUAGESTRING[1]="en_US"
32LANGUAGECODE[0]=0
33LANGUAGECODE[1]=1
34
35
36LANGCODE=${LANGUAGECODE[1]}
37i=0
38while [ ".${LANGUAGESTRING[${i}]}" != "." ]
39do
40    if [ ${LANGUAGESTRING[${i}]} = "${LANG}" ]
41    then
42        LANGCODE=${LANGUAGECODE[${i}]}
43        break
44    fi
45    i=`expr ${i} + 1`
46done
47unset i
48
49ErrorPara[0]="��������"
50ErrorPara[1]="parameter error"
51
52LYouMustBeRoot[0]="��������root������������������"
53LYouMustBeRoot[1]="You must run the process by root"
54
55LPlsInputInstallPath[0]="��������������������"
56LPlsInputInstallPath[1]="Please input the absolute path for install"
57
58LInstallPath[0]="��������"
59LInstallPath[1]="install path"
60
61LIllegal[0]="����"
62LIllegal[1]="illegal"
63
64LNoFile[0]="������������"
65LNoFile[1]="Can not find file: "
66
67LCanNotCreateDir[0]="������������"
68LCanNotCreateDir[1]="Can not create dir"
69
70LUSBModemInstall[0]="${SOFTWARENAMEINDESKTOP}��������"
71LUSBModemInstall[1]="${SOFTWARENAMEINDESKTOP} installer"
72
73LJREInstalled[0]="JRE������������, ������������"
74LJREInstalled[1]="JRE have installed before, will want to cover with before version"
75
76LJREInstalling[0]="��������JRE, ������..."
77LJREInstalling[1]="Installing JRE..."
78
79LJREInstallComplete[0]="��������JRE����"
80LJREInstallComplete[1]="JRE install have completed"
81
82LStartInstallPartner[0]="������������, ������..."
83LStartInstallPartner[1]="Installing ${SOFTWARENAMEINDESKTOP}..."
84
85LCompleteInstallPartner[0]="����������������"
86LCompleteInstallPartner[1]="install have completed, local path is"
87
88LLocalPath[0]="������������"
89LLocalPath[1]="Local path is"
90
91LOverwriteInstalled[0]="��������������, ��������"
92LOverwriteInstalled[1]="The software is exist. Do you want overwrite it"
93
94LInstallJRE[0]="����JRE"
95LInstallJRE[1]="install JRE"
96
97LInstallMP[0]="��������"
98LInstallMP[1]="install ${SOFTWARENAMEINDESKTOP}"
99
100LInstallAll[0]="����JRE������"
101LInstallAll[1]="install JRE and ${SOFTWARENAMEINDESKTOP}"
102
103LQuitInstall[0]="����"
104LQuitInstall[1]="Exit"
105
106LPlsSelect[0]="��������"
107LPlsSelect[1]="Please select: "
108
109LYouMustSelect[0]="������������"
110LYouMustSelect[1]="You must select: "
111
112LInstallEnd[0]="����, ������������"
113LInstallEnd[1]="Finished, press any key to exit"
114
115LInstallingVersionOlderThenInstalled[0]="��������������������������������������������������"
116LInstallingVersionOlderThenInstalled[1]="WARNING: There were user data in your system. Do you want to overwrite it"
117
118LInstallingVersionLaterThenInstalled[0]="����������������������������"
119LInstallingVersionLaterThenInstalled[1]="There is a older version in your system. Do you want to update it"
120
121LInstalledVersion[0]="����������:"
122LInstalledVersion[1]="Installed version:"
123
124LInstallingVersion[0]="������������:"
125LInstallingVersion[1]="Installing version:"
126
127LProgramRunning[0]="������������������������"
128LProgramRunning[1]="Program is running, you need close it before operate."
129
130LUserdataInstalled[0]="��������������������������������, ����������"
131LUserdataInstalled[1]="would you delete user's data?"
132
133LProgramRemoving[0]="��������������?"
134LProgramRemoving[1]="are you sure to remove programe?"
135
136LDriverInstalling[0]="��������usb����"
137LDriverInstalling[1]="Installing usb drivers"
138
139LDriverNoSupport[0]="������! usb������������������"
140LDriverNoSupport[1]="Sorry! the usb-serial driver does not support your linux version"
141
142LDriverInstallErr[0]="������! ����usb��������"
143LDriverInstallErr[1]="Sorry! make usb-serial dirver error"
144
145LDriverUninstalling[0]="��������usb����"
146LDriverUninstalling[1]="Uninstall usb drivers"
147
148LDriverUsed[0]="��������������usb��������������"
149LDriverUsed[1]="you must make sure there is no program used this module"
150
151LSelectLanguage[0]="��������������"
152LSelectLanguage[1]="Select the language for the installation form the choices below."
153
154LPlsChoose[0]="������"
155LPlsChoose[0]="Please input number"
156
157
158# /*yes or no ��������, yes����0, no����1*/
159yes_or_no()
160{
161    if [ ${#} -ne 2 ]
162    then
163        echo -e "yes_or_or: ${ErrorPara[${LANGCODE}]}"
164        return 1
165    fi
166    if [ "${2}" = "Y" ]
167    then
168        DEFPMPT="([Y]/N):\c "
169        DEFVAL="Y"
170    else
171        DEFPMPT="(Y/[N]):\c "
172        DEFVAL="N"
173    fi
174    echo -e "${1} ${DEFPMPT}"
175    read ANS
176    while [ "${ANS}" != "Y" -a "${ANS}" != "y" -a "${ANS}" != "N" -a "${ANS}" != "n" -a ! -z "${ANS}" ]
177    do
178        echo -e "${1} ${DEFPMPT}"
179        read ANS
180    done
181    : ${ANS:="${DEFVAL}"}
182    if [ "${ANS}" != "Y" -a "${ANS}" != "y" ]
183    then
184        unset ANS
185        return 1
186    fi
187    unset ASN
188    return 0
189}
190
191#����������������������������root����
192CheckID()
193{
194    if [ `id | awk '{print $1}'` != "uid=0(root)" ]
195    then
196        echo -e "${LYouMustBeRoot[${LANGCODE}]}"
197        echo -e "\n${LInstallEnd[${LANGCODE}]}"
198        read -n 1
199        clear
200        exit
201    fi
202
203    RUNP=`ps -ef |grep -v grep |grep USBModem.jar | grep java |awk '{print $2}'`
204    if [ "x${RUNP}" != "x" ]
205    then
206        echo -e "${LProgramRunning[${LANGCODE}]}"
207        echo -e "\n${LInstallEnd[${LANGCODE}]}"
208        read RESP
209        exit
210    fi
211}
212
213#������������
214CheckChipType()
215{
216#Icera 1
217#Qualcomm 2
218  CHIPTYPE=${FULLVERSION%%.*}
219  CHIPTYPE=${CHIPTYPE#?}
220  : ${CHIPTYPE:="1"}  
221}
222
223#������������
224CheckCustomType()
225{
226#0:plateform(HSPA_USB_Modem)
227#1:customize(Onda Connection Manager)
228#2:customize(MTS No Activate)
229#3:customize(MTS Activate)
230#4:customize(7268-ONDA)
231#5:customize(Aircel)
232  DEVICETYPE=${FULLVERSION%.*}
233  DEVICETYPE=${DEVICETYPE##*.}
234  echo "DTX$DEVICETYPE"
235}
236
237#������������������������������������������������������������������������
238PreInstall()
239{
240    #����JRE����
241    if [ ! -f "${INSTALLWORKPATH}"/jre-1_5_0_15-linux-i586.bin ]
242    then
243        echo -e "${LNoFile[${LANGCODE}]}jre-1_5_0_15-linux-i586.bin"
244        exit
245    fi
246    #��������������
247    if [ ! -f "${INSTALLWORKPATH}"/USBModem.tar.gz ]
248    then
249        echo -e "${LNoFile[${LANGCODE}]}USBModem.tar.gz"
250        exit
251    fi
252    
253    if [ ! -d "${TEMPWORKPATH}" ]
254    then
255        mkdir ${TEMPWORKPATH}
256    fi
257    if [ ! -d "${TEMPWORKPATH}" ]
258    then
259        echo -e "\n${LCanNotCreateDir[${LANGCODE}]}: ${TEMPWORKPATH}"
260        exit
261    fi
262    
263    #����JRE��������
264    cp -f "${INSTALLWORKPATH}"/jre-1_5_0_15-linux-i586.bin ${TEMPWORKPATH}
265    chmod a+x ${TEMPWORKPATH}/jre-1_5_0_15-linux-i586.bin
266    
267    #����������������
268    cp -f "${INSTALLWORKPATH}"/USBModem.tar.gz ${TEMPWORKPATH}
269    
270    if [ -f "${INSTALLWORKPATH}"/data.bin ]
271    then
272        cp -f "${INSTALLWORKPATH}"/data.bin ${TEMPWORKPATH}
273    fi
274
275    #��������������������
276    cp -f "${INSTALLWORKPATH}"/install ${TEMPWORKPATH}
277    chmod a+x ${TEMPWORKPATH}/install    
278    
279 		#check version information
280    if [ -f $CONFIG_FILE ]
281    then
282        #������������
283        . $CONFIG_FILE
284
285        #��������������������������
286        VRVERSIONINSTALLED=`echo $FullVersion`
287        
288        #��������������������
289        VRVERSIONINSTALLING=`echo $FULLVERSION`
290        
291        #������������
292        #echo "${LInstalledVersion[${LANGCODE}]} ${FullVersion}"
293        #echo "${LInstallingVersion[${LANGCODE}]} ${FULLVERSION}"
294        
295        #��������������������������
296        while [ 1 ]
297        do
298            #����VR��������������������������������
299            if [ "$VRVERSIONINSTALLED" = "$VRVERSIONINSTALLING" ]
300            then
301                InstallDifferentVersionPrompt
302                break
303            fi            
304            
305            #������������������������������������������
306            InstallSameVersionPrompt
307            break
308        done
309
310        INSTALLPATH=`egrep "^path=" $CONFIG_FILE | awk -F  '=' '{print $2}'`
311        
312    else    
313
314 
315    	#������������
316    	echo -e "\n ${LPlsInputInstallPath[${LANGCODE}]}[${INSTALLPATH}]: \c"
317    	read ANS
318    	: ${ANS:="${INSTALLPATH}"}
319    	INSTALLPATH=${ANS}
320        
321    	#����������������
322    	if [[ ${INSTALLPATH} != /* ]]
323    	then
324        echo -e "\n${LInstallPath[${LANGCODE}]} ${LIllegal[${LANGCODE}]}"
325        DisplayEndMsg
326        exit
327    	fi
328        
329    	#����������������
330    	if [  -d "${INSTALLPATH}" ]
331    	then
332        INSTALLPATH=${INSTALLPATH}/${SOFTWARENAME}
333    	fi    
334    fi
335    
336    #������������
337    if [ ! -d "${INSTALLPATH}" ]
338    then
339        mkdir ${INSTALLPATH}
340    fi
341    if [ ! -d "${INSTALLPATH}" ]
342    then
343        echo -e "\n${LCanNotCreateDir[${LANGCODE}]}: ${INSTALLPATH}"
344        DisplayEndMsg
345        exit
346    fi
347
348    echo -e "\n${LLocalPath[${LANGCODE}]}: ${INSTALLPATH}"
349}
350
351InstallLaterVersionPrompt()
352{
353    #��������������������	
354    yes_or_no "\n${LInstallingVersionLaterThenInstalled[${LANGCODE}]}?" Y
355    if [ ${?} -ne 0 ]
356    then
357        DisplayEndMsg
358        exit
359    fi
360}
361
362InstallSameVersionPrompt()
363{
364    #������������������������������������	
365    yes_or_no "\n${LOverwriteInstalled[${LANGCODE}]}?" Y
366    if [ ${?} -ne 0 ]
367    then
368        DisplayEndMsg
369        exit
370    fi
371}
372
373InstallDifferentVersionPrompt()
374{
375    #������������������������������������	
376    yes_or_no "\n${LOverwriteInstalled[${LANGCODE}]}?" Y
377    if [ ${?} -ne 0 ]
378    then
379        DisplayEndMsg
380        exit
381    fi
382}
383
384#����JRE
385InstallJRE()
386{
387    mkdir -p "${INSTALLPATH}/java"
388    cd "${INSTALLPATH}/java"
389    echo -e -n "\n${LJREInstalling[${LANGCODE}]}"
390    ${TEMPWORKPATH}/jre-1_5_0_15-linux-i586.bin >/dev/null 2>&1 <<!
391Y
392!
393# for jre compatibility
394    sed -i 's/XINERAMA/FAKEEXTN/g' ${INSTALLPATH}/java/jre1.5.0_15/lib/i386/xawt/libmawt.so
395
396    DonePrompt "${LJREInstalling[${LANGCODE}]}"
397
398    #echo -e "\n${LJREInstallComplete[${LANGCODE}]}"
399    
400    return 0
401}
402
403
404#��������
405UnpackSoft()
406{
407    echo -e -n "\n${LStartInstallPartner[${LANGCODE}]}"
408    cd "${INSTALLPATH}"
409#����������������data.bin
410    if [ -f "${TEMPWORKPATH}"/data.bin ]
411    then
412        tar zxf "${TEMPWORKPATH}"/data.bin >/dev/null 2>&1
413    fi
414#������������������������   
415    tar zxf ${TEMPWORKPATH}/USBModem.tar.gz >/dev/null 2>&1
416    chmod -R a+w "${INSTALLPATH}"/data
417    chmod -R a+w "${INSTALLPATH}"/configure
418    chmod -R a+w "${INSTALLPATH}"/log
419}
420#��������
421chooseLanguage()
422{
423if [ "x${DEVICETYPE}" = "x4" ]
424then
425  PRELAN="language_"
426  SOFTLAN=""
427  echo -e -n "\n${LSelectLanguage[${LANGCODE}]} \n"
428	echo -e "(1) English "
429	echo -e "(2) Italian "
430	echo -e "(3) French "
431	echo -e "(4) Arabic "
432	echo -e "(5) Portuguese "
433	echo -e "(6) Russian "
434	echo -e "(7) Romania "
435	echo -e "(8) Albania "
436	echo -e "(9) Dutch"
437	echo -e "(10) Simplified Chinese "
438	echo -e -n "${LPlsChoose[${LANGCODE}]}(1 or 2 or ... or 10):"
439	read LANCHOOSE
440  if [ "x${LANCHOOSE}" = "x1" ]
441  then
442    SOFTLAN="${PRELAN}en.xml"
443  elif [ "x${LANCHOOSE}" = "x2" ]    
444  then
445    SOFTLAN="${PRELAN}it.xml"
446  elif [ "x${LANCHOOSE}" = "x3" ]    
447  then
448    SOFTLAN="${PRELAN}fr.xml"
449  elif [ "x${LANCHOOSE}" = "x4" ]
450  then
451    SOFTLAN="${PRELAN}ar.xml"
452  elif [ "x${LANCHOOSE}" = "x5" ]
453  then
454    SOFTLAN="${PRELAN}pt.xml"
455  elif [ "x${LANCHOOSE}" = "x6" ]
456  then
457    SOFTLAN="${PRELAN}ru.xml"
458  elif [ "x${LANCHOOSE}" = "x7" ]
459  then
460    SOFTLAN="${PRELAN}ro.xml"
461  elif [ "x${LANCHOOSE}" = "x8" ]
462  then
463    SOFTLAN="${PRELAN}sq.xml"
464  elif [ "x${LANCHOOSE}" = "x9" ]
465  then
466    SOFTLAN="${PRELAN}nl.xml"
467  elif [ "x${LANCHOOSE}" = "x10" ]
468  then
469    SOFTLAN="${PRELAN}zh.xml"
470  fi 
471  sed -i "s#\(<language type=\)[^>]*#\1\"${SOFTLAN}\"#g" ${INSTALLPATH}/configure/data/SysCfg.xml
472fi
473}
474
475InstallIceraDriver()
476{
477#install eject drivers 
478#created by wangxiaoming 201012
479#get device type
480#0:plateform(HSPA_USB_Modem)
481#1:customize(Onda Connection Manager)
482#2:customize(MTS No Activate)
483#3:customize(MTS Activate)
484#4:customize(7268-ONDA)  
485#6:customize(3161-platform MMX)  
486  DEVICETYPE=${FULLVERSION%.*}
487  DEVICETYPE=${DEVICETYPE##*.}
488  echo "X$DEVICETYPE"
489  if [ "x${DEVICETYPE}" = "x4" ]
490  then
491    DRIVERDEB="onda-lq-zerocd_0.4-1_all.deb"
492    DRIVERRPM="onda-lq-zerocd-0.4-1.noarch.rpm"
493  else
494   	DRIVERDEB="longcheer-wm65-zerocd_0.4-1_all.deb"
495  	DRIVERRPM="longcheer-wm65-zerocd-0.4-1.noarch.rpm"
496  fi
497# for Ubuntu
498  UBUNTURELEASE=`grep Ubuntu /etc/issue 2>&1 | awk -F ' ' '{printf $1}'`
499  if [ "x${UBUNTURELEASE}" = "xUbuntu" ]
500  then
501  	dpkg -i "$INSTALLPATH"/driver/"${DRIVERDEB}"  >/dev/null  2>&1
502  fi
503    
504# for Debian
505  DEBIANRELEASE=`grep Debian /etc/issue 2>&1 | awk -F ' ' '{printf $1}'`
506  if [ "x${DEBIANRELEASE}" = "xDebian" ]
507  then
508	  dpkg -i "$INSTALLPATH"/driver/"${DRIVERDEB}"  >/dev/null  2>&1
509  fi
510
511# for Fedora
512  DEBIANRELEASE=`grep Fedora /etc/issue 2>&1 | awk -F ' ' '{printf $1}'`
513  if [ "x${DEBIANRELEASE}" = "xFedora" ]
514  then
515	  rpm -ivh "$INSTALLPATH"/driver/"${DRIVERRPM}"  >/dev/null  2>&1
516  fi
517
518# for OpenSuSE
519  if [ -f /etc/SuSE-release ]
520  then
521	  echo "do nothing..."
522  fi
523
524  udevadm control --reload-rules
525  udevadm trigger --subsystem-match="usb"
526}
527InstallLctDriver()
528{
529#����lctserial usb����
530    echo -e -n "\n${LDriverInstalling[${LANGCODE}]}\n"  
531    cd driver
532     chmod a+x install_driver 
533     ./install_driver >/dev/null 2>&1
534     cd ..
535 #   cp -rf $INSTALLPATH/driver/26-longcheer-Datacard.rules /etc/udev/rules.d/26-longcheer-Datacard.rules
536 #   cp -rf $INSTALLPATH/driver/longcheer-cm55-ejectcd /lib/udev/longcheer-cm55-ejectcd
537 #   cp -rf $INSTALLPATH/driver/longcheer-cm55-testcd /lib/udev/longcheer-cm55-testcd
538#Wangchao add 20110614 for zhanghui Shift machine
539 #   cp -rf $INSTALLPATH/driver/lcdoshift /lib/udev/lcdoshift
540 #   cp -rf $INSTALLPATH/driver/load_driver.sh /lib/udev/load_driver.sh
541  
542 #   chmod a+x /lib/udev/lcdoshift
543 #   chmod a+x /lib/udev/load_driver.sh
544    
545 #   chmod a+x /etc/udev/rules.d/26-longcheer-Datacard.rules
546  #  chmod a+x /lib/udev/longcheer-cm55-ejectcd
547 #   chmod a+x /lib/udev/longcheer-cm55-testcd
548
549   # cd ${INSTALLPATH}/driver; make; make install
550   # cd ${INSTALLPATH}/driver/ndis; chmod 777 * -R; ./make_driver.sh >/dev/null 2>&1
551}
552#userinfo add qiaokai
553UserInfo()
554{
555while [ 1 ]
556    do
557 	echo -e "\n Please your name: \c"
558	read ANS
559	if [ ${#ANS} -le 50 ]
560	then
561	    	if [ "${ANS}" = "" ]
562	   	then
563		    echo -e "\n invalid input! \c"
564	       	    continue
565		fi
566		test=`echo ${ANS} | grep [0-9]`	
567		if [ "${test}" != "" ]	
568		then
569		   echo -e "\n error input! \c" 
570		else
571		   sed -i "s#\(<install_userdata_username_txt>\)[^<]*#\1${ANS}#" ${USERinfoDATA_PATH}
572		   break
573		fi
574	else
575	    echo -e "\n  Length less than 50 \c"
576	fi
577     done
578m="male"
579f="female"
580while [ 1 ]
581    do
582         echo -e "\n Please your gender(male or female): \c"
583	 read ANS
584         if [ "${ANS}" = $m ]
585         then
586            sed -i "s#\(<install_userdata_usergender_txt>\)[^<]*#\1${ANS}#" ${USERinfoDATA_PATH}
587	    break
588         else
589	    if [ "${ANS}" = $f ]
590            then
591               sed -i "s#\(<install_userdata_usergender_txt>\)[^<]*#\1${ANS}#" ${USERinfoDATA_PATH}
592	       break
593	    else
594	       echo -e "\n invalid input! \c"
595            fi
596         fi
597    done
598while [ 1 ]
599    do
600        echo -e "\n Please your age(1~100): \c"
601	read ANS
602	if [ "${ANS}" = "" ]
603   	then
604            echo -e "\n invalid input!1 \c"
605       	    continue
606	fi
607	test=`echo "${ANS}" | grep ^[0-9]*$`
608	if [ "${test}" != "" -o "${ANS}" = "" ]
609	then	
610		if [ "${ANS}" -gt 100 -o "${ANS}" -lt 0 ]
611		then
612		    echo -e "\n ERROR input(1~100)! \c" 
613		    continue
614		fi
615	sed -i "s#\(<install_userdata_userage_txt>\)[^<]*#\1${ANS}#" ${USERinfoDATA_PATH}
616	break
617  	fi
618	echo -e "\n ERROR input! \c"	 			         
619    done
620while [ 1 ]
621    do
622         echo -e "\n Please your mobile: \c"
623	 read ANS
624	 if [ ${#ANS} -le 40 ]
625	 then
626	   if [ "${ANS}" = "" ]
627   	   then
628	     echo -e "\n invalid input! \c"
629       	     continue
630	   fi
631	   test=`echo "${ANS}" | grep ^[0-9]*$`	
632	   if [ "${test}" != "" -o "${ANS}" = "" ]
633	   then
634	     sed -i "s#\(<install_userdata_usermobile_txt>\)[^<]*#\1${ANS}#" ${USERinfoDATA_PATH}	
635	     break
636	   fi
637	     echo -e "\n input error!!! \c"	   			  
638	   else
639	     echo -e "\n  Length less than 40 \c"
640	   fi
641    done
642while [ 1 ]
643    do
644         echo -e "\n Please your email: \c"
645	 read ANS
646	 if [ "${ANS}" = "" ]
647   	 then
648            echo -e "\n invalid input! \c"
649       	    continue
650	 fi
651	 test=`echo "${ANS}" | grep ^[0-9a-zA-Z]*@[0-9a-zA-Z\.]*$`	
652	 if [ "${test}" != "" ]	
653	 then
654	   sed -i "s#\(<install_userdata_useremail_txt>\)[^<]*#\1${ANS}#" ${USERinfoDATA_PATH}
655	   break		  	   
656         else
657	      echo -e "\n input error!!! \c"           
658         fi
659    done
660echo "userinfo finish"
661}
662#������������������������
663InstallDriver()
664{
665  cp -rf $INSTALLPATH/driver/11-longcheer-Datacard.rules /etc/udev/rules.d/11-longcheer-Datacard.rules
666  chmod a+x /etc/udev/rules.d/11-longcheer-Datacard.rules
667#get chip type
668#Icera 1
669#Qualcomm 2
670  CHIPTYPE=${FULLVERSION%%.*}
671  CHIPTYPE=${CHIPTYPE#?}
672  : ${CHIPTYPE:="1"}  
673  echo "X$CHIPTYPE"
674#1��Icera
675  if [ "x${CHIPTYPE}" = "x1" ]
676  then
677  	InstallIceraDriver
678  fi
679#2��Qualcomm  
680  if [ "x${CHIPTYPE}" = "x2" ]
681  then
682  	InstallLctDriver
683  fi
684  udevadm control --reload-rules
685  udevadm trigger --subsystem-match="usb"
686
687}
688
689InstallActive()
690{    
691#������������������ modified by wangxiaoming 201012
692    chmod +x ${INSTALLPATH}/active/*
693    ${INSTALLPATH}/active/active_install ${INSTALLPATH} >/dev/null  2>&1
694}
695InstallLibs()
696{    
697#copy������������������
698    #����������
699    cp -rf ${INSTALLPATH}/lib/librxtxSerial.so ${INSTALLPATH}/java/jre1.5.0_15/lib/i386
700    cp -rf ${INSTALLPATH}/lib/libjnotify.so ${INSTALLPATH}/java/jre1.5.0_15/lib/i386
701    #����������������
702    #cp -rf ${INSTALLPATH}/configure/fontconfig/fontconfig.properties ${INSTALLPATH}/java/jre1.5.0_15/lib/
703    cp -rf ${INSTALLPATH}/configure/fontconfig/fontconfig.SuSE.properties ${INSTALLPATH}/java/jre1.5.0_15/lib/
704    cp -rf ${INSTALLPATH}/configure/fontconfig/fonts.dir ${INSTALLPATH}/java/jre1.5.0_15/lib/fonts/
705	if [ -d /usr/share/fonts/wqy-zenhei ]
706    then
707		ln -s /usr/share/fonts/wqy-zenhei   ${INSTALLPATH}/java/jre1.5.0_15/lib/fonts/fallback
708	else
709		if [ ! -d /usr/share/fonts/truetype/arphic ]
710		then
711			mkdir -p /usr/share/fonts/truetype/arphic
712		fi
713		ln -s /usr/share/fonts/truetype/arphic   ${INSTALLPATH}/java/jre1.5.0_15/lib/fonts/fallback
714		#cp -rf ${INSTALLPATH}/configure/fontconfig/wqy-zenhei.ttc ${INSTALLPATH}/java/jre1.5.0_15/lib/fonts/fallback/
715			
716	fi
717    rm -rf ${INSTALLPATH}/configure/fontconfig
718
719    #����������������
720    chmod a+x ${INSTALLPATH}/shell/*
721    chmod -R a+w ${INSTALLPATH}/lcDial
722    chmod -R a+x ${INSTALLPATH}/lcDial
723    cp -rf ${INSTALLPATH}/lcDial /usr/local/
724    
725    #������������������
726    if [ ! -d ${USERDATA_PATH} ]
727    then
728        mkdir $USERDATA_PATH
729        mkdir ${USERDATA_PATH}/${SOFTWARENAME}
730        cp -rf ${INSTALLPATH}/data ${USERDATA_PATH}/${SOFTWARENAME}
731        chmod -R a+w ${USERDATA_PATH}
732        chmod -R a+r ${USERDATA_PATH}
733    else
734        #��������������������
735        if [ ! -d ${USERDATA_PATH}/${SOFTWARENAME} ]
736        then
737            mkdir ${USERDATA_PATH}/${SOFTWARENAME}
738            cp -rf ${INSTALLPATH}/data ${USERDATA_PATH}/${SOFTWARENAME}
739            chmod -R a+w ${USERDATA_PATH}
740            chmod -R a+r ${USERDATA_PATH}
741        else
742            #����������������������������������
743            yes_or_no "\n${LInstallingVersionOlderThenInstalled[${LANGCODE}]}?" Y
744            if [ ${?} -ne 1 ]
745            then
746#  add by qiao to overwrite old data files.
747			  rm -rf ${USERDATA_PATH}/${SOFTWARENAME}/*
748              cp -rf ${INSTALLPATH}/data ${USERDATA_PATH}/${SOFTWARENAME}
749              chmod -R a+w ${USERDATA_PATH}
750              chmod -R a+r ${USERDATA_PATH}
751	    else
752		OVERWRITE=2;
753            fi
754        fi
755    fi
756    
757    #����JRE��UpdateInstall����������������
758    #cp -rf "${INSTALLPATH}/java" "${INSTALLPATH}/lib/UpdateInstall"
759 }
760 InstallDesktop()
761 {   
762    #����sudoers����
763     #����sudoers����
764    grep -v "USBModem.sh" /etc/sudoers >/tmp/${TEMPFILE} 2>&1
765    DELETECOMMENT="delete requiretty for USBModem"
766    REQUIRETTY=`grep "${DELETECOMMENT}" /tmp/${TEMPFILE}`
767    if [ "x${REQUIRETTY}" != "x" ]
768    then
769        REQUIRETTY=`echo "${REQUIRETTY}" | awk -F ',' '{printf $2}'` 
770    else
771        REQUIRETTY=`grep "requiretty" /tmp/${TEMPFILE}`
772        if [ "x${REQUIRETTY}" != "x" ]
773        then
774            sed -i "s/${REQUIRETTY}/# ,${REQUIRETTY},${DELETECOMMENT}/g" /tmp/${TEMPFILE} 2>/dev/null
775        fi
776    fi    
777    echo -e "ALL ALL=(ALL) NOPASSWD:${INSTALLPATH}/USBModem.sh" >> /tmp/${TEMPFILE}    
778
779    cp -f /tmp/${TEMPFILE} /etc/sudoers
780    
781
782#����������������������������������������   
783    sed "s#\${LC_SOFTWARENAME}#${SOFTWARENAMEINDESKTOP}#g" ${INSTALLPATH}/USBModem.desktop > /tmp/${TEMPFILE} 2>/dev/null
784    sed "s#\${LC_INSTALLPATH}#${INSTALLPATH}#g" /tmp/${TEMPFILE} > ${INSTALLPATH}/USBModem.desktop 2>/dev/null
785    if [ -d /root/Desktop ]
786    then
787        cp -f ${INSTALLPATH}/USBModem.desktop /root/Desktop
788		chmod u+x /root/Desktop/USBModem.desktop      
789    else
790        cp -f ${INSTALLPATH}/USBModem.desktop /root
791    fi  
792    cp -f ${INSTALLPATH}/USBModem.desktop /usr/share/applications
793    
794#��������������������������  
795    sed "s#\${LC_SOFTWARENAME}#${SOFTWARENAMEINDESKTOP}#g" ${INSTALLPATH}/UninstallUSBModem.desktop > /tmp/${TEMPFILE} 2>/dev/null
796    sed "s#\${LC_INSTALLPATH}#${INSTALLPATH}#g" /tmp/${TEMPFILE} > ${INSTALLPATH}/UninstallUSBModem.desktop 2>/dev/null  
797    
798    cp -f ${INSTALLPATH}/UninstallUSBModem.desktop /usr/share/applications
799    
800#10.04����������desktop.en_US.utf8.cache
801    cp ${INSTALLPATH}/USBModem.desktop /tmp/USBModem.desktop.tmp
802    cp ${INSTALLPATH}/UninstallUSBModem.desktop /tmp/UninstallUSBModem.desktop.tmp
803    
804    SOFTNAME=`grep "Exec=" /tmp/USBModem.desktop.tmp | awk -F '/' '{print $NF}'`
805    UNINNAME=`grep "Exec=" /tmp/UninstallUSBModem.desktop.tmp | awk -F '/' '{print $NF}'`
806    CACHENAME=`echo $LANG`
807    CACHENAME="/usr/share/applications/desktop.$CACHENAME.cache"
808    if [ -f $CACHENAME ];then    
809      sed -i '/#cachebegin/,/#cacheend/d' $CACHENAME
810      
811	    sed -i "s#Desktop Entry#$SOFTNAME#" /tmp/USBModem.desktop.tmp
812	    sed -i "/Comment\[en\]/d" /tmp/USBModem.desktop.tmp
813	    sed -i "/Name\[en\]/d" /tmp/USBModem.desktop.tmp
814	    sed -i "/Encoding/d" /tmp/USBModem.desktop.tmp
815	    sed -i "/Path/d" /tmp/USBModem.desktop.tmp
816	    
817	    sed -i "s#Desktop Entry#$UNINNAME#" /tmp/UninstallUSBModem.desktop.tmp
818	    sed -i "/Comment\[en\]/d" /tmp/UninstallUSBModem.desktop.tmp
819	    sed -i "/Name\[en\]/d" /tmp/UninstallUSBModem.desktop.tmp
820	    sed -i "/Encoding/d" /tmp/UninstallUSBModem.desktop.tmp
821	    sed -i "/Path/d" /tmp/UninstallUSBModem.desktop.tmp
822	    
823	    echo "#cachebegin" >> $CACHENAME
824	    cat /tmp/USBModem.desktop.tmp >> $CACHENAME
825	    echo " " >> $CACHENAME
826	    cat /tmp/UninstallUSBModem.desktop.tmp >> $CACHENAME
827	    echo "#cacheend" >> $CACHENAME
828    fi
829
830
831    
832#������������������
833    echo -e "#!/bin/bash" > ${INSTALLPATH}/USBModem.sh
834
835# for Ubuntu
836    UBUNTURELEASE=`grep Ubuntu /etc/issue 2>&1 | awk -F ' ' '{printf $1}'`
837    if [ "x${UBUNTURELEASE}" = "xUbuntu" ]
838    then
839        if [ ! -d /usr/share/fonts/truetype/arphic ]
840	then
841            mkdir -p /usr/share/fonts/truetype/arphic
842            
843        #    if [ ! -f /usr/share/fonts/truetype/arphic/wqy-zenhei.ttc ]
844         #   then
845         #  	 cp -rf ${INSTALLPATH}/configure/fontconfig/wqy-zenhei.ttc /usr/share/fonts/truetype/arphic
846         #   fi
847	fi
848	
849        if [ ! -d ${INSTALLPATH}/java/jre1.5.0_15/lib/fonts/fallback ]
850	then
851        	ln -s /usr/share/fonts/truetype/arphic ${INSTALLPATH}/java/jre1.5.0_15/lib/fonts/fallback
852        fi
853        echo -e "export AWT_TOOLKIT=\"MToolkit\"" >> ${INSTALLPATH}/USBModem.sh
854 #   else
855  #      sed -i "s/export AWT_TOOLKIT=\"MToolkit\"//g" ${INSTALLPATH}/lib/UpdateInstall/install
856    fi
857    
858# for Debian
859    DEBIANRELEASE=`grep Debian /etc/issue 2>&1 | awk -F ' ' '{printf $1}'`
860    if [ "x${DEBIANRELEASE}" = "xDebian" ]
861    then
862        if [ ! -d /usr/share/fonts/truetype/arphic ]
863	then
864            mkdir -p /usr/share/fonts/truetype/arphic
865       #     if [ ! -f /usr/share/fonts/truetype/arphic/wqy-zenhei.ttc ]
866       #     then
867        #   	 cp -rf ${INSTALLPATH}/configure/fontconfig/wqy-zenhei.ttc /usr/share/fonts/truetype/arphic
868       #     fi
869	fi
870	
871	if [ ! -d ${INSTALLPATH}/java/jre1.5.0_15/lib/fonts/fallback ]
872	then
873        	ln -s /usr/share/fonts/truetype/arphic ${INSTALLPATH}/java/jre1.5.0_15/lib/fonts/fallback
874        fi
875    fi
876
877# for OpenSuSE
878    if [ -f /etc/SuSE-release ]
879    then
880        if [ ! -d /usr/share/fonts/truetype ]
881	then
882             mkdir -p /usr/share/fonts/truetype
883       #      if [ ! -f /usr/share/fonts/truetype/wqy-zenhei.ttc ]
884       #      then
885      #     	 cp -rf ${INSTALLPATH}/configure/fontconfig/wqy-zenhei.ttc /usr/share/fonts/truetype/
886       #      fi
887	fi
888	if [ ! -d ${INSTALLPATH}/java/jre1.5.0_15/lib/fonts/fallback ]
889	then
890        	ln -s /usr/share/fonts/truetype ${INSTALLPATH}/java/jre1.5.0_15/lib/fonts/fallback
891        fi
892        
893        echo -e "export DISPLAY=:0" >> ${INSTALLPATH}/USBModem.sh
894    fi
895
896# for jre compatibility
897    echo -e "export LIBXCB_ALLOW_SLOPPY_LOCK=1" >> ${INSTALLPATH}/USBModem.sh
898
899    echo -e "export JAVA_HOME=${INSTALLPATH}/java/jre1.5.0_15" >> ${INSTALLPATH}/USBModem.sh
900    echo -e "export CLASSPATH=${INSTALLPATH}/java/jre1.5.0_15/lib:." >> ${INSTALLPATH}/USBModem.sh
901
902    echo -e "APPDIR=${INSTALLPATH}" >> ${INSTALLPATH}/USBModem.sh
903    echo -e "cd \${APPDIR}" >> ${INSTALLPATH}/USBModem.sh
904    echo -e "\${APPDIR}/java/jre1.5.0_15/bin/java -Djava.library.path=\${APPDIR}/lib -jar USBModem.jar &" >> ${INSTALLPATH}/USBModem.sh
905    chmod +x ${INSTALLPATH}/USBModem.sh
906    chmod a+x ${INSTALLPATH}/USBModem
907}
908UpdateUninstallShell()
909{        
910#������������������
911    sed -i "s/{LYouMustBeRoot}/${LYouMustBeRoot[${LANGCODE}]}/g" ${INSTALLPATH}/UninstallUSBModem
912    sed -i "s/{LInstallEnd}/${LInstallEnd[${LANGCODE}]}/g" ${INSTALLPATH}/UninstallUSBModem
913    sed -i "s/{LProgramRunning}/${LProgramRunning[${LANGCODE}]}/g" ${INSTALLPATH}/UninstallUSBModem
914    sed -i "s#{INSTALLPATH}#${INSTALLPATH}#g" ${INSTALLPATH}/UninstallUSBModem
915    sed -i "s#{CONFIG_FILE}#${CONFIG_FILE}#g" ${INSTALLPATH}/UninstallUSBModem
916    sed -i "s#{CHIPTYPE}#${CHIPTYPE}#g" ${INSTALLPATH}/UninstallUSBModem
917    sed -i "s#{DEVICETYPE}#${DEVICETYPE}#g" ${INSTALLPATH}/UninstallUSBModem
918    
919    sed -i "s/{ErrorPara}/${ErrorPara[${LANGCODE}]}/g" ${INSTALLPATH}/UninstallUSBModem
920    sed -i "s#{USERDATA_PATH}#${USERDATA_PATH}#g" ${INSTALLPATH}/UninstallUSBModem
921    sed -i "s/{LUserdataInstalled}/${LUserdataInstalled[${LANGCODE}]}/g" ${INSTALLPATH}/UninstallUSBModem
922    sed -i "s/{LProgramRemoving}/${LProgramRemoving[${LANGCODE}]}/g" ${INSTALLPATH}/UninstallUSBModem    
923    sed -i "s/{LDriverUninstalling}/${LDriverUninstalling[${LANGCODE}]}/g" ${INSTALLPATH}/UninstallUSBModem    
924    sed -i "s/{LDriverUsed}/${LDriverUsed[${LANGCODE}]}/g" ${INSTALLPATH}/UninstallUSBModem    
925
926    
927    if [ "x${REQUIRETTY}" != "x" ]
928    then
929        sed -i "s/{REQUIRETTY}/${REQUIRETTY}/g" ${INSTALLPATH}/UninstallUSBModem
930	sed -i "s/{DELETECOMMENT}/${DELETECOMMENT}/g" ${INSTALLPATH}/UninstallUSBModem
931    else
932        grep -v {REQUIRETTY} ${INSTALLPATH}/UninstallUSBModem > /tmp/${TEMPFILE}
933	cp -f /tmp/${TEMPFILE} ${INSTALLPATH}/UninstallUSBModem
934    fi
935    
936    chmod +x ${INSTALLPATH}/UninstallUSBModem
937    
938    DonePrompt "${LStartInstallPartner[${LANGCODE}]}"
939
940    #echo -e "\n${SOFTWARENAMEINDESKTOP} ${LCompleteInstallPartner[${LANGCODE}]} ${INSTALLPATH}"
941}
942RmTmpfile()
943{
944    #������������
945    rm -rf ${INSTALLPATH}/data
946    rm -rf ${INSTALLPATH}/lcDial
947    rm -rf ${INSTALLPATH}/*.desktop
948
949    rm -f /tmp/${TEMPFILE}
950    rm -rf ${TEMPWORKPATH}
951    rm -rf /tmp/USBModem.desktop.tmp
952    rm -rf /tmp/UninstallUSBModem.desktop.tmp
953}
954
955DonePrompt()
956{
957    LOGCHARNUM=`echo "$1" | wc -m`
958    TERMCHARNUM=`stty size | awk -F ' ' '{printf $2}'`
959    LOGCHARNUM=`expr $TERMCHARNUM - $LOGCHARNUM`
960    echo "[ done ] " | awk '{printf "%"'"$LOGCHARNUM"'"s", $0}'
961    echo -e ""
962}
963
964
965# /*������������*/
966SelectLanguage()
967{
968    while :
969    do
970        case ${LANGCODE} in
971            0)
972                echo -e "\n\t1. ��������"
973                echo -e "\t2. ����"
974                echo -e "\n\t����������: [1]\c"
975                read RESP
976                : ${RESP:="1"}
977            ;;
978            *)
979                echo -e "\n\t1. Simplified Chinese"
980                echo -e "\t2. English"
981                echo -e "\n\tPlease select Language: [2]\c"
982                read RESP
983                : ${RESP:="2"}
984            ;;
985        esac
986        case ${RESP} in
987            [1,2])
988                LANGCODE=`expr ${RESP} - 1`
989                return ${LANGCODE}
990            ;;
991            *)
992                case ${LANGCODE} in
993                    0)
994                        echo -e - "\n\t����������: 1, 2\n"
995                    ;;
996                    *)
997                        echo -e "\n\tPlease select: 1, 2\n"
998                    ;;
999                esac
1000            ;;
1001        esac
1002    done
1003}
1004
1005# /*��������������������*/
1006DisplayStartMsg()
1007{
1008    clear
1009}
1010
1011# /*��������������������*/
1012DisplayEndMsg()
1013{
1014    cd "${BAKCURRENTPATH}"
1015    rm -rf "${TEMPWORKPATH}"
1016    echo -e "\n${LInstallEnd[${LANGCODE}]}"
1017    read -n 1
1018    clear
1019}
1020
1021
1022
1023GenConfigFile()
1024{
1025    cd $INSTALLPATH
1026    echo "path=$INSTALLPATH"               > $CONFIG_FILE
1027    echo "name=USBModem"              >> $CONFIG_FILE
1028    echo "Exec=$INSTALLPATH/USBModem" >> $CONFIG_FILE
1029    echo "FullVersion=$FULLVERSION" >> $CONFIG_FILE
1030    
1031}
1032
1033
1034
1035clear
1036CheckID
1037CheckCustomType
1038#SelectLanguage
1039:>"$INSTALLPATH/lib/UpdateInstall/inputLog.txt"
1040DisplayStartMsg
1041#������������������������������������������while������
1042PreInstall
1043InstallJRE
1044UnpackSoft
1045chooseLanguage
1046InstallLibs
1047InstallDesktop
1048GenConfigFile
1049InstallActive
1050InstallDriver
1051#determine whether the custom
1052if [ -f $INSTALLPATH/configure/data/settingTreeConfig.xml ] 
1053then 
1054	userdata=`cat $INSTALLPATH/configure/data/settingTreeConfig.xml | grep setting_tree_userdata_root | awk -F ' ' '{print $5}' | awk -F '\"' '{print $2}'`
1055	if [ "${userdata}" = "true" ]
1056	then
1057	    if [ ${OVERWRITE} -eq 1 ]
1058	    then
1059		 UserInfo	   
1060	    fi
1061	fi
1062fi
1063UpdateUninstallShell
1064RmTmpfile
1065echo "Download Programs finished!" > "$INSTALLPATH/lib/UpdateInstall/inputLog.txt"
1066DisplayEndMsg
1067exit 0
1068
1069#������������������������������
1070while :
1071do
1072    echo -e - "***\t\t${LUSBModemInstall[${LANGCODE}]}\t\t***\n"
1073    echo -e - "${LPlsSelect[${LANGCODE}]}\n"
1074    echo -e - "\t1) ${LInstallMP[${LANGCODE}]}"
1075    echo -e - "\t0) ${LQuitInstall[${LANGCODE}]}\n"
1076    echo -e - "Choice: [0]\c"
1077    read RESP
1078    : ${RESP:="0"}
1079    case ${RESP} in
1080        1)
1081             PreInstall
1082             InstallJRE
1083             InstallUSBModem
1084             GenConfigFile
1085        ;;
1086        0)
1087            DisplayEndMsg
1088            exit 0
1089        ;;
1090        *)
1091            echo -e - "${LYouMustSelect[${LANGCODE}]}1, 0"
1092        ;;
1093    esac
1094done
1095