|
hs8546V的恢复出厂命令(restorehwmode.sh)分析
( Y$ k7 u; I/ N" l+ Q+ U$ I) [9 Q; |6 r8 a" x
如下restorehwmode.sh这个命令的全部内容
1 O6 X' I2 M, o! g% d- #! /bin/sh
# \! `' a0 s' B" ]/ _ - 6 y$ q* E7 K% O1 `
- #set hw parameters1 e7 y, Q3 X! b+ a' ?" z- T' h: L
- #copy etc/wap/hw_default_ctree.xml to /mnt/jffs2/hw_ctree.xml
6 S- O \1 A! G/ X! T3 E. H - #set the spec para; e+ Q1 Y x3 z5 Q
- x; O* F3 a- v' ]1 g6 x( y) o$ j7 J
- var_default_ctree=/mnt/jffs2/hw_default_ctree.xml;9 R/ q n/ M" \
- var_ctree=/mnt/jffs2/hw_ctree.xml9 O+ Z( g) ^. t, P
- var_customize=/mnt/jffs2/customizepara.txt
& ]# @8 ]1 U. w6 q; p7 t! F# k4 J. d - var_bms_prevxml_temp="/mnt/jffs2/hw_bms_prev.xml"
1 U+ x0 }& a4 W - var_bms_oldcrc_temp="/mnt/jffs2/oldcrc"1 I; d" u$ t5 F
- var_bms_oltoldcrc_temp="/mnt/jffs2/oltoldcrc"
) K* ]2 E% J/ P8 i. w8 C - var_bms_prevcrc_temp="/mnt/jffs2/prevcrc"7 \$ x: Q7 t4 u* }3 ^; {/ K9 M
- var_bms_oltprevcrc_temp="/mnt/jffs2/oltprevcrc"
, n' P: k1 A0 J1 s3 c - var_bms_oskvoice_temp="/mnt/jffs2/hw_osk_voip_prev.xml"
" y) S' L$ G' q" X9 O0 A1 |" q& }5 F - var_rebootsave="/mnt/jffs2/cwmp_rebootsave"
% D0 m) I& b2 n, ] - var_recovername_temp="/mnt/jffs2/recovername"
* ]6 D% l9 ]9 F) u6 N - var_usr_device_temp="/mnt/jffs2/usr_device.bin"
x! F& r* Y' {3 q/ c3 t - var_ftcrc_temp="/mnt/jffs2/FTCRC"2 L! _& b' ~; |7 j0 C( n* Q" A/ k
- var_ftvoip_temp="/mnt/jffs2/ftvoipcfgstate"
2 v# X$ G: ~0 M( O1 h# X - var_dhcp_temp="/mnt/jffs2/dhcpc"
5 \; S8 x$ ]7 @* ] - var_dhcp6_temp="/mnt/jffs2/dhcp6c"/ k3 E o& H* @+ K0 g! n( i) T
- var_DHCPlasterrwan1_temp="/mnt/jffs2/DHCPlasterrwan1"
& B$ `' I5 z) W9 x6 x. z$ B - var_DHCPlasterrwan2_temp="/mnt/jffs2/DHCPlasterrwan2"
4 y a. x" U% ^ Q' Q3 R - var_DHCPlasterrwan3_temp="/mnt/jffs2/DHCPlasterrwan3"! ~& J4 G! {% x1 V
- var_DHCPlasterrwan4_temp="/mnt/jffs2/DHCPlasterrwan4", k# m. H- Q+ y) Q" |' h/ Z
- var_DHCPstatewan1_temp="/mnt/jffs2/DHCPstatewan1"! Y& Q) L" I1 ?- r* N# p1 L; k
- var_DHCPstatewan2_temp="/mnt/jffs2/DHCPstatewan2"! P+ S* p1 k; I6 w9 c6 D
- var_DHCPstatewan3_temp="/mnt/jffs2/DHCPstatewan3"
% x2 K+ I( G+ ~6 q3 T: r - var_DHCPstatewan4_temp="/mnt/jffs2/DHCPstatewan4"- d5 ?, r% b' w- p: L$ j9 w/ I3 m
- var_DHCPoutputwan1_temp="/mnt/jffs2/DHCPoutputwan1"' T+ @1 ^) L9 ~0 |6 q, y
- var_boardinfo_file="/mnt/jffs2/hw_boardinfo"
: s- ^1 n* v5 i - var_boardinfo_bakfile="/mnt/jffs2/hw_boardinfo.bak"' Q, m0 z. T7 C- E1 W
- var_boardinfo_temp="/mnt/jffs2/hw_boardinfo.temp"
7 Q& q9 _3 F! x* e- r' F- F0 ?& {) _* M - var_jffs2_customize_txt_file="/mnt/jffs2/customize.txt"
, `; B7 v& |2 `8 p3 ] - var_jffs2_choose_xml_dir="/mnt/jffs2/choose_xml" m, q4 d( C+ ?: `8 P
- var_jffs2_choose_xml_tar="/mnt/jffs2/choose_xml.tar.gz"3 {, {( o7 J/ M8 c8 L+ L* E
- var_jffs2_spec_file="/mnt/jffs2/hw_hardinfo_spec"' v, T4 X* k6 y& D% m5 R+ c8 ?3 g
- var_jffs2_spec_bak_file="/mnt/jffs2/hw_hardinfo_spec.bak"
9 z" t, l7 Z. I - var_jffs2_feature_file="/mnt/jffs2/hw_hardinfo_feature"
: h: b! [6 K9 F3 \ - var_jffs2_feature_bak_file="/mnt/jffs2/hw_hardinfo_feature.bak") z0 _# [' n& j2 p! e' @
- var_jffs2_hardinfo_para_file="/mnt/jffs2/hw_equip_hardinfo"3 w3 ]: ?7 V/ j. W
- var_ontfirstonline_temp="/mnt/jffs2/ontfirstonlinefile"2 t, D% {- \$ l h5 G
- var_dublecore="/mnt/jffs2/doublecore"
( ]2 e1 [; K D1 \ W, Q- [ - var_customize_telmex=/mnt/jffs2/TelmexCusomizePara
' v. `0 Y! M2 K; e; T1 l - var_customize_dir="/mnt/jffs2/customize"- j7 }) w6 r- _% {( `
- var_smartshowbssguide="/mnt/jffs2/smartshowbssguide" ~+ [5 {" E; u
- var_smartshowuserguide="/mnt/jffs2/smartshowuserguide"
) V# N" @5 [4 b J( Y. j! \ - var_old_ctree="/mnt/jffs2/hw_old_ctree.xml", E, O: C0 |, v7 n
- var_ctree_bak="/mnt/jffs2/hw_ctree_bak.xml"
! s- Z$ `+ S5 C- g( c - var_cfgbackup="/mnt/jffs2/CfgFile_Backup"
& a* D: _- `# D - var_PrimaryDir="/mnt/jffs2/PrimaryDir"0 @4 u: F1 J+ y4 @& p9 j/ p
- var_p2p_dhcp_file="/mnt/jffs2/p2pdhcpboot_prev.ini"
6 i, S( h* S+ i! B0 i3 c - var_jffs2_hardversion_bak_file="/mnt/jffs2/hw_boardinfo.bak"
% {) \+ \: ` O, t4 f - var_jffs2_specsn_file="/mnt/jffs2/customize_specsn"2 {: f+ {9 J( e k# } q3 t1 ]
1 d" D. B4 X9 B) t* s/ L9 T' [! P; U- var_plat_root="/mnt/jffs2/platroot.crt"
4 m0 r2 \% w: K+ Y1 K - var_plat_pub="/mnt/jffs2/platpub.crt") H1 D4 q2 M1 h) h5 e
- var_plat_prvt="/mnt/jffs2/platprvt.key"; V( U8 ]& n: D0 K o9 S0 A0 s: Z
3 @7 N7 Q8 Q; N4 v& T- # remove plugin files
4 c$ K$ w, A: p: l - HW_Script_RemovePluginFile()
7 e8 V) v" Q- u1 u% k) t - {
- y! Y6 D: ]" h7 [& s - #通过特性开关来决定删除哪些插件
/ }% X# ~' q2 Z4 X1 I - var_feature_enble=`GetFeature HW_FT_OSGI_JVM_FROM_VAR`9 D' _+ E/ M/ J' W$ c6 L; ^
- if [ $var_feature_enble = 1 ];then- F' b" x' Q3 H) b" B4 N
- rm -rf /mnt/jffs2/app/osgi/felix-cache;" W/ Z2 c, G) l
- rm -f /mnt/jffs2/app/osgi/prebundlestatus.info;
8 @3 c8 ^3 `( @( f1 x$ E$ A% t - rm -f /mnt/jffs2/app/osgi/dlna.jar;4 r4 M+ e3 h/ j0 g2 B
- rm -f /mnt/jffs2/app/osgi/samba.jar;9 i& z6 S2 b; x' N1 @
- else
* y8 n# W7 T) e. Y; G - rm -rf /mnt/jffs2/app/osgi/* ;# W: O2 i" F1 ~# e: Q: t7 i
- fi8 \; O* H" S$ z: ]; a/ I
- rm -rf /mnt/jffs2/app/cplugin/* /var/cplugin/*;
c% a( e4 ^1 F7 W! c - }
S( h/ V$ R5 S4 Z+ ?% z7 M+ K& r9 e p
2 t; v) v0 r k- Y3 d- # remove files8 a4 M6 r {2 O* g, u! U1 [
- HW_Script_RemoveFile()0 \: \/ I1 ~; D6 K4 w
- {
2 t# s% F r2 }6 m) x% K- ~ - rm -f $var_default_ctree T6 j O" q; n5 G0 P2 G% U
- rm -f $var_ctree
- C; l) ?. ~! v5 X5 @ - rm -f $var_customize# v: D, C1 L6 A1 g6 T! m& c
- rm -f $var_bms_prevxml_temp0 x* ?3 r" M. i9 [" \4 N
- rm -f $var_bms_oldcrc_temp
2 S I. J0 m- O - rm -f $var_bms_oltoldcrc_temp
3 d' r: p# l7 Y V3 X6 n - rm -f $var_bms_prevcrc_temp
* ^# @0 ^4 ?8 X - rm -f $var_bms_oltprevcrc_temp) [; ]8 H( i! q/ g6 ]
- rm -f $var_bms_oskvoice_temp
+ O. R: S: Y; J( T/ R( h - rm -f $var_rebootsave0 v6 X( K( L% j) _3 [( S y' t+ [
- rm -f $var_recovername_temp6 j% i [) }- Z% M& p' a) M4 k
- rm -f $var_usr_device_temp
# o: i2 B1 s2 _' r1 s - rm -rf $var_ftcrc_temp
$ K' h& w- l& J2 D - rm -rf $var_ftvoip_temp% y2 b7 d! g7 T( k
- rm -rf $var_dhcp_temp
9 t, s% D5 f! L: U) ] - rm -rf $var_dhcp6_temp
' r: {; V. |8 |4 l- P' w - rm -rf $var_DHCPlasterrwan1_temp
6 d1 ]$ l, m% [" w7 B* S8 e, g6 p - rm -rf $var_DHCPlasterrwan2_temp
1 [5 x- n0 z' N! a- v% I - rm -rf $var_DHCPlasterrwan3_temp6 t2 U! s% ?" c0 x3 y4 q# l
- rm -rf $var_DHCPlasterrwan4_temp
/ P- c3 J& V8 {3 k; q# e - rm -rf $var_DHCPstatewan1_temp; g' L' C8 c! j4 x
- rm -rf $var_DHCPstatewan2_temp
+ J. {9 i# l7 Y6 V8 C1 f3 ` - rm -rf $var_DHCPstatewan3_temp" ?( v+ x# {, y/ j/ J$ C( }
- rm -rf $var_DHCPstatewan4_temp0 [$ a7 O! C4 B6 w6 P
- rm -rf $var_DHCPoutputwan1_temp- O# M! L4 {2 l% m" N
- rm -rf $var_jffs2_customize_txt_file4 B5 V0 a) E8 {
- rm -rf $var_jffs2_choose_xml_dir
' ?2 G. \4 [- k j - rm -f $var_jffs2_choose_xml_tar4 ^" ~3 y9 H+ V! h
- rm -fr $var_jffs2_spec_file: u4 l( i! j! c- N9 q' m# G
- rm -fr $var_jffs2_spec_bak_file, M; u. {) w4 X; K
- rm -fr $var_jffs2_feature_file
6 {) F7 X- B+ E- E - rm -fr $var_jffs2_feature_bak_file) j1 x% p9 Y' S' U
- rm -fr $var_jffs2_hardinfo_para_file/ k% u/ F5 U* g$ i# g+ ^( b4 _
- rm -fr $var_ontfirstonline_temp
2 D1 B- A) f. M4 t$ g - rm -f $var_dublecore
a0 P. q+ U- s/ a7 }4 z: V5 |! m - rm -f /mnt/jffs2/simcard_flowflag' X: b5 h; M/ P% z- _9 k" v+ w
- rm -f /mnt/jffs2/simcardreadflag
9 k4 z0 {. ~, D/ i+ Q/ T4 ^ - rm -f /mnt/jffs2/typeword
9 p* w0 g/ _4 a! e; L - rm -f $var_customize_telmex
! ^- y7 ~% [8 h$ W - rm -rf $var_customize_dir9 R% o2 J6 v a' ?
- rm -f $var_smartshowbssguide P* |. G) m f% L
- rm -rf $var_smartshowuserguide
3 F+ f% z% Z; ^3 `" K7 e - rm -fr $var_old_ctree
( S7 B3 x) B i' U$ K - rm -fr $var_ctree_bak, M+ L; H/ B4 v; M- r2 F
- rm -fr $var_cfgbackup
& ^5 n0 C7 J8 @) t4 d# b9 i ] - rm -f $var_jffs2_hardversion_bak_file3 l9 a7 W8 ~$ w! l+ S( [" F4 F
- rm -rf $var_PrimaryDir; @6 l7 u. j9 G: Q
- rm -rf /mnt/jffs2/p2ploadcfgdone, D/ S' V1 a8 k: g
- rm -rf /mnt/jffs2/dhcp6c6 X) u* l0 E. i; d1 l
- rm -rf /mnt/jffs2/dhcpc
5 a9 L6 h( G+ ] - rm -rf /mnt/jffs2/onlinecounter
3 [8 j4 N6 S# z3 A% E9 i- s - rm -rf $var_jffs2_specsn_file" X; A, ?+ k7 k& s% U
- rm -rf /mnt/jffs2/reboot_bind_tag- I+ E) J! z. d) S" E9 Q+ c
- rm -rf $var_p2p_dhcp_file
- f& L( \& O" y; _$ s/ i -
V# [4 ?& v3 P: F0 J3 }( g4 F - rm -rf /mnt/jffs2/app/osgi/*( f# ? \+ |5 u) `
- rm -rf /mnt/jffs2/app/cplugin/*+ y, q# |4 R, b* V4 l
-
4 B8 _* j, J# j - rm -f /mnt/jffs2/smooth_finsh9 T. p8 M3 P9 \9 M9 e
- rm -f /mnt/jffs2/gdstbmac.bin4 Q, U# f% ~+ c( B0 N/ t
-
, o2 k! u, Y2 z* _ - rm -f $var_plat_root+ }* |3 e9 O0 \ w9 ^# V
- rm -f $var_plat_pub3 ?! l ~; p* w' z! e3 M
- rm -f $var_plat_prvt% ?' W8 p8 e+ b w2 K7 C. J
2 x8 V/ U! a. }" g; q0 M7 i) W+ c- HW_Script_RemovePluginFile+ A2 ]) S' U7 W
- return6 D" [. q. Q. q
- }2 P. B! k/ o& d/ |; f
7 k1 @# h% @, D1 h- #creat files
: e7 h- A" {4 B) d - HW_Script_CreateFile()! B6 ?- B" L W
- {
# t9 ?; q8 E! b; m: @' s - var_telnet_flag=/mnt/jffs2/ProductLineMode2 c" m- s m3 _8 N: U& Q p: g( Q
" Y' z: r- p; O9 C- G) X- echo "" > $var_telnet_flag
4 ^0 N( Z8 Q) @: W1 e6 V6 T; j - if [ 0 -ne $? ]7 \) D" s: C5 p! g
- then' X/ j( Q7 I8 P* g6 i* G
- {
+ U( {4 {/ I6 Q8 u$ V; y7 s - echo "ERROR::Failed to create telnet flag!"/ J5 _ H, B, C ^+ u& \+ P# j
- return 1, t7 ]+ g' V% p8 t7 Y
- }
* X) y8 V; H/ O5 U- W/ J - fi
- [/ m% A2 o8 j+ H/ m
; u' M0 b0 h* s! E( D- return 0% _* S( `* B7 m( P& s3 K
- }$ h0 E+ _' S" T
- L4 \9 @9 H$ x( @
- # copy files8 S- ~" ^+ J) i) X6 {
- HW_Script_CopyFile() P9 L! h- S$ I3 ~
- {
! u8 a Q; t- z/ S; ` - var_etc_def=/etc/wap/hw_default_ctree.xml6 ?6 s; {: F# ?9 J/ z; f& W
- 3 t2 x; D- A! K" O& e7 n+ ~
- #增加延时,确保DB不保存# e# U+ k! P4 K6 D! _
- echo > /var/notsavedata
- P! _& S3 L& O - sleep 1
2 Q0 F: O/ r( K+ Q% Q; v+ j8 f
* x2 b9 \7 `$ o8 B- [$ V- cp -f $var_etc_def $var_ctree
1 h" v2 ~ y: o: @: h! j9 q8 p/ p - if [ 0 -ne $? ]% |. F" \4 N( _1 k* I/ H* D
- then
& H h5 @0 y( J2 ^0 W - rm -rf /var/notsavedata
. \4 L# b$ B6 O& V4 s - echo "ERROR::Failed to cp hw_default_ctree.xml to hw_ctree.xml!"
& c8 F1 ]0 k: U% X7 s - return 1
& j) x; l% }! B" t - fi
\% g9 ^/ J; W; m8 o- p/ l5 _
( {( H5 l) J8 G# w- return
& A+ [0 t% x8 V. q2 w0 Y - }
: K$ [5 n g2 A3 d! Y; F) C- _2 ~9 s - # I* s& R% Y( R( Z* Y
- # set spec data& M7 c% S7 x: b( q+ L* ?
- HW_Script_SetData()- w. y: ^" J1 z5 o# j7 ^
- {3 d; M/ |# D3 f3 C0 G& z- y7 Z- i
- cat $var_boardinfo_file | while read -r line;
% F W' c) I% X! {% Y% G - do& a) Q! g9 _1 m$ x! ~
- obj_id_temp=`echo $line | sed 's/\(.*\)obj.value\(.*\)/\1/g'`
& a9 S- |% _- J. c - obj_id=`echo $obj_id_temp | sed 's/\(.*\)"\(.*\)"\(.*\)/\2/g'`0 W, L9 J! H; X+ ]2 s3 r. P Z
' {( F- A+ K9 z, e. D$ q( n i- if [ "0x00000003" == $obj_id ];then
. H; p) X; p, D; {0 n& l3 V - echo "obj.id = "0x00000003" ; obj.value = "";"! S) B5 ~/ |: }0 h. U5 m* q5 i
- elif [ "0x00000004" == $obj_id ];then/ E: z7 w8 X! x9 E6 u- d
- echo "obj.id = "0x00000004" ; obj.value = "";") X- h9 j# b) m3 _' g4 H
- elif [ "0x00000005" == $obj_id ];then/ C1 K C: M5 ]3 Q: P
- echo "obj.id = "0x00000005" ; obj.value = "";"
1 ?9 U { c$ @# _% C0 A - elif [ "0x00000006" == $obj_id ];then
) G G4 G+ C# U' a' q# b2 L' [ - echo "obj.id = "0x00000006" ; obj.value = "";"
% q# Q8 B5 C; e. n" W) d9 N* y& _0 |8 d - elif [ "0x00000016" == $obj_id ];then
+ i# N& b: f2 N& X - echo "obj.id = "0x00000016" ; obj.value = "";"
( { u- ]5 P- c2 z% W1 x1 d - elif [ "0x0000001a" == $obj_id ];then
3 H. Q; X& |; Y# t - echo "obj.id = "0x0000001a" ; obj.value = "COMMON";"* Q% h# O7 ~9 }
- elif [ "0x0000001b" == $obj_id ];then
: L1 p# x+ r2 u4 ^ - echo "obj.id = "0x0000001b" ; obj.value = "COMMON";"! {9 K6 T+ D% h
- elif [ "0x00000019" == $obj_id ];then
1 ]! Z) V9 m0 A- \( H) p - echo "obj.id = "0x00000019" ; obj.value = "";"
# N' d5 O' a; A r1 U! I - elif [ "0x00000020" == $obj_id ];then
9 f/ _) [0 O0 t) Y - echo "obj.id = "0x00000020" ; obj.value = "";"
2 u. E4 r( A2 v1 s% [( j8 N - elif [ "0x00000031" == $obj_id ];then
" q7 P. r( q B5 n/ e) L1 ? - echo "obj.id = "0x00000031" ; obj.value = "NOCHOOSE";"
/ |6 \8 u$ X. t2 Z - elif [ "0x00000035" == $obj_id ];then
! V( ?& @0 R6 i - echo "obj.id = "0x00000035" ; obj.value = "";"
# q& z( f. z6 }7 M0 Z0 G - elif [ "0x0000003a" == $obj_id ];then
1 `7 D |" B8 T7 P7 c& S& w - echo "obj.id = "0x0000003a" ; obj.value = "";"3 d% ?) S$ k0 O' P: q2 r. A" M# h5 y
- else
d, }' U5 x8 W - echo -E $line
) `/ U: e& G6 A ~; ^, h - fi& ]/ g: b; s+ ]. Z4 S+ }, M* z* _
- done > $var_boardinfo_temp
6 j. A; F) `* ~; ~( l
M* D# Z9 R0 K+ o5 M1 v0 N- mv -f $var_boardinfo_temp $var_boardinfo_file
( u( s6 \: F0 k3 K* } - " B1 ]8 f. F6 @5 ?
- return
1 {& a: ^! n8 O' n: Y9 A - }
! u3 v# V$ M2 ?' x" Q' ]8 ]
1 S* q1 Q! z I8 q! T- # 刷新boardinfo文件的crc行/ V: v& a( c+ x# x
- HW_Customize_ValidateBoardinfoCRC()
$ r' A1 t6 |5 A2 a1 k$ i+ o - {
3 m! C D8 E5 C1 n - if [ -z $1 ]; then8 g* J$ a4 ~/ t) ?9 w
- return 07 g8 l5 b& n! l& y- w. Y/ w* L
- fi
5 p) x- Q0 N% {5 A7 O" Z S( p - if [ -x /bin/factparam ]; then \9 Y, y6 K, r+ j
- /bin/factparam -v $1! f: i5 P; W$ Y4 \6 t
- if [ 0 -ne $? ]; then5 w, K5 j& z1 Y& e% v
- echo "ERROR::Failed to validate boardinfo crc on $1!"
0 U6 }6 w) G$ k# T - return 1
+ a- c' C6 ~8 _% F - fi* Y0 Y- H7 U$ I( x' X" Y! Y& Z) b" t4 m
- fi/ H$ M6 N0 G; O* h; ]+ \/ d
- }1 }0 v- D# t: r/ i) @ `! v: x! G
8 |) X' O0 q8 m* w# C0 o4 }9 r1 s- # 清除出厂参数备份
- i% ^ {$ ^2 @, j - HW_Customize_ClearFactoryParamsBackup()1 W! n5 ]3 R$ W) G
- {
" g& q. N. c& g - if [ -x /bin/factparam ]; then- v* v: Q+ \8 N+ a# {
- /bin/factparam -e reserved
- F" Y2 C3 P3 f) [1 X4 { - if [ 0 -ne $? ]; then6 r3 X/ ?. N3 t
- echo "ERROR::Failed to clear factory parameter backup area!"
! ^- z" G j1 u; V* F1 | - return 1
0 A) v; F, z9 M3 v4 l - fi
7 m: b5 B! l4 ~ - fi
4 F* W9 [ u8 T8 b+ R - }0 _( u; o( D, W/ c" v" w+ U
% S& v8 a: ]2 l- if [ 0 -ne $# ]; then
" m( b& l: x, P f, `9 { ]! Z - echo "ERROR::input para is not right!";
" N- b* |* j1 m8 B - exit 1;
' l# g% o/ D. a9 j: m& I9 F - else
- {, D4 S3 ^3 x* `! t - HW_Script_CreateFile
1 g. ^5 W7 }% P/ \ - [ ! $? == 0 ] && exit 13 }8 G4 e- V6 o' n
- / v" y4 G, R0 |% l( K; b
- HW_Script_RemoveFile0 ^: N' n$ P. b/ R
- [ ! $? == 0 ] && exit 1
% H: N1 `; Y% | a' ?- ]. t- R
2 p# y/ @5 I4 d- HW_Script_CopyFile
1 S, D$ G* R0 ~4 ^" s - [ ! $? == 0 ] && exit 1
# d7 E0 y O1 ^2 r4 ]
( U5 ~* I" b( k, z2 s" z- x3 F- HW_Script_SetData
5 \5 T! M! k6 @( k; p - [ ! $? == 0 ] && exit 1: t+ G0 c" w0 }% I: u* s
- ) n7 w# m& ^, g' f& I
- rm -rf $var_boardinfo_bakfile
1 _+ k) u8 c, v' c4 p6 I
. H! b, a- S% P- ctrg_support=`GetFeature HW_SSMP_FEATURE_CTRG`
4 T, Q( S% J ~% F3 `1 h( i, u - if [ $ctrg_support = 1 ] ;then$ F" c( U/ W% G- w- A
- dbus-send --system --print-reply --dest=com.ctc.saf1 /com/ctc/saf1 com.ctc.saf1.framework.Restore > /dev/null- F0 s$ b/ [0 I' p1 _3 M* `# ?
- fi
! }# Y# p# s' ] - 0 l7 J: X# [' w( x' ~- k
- # 必须刷新boardinfo文件的crc行,并且清除reserved分区的出厂参数备份
3 t0 V; n/ T# v9 @7 D3 u - HW_Customize_ValidateBoardinfoCRC $var_boardinfo_file
# a& S& L- G' |8 L2 R# V - [ ! $? == 0 ] && exit 1& d- f- h& ]3 O" u
- HW_Customize_ClearFactoryParamsBackup+ b' Q- s3 P% V" [( V
- [ ! $? == 0 ] && exit 1
! {! X P- W9 o) I- z( N* n) [ - ! G' j. X8 U4 F4 m7 O
- echo "success!"8 l/ b) G0 o, {/ g
- Z, Q: Z. `9 [4 j, x8 a
- exit 0& z; n) U" d/ G% I7 A
- fi
! ~! x. K6 S& Q( Q; A7 Q
复制代码 第一部分的etc/wap/hw_default_ctree.xml ,文件附后,* k! Y3 E" I- d; V; f; l
' I- `# o+ C4 O7 {1 R( E- r& `; Vhw_default_ctree.xml这个文件也就是恢复命令后jffs2下的hw_ctree.xml文件,内容大家可以参考下6 r6 h) y/ }- _! n \
4 t/ c5 D+ u& C2 W, q" i
0 i+ }8 Q& e5 H& ?中间部分的含义见https://www.chinadsl.net/thread-131336-1-2.html,也就是hw_boardinfo文件内容
2 g6 y3 @# D- K$ ]5 }1 K6 I. @8 Q. _$ a; k" K
至于jffs2/app的内容,恢复命令后删除,直接删除app数据
" E# V2 \! k/ d1 c! `1 A+ F# \/ _" N7 u9 |+ M% P' i: g9 {3 o
这也就是为什么使用命令后,大家手机上使用天翼网关app不能连接光猫的原因
; _ i- H9 N0 V- G! N& @, Y) O/ C& u3 Z
4 `$ L) ]6 l# A' f; R, s1 \, [+ M! U3 Q
至于其他内容,欢迎各位继续探讨 & f& U7 K' }4 @; E
/ u; ~ @: t" t i$ f% d
6 f" {" L" H" M' g0 |. y. e. Q
/ F% G5 m' q9 _* [( V- l( o, @* C
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|