|
hs8546V的恢复出厂命令(restorehwmode.sh)分析
% A! c t0 V2 |$ r& k$ ^! x: M N# x$ M1 |
如下restorehwmode.sh这个命令的全部内容
1 x8 u) c7 C4 d- #! /bin/sh
2 x+ s4 I2 _ m1 ?# l - / y- z* k( n7 x
- #set hw parameters) s% R2 ^$ O K9 K. Z
- #copy etc/wap/hw_default_ctree.xml to /mnt/jffs2/hw_ctree.xml' g# l6 G4 D# U, o3 `0 X
- #set the spec para
' `& {+ \6 d; S6 b - " ^, `% d0 I) T% a+ r' g6 L
- var_default_ctree=/mnt/jffs2/hw_default_ctree.xml;: v4 H$ H# a8 W3 Y8 @. K
- var_ctree=/mnt/jffs2/hw_ctree.xml
" a7 [4 S8 O+ u3 W* g - var_customize=/mnt/jffs2/customizepara.txt
# E$ z/ | E+ w# l+ v - var_bms_prevxml_temp="/mnt/jffs2/hw_bms_prev.xml"
' f! |; k# ^! K4 V - var_bms_oldcrc_temp="/mnt/jffs2/oldcrc"
; Q( F4 v4 B. v* x" A+ M1 F - var_bms_oltoldcrc_temp="/mnt/jffs2/oltoldcrc"
0 u Q2 h% R4 y5 J) j1 b - var_bms_prevcrc_temp="/mnt/jffs2/prevcrc"
! @6 L6 _2 l" d7 }) J - var_bms_oltprevcrc_temp="/mnt/jffs2/oltprevcrc"3 f/ a( l& v/ F
- var_bms_oskvoice_temp="/mnt/jffs2/hw_osk_voip_prev.xml"
1 E! L- z* R1 w$ ^% [3 z - var_rebootsave="/mnt/jffs2/cwmp_rebootsave"
) f+ F7 ]: [8 g" V6 E - var_recovername_temp="/mnt/jffs2/recovername"
) z t( M5 S9 `" i+ q$ T - var_usr_device_temp="/mnt/jffs2/usr_device.bin"
5 [' X1 _; y( P" `( |5 `- g) Y - var_ftcrc_temp="/mnt/jffs2/FTCRC"1 O* Y W# x7 q5 ?# v
- var_ftvoip_temp="/mnt/jffs2/ftvoipcfgstate"
& y/ K1 s/ a4 `3 Q v: X& V - var_dhcp_temp="/mnt/jffs2/dhcpc"0 e) f- Z7 H) E( o0 V
- var_dhcp6_temp="/mnt/jffs2/dhcp6c"! N$ x& i6 U% A2 m
- var_DHCPlasterrwan1_temp="/mnt/jffs2/DHCPlasterrwan1"
3 C2 n; }+ {- l: ]; Z$ e - var_DHCPlasterrwan2_temp="/mnt/jffs2/DHCPlasterrwan2"+ m: ]' V" p, u- t. e9 I- n
- var_DHCPlasterrwan3_temp="/mnt/jffs2/DHCPlasterrwan3"5 ^/ W) h. \1 C; u( [
- var_DHCPlasterrwan4_temp="/mnt/jffs2/DHCPlasterrwan4"
4 I4 g) Y7 z, M% j - var_DHCPstatewan1_temp="/mnt/jffs2/DHCPstatewan1"# F0 _7 b. V) X8 j1 x0 L
- var_DHCPstatewan2_temp="/mnt/jffs2/DHCPstatewan2"2 c( C1 R6 Y3 I0 F- G' V
- var_DHCPstatewan3_temp="/mnt/jffs2/DHCPstatewan3"
, D. b% Q, `- z6 a - var_DHCPstatewan4_temp="/mnt/jffs2/DHCPstatewan4"9 d' c$ b2 j& E( T4 w
- var_DHCPoutputwan1_temp="/mnt/jffs2/DHCPoutputwan1"
- ^; Q5 M& D* I7 S - var_boardinfo_file="/mnt/jffs2/hw_boardinfo"' l- {% d7 l3 x& ^# I
- var_boardinfo_bakfile="/mnt/jffs2/hw_boardinfo.bak"
0 h$ ]- U0 l0 U U1 ]6 R! f' ~ \$ g - var_boardinfo_temp="/mnt/jffs2/hw_boardinfo.temp"% J- F, O y- N: f1 z ~7 S; h7 P% _# c
- var_jffs2_customize_txt_file="/mnt/jffs2/customize.txt"
9 e! t4 |& q) K4 ^& i& d3 X, O: z - var_jffs2_choose_xml_dir="/mnt/jffs2/choose_xml"( H" R6 C) U/ P! w
- var_jffs2_choose_xml_tar="/mnt/jffs2/choose_xml.tar.gz"7 g: ~8 l' a1 E% j% U
- var_jffs2_spec_file="/mnt/jffs2/hw_hardinfo_spec"
0 H9 @0 h' A/ i* ?* @ - var_jffs2_spec_bak_file="/mnt/jffs2/hw_hardinfo_spec.bak"
; y1 n6 E3 p. v/ \; g - var_jffs2_feature_file="/mnt/jffs2/hw_hardinfo_feature"4 v, M5 O/ G( S9 E: r6 X
- var_jffs2_feature_bak_file="/mnt/jffs2/hw_hardinfo_feature.bak"8 k, |- S: [% e4 h. m3 b
- var_jffs2_hardinfo_para_file="/mnt/jffs2/hw_equip_hardinfo"' n0 P- S5 M0 J0 v7 _4 |2 Q) g4 S
- var_ontfirstonline_temp="/mnt/jffs2/ontfirstonlinefile"
; r" e% o* S4 N) ?" d0 P - var_dublecore="/mnt/jffs2/doublecore"+ S, N4 x6 D: \+ \+ {
- var_customize_telmex=/mnt/jffs2/TelmexCusomizePara
! C$ X* N( e0 g - var_customize_dir="/mnt/jffs2/customize"# t2 B/ p/ }0 ^0 \) J1 J% n
- var_smartshowbssguide="/mnt/jffs2/smartshowbssguide"9 f1 b7 [& x7 n) ?
- var_smartshowuserguide="/mnt/jffs2/smartshowuserguide"
2 R _6 W) D2 e. C# ` - var_old_ctree="/mnt/jffs2/hw_old_ctree.xml"+ n+ K' M0 g, T9 B& M/ } a
- var_ctree_bak="/mnt/jffs2/hw_ctree_bak.xml"
& K. ?8 B5 U' @ - var_cfgbackup="/mnt/jffs2/CfgFile_Backup"
5 Y! K1 S, ?9 P: ` - var_PrimaryDir="/mnt/jffs2/PrimaryDir"3 M9 S' m5 E; J" ~% ~
- var_p2p_dhcp_file="/mnt/jffs2/p2pdhcpboot_prev.ini"9 {: S5 \5 h6 y# j' E f
- var_jffs2_hardversion_bak_file="/mnt/jffs2/hw_boardinfo.bak"
0 J% R# g% ^+ f; I, j( Y - var_jffs2_specsn_file="/mnt/jffs2/customize_specsn"
* N. n- j' o( e7 D - 0 p- F4 ^* o. {; k
- var_plat_root="/mnt/jffs2/platroot.crt"
- f! h" ~% v9 i* S) [# W2 K - var_plat_pub="/mnt/jffs2/platpub.crt": }" ~% y( k0 L: e! h+ h& S
- var_plat_prvt="/mnt/jffs2/platprvt.key"; I% H+ g y- p+ f; T
6 X* B# i* o; p% g0 @5 _: W- # remove plugin files : l: ^' j) X: q; z# C! {- s
- HW_Script_RemovePluginFile()
& l# }- z6 ?8 f+ x+ _ - {- }: U. \, J7 B* |0 w3 e
- #通过特性开关来决定删除哪些插件
0 K1 c6 w7 ? |0 M4 C) |) X - var_feature_enble=`GetFeature HW_FT_OSGI_JVM_FROM_VAR`
$ j( A1 Q1 c, Z S+ A8 }3 c - if [ $var_feature_enble = 1 ];then* q V0 i, {5 H2 K$ l: E7 o1 b
- rm -rf /mnt/jffs2/app/osgi/felix-cache;
' q4 M/ A6 Y. s3 T) _( V3 W - rm -f /mnt/jffs2/app/osgi/prebundlestatus.info;
) V x) G0 t0 {; ~' @9 E - rm -f /mnt/jffs2/app/osgi/dlna.jar;
! y2 I+ Y2 c; j& ?2 ?/ v6 m- Y' I - rm -f /mnt/jffs2/app/osgi/samba.jar;2 X8 T6 |% A3 R( R4 b; w4 T. W
- else y' K; K8 `* b' K( Q& Y
- rm -rf /mnt/jffs2/app/osgi/* ;" D+ ]6 U/ j' }# m. l
- fi' @. s' O; Y; m
- rm -rf /mnt/jffs2/app/cplugin/* /var/cplugin/*;
# u7 T5 M0 w% ~. V7 ]$ H - }
2 z; l6 N" p4 {2 \$ p& g) g T9 l& v - 2 D1 j" m8 V2 }7 ^; i! Q
- # remove files3 @( P5 W9 [+ I; a) U4 B
- HW_Script_RemoveFile()
# J/ t# c' ] t* b: m: w6 k - {
; T, v1 U2 [7 ^* p5 _: Q - rm -f $var_default_ctree% B' U3 h& A3 L- c
- rm -f $var_ctree
/ s+ [ X: J' R' h - rm -f $var_customize0 n$ |0 j% z7 r
- rm -f $var_bms_prevxml_temp
) ^. k/ r9 \$ v, g; ^3 d# V - rm -f $var_bms_oldcrc_temp
1 F% x; a& V& }+ [* ~ - rm -f $var_bms_oltoldcrc_temp
1 x7 _& X. F1 n/ T/ @2 r# \6 W" @ - rm -f $var_bms_prevcrc_temp
% o1 \4 m* A9 {) w4 p. A+ J+ K - rm -f $var_bms_oltprevcrc_temp# X* b& s* c6 K: u7 E
- rm -f $var_bms_oskvoice_temp3 M Q# a8 U8 U
- rm -f $var_rebootsave; W, r& M; T+ P0 ~( s
- rm -f $var_recovername_temp) z% r# A) D9 |# s: T* g! t. r+ ^
- rm -f $var_usr_device_temp
1 P5 d* Z0 c( D( y3 q7 H$ H - rm -rf $var_ftcrc_temp5 W9 ^" l0 V: `. Z( J
- rm -rf $var_ftvoip_temp
8 x+ ?( n; U6 O - rm -rf $var_dhcp_temp- X* C" y7 j; }8 y, @
- rm -rf $var_dhcp6_temp
9 N7 `0 k' E1 ^# C: J - rm -rf $var_DHCPlasterrwan1_temp
: G1 ~, w9 K @5 N - rm -rf $var_DHCPlasterrwan2_temp
7 `- V0 i$ p2 l - rm -rf $var_DHCPlasterrwan3_temp0 N) _7 Z) k3 A9 l7 b
- rm -rf $var_DHCPlasterrwan4_temp- K/ P) W0 S: v
- rm -rf $var_DHCPstatewan1_temp1 H1 q7 p/ U, B6 H6 P& X
- rm -rf $var_DHCPstatewan2_temp8 e3 |% D3 I) Y# A
- rm -rf $var_DHCPstatewan3_temp) R! e; G/ g* ]
- rm -rf $var_DHCPstatewan4_temp
, ]; J8 M) x% k3 W- p! d* V4 b - rm -rf $var_DHCPoutputwan1_temp8 k' R7 A! K N- Q
- rm -rf $var_jffs2_customize_txt_file* h. c* s" o: F/ P' }* @, @2 l0 {2 u$ y
- rm -rf $var_jffs2_choose_xml_dir
3 K" @& |; S) P) k; B ~( R( R - rm -f $var_jffs2_choose_xml_tar
9 \5 Q. g7 R# R9 X - rm -fr $var_jffs2_spec_file
, ^: Z/ L* T" G- o# n7 @: N: S - rm -fr $var_jffs2_spec_bak_file
9 K) l/ [! ]. x5 v# N# ^' Q3 I& S - rm -fr $var_jffs2_feature_file. }6 A O9 P D
- rm -fr $var_jffs2_feature_bak_file8 k& l B# W) c( L! {
- rm -fr $var_jffs2_hardinfo_para_file3 B9 W7 M3 E/ a- Y7 F
- rm -fr $var_ontfirstonline_temp
/ v7 k, s3 t7 r8 E$ x K - rm -f $var_dublecore
% K$ [5 Z6 n8 V( W( X5 q: [ - rm -f /mnt/jffs2/simcard_flowflag3 y( a7 r- f+ m% G
- rm -f /mnt/jffs2/simcardreadflag
5 V% j. D3 k6 a4 O4 k0 F( X% v% V - rm -f /mnt/jffs2/typeword# J/ o% I; ?# ~- u
- rm -f $var_customize_telmex+ F, t* i- n) L' Q" i
- rm -rf $var_customize_dir0 N! Q, x$ h0 m9 v/ F: F$ L
- rm -f $var_smartshowbssguide
& ~) i% {9 B) Q/ e) L! [: c4 r - rm -rf $var_smartshowuserguide, X. }1 i9 z8 n3 v
- rm -fr $var_old_ctree
% j( F7 D( b8 a: K8 l6 ^ - rm -fr $var_ctree_bak
5 a) [: l2 K6 ?9 T% J - rm -fr $var_cfgbackup
: S+ C( S1 h: e- T0 U5 s( q' A - rm -f $var_jffs2_hardversion_bak_file1 ` J7 \ c x" f
- rm -rf $var_PrimaryDir9 d z% m# b; F: \) k
- rm -rf /mnt/jffs2/p2ploadcfgdone
; \3 @$ Y% R. ? - rm -rf /mnt/jffs2/dhcp6c
: K0 w$ F* h8 |, m2 A, F - rm -rf /mnt/jffs2/dhcpc
# Q& S& [% V/ S7 ]2 [+ `/ r! P4 ? - rm -rf /mnt/jffs2/onlinecounter4 S( W* T, ? r1 ~+ W+ g
- rm -rf $var_jffs2_specsn_file. L# i3 `& h+ `! Q* G& u9 W/ P
- rm -rf /mnt/jffs2/reboot_bind_tag
p: J% G/ y8 Y1 T: Q( K5 M3 F& B - rm -rf $var_p2p_dhcp_file8 u: n! o5 ]' `# }" a8 U
-
+ D* o4 w2 @4 a* Q0 U+ a - rm -rf /mnt/jffs2/app/osgi/*
5 v5 S5 i# K p" Z% h - rm -rf /mnt/jffs2/app/cplugin/*
" v- N. T) t4 f# ~3 M& E O% _ - 5 S- w5 F8 [6 B$ i. [5 _9 ]
- rm -f /mnt/jffs2/smooth_finsh3 L0 T+ F5 R$ z3 P5 z- p# {
- rm -f /mnt/jffs2/gdstbmac.bin" O9 k( P" \5 l
- 4 D+ }& y: @" ^$ b) g
- rm -f $var_plat_root
3 s7 P7 I) m% G! [+ z - rm -f $var_plat_pub. z5 W8 c \( h6 a1 F0 `
- rm -f $var_plat_prvt
7 {( w, H/ e. X e, X
: A7 q2 S6 g' K9 }1 f# x" _- HW_Script_RemovePluginFile
$ O: g5 Z/ ^1 g7 y: P. c - return" n1 S5 e7 H, B, O0 q. f$ J+ x
- }) u* `2 v4 V, g1 b1 a
- ~2 M% v$ v1 U0 c$ }- #creat files
/ A2 z" R/ R" \+ C, z ` - HW_Script_CreateFile()2 @' ~% _* e9 F4 r2 x
- {
" U) c5 N* @; s3 F2 L - var_telnet_flag=/mnt/jffs2/ProductLineMode
; L9 m) h- x; z# N
* A9 `) n! K) N- echo "" > $var_telnet_flag
7 Q. @# c2 T, w8 p. J& ` - if [ 0 -ne $? ]# s* @4 ^4 \" x9 G2 a% Y* e
- then/ {1 [3 ~/ D$ f5 i& C1 e: W- v
- {
2 c w* ?6 u- t; i0 n7 x. w8 ` - echo "ERROR::Failed to create telnet flag!"9 q3 A. n! w7 t5 p# a' h
- return 1
( ^+ D- C# @7 w) `& ~ - }
1 g! q! ^. W% `. Z - fi+ D" J7 g. y, m% s/ k
- # X: h! s1 C7 l9 }& F6 t
- return 0( Q3 s7 A4 v1 A
- }/ k. R0 ^9 @: C# e* T: s+ j
# g M9 K' F5 J& E h3 p- # copy files
+ G Z& W7 ?6 i8 c - HW_Script_CopyFile()
2 Q7 ~9 d, n5 U, e2 d$ |+ e1 N. W - { x, V! @, g+ e+ `
- var_etc_def=/etc/wap/hw_default_ctree.xml
+ Y# m4 ? R7 `; U/ C" x9 x1 m -
u. s! z- @7 J$ R( C - #增加延时,确保DB不保存
3 k0 i( I, T, J- o2 k; ? - echo > /var/notsavedata R u$ J/ q2 v% N6 g' u, D
- sleep 1' [6 D, o5 g7 ]
, R3 q& _7 u. B3 N% o- cp -f $var_etc_def $var_ctree
: S+ P' V! @' e( ?- D( ~ - if [ 0 -ne $? ]- R0 g6 j8 D4 |( p9 C; c- @ T
- then) ?. @8 W5 x* D) p* t* R0 p
- rm -rf /var/notsavedata
0 `! y" A) t U7 y3 r' Y - echo "ERROR::Failed to cp hw_default_ctree.xml to hw_ctree.xml!"
( Z: n: f. y7 Z - return 1& Q5 Z! h$ d% g5 L O
- fi% g, S! F! N5 G) G3 J$ q) s
- & f8 ^% \! H# S8 D
- return0 Q: U' |1 h) ` D! z
- }$ r9 H# y7 b. m4 f
- 8 ?9 z- Q& H- I( X" S
- # set spec data
: L' B( R5 A: j - HW_Script_SetData()
4 M# J6 ^% W$ E' O6 q - {, H5 f A- j* N. W4 ~* v# U
- cat $var_boardinfo_file | while read -r line;
2 R' A i+ M# k/ `; P - do( f4 a( S% r+ v2 T& P1 X+ c
- obj_id_temp=`echo $line | sed 's/\(.*\)obj.value\(.*\)/\1/g'`; {2 V' a4 ]5 ]- e, g; {
- obj_id=`echo $obj_id_temp | sed 's/\(.*\)"\(.*\)"\(.*\)/\2/g'`* N& D, s" F$ ~ \+ c" k
- ; k) i% d9 x: k# R0 p8 _
- if [ "0x00000003" == $obj_id ];then
( p6 l% q- k3 `; R1 u - echo "obj.id = "0x00000003" ; obj.value = "";"2 I3 k' T4 Q9 P$ ?) c
- elif [ "0x00000004" == $obj_id ];then
8 Y7 y7 m. Y2 q0 U) ^% N - echo "obj.id = "0x00000004" ; obj.value = "";"
I$ K& M4 t/ V/ Q4 ?- U - elif [ "0x00000005" == $obj_id ];then) X) d, E3 s+ Q
- echo "obj.id = "0x00000005" ; obj.value = "";"5 }. u* y% Y- j' I7 Y! n
- elif [ "0x00000006" == $obj_id ];then
6 O# M! H& t. u! p5 h8 j - echo "obj.id = "0x00000006" ; obj.value = "";"
/ E/ D" j8 t* R" z0 E - elif [ "0x00000016" == $obj_id ];then. ~% a& g/ r& X# x$ @
- echo "obj.id = "0x00000016" ; obj.value = "";"
5 s2 S3 t( }1 G1 H+ r$ M - elif [ "0x0000001a" == $obj_id ];then
3 p+ L/ x; f- W3 l! S: j - echo "obj.id = "0x0000001a" ; obj.value = "COMMON";"
" p, ]0 ?- Y* A* U, x3 y! X+ w - elif [ "0x0000001b" == $obj_id ];then! @% x, o/ Y# }
- echo "obj.id = "0x0000001b" ; obj.value = "COMMON";"
* h% y& k- v" F: `5 V! ]$ N - elif [ "0x00000019" == $obj_id ];then/ b1 `) o9 Z3 ^* f) g
- echo "obj.id = "0x00000019" ; obj.value = "";"5 e7 R# ]- J0 G7 n/ P- T
- elif [ "0x00000020" == $obj_id ];then
% ?+ b8 d% O, V) ]$ U A+ X - echo "obj.id = "0x00000020" ; obj.value = "";"
0 S9 P I( h: D G! n - elif [ "0x00000031" == $obj_id ];then
6 H" {4 G3 G& E* f( D. N - echo "obj.id = "0x00000031" ; obj.value = "NOCHOOSE";"0 I/ @) w' }+ p
- elif [ "0x00000035" == $obj_id ];then: r3 E- h. I! Y* u' ]9 N! g) w
- echo "obj.id = "0x00000035" ; obj.value = "";"6 H; J. @' A# X o. m c' X
- elif [ "0x0000003a" == $obj_id ];then: I# c5 H- a! `9 d% X! l
- echo "obj.id = "0x0000003a" ; obj.value = "";"
5 Q3 ~) ~6 W7 o# l* |8 ^" m - else
; y; |- Z9 @) [& A; s* } - echo -E $line
9 k" q" c! U+ S. ?, g) y3 I - fi8 n* W2 a0 A7 p3 b d
- done > $var_boardinfo_temp
b: n0 a+ Z3 I! P6 L
7 M1 n% h) M" w4 Z- mv -f $var_boardinfo_temp $var_boardinfo_file
9 @4 I* f- v* \' Y; L& ^7 D/ B - ( P2 w+ v+ t2 W' ^
- return' S" L/ W1 U9 z7 a+ {9 \3 r
- }
! B6 Q/ ` T+ _! }2 B2 i. m - n" S" n2 L0 ^$ T. I8 A
- # 刷新boardinfo文件的crc行 S% k- D- ?$ l, n& \
- HW_Customize_ValidateBoardinfoCRC()0 }4 k; @, m' g6 E: @- o
- {
4 l$ K, u# {" j/ |- d" F( W. T - if [ -z $1 ]; then
2 ~- {* S% s7 J; v' j - return 0
, ~/ O1 D/ \5 f/ b7 L! b5 V0 K4 l - fi% u) z$ D% _- w3 |. U3 g+ h
- if [ -x /bin/factparam ]; then; C3 _2 N& G- E: y6 w* H4 q) Y
- /bin/factparam -v $10 Z- N1 u% w3 `: \' o
- if [ 0 -ne $? ]; then
! \) B0 H, H* l' f u2 m' g - echo "ERROR::Failed to validate boardinfo crc on $1!"
: I2 ? T) d g" Q - return 1
7 ]% d2 H' `. P) n! ^ - fi, G# `& o, Q1 J8 b1 z
- fi, `: l$ m0 R* u+ W* Q( k! j9 \
- }
- \* G1 O& ]# k' q - " q2 B& e) q4 z5 v
- # 清除出厂参数备份
# f/ G7 |4 @( t& V, F3 R. x - HW_Customize_ClearFactoryParamsBackup()6 f+ j0 y; J& y4 A* x; v
- {+ h2 A9 a# I& B/ I9 x( n' A
- if [ -x /bin/factparam ]; then
. q4 C" W& e5 ?( `/ l$ n4 N5 {) H - /bin/factparam -e reserved+ {1 ~1 v: j$ M8 d/ C; e. c
- if [ 0 -ne $? ]; then
4 k; ~( I7 A' P, t7 e - echo "ERROR::Failed to clear factory parameter backup area!"
4 N- F* g. y2 M) w8 a* Y - return 1+ `/ B8 E- x" ?5 G8 c" o, ^
- fi# p+ _- }+ a) Z
- fi
- G$ f( I9 g" f2 u0 R0 ^ - }' L. u+ P& x! t3 M. u4 i
- [$ P2 @' O- `1 G
- if [ 0 -ne $# ]; then
% l4 k: \/ G4 B R) C1 g - echo "ERROR::input para is not right!";
* m6 a, T+ u- f+ k - exit 1;( T8 o) o) P2 v" j
- else4 d9 \2 d5 K' V9 D
- HW_Script_CreateFile
/ O7 a: E; l4 \8 b; P - [ ! $? == 0 ] && exit 1% o3 y+ I0 N, X" j6 }6 O
|' ~. V7 L* c% @' M5 t5 P+ I- HW_Script_RemoveFile2 V7 C3 B. G! _2 e9 [+ j
- [ ! $? == 0 ] && exit 1
" T. H( R! z9 K: W+ u: E# ^% y5 p: }* | - 0 N4 Z: F, e4 _' F7 v) H4 Z, r% l
- HW_Script_CopyFile
7 p" T- {& H& v( Q" L6 k# e - [ ! $? == 0 ] && exit 1/ U; V: }* R& P$ ^9 ^2 J; ~; g; H
- 8 ~$ s3 r5 U& o; X
- HW_Script_SetData% d3 U- B2 z7 i5 O
- [ ! $? == 0 ] && exit 1' n8 y5 k+ F9 [4 q8 V
5 p' H3 F& Z5 x, l# d, s p/ w- rm -rf $var_boardinfo_bakfile
. C6 p$ D% z9 x( ], t- U* w
7 {$ t8 ?. K% g) N8 E$ }- ctrg_support=`GetFeature HW_SSMP_FEATURE_CTRG`
* t0 \9 L+ J8 B5 G3 x0 x - if [ $ctrg_support = 1 ] ;then2 q1 f# T9 ]+ v9 c. q
- dbus-send --system --print-reply --dest=com.ctc.saf1 /com/ctc/saf1 com.ctc.saf1.framework.Restore > /dev/null0 p9 E4 ~; D+ m1 }; o
- fi
8 l6 D2 f8 p2 |4 T
) s$ d+ G% u' g$ p6 F8 I- # 必须刷新boardinfo文件的crc行,并且清除reserved分区的出厂参数备份
1 l! ?- t! l& {# n |7 K: W2 ^' K - HW_Customize_ValidateBoardinfoCRC $var_boardinfo_file
& J& k8 \; y3 u# q4 x2 D7 Y - [ ! $? == 0 ] && exit 1
/ ^ S/ c- d: O7 I n1 y - HW_Customize_ClearFactoryParamsBackup. |4 h" ^3 |3 L' I$ n6 ^
- [ ! $? == 0 ] && exit 1
; U+ M/ @' y5 n M - 5 o" q! b' X& O: a2 X
- echo "success!"$ F- O6 d0 f/ o" z3 m5 h6 x# @0 I
. ]) v* q I# p% d+ R6 J: v2 n( M8 U- exit 0* T/ O; F: P8 q) q8 j
- fi( B& m6 e7 D6 G B5 D8 D
复制代码 第一部分的etc/wap/hw_default_ctree.xml ,文件附后,( I2 t% q7 V0 A% o
1 @0 h- r3 p' n# l6 U4 f; _7 bhw_default_ctree.xml这个文件也就是恢复命令后jffs2下的hw_ctree.xml文件,内容大家可以参考下
! `% m. a+ I* z7 P' `0 _) K
+ C% Z9 C+ K/ k- i0 O9 o" N, x% f/ C( l8 o8 F* m
中间部分的含义见https://www.chinadsl.net/thread-131336-1-2.html,也就是hw_boardinfo文件内容4 k% @1 J! c, ]% V
9 o0 } C% x+ B至于jffs2/app的内容,恢复命令后删除,直接删除app数据, I3 U5 U+ Y4 B1 p3 r) F. J
$ R/ n' K+ M4 B
这也就是为什么使用命令后,大家手机上使用天翼网关app不能连接光猫的原因 c$ B$ q* A7 T; f
# W- j! B8 ?# I$ ~7 y- t1 F# y8 l: i" e, r+ U2 M
至于其他内容,欢迎各位继续探讨
/ `! P6 j; l/ x5 x/ c9 s/ r2 G% l5 O
8 U- e$ y+ a3 @9 J, ~7 C' M
! ` I% h, j @6 ]
9 a. g& \2 O$ o( x* \ F |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|