找回密码
 注册

QQ登录

只需一步,快速开始

查看: 47461|回复: 57

HS8145V 8546V restorehwmode.sh 恢复华为界面脚本解析

[复制链接]
发表于 2018-3-25 19:04:27 | 显示全部楼层 |阅读模式
HS8145V 8546V restorehwmode.sh 恢复华为界面脚本解析  G5 p& ^2 _$ \+ e8 u8 Y/ Z3 n7 T3 q
根据脚本可以逆转还原成以前的界面和改成其他运营商的界面
5 N7 D+ z% `1 z/ j, c
* B' ~( }# t1 y; J2 |% o! `#! /bin/sh
6 _$ J, J" O0 A3 Z; F* W8 ^. I0 g
#set hw parameters2 c; X: G& o1 I& Y
#copy etc/wap/hw_default_ctree.xml to /mnt/jffs2/hw_ctree.xml0 b7 G' W+ o  V+ N
#set the spec para
( V/ M4 }- y% E& {% P" b* ~9 l8 A4 `; z9 E0 X
var_default_ctree=/mnt/jffs2/hw_default_ctree.xml;
; P2 o3 a3 _4 Gvar_ctree=/mnt/jffs2/hw_ctree.xml
4 B$ o' y' U, V* ~, mvar_customize=/mnt/jffs2/customizepara.txt
# m' p) m9 ~+ _var_bms_prevxml_temp="/mnt/jffs2/hw_bms_prev.xml"
- f! S) D" v, Z6 |; wvar_bms_oldcrc_temp="/mnt/jffs2/oldcrc"& S5 v5 W/ h, U* W2 ~" H& ~* T
var_bms_oltoldcrc_temp="/mnt/jffs2/oltoldcrc"& K; M! H- O; a' \9 j" v3 G
var_bms_prevcrc_temp="/mnt/jffs2/prevcrc"& W) D' O4 r6 f* H
var_bms_oltprevcrc_temp="/mnt/jffs2/oltprevcrc"
; {( |* x& w$ M9 S" r5 L6 }5 z9 Mvar_bms_oskvoice_temp="/mnt/jffs2/hw_osk_voip_prev.xml"
* V" L$ W* _0 c" A( N* {5 cvar_rebootsave="/mnt/jffs2/cwmp_rebootsave"
2 b4 G' w" u' ^# ?& M2 lvar_recovername_temp="/mnt/jffs2/recovername"
5 K' L( i( x) f* N& R) Z3 \var_usr_device_temp="/mnt/jffs2/usr_device.bin"
" o; k) H3 O9 ?0 w  ^. b! k- ?var_ftcrc_temp="/mnt/jffs2/FTCRC"
# r. A. I7 r+ N0 @2 Rvar_ftvoip_temp="/mnt/jffs2/ftvoipcfgstate"5 J3 ^, v! e  c& z
var_dhcp_temp="/mnt/jffs2/dhcpc"
+ R, u, @/ u% e+ i; Gvar_dhcp6_temp="/mnt/jffs2/dhcp6c"
) _: `! N0 H- i# ]* wvar_DHCPlasterrwan1_temp="/mnt/jffs2/DHCPlasterrwan1") Y. }2 H. V5 A
var_DHCPlasterrwan2_temp="/mnt/jffs2/DHCPlasterrwan2"' \3 C2 ^5 i8 l7 Y2 ^) H) d  V5 c8 y
var_DHCPlasterrwan3_temp="/mnt/jffs2/DHCPlasterrwan3"& l; \: w) h2 _# q0 ?3 u* d
var_DHCPlasterrwan4_temp="/mnt/jffs2/DHCPlasterrwan4"4 H5 R0 L4 M% ~
var_DHCPstatewan1_temp="/mnt/jffs2/DHCPstatewan1"
) g( X( D: }2 c7 nvar_DHCPstatewan2_temp="/mnt/jffs2/DHCPstatewan2"
0 D1 R$ Y" I( s: a' b0 svar_DHCPstatewan3_temp="/mnt/jffs2/DHCPstatewan3"& M$ @' y% `+ @; ?6 F" e
var_DHCPstatewan4_temp="/mnt/jffs2/DHCPstatewan4") f: f& |2 T2 _6 y/ ]6 u
var_DHCPoutputwan1_temp="/mnt/jffs2/DHCPoutputwan1"
  h: U* w# O+ f' u4 Qvar_boardinfo_file="/mnt/jffs2/hw_boardinfo"" H/ h$ l+ o: w/ ?6 W4 b. L
var_boardinfo_bakfile="/mnt/jffs2/hw_boardinfo.bak"
+ `9 z% K/ G1 H& `# W& _var_boardinfo_temp="/mnt/jffs2/hw_boardinfo.temp"  B/ Y9 N  h! p. f- ?
var_jffs2_customize_txt_file="/mnt/jffs2/customize.txt"- M% |- c' L; c; N% C, i2 T) E9 Q
var_jffs2_choose_xml_dir="/mnt/jffs2/choose_xml"
0 ], E% `3 p+ _0 g" q5 j- Qvar_jffs2_choose_xml_tar="/mnt/jffs2/choose_xml.tar.gz"
4 W0 u" t9 e5 T2 l% Dvar_jffs2_spec_file="/mnt/jffs2/hw_hardinfo_spec"; |! x0 o- y# g$ r
var_jffs2_spec_bak_file="/mnt/jffs2/hw_hardinfo_spec.bak"
6 @  U# @& l6 L$ T0 ?0 ?$ m) Tvar_jffs2_feature_file="/mnt/jffs2/hw_hardinfo_feature"$ h3 \% p* l: J# e) Q. z
var_jffs2_feature_bak_file="/mnt/jffs2/hw_hardinfo_feature.bak"
0 b+ q3 Z! T! g' V# h" v; [var_jffs2_hardinfo_para_file="/mnt/jffs2/hw_equip_hardinfo"' T$ P$ g. p" o% ^! D
var_ontfirstonline_temp="/mnt/jffs2/ontfirstonlinefile"
' Z2 j1 l: p* c- i; C( [- Zvar_dublecore="/mnt/jffs2/doublecore"# \9 M4 |( w* |8 m
var_customize_telmex=/mnt/jffs2/TelmexCusomizePara
; p7 T0 h" p# P! j, E! @; a7 \var_customize_dir="/mnt/jffs2/customize"
' F( Q7 I9 m3 S7 ]& }5 rvar_smartshowbssguide="/mnt/jffs2/smartshowbssguide". v7 N# H1 b( |
var_smartshowuserguide="/mnt/jffs2/smartshowuserguide"
# W  W! G7 R* k) Hvar_old_ctree="/mnt/jffs2/hw_old_ctree.xml"
4 {: h0 t: H6 M- e3 D/ b" ~: R0 Y$ cvar_ctree_bak="/mnt/jffs2/hw_ctree_bak.xml"1 U" D" a# c2 \7 M
var_cfgbackup="/mnt/jffs2/CfgFile_Backup". ]1 k: [0 \; |& h8 c  r' U( {
var_PrimaryDir="/mnt/jffs2/PrimaryDir"0 e; `# U- P* b' Y4 E9 R; v/ b
var_p2p_dhcp_file="/mnt/jffs2/p2pdhcpboot_prev.ini"
( e) Z, e, g6 {8 s7 Dvar_jffs2_hardversion_bak_file="/mnt/jffs2/hw_boardinfo.bak"
4 N7 l& q3 a1 |4 O$ Z  g2 H( G/ Lvar_jffs2_specsn_file="/mnt/jffs2/customize_specsn"7 P0 U# A: |1 m3 S

* o  V2 X7 y& k: v7 ~var_plat_root="/mnt/jffs2/platroot.crt" 1 J4 {/ ]# [3 p
var_plat_pub="/mnt/jffs2/platpub.crt"
; C+ E; y0 q0 N$ T- x: [6 r  @) nvar_plat_prvt="/mnt/jffs2/platprvt.key"6 {4 a$ G( p! B7 [7 @- N
5 D% G) R& l: S
# remove plugin files
0 e9 r6 T- M& _8 d* H4 I5 V/ ^HW_Script_RemovePluginFile()
1 l; Z& K# n7 [{
& X) |3 S% P/ V        #通过特性开关来决定删除哪些插件% ?+ L2 u2 ~6 {5 A
        var_feature_enble=`GetFeature HW_FT_OSGI_JVM_FROM_VAR`( y- X* {/ G: S6 _2 G
        if [ $var_feature_enble = 1 ];then* w5 Q, V7 g7 S5 l& l3 w
                rm  -rf /mnt/jffs2/app/osgi/felix-cache;; I! }+ z! l1 T
        rm  -f /mnt/jffs2/app/osgi/prebundlestatus.info;4 I% b! Q* L. ^6 H* }& Z
        rm  -f /mnt/jffs2/app/osgi/dlna.jar;( _! ]6 \( T  q" `: E3 Y8 j
        rm  -f /mnt/jffs2/app/osgi/samba.jar;
' l0 m: K% S! a0 }' r( `9 G        else
- @, R: O0 Q% Q7 K9 ?9 S                rm  -rf /mnt/jffs2/app/osgi/* ;) L4 Y9 p' c) I$ m2 v' @% |
        fi
3 L9 v  ~& x6 t# x2 z3 r5 k        rm -rf  /mnt/jffs2/app/cplugin/* /var/cplugin/*;3 c; Z! t+ M  L: A% j, s
}: D2 o/ g+ B& g3 ]' x9 v; W3 W
5 O' y5 |& M6 g6 [
# remove files; N" J* a. u2 ]  E( F; O
HW_Script_RemoveFile()
4 a+ o4 a) R4 M7 n& _2 f( p% E{
) B( B7 _2 C8 g  e7 g2 n        rm -f $var_default_ctree
- k: I, e$ c/ {# Z/ [  f' c        rm -f $var_ctree
  Q! I, s& J  D  Q% E: S4 O        rm -f $var_customize
8 c/ W; {" I$ J2 p5 h        rm -f $var_bms_prevxml_temp
+ A! b7 R  S! w9 E        rm -f $var_bms_oldcrc_temp
# R8 ~8 c: H6 M& M! s8 d1 [        rm -f $var_bms_oltoldcrc_temp
' I* f3 o  n9 F, `: F8 f5 C1 M        rm -f $var_bms_prevcrc_temp
/ Z, a- i/ D+ |5 t+ q+ i, R        rm -f $var_bms_oltprevcrc_temp
( H: w; P8 b% W5 G" h- k        rm -f $var_bms_oskvoice_temp
0 d6 Z1 Z! @7 h& R  a& G4 A9 w        rm -f $var_rebootsave
; P9 o$ Z6 M* @        rm -f $var_recovername_temp6 h) [/ o& I% w" H* H# P5 o
        rm -f $var_usr_device_temp
6 n% J* \* h0 m3 b7 T. g1 ^; L        rm -rf $var_ftcrc_temp& q$ N1 {6 `$ E9 o
        rm -rf $var_ftvoip_temp; b3 ?7 U( \  m7 F0 D
        rm -rf $var_dhcp_temp
8 J- w5 G( ^& \8 d% q        rm -rf $var_dhcp6_temp  f+ ?5 o6 E! q  `' @2 |
        rm -rf $var_DHCPlasterrwan1_temp( z6 x. W! z; u3 f
        rm -rf $var_DHCPlasterrwan2_temp
1 C  f; x0 N; {  a9 F        rm -rf $var_DHCPlasterrwan3_temp( b1 \! ~+ v$ K, ~! ?
        rm -rf $var_DHCPlasterrwan4_temp8 j% Q! i8 R, J# l  N- G
        rm -rf $var_DHCPstatewan1_temp
" U! ?0 D) m6 {* w+ y        rm -rf $var_DHCPstatewan2_temp( Y7 s4 e( V2 Y6 t
        rm -rf $var_DHCPstatewan3_temp# H: t" w" f$ \5 J
        rm -rf $var_DHCPstatewan4_temp8 ?& D, ^1 V# E& B1 `& w% R4 ?, y
        rm -rf $var_DHCPoutputwan1_temp$ ]  c. V0 r% B# b
        rm -rf $var_jffs2_customize_txt_file
/ E' B/ t/ r5 ~; V/ Z2 J$ Y5 _        rm -rf $var_jffs2_choose_xml_dir# D: y6 |+ V0 [& g3 B
        rm -f $var_jffs2_choose_xml_tar
0 Q3 U- B9 o- W- E' r6 _  l3 w0 j        rm -fr $var_jffs2_spec_file* M& d6 D% P4 X$ W% u. @2 v0 a) y
        rm -fr $var_jffs2_spec_bak_file$ \- [( o6 `: ?, @$ L5 c& j8 T
        rm -fr $var_jffs2_feature_file
9 O4 c4 Z9 w' V$ q+ i% s        rm -fr $var_jffs2_feature_bak_file  F( p8 @( n+ K
        rm -fr $var_jffs2_hardinfo_para_file
. m4 f+ I8 a! x' m& A        rm -fr $var_ontfirstonline_temp
" a9 N9 B' ~  ~5 ]        rm -f $var_dublecore7 x! R1 j& C; s3 G# N# \+ m- \( e3 _
        rm -f /mnt/jffs2/simcard_flowflag! g/ X* ^8 E" N, [# t
        rm -f /mnt/jffs2/simcardreadflag
% Z3 f) c. o1 r2 C2 m        rm -f /mnt/jffs2/typeword
0 H# c  {# E$ Q1 n7 J, N' F  U- C        rm -f $var_customize_telmex% U! A" V7 C2 v5 A
        rm -rf $var_customize_dir6 N, _4 U, X. b; d- b! n
        rm -f $var_smartshowbssguide) W- C1 s6 f* m$ }# `, o  n
        rm -rf $var_smartshowuserguide
6 s0 I2 ~# E; B, M* ^+ }        rm -fr $var_old_ctree
) M9 }8 [# y2 o' W) R9 S        rm -fr $var_ctree_bak7 [1 L2 o# {; Q) @' R
        rm -fr $var_cfgbackup- |5 A3 Q0 Z7 }" M5 p. z
        rm -f $var_jffs2_hardversion_bak_file
5 I# o- H: \9 ~- V# M# T2 o        rm -rf $var_PrimaryDir
, E2 W2 U: v* \% @' \& |        rm -rf /mnt/jffs2/p2ploadcfgdone5 J8 p5 C  k+ K4 F
        rm -rf /mnt/jffs2/dhcp6c
8 g! |' S" p9 S& ^    rm -rf /mnt/jffs2/dhcpc
6 z5 o1 j) I* g1 ~        rm -rf /mnt/jffs2/onlinecounter
( G+ E% u! p/ Z: f+ h( d+ i* |        rm -rf $var_jffs2_specsn_file
" O8 e2 J& s$ T7 A6 n        rm -rf /mnt/jffs2/reboot_bind_tag$ k3 Z$ e$ X; q* x# H. `
        rm -rf $var_p2p_dhcp_file
; f( v# @! f3 B( R: N                9 {' n" T; A" e. d
        rm  -rf /mnt/jffs2/app/osgi/*$ i" d) V; x: k0 Q
        rm  -rf /mnt/jffs2/app/cplugin/*
4 B% q9 e) R, O/ }; R6 D       
0 t) I! S" \9 @/ w        rm -f /mnt/jffs2/smooth_finsh
# s1 u; P$ @: K# k% ]/ n. c) R        3 n. M/ s. C9 b6 ~$ q
        rm -f $var_plat_root' i: u& `) t" Q* H7 U
        rm -f $var_plat_pub  A1 f; U3 l/ o, d: g' v; W
        rm -f $var_plat_prvt
/ o9 n4 s8 \7 B. o
2 a9 s! ]8 K+ C( q- E        HW_Script_RemovePluginFile
" g$ h  a! K% n- K* C        return. b! G- z, u$ s- A* Y& ~( o
}6 }9 z7 S: F4 D! ^
' x# ^& Y/ O& L! @0 g6 ]- C
#creat files
. r$ q, h# r2 C% @5 |, rHW_Script_CreateFile()
( q, v, `  l( d7 |6 C7 z{
2 m. k6 O) j, Z! J( I! O2 h        var_telnet_flag=/mnt/jffs2/ProductLineMode; L! Y+ o4 z- k5 t: H, q& U, L
2 f& s" t+ M+ z* _, X+ K& Q2 s
        echo "" > $var_telnet_flag* K: t6 w6 q* n# z( w! ^( q* P
        if [ 0 -ne $? ]4 v- w  W' B# g- h% X
        then- V' @3 I7 E  h2 d" s0 E
        {: Q) l+ N% D9 ]; @) B* c/ V' E
                echo "ERROR::Failed to create telnet flag!"' x9 g) J. t# g+ Y+ r
        return 1
$ G& V1 B% u6 G' M/ O  V9 Y; O8 {4 {        }
( F: Q' B! T* H/ N        fi
  [- _" L) Z) O. V- P# G" {* Z. M* v
/ p) O' t, Y: s6 B        return 0: X5 @# X; A) ?& ]& j
}
' R- a9 M8 ]& @2 Q# K( `( d4 e' h* n- l% w# ^0 x/ M) R
# copy files
+ e/ {  n' ]8 IHW_Script_CopyFile()8 Z! u4 E! [9 k! Q! Y2 A
{5 i+ x3 C0 E6 w8 g) B* d4 z0 n
        var_etc_def=/etc/wap/hw_default_ctree.xml7 [' m5 r0 B6 e$ a5 V
       
$ z9 ^0 _9 X6 R4 Q. ?$ ~& k: T        #增加延时,确保DB不保存
( v  G/ l+ ]! B* v- g        echo > /var/notsavedata
& l- Y* m8 \* k$ ^        sleep 1- A+ _) D. {' d9 H7 z

% d0 R1 l  K0 g# B5 i$ ^# j        cp -f $var_etc_def $var_ctree2 L$ a- `5 K) }5 m" t
        if [ 0 -ne $? ]
% C( w8 N" Z- o% L& W9 h; u2 V        then
0 _) Z, X: e& U) ~/ g                rm -rf /var/notsavedata
! U1 X6 b4 J3 ]  y3 _" Y+ p: D% h# M                echo "ERROR::Failed to cp hw_default_ctree.xml to hw_ctree.xml!"& K9 O2 O1 v; R8 N& [+ k. n
                return 1& A: w6 ]8 u0 J3 t+ f- h
        fi
) v$ [5 E- v6 }& w
$ _2 k, _; ~& A5 j; d, C9 x$ ]        return( D3 N$ N1 H4 x( }* \( l
}
5 S2 u, h8 O9 N' u0 [0 j1 V: b/ @
# set spec data& C0 l/ d1 b7 K
HW_Script_SetData()% i7 N0 h& }; t7 w
{
' S" i. B8 f) r        cat $var_boardinfo_file | while read -r line;
5 Y1 C8 p# e8 a        do' R: d! G" |/ G& c5 ?: u
                obj_id_temp=`echo $line | sed 's/\(.*\)obj.value\(.*\)/\1/g'`2 {7 d+ {& B2 Y' H7 Q" w, E
                obj_id=`echo $obj_id_temp | sed 's/\(.*\)"\(.*\)"\(.*\)/\2/g'`
  h4 ]# y3 i5 _& |! f4 f& S/ i  r* g4 @% `; Z. S3 {
                if [ "0x00000003" == $obj_id ];then
! U* o: C+ U. c                        echo "obj.id = \"0x00000003\" ; obj.value = \"\";"
/ D0 C5 P5 x+ Y                elif [ "0x00000004" == $obj_id ];then! ]8 J& A- q) A7 h; y
                        echo "obj.id = \"0x00000004\" ; obj.value = \"\";"/ x  E5 A- C) o& {
                elif [ "0x00000005" == $obj_id ];then
* i5 x. A9 }2 y% I                        echo "obj.id = \"0x00000005\" ; obj.value = \"\";"& @6 K+ @* F0 h
                elif [ "0x00000006" == $obj_id ];then& g9 R( N6 j* `
                        echo "obj.id = \"0x00000006\" ; obj.value = \"\";"0 Q% U' @& \. I8 m" [* l0 ]3 l
                elif [ "0x00000016" == $obj_id ];then
% f- L0 L; P; D% ~- h2 s$ \                        echo "obj.id = \"0x00000016\" ; obj.value = \"\";"
8 c1 [6 u* b2 V: C                elif [ "0x0000001a" == $obj_id ];then5 f0 k" M5 I. U& h- B& X" o# \
                        echo "obj.id = \"0x0000001a\" ; obj.value = \"COMMON\";"
6 S. h  u+ B# G# `0 G                elif [ "0x0000001b" == $obj_id ];then% P4 d1 V7 V; L- a
                        echo "obj.id = \"0x0000001b\" ; obj.value = \"COMMON\";"
5 Z9 s5 e( c) a* t( P) B1 \. ^                elif [ "0x00000019" == $obj_id ];then
; F, |4 j. x/ {6 Y" W8 @                        echo "obj.id = \"0x00000019\" ; obj.value = \"\";"
3 E  F& c1 S) d3 `: v9 ~4 f1 ?                elif [ "0x00000020" == $obj_id ];then, R6 ]: k, h4 B6 J" L* W0 y8 g6 W
                        echo "obj.id = \"0x00000020\" ; obj.value = \"\";"
* q* V, \6 K5 F0 o2 e* H                elif [ "0x00000031" == $obj_id ];then/ l. ^: U: {- k& U9 }: G
                        echo "obj.id = \"0x00000031\" ; obj.value = \"NOCHOOSE\";"" e# F7 w1 C& ?
                elif [ "0x00000035" == $obj_id ];then
+ t' Y% E( q1 `* O/ j                        echo "obj.id = \"0x00000035\" ; obj.value = \"\";"3 l0 z+ H# _& E' X9 b
                elif [ "0x0000003a" == $obj_id ];then  B; t3 g7 @( t# V  k5 A
                        echo "obj.id = \"0x0000003a\" ; obj.value = \"\";"! l! S6 @6 v) ]
                else
& b  f3 F' O, V; [' F; K! N                        echo -E $line
$ m6 q; ?! K# \$ s                fi9 C: u# h5 }7 g- Y$ ]+ m. k( w
        done  > $var_boardinfo_temp
9 _) s9 B; j, w% e3 Z* V3 s; I1 N% J  c9 o6 J- m! ^
        mv -f $var_boardinfo_temp $var_boardinfo_file
5 W1 @5 G1 P! y, _! N8 H/ f
3 C7 H5 F( i3 A7 B5 v& ~8 |* u. p        return
6 m4 |- D" f+ R9 N+ E" y}
( \: i$ |; }5 T# ^$ r; r5 f! O! C" A3 D1 R
# 刷新boardinfo文件的crc行' r) u! P( V. p, Z1 C% n
HW_Customize_ValidateBoardinfoCRC()# b8 P  L/ X1 K: ^5 ]
{' Z5 ~; U. U9 G& T
        if [ -z $1 ]; then. b+ H3 w* y# ]9 O
                return 0. N; C8 q' c8 z  b+ P
        fi
! m6 q2 J, U5 Z7 N        if [ -x /bin/factparam ]; then: ?- P$ m9 g: L2 R' ]- G* M3 ]' s
                /bin/factparam -v $1
' ^5 |2 M  `- ?0 X2 Z  T3 ^                if [ 0 -ne $? ]; then
' K' ?- Q# h3 a; t, K                        echo "ERROR::Failed to validate boardinfo crc on $1!"
( Y4 Z! `( ?7 K2 e                        return 1
. {% B# P; P, f* _4 V                fi
) c2 O2 F' r( c6 ]        fi
' i& G6 r$ \8 T# V! M2 [  G}
4 K" u8 q5 y6 t
( |* k4 v, A- v& T6 Z7 E# 清除出厂参数备份6 u) d% p1 w8 _. X
HW_Customize_ClearFactoryParamsBackup()- V) m" ^* ^. h# y
{
9 G1 Z, Z. T2 e- s( p/ Q        if [ -x /bin/factparam ]; then
6 e. k/ V9 J3 Q/ M' v" R% U3 P                /bin/factparam -e reserved
; F) w1 h- w" |9 p! L                if [ 0 -ne $? ]; then
; r4 E, K+ \- Z3 `                        echo "ERROR::Failed to clear factory parameter backup area!"3 S2 V2 D6 Y) C; `
                        return 1
3 n% s% z5 L; G$ ^; ]: P7 A                fi# g+ [  _; x, M
        fi9 x9 d! W$ B& w  z" M
}
$ D, B: g, g6 y' S' |$ L! P8 w8 j6 @1 B4 J! a9 V9 a
if [ 0 -ne $# ]; then4 Q0 Y5 @$ Q& l$ t# S) f. \
        echo "ERROR::input para is not right!";$ r7 ~  F# {% n9 C9 F. Y
        exit 1;; t' C+ k- s2 d0 b' i
else: C7 X1 e9 h9 `* p, c2 D
HW_Script_CreateFile
9 M; A, V3 o/ v7 z% j[ ! $? == 0 ] && exit 12 g' S4 O/ ]( H( i
& T' H2 t" x; I: [" `
HW_Script_RemoveFile
) R, q3 H3 c0 ?[ ! $? == 0 ] && exit 13 [( g5 S: y: B) G

1 K8 W4 c/ d  H1 r8 lHW_Script_CopyFile4 b; `/ H" m9 Y- ]- H( L
[ ! $? == 0 ] && exit 1( U" [& u; b* R1 L) \9 L$ O  R

: Y2 m( _/ }! r# @# L# `1 L! QHW_Script_SetData2 A0 j& A" b! T
[ ! $? == 0 ] && exit 1
# y$ Y! T# x3 f0 l
; ?- ?# ^9 b2 J5 |- K% |( L& jrm -rf $var_boardinfo_bakfile. I$ ~: b; Z/ t; q
% O5 P- K& U2 u# G
ctrg_support=`GetFeature HW_SSMP_FEATURE_CTRG`
* E! Z, E2 N. S- ^5 ~" i% X, u* Iif [ $ctrg_support = 1 ] ;then
% c/ M- Z- b% R7 S0 M% j        dbus-send --system --print-reply --dest=com.ctc.saf1 /com/ctc/saf1 com.ctc.saf1.framework.Restore > /dev/null7 n8 R' S7 R; _9 x: `/ P
fi
2 o2 X" h- O$ ]# P2 z/ ^+ N! u& D9 C+ n: w( q: Q) X
# 必须刷新boardinfo文件的crc行,并且清除reserved分区的出厂参数备份( i9 c0 o" e2 v. p8 z
HW_Customize_ValidateBoardinfoCRC $var_boardinfo_file/ E5 [( `% b8 J- r* m6 N2 W2 S
[ ! $? == 0 ] && exit 17 o/ R. Z. o1 g
HW_Customize_ClearFactoryParamsBackup
, O( P/ C4 N9 E( m7 z; U5 @[ ! $? == 0 ] && exit 1
. X/ X" K# Z. [: c: w- B' l
5 K( }/ W2 m5 J9 d0 iecho "success!", }4 Y9 ^; ]( f$ B3 Q; n) \& _
4 z' W9 c; u! Q; q% U. Q
exit 0
8 V) t' m1 U: b" {2 ^' \: O4 Nfi% k; Q0 e" V3 x6 a9 S

' t& k0 x# p# P; h! Q" n; \- t9 P3 A* A" e3 M" I8 B
--------------------------------------------------- N; x  S9 B  j. j2 b1 h* W
最后附上脚本下载
/ G. W0 t# A) N3 y: K/ N& r( w
  d0 o! o9 \% m' I; |

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2018-3-26 11:19:36 | 显示全部楼层
qq519948746 发表于 2018-3-26 01:41
0 n" \+ W; x5 Z3 F0 ?/ ^请教下你们用什么修改.sh执行脚本。9 D9 l% Q% h. s7 A5 Q! Y
我用Notepad++修改 后无法执行  都是添加的简单的命令 rm,tar,cp之 ...
$ ~! x6 D( {% }& f  H& B# Z# e
su' b9 \" j( r( F7 d* Z2 X- M
shell
, g, S+ I, t# g2 u把权限获取了先
发表于 2018-3-26 00:15:45 | 显示全部楼层
期待高手做出三网自动转换的脚本!
 楼主| 发表于 2018-3-25 21:04:16 | 显示全部楼层
这个是选择三网配置的脚本。一般用来选择电信 移动 连通 界面
+ k0 E! Q& j' c4 T1 C/ Q6 h* I-----------------------------
9 e; v" A4 p6 C#! /bin/sh' F) m5 O/ c9 E, J* D8 x
+ @# g7 s: s0 T: f4 G8 T( ^8 b, [
# 输入参数变量
4 K( r* y. d8 U6 B5 Yvar_bin_ft_word=$(echo $1 | tr a-z A-Z)- X  ?! A  ~8 c
var_cfg_ft_word_init=$(echo $2 | tr a-z A-Z)' S: v* Q) _- l" [7 h' W/ g# e! e
var_cfg_ft_word_en=$(echo $2 | tr a-z A-Z)+ {) W  O# O' N/ ~' x
var_ssid=$3
- ?  S8 b; I  I) ?+ Svar_wpa=$4
/ E' ?! U5 t8 c7 Wvar_input_para=$*8 v5 J- ?( d3 a
var_is_HGU=1
: @  ^/ ~% ?$ r5 M5 {9 k/ ]var_is_ENBG=0
) W" i$ {' i4 B& y  ^- r/ Qvar_para_num=$#& |2 G9 z' W6 p  h; T
var_customize_telmex=/mnt/jffs2/TelmexCusomizePara6 g8 Z( g9 b0 i- x
var_jffs2_specsn_file="/mnt/jffs2/customize_specsn"
4 w, {! L% q1 ~8 _! ^. _2 B/ N$ X% `7 m- P, k7 O5 O% ~( O2 u5 }0 B9 f
# 全局的文件变量0 N$ ?) G: N3 x
var_jffs2_boardinfo_file="/mnt/jffs2/hw_boardinfo"
. f0 r$ o! Z) a5 ]( U/ Fvar_boardinfo_bakfile="/mnt/jffs2/hw_boardinfo.bak"5 U6 d6 s" |0 ?8 i2 {5 x# D
var_jffs2_customize_txt_file="/mnt/jffs2/customize.txt"
. t4 v2 \) S0 Xvar_telnet_flag="/mnt/jffs2/ProductLineMode"
/ N. U  f' D" s# N2 T  I* Nvar_hw_hardinfo_feature="/mnt/jffs2/hw_hardinfo_feature"
5 Q  g% I! z- T: ^: \1 Tvar_hw_hardinfo_feature_back="/mnt/jffs2/hw_hardinfo_feature.bak"
; W+ l3 a; D) _4 v
+ z% e) Z( j2 [& P# 其它变量
( [6 N- {1 o+ \. Q" ?: gvar_pack_temp_dir=/bin/8 j8 w1 }8 z0 d. L* p2 g
rm -rf /var/notsaveboardinfo
+ b& z9 D" j& U( y8 j. o! ^8 I9 R( ~7 o; `/ n
#新增企业网防串货特性,会在配置特征字后添加_ENBG
/ q7 ]; i% _$ {3 h$ C- K& ]8 L4 p% svar_cfg_ft_word_en=`echo $var_cfg_ft_word_init | sed 's/_ENBG$//g'`6 i8 k8 ^, E+ H1 q5 T3 D1 j/ O
if [ $var_cfg_ft_word_init != $var_cfg_ft_word_en ];then" c( y+ ]" a9 ?* L' d
        var_is_ENBG=1$ k, A) X+ T# G, Q$ {2 _
fi
: j/ e/ Q6 c2 d8 C9 U/ X. f6 s" u1 S2 I0 Q2 d) w5 d  P
var_upcase_cfg_ft_word=$(echo $var_cfg_ft_word_en | tr '[a-z]' '[A-Z]')
& V9 u: K% s( i0 e: F2 Hvar_BUCPEkeycfg=$(expr match "$var_upcase_cfg_ft_word" '.*\(BUCPE\).*')" e' O' d  b! p6 T' b. \) y
" u+ z/ k' r( ]0 F- X
#判断配置特征字是否包含:字符,var_cfg_ft_word 和 var_cfgfileword JSCT:8X2X定制 var_cfg_ft_word=JSCT,cfgfileword=8X2X4 Q, l9 S+ K0 [4 Y- q
#将回显输入到空设备文件
0 @6 F8 j* N) l1 A! recho $var_cfg_ft_word_en | grep : > /dev/null4 ?+ U* a1 h1 ?( W
if [ $? == 0 ]
9 }, `7 q- s3 L0 V. Athen2 x$ ~% [0 [  U& f3 a+ [
        var_cfg_ft_word=`echo $var_cfg_ft_word_en | tr a-z A-Z | cut -d : -f1 `
* j" h/ @- D; R4 M- H        var_typeword=`echo $var_cfg_ft_word_en | tr a-z A-Z | cut -d : -f2 `) Z) d5 Q4 h' P" W  k
        var_bucpe=`echo $var_cfg_ft_word_en | tr a-z A-Z | cut -d : -f3 `
8 S6 o  S9 V( U1 @8 _4 melse
7 d# ^  f; X; z) l        var_cfg_ft_word=`echo $var_cfg_ft_word_en | tr a-z A-Z`
; O6 G1 J+ j' O" M        var_typeword="". z# X+ F0 K1 t8 J2 o: h. M" K
fi' W: ^" E' B/ H3 H% O2 h) F4 j0 _

8 w7 ?' e# V( k: E8 h: gif [ "$var_typeword" = "BUCPE" ] || [ "$var_cfg_ft_word_en" = "CHOOSE_BUCPE" ] ; then
& l/ q% v6 v' ~' O        if [ -f $var_hw_hardinfo_feature ]2 h; d9 l) L* e
        then. a2 J% v1 p0 H6 @9 B0 L1 A  q4 I3 ?
                echo 'feature.name="HW_SSMP_FEATURE_GXBMONITOR" feature.enable="1" feature.attribute="0"' >> $var_hw_hardinfo_feature( k1 n1 \) O, u0 q( d- R% n- D
        else
) d9 o. y) x  a( q1 S' O                echo 'feature.name="HW_SSMP_FEATURE_GXBMONITOR" feature.enable="1" feature.attribute="0"' > $var_hw_hardinfo_feature) G4 I* R. {; o; \3 L- h
        fi
* E, o; y' o% I* K- q7 i4 T4 s        . \5 B/ G& b4 O( Z  u, W, Z
        cp -rf $var_hw_hardinfo_feature $var_hw_hardinfo_feature_back! y! q7 ]( X5 {3 z+ Y6 F, h* h
        var_typeword=""5 a, r' x+ W4 D8 t6 v* J9 n
fi% U, O: N+ }6 O. [
2 _+ j& E& Z3 `3 w! I) [
if [ "$var_bucpe" = "BUCPE" ] || [ "$var_BUCPEkeycfg" = "BUCPE" ]; then
9 a& n2 o! q0 ?% F) V' }' C* z        if [ -f $var_hw_hardinfo_feature ]1 S2 P6 x& Z4 W( e
        then
" c( s  E: F: f, k2 |7 H  w                echo 'feature.name="HW_SSMP_FEATURE_GXBMONITOR" feature.enable="1" feature.attribute="0"' >> $var_hw_hardinfo_feature
: v, h* n2 j- Q1 C8 w( {        else
! C% H# f, u) r( X: b  T1 t# h                echo 'feature.name="HW_SSMP_FEATURE_GXBMONITOR" feature.enable="1" feature.attribute="0"' > $var_hw_hardinfo_feature9 e3 D/ n' B( C; Y  s1 L. ~
        fi, y- D4 u" f6 c  E' M! Q2 t
        : X+ q' ^% Y- G/ ]3 g+ v  E, x
        cp -rf $var_hw_hardinfo_feature $var_hw_hardinfo_feature_back
6 R7 X* }) c9 R& s5 c" ?fi
& u3 w) q) [" ]; L0 l7 m7 d8 {9 I
2 v6 y# V) a9 Nvar_cfg_ft_word_save=`echo $var_cfg_ft_word_init | tr a-z A-Z`
0 Y7 O0 D3 j: D# _9 Z# Yvar_cfg_ft_word1=$var_cfg_ft_word( P4 V9 w0 G0 e3 }
; ~# r. u* E1 h. R0 d; }
var_cfg_ft_word_choose=$(echo $(echo $var_cfg_ft_word | cut -b -7) | tr a-z A-Z)$ |7 W/ \, F% K9 m* T' ~

7 g9 P4 v2 r- M. d) t6 q% xHW_Check_Boardinfo()2 X5 M8 y- O5 |% n' `7 {
{
9 f6 V8 o& m0 F+ t        if [ -f $var_jffs2_boardinfo_file ]; then( J" D- [8 d1 v. l
                return 0;
9 h4 E* a! \: K: s+ }2 X+ w1 ]6 a        else; M3 N. ]7 C' K' q: O6 |
                echo "ERROR::$var_jffs2_boardinfo_file is not exist!"
) p% G) ]+ m+ M                return 1;
: L. F6 P, A" Y  O5 z/ l; R        fi
& X" `" R0 e( h( ?6 w}% B# c6 `- @; c' p

) T0 z; _3 B; q. E- ]0 _( ?2 Q# A" `# 通过cfgtool设置程序特征字和配置特征字,这个操作在装备资源校验完成后执行3 Z& F* H; n: r: [9 u& W7 Z" J
HW_Set_Feature_Word()( _- K+ Y2 @0 o, t
{) f0 X# C0 K! b: m# e  U8 H
        #程序特征字的ID为0x0000001a,配置特征字的ID为0x0000001b,
; `, y9 `1 r: j2 B9 g' x        #这个是跟DM的代码保持一致的,产品平台存在强耦合,不能随意更改& o2 S+ [  q0 t& O7 u" z. B" |3 y3 H

9 L4 @# L4 e, A$ c, O9 n# T' Y        #判断配置特征字是否以WIFI结尾,如果是则删除! U+ R' I& P8 p. H
        var_cfg_ft_word_temp=`echo "$var_cfg_ft_word" | sed 's/WIFI$//g'`
7 A' H$ C7 c7 U8 t$ w! {% M4 f        if [ "$var_bin_ft_word" = "CMCC" ] && [ "$var_cfg_ft_word_temp" != "CMCC_RMS2" ] ; then, @( F- Z7 U# E( f
                var_cfg_ft_word_cmcc="$var_cfg_ft_word_temp"8 Z( u5 T$ k# i- l8 a8 `+ s$ I) ^+ g
                var_cfg_ft_word_temp=`echo "$var_cfg_ft_word_cmcc" | sed 's/2$//g'`- \$ y! R- E! H; w
                4 J# k: A- V! @6 r) Y
        fi
3 }( k. @' Q7 @9 @* P, B% \; v
0 R0 M% f6 \5 x$ t; t( T6 u7 B2 s5 Z        #如果是免预配置,电信定制为E8C E8C,联通定制为COMMON UNICOM9 h2 j7 t/ V* G- l! w$ Y
        if [ "$var_cfg_ft_word_choose" = "CHOOSE_" ] ; then, Q/ h& O+ Y2 s8 t- ~8 H) J4 o% R
                if [ "$var_bin_ft_word" = "E8C" ] ; then1 Z5 z2 ~8 D* V- ^( G/ U& Y
                        var_cfg_ft_word_temp="E8C"7 O: l+ K' Y/ g5 g2 @
                fi
; Z9 o) b& A, F+ S) r( k+ x) R! w4 H" \2 \! a
                if [ "$var_bin_ft_word" = "CMCC" ];then
6 ?, t, S3 [9 V# V# A                        var_cfg_ft_word_temp="CMCC": d  [9 }) J: j+ F# Q# B
                fi
, U) @4 ], J6 M3 Q' A9 {' u' l               
0 }5 s- I, F* A  l5 g/ [. K* F                if [ "$var_bin_ft_word" = "CMCC_RMS" ];then0 a5 W& w6 H4 N7 G0 W( y' n
                        var_cfg_ft_word_temp="CMCC_RMS"8 n: D' q9 I( R6 n2 k
                fi  n1 b+ v& `( s8 V- K
                4 L: H" M% \" i, W8 A6 f& d
                if [ "$var_bin_ft_word" = "BZTLF2" ];then, U4 [1 Y4 F/ j. B9 `- x
                        var_cfg_ft_word_temp="BZTLF2"
1 v9 {8 R: R0 U, v. f0 J; ]; H* n                fi
6 I( s/ O& G' `: V! b8 u1 t( Q- a) x9 ]5 |
                if [ "$var_cfg_ft_word" = "CHOOSE_UNICOMBRI" ];then% L7 B9 p0 t- C6 X- Y$ @7 v
                        var_cfg_ft_word_temp="UNICOMBRI"3 `6 R% Y: U/ X/ N2 O! e; K
                fi8 t2 u, R; X% M
        fi
1 H4 P! k- s0 l% y# ~9 Y       
4 D, r' E! T3 F  q  R2 w5 ~5 o. b        if [ "$var_cfg_ft_word_temp" = "CMCC_RMS2" ] ; then; `/ [. a6 l4 F5 a5 \4 b* \6 S4 B
                var_cfg_ft_word_temp="CMCC_RMS"- [3 h9 P4 R7 Q- c/ ]; R5 U$ V( o2 p
        fi
6 c5 p; U0 M! [+ I9 g- ~: v$ f6 |5 L9 F! t  p
        #检查boardinfo是否存在
" I' e8 u6 G" L. [( U: \8 E6 F$ y        HW_Check_Boardinfo
4 L9 ]. w1 H% H/ T7 ?        if [ ! $? == 0 ]# U# g9 d' ?, W5 U
        then) z$ B4 ?& d; n6 p2 d: X; u6 U/ O
                echo "ERROR::Failed to Check Boardinfo!"
* Z$ \+ o: x: ^, k# P. T5 P  ]                return 1
. G) Q( Q+ z( w  t" a& }        fi( \/ \/ g9 K9 f# z; M  L0 t

) U2 X2 q$ t& c+ d' W, a        echo $var_jffs2_boardinfo_file | xargs sed 's/obj.id = \"0x0000001a\" ; obj.value = \"[a-zA-Z0-9_]*\"/obj.id = \"0x0000001a\" ; obj.value = \"'$var_bin_ft_word'\"/g' -i
8 p0 G0 C  Q; J) |7 C5 g) r
& T" f, a% m( h8 |8 s8 z! @        echo $var_jffs2_boardinfo_file | xargs sed 's/obj.id = \"0x0000001b\" ; obj.value = \"[a-zA-Z0-9_]*\"/obj.id = \"0x0000001b\" ; obj.value = \"'$var_cfg_ft_word_temp'\"/g' -i
/ z) c6 x* ^5 }5 k$ x
6 {8 b; F% \( X% O3 W/ B- s- w        #根据配置特征字后是否带_ENBG判断其是否为企业网ONT,企业网为@EN#Common&,其它运营商为@CN#Common&2 Z+ F- X3 ]8 k/ F% z1 X
        if [ 1 == $var_is_ENBG ];then
  T# I- \& L! W2 X# |9 y; \7 w4 M                echo $var_jffs2_boardinfo_file | xargs sed 's/^obj.id = \"0x0000003a\".*$/obj.id = \"0x0000003a\" ; obj.value = \"\@EN\#Common\&\"/g' -i
8 b5 Y# e. n) C" Z6 I) b        else
: O- I" T" e( P) g0 p6 a! i                echo $var_jffs2_boardinfo_file | xargs sed 's/^obj.id = \"0x0000003a\".*$/obj.id = \"0x0000003a\" ; obj.value = \"\@CN\#Common\&\"/g' -i
: T; @! d% u0 r7 ]        fi, c6 c! L9 r' [( y
        8 D  k# }% j9 Z+ h
        #保存程序特征字和配置特征字到文件/mnt/jffs2/customize.txt,getcustomize.sh从这个文件中读取,为了保证boardinfo能够完全写入,需要放在最后面$ F4 \2 S' o7 Z: b' }/ B' ?% }+ E
        echo $var_bin_ft_word $var_cfg_ft_word_save > $var_jffs2_customize_txt_file, K2 I8 U- l5 i+ L
}
* Z$ M5 ^( L/ `. F
0 R6 I8 D- b* D+ M$ f& K+ f2 ~#设置typeword字段
: ~0 |8 v$ j. THW_Customize_Set_CFGTypeFile(); _6 h, Q6 |  x9 b
{
  b& m7 R3 R8 T" {) T        #后面会进行检查,再次不检查boardinfo是否存在) Y  I1 o- j5 N* A9 k
        echo $var_jffs2_boardinfo_file | xargs sed 's/obj.id = \"0x00000035\" ; obj.value = \"[a-zA-Z0-9_]*\"/obj.id = \"0x00000035\" ; obj.value = \"'$1'\"/g' -i% L: B# L3 U! ?, `% k6 y
        return 04 X. \1 |! `/ a8 H! w- J: M
}' ~, F" n1 S3 }9 Z
. I- ~' B8 `, D* [9 |0 a, }3 k8 p
#设置cfg fileword' ~1 T/ f' i: Z/ {- ^
HW_Set_CfgFile_Word()- H! u0 l4 R" _+ i8 k0 ^( N/ y& ?
{
! z$ l; P8 e5 p1 w2 C        if [ -z "$var_typeword" ]
! b1 e( H' K6 O7 ?/ i        then
% |; ^2 H! J. v1 @2 S                HW_Customize_Set_CFGTypeFile ""5 Y: q; k/ G7 R: E0 _0 e& K) M
                #不带typeword,删去typeword文件(之前定制的typeword)
- @+ P) v0 W% A- Z$ n6 I/ J$ n                rm -f /mnt/jffs2/typeword  [; z; D/ h9 h
        else) W* N2 @4 o" y2 h
                HW_Customize_Set_CFGTypeFile "$var_typeword"
, a' b- b" m$ t3 N4 _0 l$ _- [        fi/ k& ]3 n) G( l" a, P
        return 0$ Z5 t) U/ e" Z4 f
}
6 K$ e" y( r6 f1 G7 H7 S  L7 t2 F3 _2 N* ]) k
# 参数检测
8 T4 a5 X3 T3 M) L3 gHW_Customize_Check_Arg()+ n0 R. @# C4 U3 g6 E' m
{
- L- ~/ s& w1 u        if [ -z "$var_bin_ft_word" ] || [ -z "$var_cfg_ft_word" ], l5 d9 ^; j. J, N1 i
        then( `) f8 M$ T0 |6 \6 _
                echo "ERROR::The binfeature word and cfgword should not be null!"2 b3 U2 g2 _6 P* {
                return 1% S% d' J2 C& ^6 M* S+ c2 @
        fi: e% h, v# b7 k4 {. V

+ `- H7 G3 }' x, {, y& ~4 n4 ?! B        return 0
1 _: i& D; \$ k3 @}( r8 ~" B+ p, X: [: ]# d

& Z! [- [6 i- l. Q# 如果是COMMON_WIFI ~COMMON定制,则将BinWord由COMMON_WIFI->COMMON,依然走定制流程
* e1 q) }/ }" |6 D& g4 f9 y# 如果CfgWord以wifi结尾,则去掉"wifi"字符串7 |" l$ C0 E1 H$ ?4 w$ T% J% J
HW_Change_Customize_Parameter()$ y9 \+ C& R6 Q9 S
{
  \% F; n. e- C5 C& L  ^        if [ "$var_bin_ft_word" = "COMMON_WIFI" ] ; then
# |' b# s$ O* L        {2 o9 e2 R9 @9 O0 p# |* V$ I7 {) F0 C
                var_bin_ft_word="COMMON"
* s3 @: n8 W/ m, b, _4 G) D5 t( w        }6 k+ u  _7 H$ c
        fi6 h% n0 A5 O$ w: k4 S# v

* t! ~1 I" }. e) N" Y, s        #判断配置特征字是否以WIFI结尾,如果是则删除# P2 k3 H5 Q$ C5 m7 W  ~2 y
        var_cfg_ft_word_temp=`echo "$var_cfg_ft_word" | sed 's/WIFI$//g'`. P$ r* i$ h1 I
        if [ "$var_bin_ft_word" = "CMCC" ] && [ "$var_cfg_ft_word_temp" != "CMCC_RMS2" ] ; then
/ I- ]& ]) |8 z) O3 G1 R7 ^7 k0 L8 Z                var_cfg_ft_word_cmcc="$var_cfg_ft_word_temp"  Y* S3 f/ i) ~) E/ [1 w/ g
                var_cfg_ft_word_temp=`echo "$var_cfg_ft_word_cmcc" | sed 's/2$//g'`- y% e" f4 w6 C" o/ @: h3 d2 [5 ?5 |6 Z
                0 g; ]. s1 H, P% V
        fi
, U9 b2 }; u) Y  N2 d$ ?" j        : }  D# @2 H% o+ Y
/ N) L: V  _* M: [; k) c
        shift 2
( R  }. J2 D' X) _8 ]
0 X" x& _' L, R; f7 g5 |        var_input_para="$var_bin_ft_word ""$var_cfg_ft_word_temp ""$*"
: M7 r7 [; p0 m6 D' m$ g) @, p4 B/ _) A4 V
        return 0) s3 W6 _( K- \* C$ V
}
7 N& r4 Y9 r2 \+ D: }; K+ f. \2 N. C/ T* w$ h) N1 H
# 如果CfgWord中去掉_SIP或者_H248字符
7 \. i  S0 e6 U9 f* E$ n- W9 dHW_Change_Customize_ParameterForVspa()
9 r( k& c0 w* C1 T; Y, n$ z{
  n5 h) X6 ?% [# s$ C, f# L% |& Q, Q        #如果配置特征字中没有_SIP或者_H248则直接返回,不显示
2 T( ?8 `' ]! E        echo $var_cfg_ft_word | grep -iE "_SIP|_H248" > /dev/null
! a/ q, k: C' X( X        if [ ! $? == 0 ]
) ~" z1 J' X  B$ B' F8 H        then( ~% |/ L% E3 A/ @0 _6 F8 M
                return 0
+ R& U7 E' ~9 o4 A4 {  u+ X3 D        fi& H7 D8 s' {: G1 B! G+ R; A% X
. b! b6 \7 c" [/ p9 s7 a
        #删除配置特征字中去掉'_'后字符,并重新构造配置参数,作为Customize程序的参数1 h: _" P' O) ?% u
        var_cfg_ft_word_temp=`echo "$var_cfg_ft_word" | sed 's/_.*//g'`9 ?, w/ j4 Z+ |& K$ J
        shift 2  #输入参数左移动2个
& m: d, q  ]  |/ w/ U1 C+ J        var_input_para="$var_bin_ft_word ""$var_cfg_ft_word_temp ""$*"
  W. c; t# @. ]' B        return 0
7 c. N7 [2 K, r" b}
( ~% ]- }1 ~+ v3 A& s5 \; _& X8 ^: v
#设置CHOOSE字段
$ d; }* D" t8 `8 UHW_Customize_Set_Choose()
( i! E5 n  m7 `! ?{# A/ W. W# r5 k, H/ J0 t- x. p( N
        #后面会进行检查,再次不检查boardinfo是否存在
8 e' w: k) ?4 f1 T8 p2 a5 `        echo $var_jffs2_boardinfo_file | xargs sed 's/obj.id = \"0x00000031\" ; obj.value = \"[a-zA-Z0-9_]*\"/obj.id = \"0x00000031\" ; obj.value = \"'$1'\"/g' -i, |) T1 X( ]- R0 `7 M/ ?6 I8 k+ k
        return 0( e* }* ^! I1 w, L4 O1 Z: @% J  r
}
5 u5 y* G: n( O, P4 H
' G3 ~& L5 ^6 y# 资源检测! ~  c" m: G' V' u. Q% U- c& i
HW_Customize_Check_Resource()
) x; r3 x+ @' Q; i+ ~8 D{
0 i2 o1 _; |: J2 o4 X        #HGU需要关注免预配置定制,需要涉及CHOOSE_WORD字段修改,SFU则可以直接传入
3 |0 g- e# u, w- {( I        if [ "$var_cfg_ft_word_choose" = "CHOOSE_" ] \1 a$ H7 S! g. ~3 e$ v
        || [ "$var_cfg_ft_word" = "UNICOM" ] \8 [. u' V: v4 o: H: l$ g  _: A
        || [ "$var_cfg_ft_word" = "UNICOM_BUCPE" ] \/ r# Z* d7 g. [. \7 `
        || [ "$var_cfg_ft_word" = "UNICOMBRIDGE" ] \
. D# I) I: C, Q8 p" r' s6 F# A/ C        || [ "$var_cfg_ft_word" = "BZTLF2" ] \
. a; w% [6 n; W. m        || [ "$var_cfg_ft_word" = "BZTLF2WIFI" ] \+ g! y. s0 X9 z: H
        || [ "$var_cfg_ft_word" = "CMCC" ] \
4 C# Q& a0 E2 V( t. N2 g& ~+ H, O        || [ "$var_cfg_ft_word" = "CMCC_BUCPE" ] \
2 Z! q' z# c1 j8 n( i) R3 C+ B        || [ "$var_cfg_ft_word" = "CMCCWIFI" ] \
; v$ g2 a& a6 i! i% I0 f        || [ "$var_cfg_ft_word" = "CMCC_RMS" ] \! d# c6 H. Y, N1 ^! t. Z
        || [ "$var_cfg_ft_word" = "CMCC_RMS2" ]  \1 U- G- Q- d: y4 @  F
        || [ "$var_cfg_ft_word" = "CMCC_RMS2WIFI" ]  \' N  A! L3 K# ^" N: d& u" ?
        || [ "$var_cfg_ft_word" = "CMCC_RMSWIFI" ] \# ]) d7 s+ b: y; `9 r, m# C& [- z
        || [ "$var_cfg_ft_word" = "CMCC_RMSBRIDGE" ]; then2 o& u+ a# Q. X  x
                shift 2
' Y4 n; z+ J, c" h" [0 Y                if [ "$var_cfg_ft_word_choose" = "CHOOSE_" ]; then$ a) P) B6 x+ Q$ _) {
                        var_input_para="$var_bin_ft_word ""$var_cfg_ft_word1 ""$*") A" P$ H9 |, U: @+ ?: t: i$ [
                elif [ "$var_cfg_ft_word" = "CMCCWIFI" ]; then# `9 T7 H. p, d! [; u9 Z; ~
                        var_input_para="$var_bin_ft_word ""CHOOSE_CMCC ""$*"       
4 w5 e# \2 y. J9 i7 f( b9 D6 @2 ], U                elif [ "$var_cfg_ft_word" = "CMCC_RMS2WIFI" ]; then# a; y6 k  A- J7 Z
                        var_input_para="$var_bin_ft_word ""CHOOSE_CMCC_RMS2 ""$*"
( c/ }. }; @* k0 Q: K1 E                elif [ "$var_cfg_ft_word" = "CMCC_RMSWIFI" ]; then: n* o; I0 U- ?# i& d
                        var_input_para="$var_bin_ft_word ""CHOOSE_CMCC_RMS ""$*"$ K8 X) i1 K9 i& x0 M
                elif [ "$var_cfg_ft_word" = "BZTLF2WIFI" ]; then5 u6 U" c0 c7 ]9 p
                        var_input_para="$var_bin_ft_word ""CHOOSE_BZTLF2 ""$*"
( U$ B2 L$ V- S7 y% n( A                else, F3 x  r5 Y  M. s" d
                        if [ $var_is_HGU -eq 1 ] ; then
" L8 G: m6 P  R. a/ a                        var_input_para="$var_bin_ft_word ""CHOOSE_$var_cfg_ft_word1 ""$*"
3 ]! T) h& X! H- R$ A$ ^                        else
4 t( o* t3 o- V4 f3 ?8 V% \                                var_input_para="$var_bin_ft_word ""$var_cfg_ft_word1 ""$*"
" t6 B# A# o* b& E( ?# t8 Y0 R                        fi2 m' u% e2 i" a: ^$ r- `
                fi/ V- \$ M6 t+ [( S/ p9 ~
        fi" l$ M  u9 H: y& b, a* \+ ^

7 u& [  R/ N$ l7 h# J        #现在TELMEX只支持12个参数(customize.sh后面的),格式如下:
- C' |. A5 f- z+ H        #customize.sh COMMON TELMEX SSID WEP_KEY PPPoE_user PPPoE_pwd TR069_user TR069_pwd WEB_pwd CLI_user CLI_pwd  WPA_pwd
; b9 t, I$ y5 e$ ~" i        if [ $var_cfg_ft_word == "TELMEX" ]$ m& k; `1 I4 u8 i; K! i
        then
7 n) G: Z/ G6 S; K3 e: p                #对于之前的已经用5个参数定制的整机,返工场景(重新定制,要删除该文件,否则定制检查会失败)3 T; Z# k4 Z$ Y- k- }6 v' h
                if [ -f $var_customize_telmex ]
5 b: i6 {. b) m$ C& ~8 u3 f; R! Y7 d                then
0 w4 m5 p1 L7 E0 J' @/ M- @3 ~2 ~                        rm -rf $var_customize_telmex, f) p2 T$ |8 Y5 d
                fi
4 F) M; j3 w. @% J2 R3 J                #只支持12个参数(除customize.sh以外的其他参数)
8 o7 l& Q% l& C& S. a2 X* I                if [ 12 -ne $var_para_num ]
/ K( d' U& J! _3 Z                then
; Z7 h" t7 @. P7 o; S) X                        echo "ERROR::input para must be COMMON TELMEX SSID WEP_KEY PPPoE_user PPPoE_pwd TR069_user TR069_pwd WEB_pwd CLI_user CLI_pwd  WPA_pwd !"
: t) @9 {( F  T5 d                        return 1
, F% \( Q9 M+ ^, S                fi5 ], @+ z9 g1 j/ P+ K) T
        fi
% z$ C- U$ t" h0 x
& L( L3 I" q% t# F        # 调用Customize进程进行装备资源的校验, 把文件暂时写入typeword 暂时写入/mnt/jffs2/typeword 文件。 如果不通过文件传递,通过argv 传递5 _5 c9 `" {. E6 V' |
        # 需要函数扩展的函数有十个左右,且在Customize APP 中需要扩展解析该字段。+ n! @. h6 v8 y3 w$ r0 ~; z
        if [ -f /mnt/jffs2/typeword ]; then
- y/ m$ r% v  t+ J                cp -f /mnt/jffs2/typeword /mnt/jffs2/typeword_bak
4 O$ E' j/ G* h        fi1 F' d7 ]/ y5 h+ T8 J  ~5 k1 K1 E4 `
        echo $var_typeword > /mnt/jffs2/typeword
; k  B6 |1 y& K        6 C+ N! d+ S3 L
        #检测是是否在生产过程中写入specsn文件,重新返工需要将此文件删除。
: N7 R9 F, z  e5 A3 T( K        if [ -f $var_jffs2_specsn_file ]7 y# R& r, q4 ?
        then $ b; @) j" |: l9 |! D4 j% X  }  {' F9 R
                rm -rf $var_jffs2_specsn_file
6 x  c  R! n  [2 l' ]  }$ n        fi
9 P, c  Z! ?/ v1 j5 Y
' D+ _7 q0 u: M        if [ ! -f /var/customize_flag ]        ;then
8 J1 C( U7 g, l# ?8 ?                echo > /var/customize_flag  |2 i( q: n' Y. M3 h
        fi
  z1 {( w* M, Y- Q8 a        Customize $var_input_para/ m0 T7 r. l1 P) j  U, x3 e1 F! J& N
& o. _- ]; j/ q' |6 c2 B* O
        var_result=$?
7 h$ |5 A0 K- @) Q2 Y0 y2 i: R
- j* {' k/ |+ P' u1 ?  C4 b. N        if [ 0 -eq $var_result ], [5 p3 r/ f; ~
        then, Y  ~, ?/ b" l# D( v' k3 B
                #写boardinfo和文件
, f+ h! h) m1 l: c# v$ C7 N+ n2 t* \                HW_Set_CfgFile_Word
* F  i3 K; A9 L" M# N                rm -f /mnt/jffs2/typeword_bak
! |  c* ?" E3 o' ]3 v2 ]        else
3 c7 U. m6 e9 m& D/ t                #定制失败, 如果存在备份文件,还原备份
$ f8 O, |* w5 y                if [ -f /mnt/jffs2/typeword_bak ]; then1 l+ P, C/ a" W. ?9 ^6 |
                        mv -f /mnt/jffs2/typeword_bak /mnt/jffs2/typeword; Z/ c3 W0 I* q$ d$ @. Y3 k
                else
/ {4 J* z, ~' I1 U                        #第一次定制失败
# ?! r! `" K8 A) D$ Y                        rm -f /mnt/jffs2/typeword
7 N9 H! i# _( Y6 q. `                fi               
( [0 K3 _9 a$ b7 Y               
0 O: K  l  ^) I$ q0 j+ l9 J+ r5 t. T                if [ -f /mnt/jffs2/customizepara.txt ] ; then- i+ Y5 p! E& @1 V) j
                        rm -f /mnt/jffs2/customizepara.txt8 P' Y2 z( X. c# a) G% Q/ B
                fi" \7 r  H1 J" S# g( ^- x( O* T
                ' _3 L8 @: c9 k& \# b( y. d
        fi3 C4 ~1 `* s& p% t# E, B2 _
) l7 N% }2 r& [8 R9 I
        return 0
8 h/ x1 k. k+ v! L}
* b4 ?% e3 f4 u  \
" ^  H7 X- R/ n) ?0 iHW_Customize_Check_PCCWMacCheck()
# [3 H$ h# i+ @{
$ i$ R  A' u/ X        # 如果是PCCW,需要进行WLAN MAC的校验
' G  m. L( V: l9 k- ~! j        if [ "$var_cfg_ft_word" = "PCCW3MAC" ] || [ "$var_cfg_ft_word" = "PCCW3MACWIFI" ] \3 E2 c! |3 J# u' X
          || [ "$var_cfg_ft_word" = "PCCW4MAC" ] || [ "$var_cfg_ft_word" = "PCCW4MACWIFI" ]
+ ]5 \" Z; q6 H- n6 |/ `) ?1 l        then
* Q' {0 K5 ?7 ]                pccwmaccheck $var_input_para
, z- i5 T  z* k! G( B: l  d                var_pccwresult=$?
0 i9 P& l: ~3 W5 r$ r" G6 \0 k        else
& v* W  z3 {4 z$ S. v5 F. q2 v; h                var_pccwresult=00 x5 |7 A2 g/ p4 u
        fi/ }2 j* ]$ X  Y' t* N9 E
2 R2 m2 R& @( m' b& ]0 h* U
        return 0
0 v# T% L3 g& y( z3 E}5 `& Q4 @0 {8 p! B

$ c* a0 ]% x8 P8 a9 ~( G( U#定制处理
4 H$ s3 N: H; o" K' MHW_Customize_Delete_File()
' Y) p7 Z2 r7 ]! v6 C0 j( ^" E8 h{2 s, n/ _" ?) C% s3 ?* i/ D
        rm -f $var_telnet_flag
8 w6 x5 _! t: \$ |- T        rm -f $var_boardinfo_bakfile9 S( l9 R6 l6 b
        rm -f /mnt/jffs2/smooth_finish
" w4 N; x9 [# B) M  m% i; z+ T        return 05 i& J. d# u3 m- ~3 F
}5 D+ `& E4 F& z6 ^4 C1 |

- a9 N# C! L+ A0 ~# 结果输出; [, m8 P1 B' ^4 [9 B
HW_Customize_Print_Result()0 i! K9 t& a' H, f1 ~( b
{" z9 F) v  o& R
        # 根据不同的执行结果,返回不同的错误内容8 K) O6 R9 b" A6 @$ w* W7 v2 }6 y
        if [ 0 -eq $var_result ]
: N, g& }- L2 b! c9 t7 O: N+ V        then7 U+ R1 [! y% {- ?! x
                #pccw3mac pccw4mac定制中需进行wlanmac的校验
- X! S) h+ Y. c, H- \                HW_Customize_Check_PCCWMacCheck $var_input_para1 R$ m) i9 a; y; s& T- ^: S
                if [ 0 -eq $var_pccwresult ]# l# B6 V" H5 J3 _  T$ B6 B; W5 \2 z
                then% `, d# _* l+ c: Z* L5 Y
                        HW_Set_Feature_Word7 ?/ R  Q, Y) b% T) x2 f
                        if [ ! $? == 0 ], b8 O0 R, k) W4 _; }
                        then
$ j* X1 N/ i, ~2 a3 Y                                echo "ERROR::Failed to set Feature Word!"
0 b$ m/ Q  f% w: j1 ]                        return 1. y$ T" x3 j: K) p; E; u
                fi
! n/ b% E/ ?& s                elif [ 1 -eq $var_pccwresult ]
! C2 j4 O$ \8 w- ]; B4 z                then
9 r1 o/ h  U- L9 K- a" S                echo "ERROR::input para number is not enough!"
0 \' ?0 w1 i% F                return 1( o5 l/ c- m: r" n4 b3 U# E
                elif [ 2 -eq $var_pccwresult ]
6 I( D- }' P5 H2 }. [; L                then) S* S8 P$ d  ^  j) v" C
                echo "ERROR::SSIDMAC fail!"
$ k% W$ q# k- `5 i5 ?# Y                return 12 E: ^: o+ |" }9 W; s* U! \5 {
                else
- }( I: V' x& X$ f2 f  m                echo "ERROR::customize fail!"8 x% B" G7 R+ F. `
                return 1
# B4 ]$ G; j4 O" F                fi0 F2 l; [; F; U* ^' j: S( X5 i
                return 0; w8 k4 e4 W2 I9 G$ W/ P' P
        elif [ 1 -eq $var_result ]
; Z+ o/ {# J% I# h" m        then) ^3 D, r; N$ o3 n6 R
                echo "ERROR::input para number is not enough!"
. }: w+ {. W3 J( ~' f                return 1- B; Y; w' w0 D
        elif [ 2 -eq $var_result ]
; J- ~. S% q5 G7 _- _* C        then! s9 B* y. o" S5 {
                echo "ERROR::Updateflag file is not existed!"3 t% n8 Z# a# E
                return 1
% w) X' c1 L" v, F/ x( G( Y$ W; C        elif [ 3 -eq $var_result ]
+ O5 B4 q, W2 U; x, l1 S        then9 u) t4 m. C$ \+ A' a  a. R
                echo "ERROR::config tar file is not existed!"
5 u# p) \6 |. e* P5 x& y                return 1
2 d8 q; r/ f$ C2 H2 `2 r        elif [ 4 -eq $var_result ]* i! N; p9 Y/ R2 ^# r. a. F. Y" c
        then
, R, _& t2 o* _4 y& K- L) a4 l                echo "ERROR::Null pointer!!"
4 M1 D, D2 ?0 P" \( p                return 1; B; Y5 V: e0 W1 A0 x5 v0 t! n
        elif [ 5 -eq $var_result ]  H" Q9 l5 S" x
        then
- D7 _- T0 ?+ B' R, Y" g+ G                echo "ERROR::XML parse fail!!"
' ^2 v0 Z, }+ u                return 1
! ~- Y; u) a; ]& c# A% ?4 B% P( w. X        elif [ 6 -eq $var_result ]) F* w  x! c8 z: Z2 l) F/ D, o' k
        then
9 }; m' ~+ U3 T) T& @+ X# Q                echo "ERROR::XML get node or attribute fail!") e% D2 ?& t4 N! L5 Y1 g( X
                return 10 N' N6 ?2 ~" W
        elif [ 7 -eq $var_result ]
" D3 Z: H. `+ n( S  p. r* k4 {8 e        then
0 P% q" v1 k( h( t1 W1 O- q3 \                echo "ERROR::XML get relation node fail!"
$ N7 w5 D5 x8 o0 M                return 1
3 o" I* W, U/ H$ r2 ?$ t( j        elif [ 8 -eq $var_result ]
6 h! Q8 @) {2 u. f        then& Y* ?  _0 S+ U- s: ^9 m
                echo "ERROR::Spec file is not existed!"' x4 i( @, z7 Y6 ?9 B, z
                return 18 p( u0 @+ \! g9 e) t+ G& p
        elif [ 9 -eq $var_result ]
8 }$ s7 k) Q+ A        then
! v9 g# x$ o' m* _9 O' d. M                echo "ERROR::Set bin word fail!"5 l! i( p) Z  n- W2 [4 X
                return 1
' }2 j7 ~; @. g        elif [ 10 -eq $var_result ]
/ x  p1 p8 G6 y  d) @' J        then% {# C- A3 f; c
                echo "ERROR::Set config word fail!"
  b8 D$ C1 \' o( g' n                return 11 ^: o4 S: t- |4 d" s  w) _
        elif [ 11 -eq $var_result ]: c  b, |1 a4 x3 k' i0 K' D6 Z# L% N. U3 Y
        then; E; k7 i/ ~4 t: F3 U
                echo "ERROR::Uncompress tar fail!"; _" X+ F' Q* W" T3 H. q6 W
                return 1
) s0 |! c- R5 Z3 c        elif [ 12 -eq $var_result ]
0 _2 L8 x9 v: A2 A7 `( F1 s        then/ x) R, b# a5 H# l
                echo "ERROR::Config file is not existed!"
2 |% e! ?2 }8 E2 n( X! l9 N) w                return 1
( [/ s/ `* p" M4 B* \        elif [ 13 -eq $var_result ]0 a# u8 b4 k! x! R
        then/ \/ b2 g* l1 _
                echo "ERROR::Recover file is ont existed!"9 a- p& e: Y& ^
                return 1
% ]; h- F; C1 n6 s        elif [ 14 -eq $var_result ]
& x2 G. t' t4 O; r/ v0 \: R        then" D( r: w' O# F
                echo "ERROR::Run script fail!"0 P: `/ W4 m6 l9 b% u
                return 1
: T0 c7 T" b5 h        elif [ 15 -eq $var_result ]
! D. S7 K3 ^- M- G1 I# ^: b        then) Z' j- H: Y- f, S  T* t6 r
                echo "ERROR::Create new recover config file fail!"' i& M- |3 x0 K
                return 13 r2 D- ^; Z* b# I& W( ?$ Y  R
        elif [ 16 -eq $var_result ]% E( O6 k6 L/ z3 _
        then
9 x( ~# ^$ }2 f% e* ?% w7 v) M5 B: g                echo "ERROR::Create old recover config file fail!"
% m6 W5 ]+ p( B, M                return 1* m0 h* s; s* H2 y9 X
        elif [ 17 -eq $var_result ]6 H; r, i4 _* w: }- Z/ ^
        then
3 R  L/ p8 ^: u                echo "ERROR::Copy spec default ctree fail!"
6 a( d: P1 R: e! g- L# @+ Z                return 1
+ r6 r- s6 N  ~        elif [ 18 -eq $var_result ]4 C8 m# z; O, v' t; ]- J- }# C8 L
        then# E7 Q* G  i  e0 p/ ]1 p
                echo "ERROR::Check Choose Res fail!"8 J/ R. U2 l- ^/ p; ^: g# f
                return 1, i/ P5 Q$ {- ?& J
        elif [ 19 -eq $var_result ]$ ]  F7 X4 T, _; N& {" |
        then7 }2 s6 \: p& F& k8 K; N
                echo "ERROR::Resolver customize file fail!"
4 v6 j2 W; B( Y% }                return 1
- A' Y3 _, i) E) o- s        else! V3 L# A7 a5 W
                echo "ERROR::customize fail!"
. d: T* C" n) m$ i3 q  N7 a  _                return 1
9 ^. M6 p5 ~8 @3 H0 m" T) Z) z        fi
1 R8 f" z0 ^& B! V. h9 M
/ e: Z3 }7 e- c9 d, L( {  u3 I        return 0
0 A2 o) h3 d3 M2 B9 L9 N: o! ^}$ a# N7 ]% R1 [( }. ^

8 n9 L8 L! v: p4 a9 H( {8 W#HGU才支持免预配置,在此做判断# g" h# L, W' }& j
HW_Customize_CheckIsHGU()
; O/ n2 S0 f0 n5 o{
$ D$ H& {7 u# G( ~+ M        cat /proc/wap_proc/pd_static_attr | grep -w pdt_type | grep HGU > /dev/null
+ ?" f$ W/ W8 S: z, J        if [ $? -eq 0 ] ; then% d: v( ~- S# g* @$ [7 h
                return 1! j. N7 t! v% u  ?
        fi
" W2 H* O9 Q- t) A8 K. n5 ~2 E
7 T5 w$ z+ G7 c; K        return 04 f+ i# U0 ^4 R* j9 U
}
9 n$ v" ?3 n% K' M0 {5 v, {# D# f& E) j
#Java进程占用CPU过高,导致定制超时9 g8 z" x1 Q$ x6 B9 g! h+ {
HW_Customize_ReleaseResource()
% H1 {# T1 @: t+ c& p5 g0 L9 `. {3 y{! c( ~3 q& P6 }& F; O: m
        procid="";
7 g& R; s! f) y. l+ g9 V        7 A6 V7 k4 L, M. u
        if [ -f /bin/osgi_proxy ] ; then
& H4 z  L' g3 D                echo > /var/kill_java
8 K4 r# J8 a8 O9 J$ t                * V$ ?" p& `* g3 N! p5 o9 y
                procid=`pidof procmonitor`   
  J" t5 L: m3 j                if [ "$procid" != "" ] ; then
" s7 {# W% E# Q! l9 v3 I                        kill -15 $procid                       
# t0 Y9 ^; M; z) @! l7 S                fi/ @: x* f$ N" {; L& f" }# K) X. C

5 a( X9 O9 }" C! d6 W* a- O( E                procid=`pidof osgi_proxy`                     & k" b! E2 ~5 u7 P
                if [ "$procid" != "" ] ; then
7 S0 V/ G8 H# g; O6 O                        kill -9 $procid
3 M5 V! e* N$ J& z                fi       
9 Z9 f( j* Q3 N' C# l               
- c) [& q0 |+ t5 e                procid=`pidof java`
/ P' R  ^" L) v0 m5 y                if [ "$procid" != "" ] ; then
, o3 Z% |/ c0 Y. u                        kill -9 $procid
. m( U" M3 e7 f+ Y                fi                                                               
/ u- b/ T: Q: R/ A5 W; S: {        fi  G  ^8 M4 ?* T- |  l* A1 W* s
}3 U; v5 w5 k' _7 X

* \, p, ^0 M+ \: e' k& d  N2 e  {
; P3 _: }5 L# B4 S5 J/ Y#echo /proc/pdt_proc/save_boardinfo to save boardinfo for add chooseid
* H8 C( c2 \4 F% fecho "1" >  /proc/pdt_proc/save_boardinfo  S8 O4 N' J, ~7 Z! z
# k  S9 w% u. s9 \9 s
#参数检测:至少应该包含BinWord&SpecWord
0 P6 D$ t( h" u) _9 `HW_Customize_Check_Arg
, l* z) _+ I' A2 ]& b1 Q- z[ ! $? == 0 ] && exit 1; W/ ]; H( s2 b1 U- j

* d. \1 B  M: E7 F& ?- f# f- JHW_Customize_ReleaseResource
5 G0 x' ?+ ^" B  a7 r5 E
  T. y3 d, x8 i! g# a( k9 c#参数处理
  H. i9 `5 Z* z6 MHW_Change_Customize_Parameter $var_input_para. S& t/ _* A' b
! p3 z9 l! v! N- J7 N
#参数处理,主要是将配置特征字中的_SIP和_H248进行过滤
. P0 b  @. N& v# uHW_Change_Customize_ParameterForVspa $var_input_para
8 f- I! z6 h2 I' s9 }' S2 K4 L+ ^7 o+ B) B/ C
#HGU才可以免预配置定制,免预配置定制才涉及CHOOSE_WORD的处理
6 e4 b% U2 N  f6 G2 b9 s' q2 ~  aHW_Customize_CheckIsHGU
) o/ r1 t& u2 z' |% g  Vif [ $? -eq 0 ] ; then
& S; ]$ {, W( s, b1 R0 Q        var_is_HGU=0" k* f; P. G" k  k
fi
! u/ q4 K# J: o& [' ]' W. B2 U! l5 L. @' Z, I: p) P5 L' `
#免预配置模式,添加NOCHOOSE字段,并初始化为CHOOSE_XXX  X% _, ?( G$ d: f# C" F
if [ "$var_cfg_ft_word_choose" = "CHOOSE_" ] \
! i# L; V# P, W- P1 M|| [ "$var_cfg_ft_word" = "UNICOM" ] \
9 P5 T: A8 u& X3 O|| [ "$var_cfg_ft_word" = "UNICOM_BUCPE" ] \
2 s6 ~# f; F+ R% G4 G3 P* L1 S|| [ "$var_cfg_ft_word" = "UNICOMBRIDGE" ] \! C0 m+ i3 T# R
|| [ "$var_cfg_ft_word" = "BZTLF2" ] \7 M9 _4 d  ?4 M
|| [ "$var_cfg_ft_word" = "BZTLF2WIFI" ] \+ H2 Z4 n6 C$ \7 X" `7 D
|| [ "$var_cfg_ft_word" = "CMCC" ] \2 B) x% x$ `' R, m
|| [ "$var_cfg_ft_word" = "CMCC_BUCPE" ] \
4 Q1 D/ S# J5 _  ~- |' Q|| [ "$var_cfg_ft_word" = "CMCCWIFI" ] \- ^' ~5 g" v7 L& C4 l
|| [ "$var_cfg_ft_word" = "CMCC_RMS" ] \, r3 S+ i  M% [1 P6 `* ?- C4 ]
|| [ "$var_cfg_ft_word" = "CMCC_RMS2" ] \
" e0 t9 o3 ^0 j# I6 }|| [ "$var_cfg_ft_word" = "CMCC_RMSWIFI" ] \$ u) H# K6 b3 ^  o5 w9 a0 B
|| [ "$var_cfg_ft_word" = "CMCC_RMS2WIFI" ] \
$ ~" S; V: h2 l1 ]" {: G% n# s|| [ "$var_cfg_ft_word" = "CMCC_RMSBRIDGE" ] ; then! S' y7 E* |, [( @/ ?& z9 R* u
{
9 x, B0 U- e' p! `4 I; ?4 f        #HW_Customize_Add_Choose
( o# N# k# H. m* @        if [ "$var_cfg_ft_word_choose" = "CHOOSE_" ]; then
) W' p$ _' n+ @; p, F) q0 L                HW_Customize_Set_Choose "$var_cfg_ft_word"" Q! m3 k4 i/ p1 [5 X" L
        elif [ "$var_cfg_ft_word" = "UNICOMBRIDGE" ] ; then
* |! j. W6 _- k                HW_Customize_Set_Choose "CHOOSE_UNICOM"        8 |6 k. `. m) Z2 `6 W5 F3 C
        elif [ "$var_cfg_ft_word" = "BZTLF2WIFI" ] ; then
% I) h0 d5 ^( u$ \2 v" t9 V" d2 S* X                HW_Customize_Set_Choose "CHOOSE_BZTLF2"" h7 O- z7 z9 w3 ]
        elif [ "$var_cfg_ft_word" = "CMCC_RMSBRIDGE" ] ; then
- @; o% {+ H1 t" u" Z- k+ `2 ^8 a                HW_Customize_Set_Choose "CHOOSE_CMCC_RMS") |- D0 S0 a9 r9 R2 w9 M
        elif [ "$var_cfg_ft_word" = "CMCC" ] ; then7 Y. G* Z+ Y  `1 u
                HW_Customize_Set_Choose "CHOOSE_$var_cfg_ft_word"
4 u8 p! R& D* b        elif [ "$var_cfg_ft_word" = "CMCCWIFI" ] ; then
- M& u6 B. m5 s9 g6 Z9 p  H" Q- `                HW_Customize_Set_Choose "CHOOSE_CMCC"8 B$ I! F1 x2 G& ~) |
        elif [ "$var_cfg_ft_word" = "CMCC_RMSWIFI" ] ; then
6 R9 J7 [/ ^+ J- z+ M" R0 _5 Y                HW_Customize_Set_Choose "CHOOSE_CMCC_RMS"
2 w6 o4 N/ D" q1 f5 w        elif [ "$var_cfg_ft_word" = "CMCC_RMS2WIFI" ] ; then4 |/ s0 ]7 }  e8 p- y. U- Q; @
                HW_Customize_Set_Choose "CHOOSE_CMCC_RMS2"2 L: w! `2 g3 d9 n3 \. s
        elif [ "$var_cfg_ft_word" = "CMCC_BUCPE" ] ; then  g/ t, L$ {9 U: p4 d
                HW_Customize_Set_Choose "CHOOSE_CMCC_BUCPE"% O& l8 W% a! q
        elif [ "$var_cfg_ft_word" = "UNICOM_BUCPE" ] ; then9 `" N8 i! j1 A' J& B
                HW_Customize_Set_Choose "CHOOSE_UNICOM_BUCPE"
1 D$ `3 v8 q5 @        else' |9 [. Y- A5 e
                #COMMON/UNICOM定制只有HGU支持免预配置
8 K. g- S# p% L+ V                if [ $var_is_HGU -eq 1 ]; then' f7 q/ R0 m, S8 `; I" n
                        HW_Customize_Set_Choose "CHOOSE_$var_cfg_ft_word"
9 P: p* q: [$ ^                else. Q4 e# a/ `- Z4 Y
                        HW_Customize_Set_Choose ""* ?8 L5 Y5 ?! \
                fi! e# I6 B" }6 {- w! f
        fi
! k' r$ b" U  W" J; V! E}
/ P; E2 Q/ J. Jelse
: K) m( s/ u0 Z; V{, `+ s& S5 _% `& A- E% H
        HW_Customize_Set_Choose ""
% n2 b6 _* h9 `" e3 \1 S: z& W}
1 u& y. A8 y$ R6 ?5 |# w% k. y3 Lfi+ p6 S5 A) `) x: c' N

# H2 p6 E3 w1 M$ `$ A/ ?HW_Customize_Check_Resource $var_input_para0 a" j) Z! n! H- x
[ ! $? == 0 ] && exit 1
2 f9 k3 Q) ?% a2 X$ q. s6 p& |& `$ Z7 Y6 a! u7 X# `+ p
# 结果输出
' s% U/ d# M2 ZHW_Customize_Print_Result $var_input_para* M7 O; B4 w. v9 L- T
[ ! $? == 0 ] && exit 1
  Y$ r' p8 V9 k: O9 P
4 G9 P9 c9 ?! O" P# t/ i#定制处理
2 u0 I( [( m, l/ @HW_Customize_Delete_File
) F" ]3 i- o  }1 S$ ^- Vecho > /var/notsaveboardinfo5 p4 o: m- ^2 Y7 T9 q) y& v0 u1 r3 G
sync9 o6 X+ E1 \7 m9 a; h' \. j
echo "success!" && exit 03 d5 J) B8 W7 T& E0 k; a' e( c4 u
8 g+ p; ?. C- I+ ^3 V9 Z6 ?# k
-----------------------------------------------------------
3 S. j: T# w9 m% Q  B
; u% j4 Q$ p2 d- T附上下载地址
( ^( r$ K7 I1 p: P3 s
: G; ~7 I/ c! F$ N

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2018-3-26 01:04:05 | 显示全部楼层
customize.sh COMMON TELMEX SSID WEP_KEY PPPoE_user PPPoE_pwd TR069_user TR069_pwd WEB_pwd CLI_user CLI_pwd  WPA_pwd
3 I) y8 g9 [5 H1 V# M* ]0 e: {" f这个是光猫内部定制的参数命令
发表于 2018-3-26 01:43:09 | 显示全部楼层
我手工刷的停在itms验证上了 过两天试试楼主的
发表于 2018-3-26 06:17:51 | 显示全部楼层
支持楼主,收藏备用
发表于 2018-3-26 08:35:53 | 显示全部楼层
搞,大,上。强烈支持技术贴
发表于 2018-3-26 08:42:12 | 显示全部楼层
win10装个linux子系统可以直接调试修改,或者一个Windows下的git编译器
发表于 2018-3-26 09:41:02 | 显示全部楼层
请教下你们用什么修改.sh执行脚本。- ^$ Y; y9 L& ]2 V- d, Y" U
我用Notepad++修改 后无法执行  都是添加的简单的命令 rm,tar,cp之类的基本命令 没发现语法错误
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|宽带技术网 |网站地图 粤公网安备44152102000001号

GMT+8, 2025-6-20 13:13 , Processed in 0.038202 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表