|
hs8546V的恢复出厂命令(restorehwmode.sh)分析; L% X5 \- ~) r y7 {+ Z
0 d( f. H+ }8 Y6 Y3 p- v如下restorehwmode.sh这个命令的全部内容
+ j6 I$ ?7 Z$ S- #! /bin/sh9 E) e% h# f. X$ P* G3 ?( g
$ w- i! g( n7 f- #set hw parameters
1 M8 l; N- B4 C+ s2 g* e - #copy etc/wap/hw_default_ctree.xml to /mnt/jffs2/hw_ctree.xml
: A1 g4 M, f8 a* E/ `% l - #set the spec para, D; y! W- J* `
. i" B4 I8 M/ S5 ~- var_default_ctree=/mnt/jffs2/hw_default_ctree.xml;% N9 \; m$ o. k2 R5 S0 G
- var_ctree=/mnt/jffs2/hw_ctree.xml
2 W$ Z/ ~2 z D7 ?3 ? - var_customize=/mnt/jffs2/customizepara.txt
* o' N( u! y# X$ S1 I - var_bms_prevxml_temp="/mnt/jffs2/hw_bms_prev.xml"; V/ K' N+ h' a' M: d) W+ y, y
- var_bms_oldcrc_temp="/mnt/jffs2/oldcrc"
9 w" p4 V7 e6 X - var_bms_oltoldcrc_temp="/mnt/jffs2/oltoldcrc"
- ]% B) f: K6 h4 e - var_bms_prevcrc_temp="/mnt/jffs2/prevcrc"% ] I6 `. r/ l" _
- var_bms_oltprevcrc_temp="/mnt/jffs2/oltprevcrc"
3 E1 Q6 V( x/ G - var_bms_oskvoice_temp="/mnt/jffs2/hw_osk_voip_prev.xml"( s; d' i' @2 r& C
- var_rebootsave="/mnt/jffs2/cwmp_rebootsave"* i$ r5 O$ M( Y ?! M1 V
- var_recovername_temp="/mnt/jffs2/recovername"
/ W9 D5 ~6 B& ] - var_usr_device_temp="/mnt/jffs2/usr_device.bin"
$ q& b6 i. h' [ - var_ftcrc_temp="/mnt/jffs2/FTCRC"
3 Z. n) `) e" {% ]7 I# R2 a - var_ftvoip_temp="/mnt/jffs2/ftvoipcfgstate"+ }- s+ o3 u# p5 L
- var_dhcp_temp="/mnt/jffs2/dhcpc"* W7 K8 n4 j9 p- Q4 H8 \# j- g
- var_dhcp6_temp="/mnt/jffs2/dhcp6c". u g0 h# \" e* e6 U
- var_DHCPlasterrwan1_temp="/mnt/jffs2/DHCPlasterrwan1" f) Y D) M" z2 p
- var_DHCPlasterrwan2_temp="/mnt/jffs2/DHCPlasterrwan2"5 m. g$ y8 v3 ~7 ~- J2 k" @+ [
- var_DHCPlasterrwan3_temp="/mnt/jffs2/DHCPlasterrwan3"% _2 C4 {5 m3 q, {: _% w
- var_DHCPlasterrwan4_temp="/mnt/jffs2/DHCPlasterrwan4"
* K2 Q6 b, z' r1 v" B - var_DHCPstatewan1_temp="/mnt/jffs2/DHCPstatewan1"
* Q- g* n( k7 o+ J1 \9 H" U7 a - var_DHCPstatewan2_temp="/mnt/jffs2/DHCPstatewan2"
+ z1 c z) ~. \# h5 r; N - var_DHCPstatewan3_temp="/mnt/jffs2/DHCPstatewan3"
* f# J. n$ A( ?* _ - var_DHCPstatewan4_temp="/mnt/jffs2/DHCPstatewan4"
- `, w( ` T$ U2 `3 A! Z2 l - var_DHCPoutputwan1_temp="/mnt/jffs2/DHCPoutputwan1"
/ M* _9 o) [3 S1 I( S - var_boardinfo_file="/mnt/jffs2/hw_boardinfo"1 e/ A- ?7 }- y- J4 P
- var_boardinfo_bakfile="/mnt/jffs2/hw_boardinfo.bak"8 _$ H) {5 v& }8 o- c
- var_boardinfo_temp="/mnt/jffs2/hw_boardinfo.temp"% K u/ X6 }& Q+ {3 j+ l& A/ G
- var_jffs2_customize_txt_file="/mnt/jffs2/customize.txt"6 s1 }; N) C2 _5 j* F, G
- var_jffs2_choose_xml_dir="/mnt/jffs2/choose_xml"
- `5 U/ b& N4 R6 S1 f: U- _: e - var_jffs2_choose_xml_tar="/mnt/jffs2/choose_xml.tar.gz"* N& }/ P: A$ x. O# K
- var_jffs2_spec_file="/mnt/jffs2/hw_hardinfo_spec"9 q& v0 |# U6 s+ C! ]
- var_jffs2_spec_bak_file="/mnt/jffs2/hw_hardinfo_spec.bak"
; T: m% z% h; b/ [" ^4 t - var_jffs2_feature_file="/mnt/jffs2/hw_hardinfo_feature"
7 \0 i/ n* B1 n: @3 i( t5 ~$ | - var_jffs2_feature_bak_file="/mnt/jffs2/hw_hardinfo_feature.bak"
3 }2 F+ M6 \( |: y+ w w1 v- p - var_jffs2_hardinfo_para_file="/mnt/jffs2/hw_equip_hardinfo"
) x" I: _9 M6 I7 L W- ` - var_ontfirstonline_temp="/mnt/jffs2/ontfirstonlinefile"
! {! _4 t# U$ K- X - var_dublecore="/mnt/jffs2/doublecore"
' |3 Y! _* m& h# o [. W" C9 p2 g - var_customize_telmex=/mnt/jffs2/TelmexCusomizePara
( x+ d/ H+ j2 b: G& T% ^ - var_customize_dir="/mnt/jffs2/customize"
1 R2 k+ V t" j$ p - var_smartshowbssguide="/mnt/jffs2/smartshowbssguide"
* v9 i8 X3 e# o$ v; |4 L - var_smartshowuserguide="/mnt/jffs2/smartshowuserguide"6 n, l/ @) X5 `: c" e1 ~
- var_old_ctree="/mnt/jffs2/hw_old_ctree.xml"
+ y' X; G! E e( O+ P: h8 s+ M" }2 K - var_ctree_bak="/mnt/jffs2/hw_ctree_bak.xml"1 o7 K- j; _( E# t t, t) U
- var_cfgbackup="/mnt/jffs2/CfgFile_Backup"% l" x. W. P! S
- var_PrimaryDir="/mnt/jffs2/PrimaryDir") e/ e9 W# g1 V5 X
- var_p2p_dhcp_file="/mnt/jffs2/p2pdhcpboot_prev.ini", u! E I: L0 a
- var_jffs2_hardversion_bak_file="/mnt/jffs2/hw_boardinfo.bak"8 d' R! N9 D- y5 _# G
- var_jffs2_specsn_file="/mnt/jffs2/customize_specsn"7 M3 D6 I9 W; _& L6 M9 i6 h
- E- h) J' o; X0 i- var_plat_root="/mnt/jffs2/platroot.crt" : n7 a2 w( q+ K7 e2 q: K
- var_plat_pub="/mnt/jffs2/platpub.crt". d, X8 j9 \$ V$ T
- var_plat_prvt="/mnt/jffs2/platprvt.key"
, q; ^0 p$ d, m* u f4 Y
5 g' r2 h6 P+ V- # remove plugin files # a( ^$ L& M7 M" F$ z7 Q2 P
- HW_Script_RemovePluginFile()/ }- }/ S4 m0 N$ o) q T
- {
- O$ C. ~3 ^! R+ |0 u F5 k4 n& m: D - #通过特性开关来决定删除哪些插件3 H f6 k* F9 w; T( ]5 Q. E8 l) U, W5 o
- var_feature_enble=`GetFeature HW_FT_OSGI_JVM_FROM_VAR`
+ C0 \ Y- A+ a% G8 ] - if [ $var_feature_enble = 1 ];then# g* l2 E3 D$ N4 E/ I: Q; j& K
- rm -rf /mnt/jffs2/app/osgi/felix-cache;
8 w& E" S2 W. w' j; m - rm -f /mnt/jffs2/app/osgi/prebundlestatus.info;0 r# u8 W* e1 p% S
- rm -f /mnt/jffs2/app/osgi/dlna.jar;5 ~( w# A& \" [$ I2 g1 |9 }
- rm -f /mnt/jffs2/app/osgi/samba.jar;
8 {# f1 s4 \& N5 F+ u( o - else% Q8 n' A% [* {% z- O
- rm -rf /mnt/jffs2/app/osgi/* ;% O( Y4 L! v, k6 b( A7 |' {" k- y
- fi8 Y0 v K# h; J f# P' A# j% z8 q/ A
- rm -rf /mnt/jffs2/app/cplugin/* /var/cplugin/*;* Z2 c4 l! z8 n; L
- }
/ l; q" J6 `! x$ \' Z* ? - - z/ c) p, N$ K8 s
- # remove files
3 E2 c8 e5 k7 b- p' ]1 X - HW_Script_RemoveFile()
8 j/ a$ j& }2 T- j: ` [) e - {' d# U' Y( M8 f
- rm -f $var_default_ctree6 |+ F9 q* g% f$ Q
- rm -f $var_ctree
0 X$ e s3 U9 A# D - rm -f $var_customize
[# c0 f+ N% z4 a3 a% i. ~ - rm -f $var_bms_prevxml_temp
1 q4 j; k' L+ A: N* a$ K - rm -f $var_bms_oldcrc_temp
3 S' R3 N& e; y1 ^$ }4 Q - rm -f $var_bms_oltoldcrc_temp
' _* J ~( o" H& z - rm -f $var_bms_prevcrc_temp
9 K J, e8 v3 V: o3 _. i - rm -f $var_bms_oltprevcrc_temp
: a3 U& g9 d6 n& H' ? - rm -f $var_bms_oskvoice_temp1 j) m# Q) k/ w
- rm -f $var_rebootsave! e( ?7 M7 N" u% v
- rm -f $var_recovername_temp2 }) a, ^3 {, Y$ L
- rm -f $var_usr_device_temp1 a7 t% p4 N/ N6 G
- rm -rf $var_ftcrc_temp
9 b- ^- Y4 O* S0 H# Q - rm -rf $var_ftvoip_temp; k, p7 o; ]: u3 {
- rm -rf $var_dhcp_temp
. U% }- V% i, a: C3 W/ P% o - rm -rf $var_dhcp6_temp
T5 |3 X4 z4 G% B$ X3 x. m - rm -rf $var_DHCPlasterrwan1_temp
% Q9 ?& v+ i, C. n: j% _ - rm -rf $var_DHCPlasterrwan2_temp, k R7 e( j6 p8 j
- rm -rf $var_DHCPlasterrwan3_temp
& n8 F* F6 e3 P; Z0 c( i - rm -rf $var_DHCPlasterrwan4_temp$ W! K: m) @. D& |/ n. N
- rm -rf $var_DHCPstatewan1_temp* [8 l% A0 A% B5 Z& B, Q* T
- rm -rf $var_DHCPstatewan2_temp" z5 m/ S" ]* ?0 f9 h5 `3 e; D
- rm -rf $var_DHCPstatewan3_temp
- `7 y0 j) s9 f6 L& \. F' U% ? - rm -rf $var_DHCPstatewan4_temp9 s0 e- _0 ~9 v- [. x' B
- rm -rf $var_DHCPoutputwan1_temp
8 l. [* U. w2 f: i; k8 J - rm -rf $var_jffs2_customize_txt_file
# ]3 b8 J/ C @& G0 e3 F& J. q - rm -rf $var_jffs2_choose_xml_dir$ l7 O+ m8 T2 v; t0 k X/ X$ u+ p
- rm -f $var_jffs2_choose_xml_tar Z% |& q- b$ B! B1 \ {! k* u
- rm -fr $var_jffs2_spec_file
2 d7 L5 ^" W7 n9 \, z - rm -fr $var_jffs2_spec_bak_file d( F; w' u- i
- rm -fr $var_jffs2_feature_file
/ H% g1 f( v* G, g - rm -fr $var_jffs2_feature_bak_file8 _# @6 I4 x3 @1 j, e2 N8 z' R0 n
- rm -fr $var_jffs2_hardinfo_para_file9 Q9 a' O7 T& W3 x4 o/ D' ~
- rm -fr $var_ontfirstonline_temp& K1 f' V9 Y [- F" l
- rm -f $var_dublecore% i5 ]$ x( ?6 y, e$ ?! z
- rm -f /mnt/jffs2/simcard_flowflag0 y" g2 q5 n A1 }8 p
- rm -f /mnt/jffs2/simcardreadflag
- n: R- u/ ^1 P - rm -f /mnt/jffs2/typeword7 T5 j' ?6 Q! X# v. p, n) N, Y
- rm -f $var_customize_telmex+ g+ B$ L0 o# I' x1 c
- rm -rf $var_customize_dir
9 y: \4 G: D; w' C+ R+ _8 h( j5 ~ - rm -f $var_smartshowbssguide
$ _. Q, F* F0 x2 k, H2 `8 j& Y4 V - rm -rf $var_smartshowuserguide% f) D H: o7 l, ^, b5 q* Z; q
- rm -fr $var_old_ctree# P" z2 D0 |$ P) c: F
- rm -fr $var_ctree_bak' T" C B* K; s* [3 s Q4 e
- rm -fr $var_cfgbackup6 ?+ K* K- U8 f1 J
- rm -f $var_jffs2_hardversion_bak_file! S' b7 e5 b- I0 g
- rm -rf $var_PrimaryDir. g8 s8 J8 H7 F
- rm -rf /mnt/jffs2/p2ploadcfgdone& b4 E2 t) U2 {) S
- rm -rf /mnt/jffs2/dhcp6c
! I, G* b- C2 z' N5 m - rm -rf /mnt/jffs2/dhcpc
: \: U3 c( V4 w1 @; v - rm -rf /mnt/jffs2/onlinecounter
1 B C5 P# F# J/ i6 r* L# C - rm -rf $var_jffs2_specsn_file6 n9 y, l; H" e" J: Y
- rm -rf /mnt/jffs2/reboot_bind_tag
+ Q* k# [# b$ I Z6 K2 c! M: L! ~% R - rm -rf $var_p2p_dhcp_file
" J$ }5 y/ C" g E6 Z) S - ) a( ~) O+ e+ U1 x
- rm -rf /mnt/jffs2/app/osgi/*
1 c# Y( o8 ?: \& t) P! {6 P/ R - rm -rf /mnt/jffs2/app/cplugin/*
# E, C# c! w" K9 K' c$ Z V' \: {! _ - 6 P0 C" {! D# j8 S& L* z
- rm -f /mnt/jffs2/smooth_finsh! A! t6 H' y. K8 ]$ `! X
- rm -f /mnt/jffs2/gdstbmac.bin# u1 s- L3 J* C t% x
- " p- l8 L+ z: R. z$ [1 Z8 n5 H
- rm -f $var_plat_root6 n% Z" O1 U" [3 O) }/ \
- rm -f $var_plat_pub
" L* Y& _7 U# f; r* E+ p$ t: j - rm -f $var_plat_prvt
7 R" v0 n* f3 x% |& r4 _- T
- q5 e7 A( q: I7 Y L$ l5 x% S- HW_Script_RemovePluginFile
3 _$ I- G$ j t- s - return
0 P. Q4 R" q7 T$ C - }
# l0 `( }) @" m* W k
5 Y6 N$ z1 G. p/ Z- #creat files
( e$ x D8 J6 g: Q% U% k6 x) _ - HW_Script_CreateFile()' ]) i6 z, [2 j2 L. c
- {
+ [* Y) E3 M/ c: E0 u1 A: { - var_telnet_flag=/mnt/jffs2/ProductLineMode
4 A% \* w) g U+ @( S3 Y
" W, r; p M1 y0 l- echo "" > $var_telnet_flag, h+ m6 v: |% M+ a2 V3 B
- if [ 0 -ne $? ]
" H0 `! [9 L- C! q( M% {" v - then
! f7 m, V+ D! @- F& A+ m1 u+ R - {
' H0 T0 B, k/ H" a6 z - echo "ERROR::Failed to create telnet flag!"9 o6 l$ ]& s& C: v: ?2 p
- return 1: Y* G. x& c$ c) k/ R \
- }
4 j* t( E0 r/ `) K7 b/ M" x - fi
( S# Z1 J' B& ?# p$ _8 \ - . a' m' e" O5 e& x0 R
- return 04 S" \# q2 }/ s* p
- }0 y; C. P: n( w6 {2 |" t
6 b8 o6 D* S8 |3 S/ x U- # copy files0 c. Z" X( t9 X! E
- HW_Script_CopyFile()
6 R, N( |! O1 l' ?* m - {
' e/ @$ z0 F) F" b- T/ S, B9 i - var_etc_def=/etc/wap/hw_default_ctree.xml; @0 @3 X' R Y# R* b# D
-
( q1 v, M8 z' v4 f% c$ Y1 a$ L1 @ - #增加延时,确保DB不保存
" Q+ h! z: z; _0 S7 J - echo > /var/notsavedata
$ ]( U$ D! o* @" l# C3 [ o - sleep 13 E) C" s# t4 S
& r- \ f8 B3 l- C( c$ o" l- cp -f $var_etc_def $var_ctree* ^) X6 j2 R. i& a5 \
- if [ 0 -ne $? ]
4 C6 f4 D0 P$ w. p: M! Z0 N - then
$ m8 x% k+ @ R8 z; R5 k - rm -rf /var/notsavedata
0 |, X, _* N' S7 u( ^' A! \ - echo "ERROR::Failed to cp hw_default_ctree.xml to hw_ctree.xml!"
! i3 Q7 T6 N+ P. h) p# ? - return 1# c: `, j, s! T. U4 ^
- fi* a3 i6 R8 h, x+ i7 @" I) i
- / P- O$ k% K7 H5 r( `* D5 z
- return
4 R+ C0 E3 L2 O0 b$ D$ U1 X - }
4 T. g8 ]$ @7 C+ ]3 _6 |5 \ - ' b( u l8 c: F6 l: X* | Y
- # set spec data- n$ \) D- Z k
- HW_Script_SetData(); ?7 A7 l6 K$ e3 P
- {8 `; Q" X! B+ K% v
- cat $var_boardinfo_file | while read -r line;! H: D5 g$ z, b# ~! S& H+ H
- do
2 _3 m: _1 n3 j# ? - obj_id_temp=`echo $line | sed 's/\(.*\)obj.value\(.*\)/\1/g'`& B3 s( H+ {9 f' e$ q$ F! F2 [
- obj_id=`echo $obj_id_temp | sed 's/\(.*\)"\(.*\)"\(.*\)/\2/g'`+ m# O5 K6 f _3 \7 Z# T
- 7 N9 r3 G/ X: ?1 Q
- if [ "0x00000003" == $obj_id ];then
. M. e! o5 ~* ~- P8 a; X - echo "obj.id = "0x00000003" ; obj.value = "";"3 n& @1 y6 V: ]8 D1 ~+ u
- elif [ "0x00000004" == $obj_id ];then7 Q5 y4 V8 g- k, x
- echo "obj.id = "0x00000004" ; obj.value = "";"7 `: b1 g/ _; Y
- elif [ "0x00000005" == $obj_id ];then m' \, ?1 M9 T9 a3 J
- echo "obj.id = "0x00000005" ; obj.value = "";"' _" v q( k7 H7 R
- elif [ "0x00000006" == $obj_id ];then& O4 \6 R' s. U ?
- echo "obj.id = "0x00000006" ; obj.value = "";" C W9 ~$ v8 s2 b0 T
- elif [ "0x00000016" == $obj_id ];then
/ u% [1 O8 M' R- a - echo "obj.id = "0x00000016" ; obj.value = "";"& t |& {8 R- R) e# @4 p; S
- elif [ "0x0000001a" == $obj_id ];then- |+ ~1 d, o$ _
- echo "obj.id = "0x0000001a" ; obj.value = "COMMON";"4 p+ N# G1 l! Y8 M6 T# @! b
- elif [ "0x0000001b" == $obj_id ];then
8 [4 P4 ?! M! [# X) ?9 C3 i5 I - echo "obj.id = "0x0000001b" ; obj.value = "COMMON";"& P7 F3 ^7 k5 Y) u& {0 n& A
- elif [ "0x00000019" == $obj_id ];then
6 \: h) Y {% o) S; W3 i* D - echo "obj.id = "0x00000019" ; obj.value = "";"
' _" G, O/ s, k' c F2 w - elif [ "0x00000020" == $obj_id ];then( H2 e. }# z" h
- echo "obj.id = "0x00000020" ; obj.value = "";"
+ q& J2 A+ a6 X/ z! V - elif [ "0x00000031" == $obj_id ];then
9 s4 s$ T4 r9 V8 q1 y- |8 f. @, t - echo "obj.id = "0x00000031" ; obj.value = "NOCHOOSE";"
) ^% [/ W& m! b/ l. O: l - elif [ "0x00000035" == $obj_id ];then
0 m4 \/ y2 a% V* X' r! \" U9 i - echo "obj.id = "0x00000035" ; obj.value = "";"
- _8 |6 k9 e/ {' y# W - elif [ "0x0000003a" == $obj_id ];then8 }4 ^9 R8 t7 p; \
- echo "obj.id = "0x0000003a" ; obj.value = "";"
& q7 Y6 t$ k" X - else/ i: y i7 B& {0 u
- echo -E $line6 T2 o) T% h4 ]. ?, m* ?
- fi# ?! V% O6 B' ?
- done > $var_boardinfo_temp
! T# [$ Y" J6 e/ Y! U5 }% _7 l
* h; n% Z6 ~) P( K" D- B5 c2 N8 a# e- mv -f $var_boardinfo_temp $var_boardinfo_file* @/ x2 k. i; f; l6 B8 c% l( q7 N( a( @
! ^6 T. S, D" f- return' {' w4 g% U7 x4 J5 t' _1 q
- }
3 U/ b! V1 `8 v9 ? - 1 o. w; b1 g0 x. o4 y
- # 刷新boardinfo文件的crc行
+ ?5 i% I8 i* |- z5 K- s& I: l - HW_Customize_ValidateBoardinfoCRC()
2 J0 a: t7 w4 R; M - {- g4 F4 p$ B$ o P; @9 ]1 d
- if [ -z $1 ]; then
" S: C" ^3 k/ ~/ D - return 0% O* ?; Q+ e9 F, N9 f: V
- fi' J: |& j# f3 V' A3 B! `! O
- if [ -x /bin/factparam ]; then4 r4 x9 D, J8 M
- /bin/factparam -v $15 b6 ^; o9 h4 u, X8 M
- if [ 0 -ne $? ]; then8 b( ?+ u/ A1 E8 h' C& Z: m7 b! o( @
- echo "ERROR::Failed to validate boardinfo crc on $1!"
3 F; b3 K) B. r: q% D - return 11 i9 N. z% _& V5 T; T3 M; [3 h
- fi! O$ U. ]* l$ ^, x
- fi
K8 l# y3 S: ~) ?& ] o8 h - }: G9 U, y7 O5 p& w- Y% x
2 ^" O8 ~8 G3 p9 C4 J- # 清除出厂参数备份
& D3 A! q0 N: q3 p& ?& Q - HW_Customize_ClearFactoryParamsBackup()# H/ W$ E; v0 W$ n
- {9 l: |3 F- \, ^: h, ~
- if [ -x /bin/factparam ]; then
! E8 O) U- q+ D9 k% X( [ - /bin/factparam -e reserved
) P8 e0 H* s- W; a ]. n3 x6 | - if [ 0 -ne $? ]; then
( B1 R. G1 Q! y% j - echo "ERROR::Failed to clear factory parameter backup area!"7 Z+ Y9 c* I+ O! i+ _. v6 _3 w
- return 1" c# m4 ~. j7 h0 y, ?
- fi9 y$ [" S9 ]. v J3 F
- fi) i7 n$ W' M3 [* Y
- }+ [+ P( q$ Q% P; H9 G
; F" D5 T: @/ S3 B) Q" E0 T- if [ 0 -ne $# ]; then) ?5 }& I4 }+ h H0 u6 z
- echo "ERROR::input para is not right!";! v X- w* O1 `( {
- exit 1;$ b, \* W, x" E E6 y5 |( H: a
- else
! N" l7 K- ]) p3 X; S8 G: E1 G - HW_Script_CreateFile2 R: y' f5 d6 \% j
- [ ! $? == 0 ] && exit 1
, V" A7 V2 r+ S; X. | - 3 L6 Z* ^# w A* }7 w/ d
- HW_Script_RemoveFile
y f+ w+ ~$ _& ^' i" m- P* S7 W - [ ! $? == 0 ] && exit 1
1 l6 \. _6 c. k3 v, O; z0 \8 R7 _ - 6 E4 c" R7 Q: f A% I2 r
- HW_Script_CopyFile+ b! {% k9 r3 k
- [ ! $? == 0 ] && exit 1* C1 g+ [+ U" a9 [0 L y- E; ^
* w- s8 W& K1 Q, `6 _- HW_Script_SetData# [% `2 P- Q) o2 D) D- I
- [ ! $? == 0 ] && exit 1
# k" P& _! `! E, x7 s. s$ k - - }" A3 K, q, h: W1 V2 ?
- rm -rf $var_boardinfo_bakfile
3 s! _& |6 v. e# X
6 G2 U! S0 U: V T0 M1 {* [- ctrg_support=`GetFeature HW_SSMP_FEATURE_CTRG` b- f6 M( l1 ]9 \
- if [ $ctrg_support = 1 ] ;then- n: {9 A* ?4 v: [
- dbus-send --system --print-reply --dest=com.ctc.saf1 /com/ctc/saf1 com.ctc.saf1.framework.Restore > /dev/null
% B% X% S8 B& b* G* b( U. b1 I2 o - fi5 R! A8 t5 d% c+ z1 R
- : W T. [- I8 n. b7 ^( M
- # 必须刷新boardinfo文件的crc行,并且清除reserved分区的出厂参数备份( c8 v4 G+ ~9 w5 m
- HW_Customize_ValidateBoardinfoCRC $var_boardinfo_file$ u) m' {* `# E% a9 d4 D+ N/ r- M+ v
- [ ! $? == 0 ] && exit 1
2 Z/ R1 ?$ c# u" X' E! {# q F - HW_Customize_ClearFactoryParamsBackup6 e' W7 i/ _) T
- [ ! $? == 0 ] && exit 1
& d/ W0 @+ z- u, b: B+ u
6 B% S. U5 {9 W/ J- echo "success!"
- q" ^; r# T1 H+ Z4 D
* J2 j. H: ^' F5 q- exit 0
+ R; R0 P m" x+ A* f! u. ` - fi
) Y6 y0 G- v4 C+ F! `2 T
复制代码 第一部分的etc/wap/hw_default_ctree.xml ,文件附后,% O! }0 v: @) o" }5 d. ~
7 a3 P* C# A' t$ J+ bhw_default_ctree.xml这个文件也就是恢复命令后jffs2下的hw_ctree.xml文件,内容大家可以参考下
; R3 [& q+ ^/ _8 I1 Z. c; }3 D7 r7 |) A1 O8 O$ z1 }( r
4 m# [% ~8 ^: n" _$ m中间部分的含义见https://www.chinadsl.net/thread-131336-1-2.html,也就是hw_boardinfo文件内容
, A& d# W1 G; I4 } S) G( L+ q g3 W2 p9 l" f# B% t
至于jffs2/app的内容,恢复命令后删除,直接删除app数据
% c) }+ ^: n* T7 I: o# }4 j3 N5 {9 M* ]4 O% d
这也就是为什么使用命令后,大家手机上使用天翼网关app不能连接光猫的原因; A. A* m6 |4 x7 S( b4 a5 j4 @
" K0 W& V u) _
" m( [6 X; E; E$ E# {至于其他内容,欢迎各位继续探讨
5 n! |, B! g8 O4 u! U- S
U* L$ F! H# ?0 P' M' D: m- e; C$ o( @8 X/ A0 b- t$ T
' [# s$ G y% |' s Y |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|