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