找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20370|回复: 35

hs8546V的恢复出厂命令(restorehwmode.sh)分析

[复制链接]
发表于 2018-4-4 22:39:49 | 显示全部楼层 |阅读模式
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
  1. #! /bin/sh
    # \! `' a0 s' B" ]/ _
  2. 6 y$ q* E7 K% O1 `
  3. #set hw parameters1 e7 y, Q3 X! b+ a' ?" z- T' h: L
  4. #copy etc/wap/hw_default_ctree.xml to /mnt/jffs2/hw_ctree.xml
    6 S- O  \1 A! G/ X! T3 E. H
  5. #set the spec para; e+ Q1 Y  x3 z5 Q
  6.   x; O* F3 a- v' ]1 g6 x( y) o$ j7 J
  7. var_default_ctree=/mnt/jffs2/hw_default_ctree.xml;9 R/ q  n/ M" \
  8. var_ctree=/mnt/jffs2/hw_ctree.xml9 O+ Z( g) ^. t, P
  9. var_customize=/mnt/jffs2/customizepara.txt
    & ]# @8 ]1 U. w6 q; p7 t! F# k4 J. d
  10. var_bms_prevxml_temp="/mnt/jffs2/hw_bms_prev.xml"
    1 U+ x0 }& a4 W
  11. var_bms_oldcrc_temp="/mnt/jffs2/oldcrc"1 I; d" u$ t5 F
  12. var_bms_oltoldcrc_temp="/mnt/jffs2/oltoldcrc"
    ) K* ]2 E% J/ P8 i. w8 C
  13. var_bms_prevcrc_temp="/mnt/jffs2/prevcrc"7 \$ x: Q7 t4 u* }3 ^; {/ K9 M
  14. var_bms_oltprevcrc_temp="/mnt/jffs2/oltprevcrc"
    , n' P: k1 A0 J1 s3 c
  15. var_bms_oskvoice_temp="/mnt/jffs2/hw_osk_voip_prev.xml"
    " y) S' L$ G' q" X9 O0 A1 |" q& }5 F
  16. var_rebootsave="/mnt/jffs2/cwmp_rebootsave"
    % D0 m) I& b2 n, ]
  17. var_recovername_temp="/mnt/jffs2/recovername"
    * ]6 D% l9 ]9 F) u6 N
  18. var_usr_device_temp="/mnt/jffs2/usr_device.bin"
      x! F& r* Y' {3 q/ c3 t
  19. var_ftcrc_temp="/mnt/jffs2/FTCRC"2 L! _& b' ~; |7 j0 C( n* Q" A/ k
  20. var_ftvoip_temp="/mnt/jffs2/ftvoipcfgstate"
    2 v# X$ G: ~0 M( O1 h# X
  21. var_dhcp_temp="/mnt/jffs2/dhcpc"
    5 \; S8 x$ ]7 @* ]
  22. var_dhcp6_temp="/mnt/jffs2/dhcp6c"/ k3 E  o& H* @+ K0 g! n( i) T
  23. var_DHCPlasterrwan1_temp="/mnt/jffs2/DHCPlasterrwan1"
    & B$ `' I5 z) W9 x6 x. z$ B
  24. var_DHCPlasterrwan2_temp="/mnt/jffs2/DHCPlasterrwan2"
    4 y  a. x" U% ^  Q' Q3 R
  25. var_DHCPlasterrwan3_temp="/mnt/jffs2/DHCPlasterrwan3"! ~& J4 G! {% x1 V
  26. var_DHCPlasterrwan4_temp="/mnt/jffs2/DHCPlasterrwan4", k# m. H- Q+ y) Q" |' h/ Z
  27. var_DHCPstatewan1_temp="/mnt/jffs2/DHCPstatewan1"! Y& Q) L" I1 ?- r* N# p1 L; k
  28. var_DHCPstatewan2_temp="/mnt/jffs2/DHCPstatewan2"! P+ S* p1 k; I6 w9 c6 D
  29. var_DHCPstatewan3_temp="/mnt/jffs2/DHCPstatewan3"
    % x2 K+ I( G+ ~6 q3 T: r
  30. var_DHCPstatewan4_temp="/mnt/jffs2/DHCPstatewan4"- d5 ?, r% b' w- p: L$ j9 w/ I3 m
  31. var_DHCPoutputwan1_temp="/mnt/jffs2/DHCPoutputwan1"' T+ @1 ^) L9 ~0 |6 q, y
  32. var_boardinfo_file="/mnt/jffs2/hw_boardinfo"
    : s- ^1 n* v5 i
  33. var_boardinfo_bakfile="/mnt/jffs2/hw_boardinfo.bak"' Q, m0 z. T7 C- E1 W
  34. var_boardinfo_temp="/mnt/jffs2/hw_boardinfo.temp"
    7 Q& q9 _3 F! x* e- r' F- F0 ?& {) _* M
  35. var_jffs2_customize_txt_file="/mnt/jffs2/customize.txt"
    , `; B7 v& |2 `8 p3 ]
  36. var_jffs2_choose_xml_dir="/mnt/jffs2/choose_xml"  m, q4 d( C+ ?: `8 P
  37. var_jffs2_choose_xml_tar="/mnt/jffs2/choose_xml.tar.gz"3 {, {( o7 J/ M8 c8 L+ L* E
  38. var_jffs2_spec_file="/mnt/jffs2/hw_hardinfo_spec"' v, T4 X* k6 y& D% m5 R+ c8 ?3 g
  39. var_jffs2_spec_bak_file="/mnt/jffs2/hw_hardinfo_spec.bak"
    9 z" t, l7 Z. I
  40. var_jffs2_feature_file="/mnt/jffs2/hw_hardinfo_feature"
    : h: b! [6 K9 F3 \
  41. var_jffs2_feature_bak_file="/mnt/jffs2/hw_hardinfo_feature.bak") z0 _# [' n& j2 p! e' @
  42. var_jffs2_hardinfo_para_file="/mnt/jffs2/hw_equip_hardinfo"3 w3 ]: ?7 V/ j. W
  43. var_ontfirstonline_temp="/mnt/jffs2/ontfirstonlinefile"2 t, D% {- \$ l  h5 G
  44. var_dublecore="/mnt/jffs2/doublecore"
    ( ]2 e1 [; K  D1 \  W, Q- [
  45. var_customize_telmex=/mnt/jffs2/TelmexCusomizePara
    ' v. `0 Y! M2 K; e; T1 l
  46. var_customize_dir="/mnt/jffs2/customize"- j7 }) w6 r- _% {( `
  47. var_smartshowbssguide="/mnt/jffs2/smartshowbssguide"  ~+ [5 {" E; u
  48. var_smartshowuserguide="/mnt/jffs2/smartshowuserguide"
    ) V# N" @5 [4 b  J( Y. j! \
  49. var_old_ctree="/mnt/jffs2/hw_old_ctree.xml", E, O: C0 |, v7 n
  50. var_ctree_bak="/mnt/jffs2/hw_ctree_bak.xml"
    ! s- Z$ `+ S5 C- g( c
  51. var_cfgbackup="/mnt/jffs2/CfgFile_Backup"
    & a* D: _- `# D
  52. var_PrimaryDir="/mnt/jffs2/PrimaryDir"0 @4 u: F1 J+ y4 @& p9 j/ p
  53. var_p2p_dhcp_file="/mnt/jffs2/p2pdhcpboot_prev.ini"
    6 i, S( h* S+ i! B0 i3 c
  54. var_jffs2_hardversion_bak_file="/mnt/jffs2/hw_boardinfo.bak"
    % {) \+ \: `  O, t4 f
  55. var_jffs2_specsn_file="/mnt/jffs2/customize_specsn"2 {: f+ {9 J( e  k# }  q3 t1 ]

  56. 1 d" D. B4 X9 B) t* s/ L9 T' [! P; U
  57. var_plat_root="/mnt/jffs2/platroot.crt"
    4 m0 r2 \% w: K+ Y1 K
  58. var_plat_pub="/mnt/jffs2/platpub.crt") H1 D4 q2 M1 h) h5 e
  59. var_plat_prvt="/mnt/jffs2/platprvt.key"; V( U8 ]& n: D0 K  o9 S0 A0 s: Z

  60. 3 @7 N7 Q8 Q; N4 v& T
  61. # remove plugin files
    4 c$ K$ w, A: p: l
  62. HW_Script_RemovePluginFile()
    7 e8 V) v" Q- u1 u% k) t
  63. {
    - y! Y6 D: ]" h7 [& s
  64.         #通过特性开关来决定删除哪些插件
    / }% X# ~' q2 Z4 X1 I
  65.         var_feature_enble=`GetFeature HW_FT_OSGI_JVM_FROM_VAR`9 D' _+ E/ M/ J' W$ c6 L; ^
  66.         if [ $var_feature_enble = 1 ];then- F' b" x' Q3 H) b" B4 N
  67.                 rm  -rf /mnt/jffs2/app/osgi/felix-cache;" W/ Z2 c, G) l
  68.         rm  -f /mnt/jffs2/app/osgi/prebundlestatus.info;
    8 @3 c8 ^3 `( @( f1 x$ E$ A% t
  69.         rm  -f /mnt/jffs2/app/osgi/dlna.jar;4 r4 M+ e3 h/ j0 g2 B
  70.         rm  -f /mnt/jffs2/app/osgi/samba.jar;9 i& z6 S2 b; x' N1 @
  71.         else
    * y8 n# W7 T) e. Y; G
  72.                 rm  -rf /mnt/jffs2/app/osgi/* ;# W: O2 i" F1 ~# e: Q: t7 i
  73.         fi8 \; O* H" S$ z: ]; a/ I
  74.         rm -rf  /mnt/jffs2/app/cplugin/* /var/cplugin/*;
      c% a( e4 ^1 F7 W! c
  75. }
      S( h/ V$ R5 S4 Z+ ?% z7 M+ K& r9 e  p

  76. 2 t; v) v0 r  k- Y3 d
  77. # remove files8 a4 M6 r  {2 O* g, u! U1 [
  78. HW_Script_RemoveFile()0 \: \/ I1 ~; D6 K4 w
  79. {
    2 t# s% F  r2 }6 m) x% K- ~
  80.         rm -f $var_default_ctree  T6 j  O" q; n5 G0 P2 G% U
  81.         rm -f $var_ctree
    - C; l) ?. ~! v5 X5 @
  82.         rm -f $var_customize# v: D, C1 L6 A1 g6 T! m& c
  83.         rm -f $var_bms_prevxml_temp0 x* ?3 r" M. i9 [" \4 N
  84.         rm -f $var_bms_oldcrc_temp
    2 S  I. J0 m- O
  85.         rm -f $var_bms_oltoldcrc_temp
    3 d' r: p# l7 Y  V3 X6 n
  86.         rm -f $var_bms_prevcrc_temp
    * ^# @0 ^4 ?8 X
  87.         rm -f $var_bms_oltprevcrc_temp) [; ]8 H( i! q/ g6 ]
  88.         rm -f $var_bms_oskvoice_temp
    + O. R: S: Y; J( T/ R( h
  89.         rm -f $var_rebootsave0 v6 X( K( L% j) _3 [( S  y' t+ [
  90.         rm -f $var_recovername_temp6 j% i  [) }- Z% M& p' a) M4 k
  91.         rm -f $var_usr_device_temp
    # o: i2 B1 s2 _' r1 s
  92.         rm -rf $var_ftcrc_temp
    $ K' h& w- l& J2 D
  93.         rm -rf $var_ftvoip_temp% y2 b7 d! g7 T( k
  94.         rm -rf $var_dhcp_temp
    9 t, s% D5 f! L: U) ]
  95.         rm -rf $var_dhcp6_temp
    ' r: {; V. |8 |4 l- P' w
  96.         rm -rf $var_DHCPlasterrwan1_temp
    6 d1 ]$ l, m% [" w7 B* S8 e, g6 p
  97.         rm -rf $var_DHCPlasterrwan2_temp
    1 [5 x- n0 z' N! a- v% I
  98.         rm -rf $var_DHCPlasterrwan3_temp6 t2 U! s% ?" c0 x3 y4 q# l
  99.         rm -rf $var_DHCPlasterrwan4_temp
    / P- c3 J& V8 {3 k; q# e
  100.         rm -rf $var_DHCPstatewan1_temp; g' L' C8 c! j4 x
  101.         rm -rf $var_DHCPstatewan2_temp
    + J. {9 i# l7 Y6 V8 C1 f3 `
  102.         rm -rf $var_DHCPstatewan3_temp" ?( v+ x# {, y/ j/ J$ C( }
  103.         rm -rf $var_DHCPstatewan4_temp0 [$ a7 O! C4 B6 w6 P
  104.         rm -rf $var_DHCPoutputwan1_temp- O# M! L4 {2 l% m" N
  105.         rm -rf $var_jffs2_customize_txt_file4 B5 V0 a) E8 {
  106.         rm -rf $var_jffs2_choose_xml_dir
    ' ?2 G. \4 [- k  j
  107.         rm -f $var_jffs2_choose_xml_tar4 ^" ~3 y9 H+ V! h
  108.         rm -fr $var_jffs2_spec_file: u4 l( i! j! c- N9 q' m# G
  109.         rm -fr $var_jffs2_spec_bak_file, M; u. {) w4 X; K
  110.         rm -fr $var_jffs2_feature_file
    6 {) F7 X- B+ E- E
  111.         rm -fr $var_jffs2_feature_bak_file) j1 x% p9 Y' S' U
  112.         rm -fr $var_jffs2_hardinfo_para_file/ k% u/ F5 U* g$ i# g+ ^( b4 _
  113.         rm -fr $var_ontfirstonline_temp
    2 D1 B- A) f. M4 t$ g
  114.         rm -f $var_dublecore
      a0 P. q+ U- s/ a7 }4 z: V5 |! m
  115.         rm -f /mnt/jffs2/simcard_flowflag' X: b5 h; M/ P% z- _9 k" v+ w
  116.         rm -f /mnt/jffs2/simcardreadflag
    9 k4 z0 {. ~, D/ i+ Q/ T4 ^
  117.         rm -f /mnt/jffs2/typeword
    9 p* w0 g/ _4 a! e; L
  118.         rm -f $var_customize_telmex
    ! ^- y7 ~% [8 h$ W
  119.         rm -rf $var_customize_dir9 R% o2 J6 v  a' ?
  120.         rm -f $var_smartshowbssguide  P* |. G) m  f% L
  121.         rm -rf $var_smartshowuserguide
    3 F+ f% z% Z; ^3 `" K7 e
  122.         rm -fr $var_old_ctree
    ( S7 B3 x) B  i' U$ K
  123.         rm -fr $var_ctree_bak, M+ L; H/ B4 v; M- r2 F
  124.         rm -fr $var_cfgbackup
    & ^5 n0 C7 J8 @) t4 d# b9 i  ]
  125.         rm -f $var_jffs2_hardversion_bak_file3 l9 a7 W8 ~$ w! l+ S( [" F4 F
  126.         rm -rf $var_PrimaryDir; @6 l7 u. j9 G: Q
  127.         rm -rf /mnt/jffs2/p2ploadcfgdone, D/ S' V1 a8 k: g
  128.         rm -rf /mnt/jffs2/dhcp6c6 X) u* l0 E. i; d1 l
  129.     rm -rf /mnt/jffs2/dhcpc
    5 a9 L6 h( G+ ]
  130.         rm -rf /mnt/jffs2/onlinecounter
    3 [8 j4 N6 S# z3 A% E9 i- s
  131.         rm -rf $var_jffs2_specsn_file" X; A, ?+ k7 k& s% U
  132.         rm -rf /mnt/jffs2/reboot_bind_tag- I+ E) J! z. d) S" E9 Q+ c
  133.         rm -rf $var_p2p_dhcp_file
    - f& L( \& O" y; _$ s/ i
  134.                
      V# [4 ?& v3 P: F0 J3 }( g4 F
  135.         rm  -rf /mnt/jffs2/app/osgi/*( f# ?  \+ |5 u) `
  136.         rm  -rf /mnt/jffs2/app/cplugin/*+ y, q# |4 R, b* V4 l
  137.        
    4 B8 _* j, J# j
  138.         rm -f /mnt/jffs2/smooth_finsh9 T. p8 M3 P9 \9 M9 e
  139.         rm -f /mnt/jffs2/gdstbmac.bin4 Q, U# f% ~+ c( B0 N/ t
  140.        
    , o2 k! u, Y2 z* _
  141.         rm -f $var_plat_root+ }* |3 e9 O0 \  w9 ^# V
  142.         rm -f $var_plat_pub3 ?! l  ~; p* w' z! e3 M
  143.         rm -f $var_plat_prvt% ?' W8 p8 e+ b  w2 K7 C. J

  144. 2 x8 V/ U! a. }" g; q0 M7 i) W+ c
  145.         HW_Script_RemovePluginFile+ A2 ]) S' U7 W
  146.         return6 D" [. q. Q. q
  147. }2 P. B! k/ o& d/ |; f

  148. 7 k1 @# h% @, D1 h
  149. #creat files
    : e7 h- A" {4 B) d
  150. HW_Script_CreateFile()! B6 ?- B" L  W
  151. {
    # t9 ?; q8 E! b; m: @' s
  152.         var_telnet_flag=/mnt/jffs2/ProductLineMode2 c" m- s  m3 _8 N: U& Q  p: g( Q

  153. " Y' z: r- p; O9 C- G) X
  154.         echo "" > $var_telnet_flag
    4 ^0 N( Z8 Q) @: W1 e6 V6 T; j
  155.         if [ 0 -ne $? ]7 \) D" s: C5 p! g
  156.         then' X/ j( Q7 I8 P* g6 i* G
  157.         {
    + U( {4 {/ I6 Q8 u$ V; y7 s
  158.                 echo "ERROR::Failed to create telnet flag!"/ J5 _  H, B, C  ^+ u& \+ P# j
  159.         return 1, t7 ]+ g' V% p8 t7 Y
  160.         }
    * X) y8 V; H/ O5 U- W/ J
  161.         fi
    - [/ m% A2 o8 j+ H/ m

  162. ; u' M0 b0 h* s! E( D
  163.         return 0% _* S( `* B7 m( P& s3 K
  164. }$ h0 E+ _' S" T
  165.   L4 \9 @9 H$ x( @
  166. # copy files8 S- ~" ^+ J) i) X6 {
  167. HW_Script_CopyFile()  P9 L! h- S$ I3 ~
  168. {
    ! u8 a  Q; t- z/ S; `
  169.         var_etc_def=/etc/wap/hw_default_ctree.xml6 ?6 s; {: F# ?9 J/ z; f& W
  170.         3 t2 x; D- A! K" O& e7 n+ ~
  171.         #增加延时,确保DB不保存# e# U+ k! P4 K6 D! _
  172.         echo > /var/notsavedata
    - P! _& S3 L& O
  173.         sleep 1
    2 Q0 F: O/ r( K+ Q% Q; v+ j8 f

  174. * x2 b9 \7 `$ o8 B- [$ V
  175.         cp -f $var_etc_def $var_ctree
    1 h" v2 ~  y: o: @: h! j9 q8 p/ p
  176.         if [ 0 -ne $? ]% |. F" \4 N( _1 k* I/ H* D
  177.         then
    & H  h5 @0 y( J2 ^0 W
  178.                 rm -rf /var/notsavedata
    . \4 L# b$ B6 O& V4 s
  179.                 echo "ERROR::Failed to cp hw_default_ctree.xml to hw_ctree.xml!"
    & c8 F1 ]0 k: U% X7 s
  180.                 return 1
    & j) x; l% }! B" t
  181.         fi
      \% g9 ^/ J; W; m8 o- p/ l5 _

  182. ( {( H5 l) J8 G# w
  183.         return
    & A+ [0 t% x8 V. q2 w0 Y
  184. }
    : K$ [5 n  g2 A3 d! Y; F) C- _2 ~9 s
  185. # I* s& R% Y( R( Z* Y
  186. # set spec data& M7 c% S7 x: b( q+ L* ?
  187. HW_Script_SetData()- w. y: ^" J1 z5 o# j7 ^
  188. {3 d; M/ |# D3 f3 C0 G& z- y7 Z- i
  189.         cat $var_boardinfo_file | while read -r line;
    % F  W' c) I% X! {% Y% G
  190.         do& a) Q! g9 _1 m$ x! ~
  191.                 obj_id_temp=`echo $line | sed 's/\(.*\)obj.value\(.*\)/\1/g'`
    & a9 S- |% _- J. c
  192.                 obj_id=`echo $obj_id_temp | sed 's/\(.*\)"\(.*\)"\(.*\)/\2/g'`0 W, L9 J! H; X+ ]2 s3 r. P  Z

  193. ' {( F- A+ K9 z, e. D$ q( n  i
  194.                 if [ "0x00000003" == $obj_id ];then
    . H; p) X; p, D; {0 n& l3 V
  195.                         echo "obj.id = "0x00000003" ; obj.value = "";"! S) B5 ~/ |: }0 h. U5 m* q5 i
  196.                 elif [ "0x00000004" == $obj_id ];then/ E: z7 w8 X! x9 E6 u- d
  197.                         echo "obj.id = "0x00000004" ; obj.value = "";") X- h9 j# b) m3 _' g4 H
  198.                 elif [ "0x00000005" == $obj_id ];then/ C1 K  C: M5 ]3 Q: P
  199.                         echo "obj.id = "0x00000005" ; obj.value = "";"
    1 ?9 U  {  c$ @# _% C0 A
  200.                 elif [ "0x00000006" == $obj_id ];then
    ) G  G4 G+ C# U' a' q# b2 L' [
  201.                         echo "obj.id = "0x00000006" ; obj.value = "";"
    % q# Q8 B5 C; e. n" W) d9 N* y& _0 |8 d
  202.                 elif [ "0x00000016" == $obj_id ];then
    + i# N& b: f2 N& X
  203.                         echo "obj.id = "0x00000016" ; obj.value = "";"
    ( {  u- ]5 P- c2 z% W1 x1 d
  204.                 elif [ "0x0000001a" == $obj_id ];then
    3 H. Q; X& |; Y# t
  205.                         echo "obj.id = "0x0000001a" ; obj.value = "COMMON";"* Q% h# O7 ~9 }
  206.                 elif [ "0x0000001b" == $obj_id ];then
    : L1 p# x+ r2 u4 ^
  207.                         echo "obj.id = "0x0000001b" ; obj.value = "COMMON";"! {9 K6 T+ D% h
  208.                 elif [ "0x00000019" == $obj_id ];then
    1 ]! Z) V9 m0 A- \( H) p
  209.                         echo "obj.id = "0x00000019" ; obj.value = "";"
    # N' d5 O' a; A  r1 U! I
  210.                 elif [ "0x00000020" == $obj_id ];then
    9 f/ _) [0 O0 t) Y
  211.                         echo "obj.id = "0x00000020" ; obj.value = "";"
    2 u. E4 r( A2 v1 s% [( j8 N
  212.                 elif [ "0x00000031" == $obj_id ];then
    " q7 P. r( q  B5 n/ e) L1 ?
  213.                         echo "obj.id = "0x00000031" ; obj.value = "NOCHOOSE";"
    / |6 \8 u$ X. t2 Z
  214.                 elif [ "0x00000035" == $obj_id ];then
    ! V( ?& @0 R6 i
  215.                         echo "obj.id = "0x00000035" ; obj.value = "";"
    # q& z( f. z6 }7 M0 Z0 G
  216.                 elif [ "0x0000003a" == $obj_id ];then
    1 `7 D  |" B8 T7 P7 c& S& w
  217.                         echo "obj.id = "0x0000003a" ; obj.value = "";"3 d% ?) S$ k0 O' P: q2 r. A" M# h5 y
  218.                 else
      d, }' U5 x8 W
  219.                         echo -E $line
    ) `/ U: e& G6 A  ~; ^, h
  220.                 fi& ]/ g: b; s+ ]. Z4 S+ }, M* z* _
  221.         done  > $var_boardinfo_temp
    6 j. A; F) `* ~; ~( l

  222.   M* D# Z9 R0 K+ o5 M1 v0 N
  223.         mv -f $var_boardinfo_temp $var_boardinfo_file
    ( u( s6 \: F0 k3 K* }
  224. " B1 ]8 f. F6 @5 ?
  225.         return
    1 {& a: ^! n8 O' n: Y9 A
  226. }
    ! u3 v# V$ M2 ?' x" Q' ]8 ]

  227. 1 S* q1 Q! z  I8 q! T
  228. # 刷新boardinfo文件的crc行/ V: v& a( c+ x# x
  229. HW_Customize_ValidateBoardinfoCRC()
    $ r' A1 t6 |5 A2 a1 k$ i+ o
  230. {
    3 m! C  D8 E5 C1 n
  231.         if [ -z $1 ]; then8 g* J$ a4 ~/ t) ?9 w
  232.                 return 07 g8 l5 b& n! l& y- w. Y/ w* L
  233.         fi
    5 p) x- Q0 N% {5 A7 O" Z  S( p
  234.         if [ -x /bin/factparam ]; then  \9 Y, y6 K, r+ j
  235.                 /bin/factparam -v $1! f: i5 P; W$ Y4 \6 t
  236.                 if [ 0 -ne $? ]; then5 w, K5 j& z1 Y& e% v
  237.                         echo "ERROR::Failed to validate boardinfo crc on $1!"
    0 U6 }6 w) G$ k# T
  238.                         return 1
    + a- c' C6 ~8 _% F
  239.                 fi* Y0 Y- H7 U$ I( x' X" Y! Y& Z) b" t4 m
  240.         fi/ H$ M6 N0 G; O* h; ]+ \/ d
  241. }1 }0 v- D# t: r/ i) @  `! v: x! G

  242. 8 |) X' O0 q8 m* w# C0 o4 }9 r1 s
  243. # 清除出厂参数备份
    - i% ^  {$ ^2 @, j
  244. HW_Customize_ClearFactoryParamsBackup()1 W! n5 ]3 R$ W) G
  245. {
    " g& q. N. c& g
  246.         if [ -x /bin/factparam ]; then- v* v: Q+ \8 N+ a# {
  247.                 /bin/factparam -e reserved
    - F" Y2 C3 P3 f) [1 X4 {
  248.                 if [ 0 -ne $? ]; then6 r3 X/ ?. N3 t
  249.                         echo "ERROR::Failed to clear factory parameter backup area!"
    ! ^- z" G  j1 u; V* F1 |
  250.                         return 1
    0 A) v; F, z9 M3 v4 l
  251.                 fi
    7 m: b5 B! l4 ~
  252.         fi
    4 F* W9 [  u8 T8 b+ R
  253. }0 _( u; o( D, W/ c" v" w+ U

  254. % S& v8 a: ]2 l
  255. if [ 0 -ne $# ]; then
    " m( b& l: x, P  f, `9 {  ]! Z
  256.         echo "ERROR::input para is not right!";
    " N- b* |* j1 m8 B
  257.         exit 1;
    ' l# g% o/ D. a9 j: m& I9 F
  258. else
    - {, D4 S3 ^3 x* `! t
  259. HW_Script_CreateFile
    1 g. ^5 W7 }% P/ \
  260. [ ! $? == 0 ] && exit 13 }8 G4 e- V6 o' n
  261. / v" y4 G, R0 |% l( K; b
  262. HW_Script_RemoveFile0 ^: N' n$ P. b/ R
  263. [ ! $? == 0 ] && exit 1
    % H: N1 `; Y% |  a' ?- ]. t- R

  264. 2 p# y/ @5 I4 d
  265. HW_Script_CopyFile
    1 S, D$ G* R0 ~4 ^" s
  266. [ ! $? == 0 ] && exit 1
    # d7 E0 y  O1 ^2 r4 ]

  267. ( U5 ~* I" b( k, z2 s" z- x3 F
  268. HW_Script_SetData
    5 \5 T! M! k6 @( k; p
  269. [ ! $? == 0 ] && exit 1: t+ G0 c" w0 }% I: u* s
  270. ) n7 w# m& ^, g' f& I
  271. rm -rf $var_boardinfo_bakfile
    1 _+ k) u8 c, v' c4 p6 I

  272. . H! b, a- S% P
  273. ctrg_support=`GetFeature HW_SSMP_FEATURE_CTRG`
    4 T, Q( S% J  ~% F3 `1 h( i, u
  274. if [ $ctrg_support = 1 ] ;then$ F" c( U/ W% G- w- A
  275.         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* `# ?
  276. fi
    ! }# Y# p# s' ]
  277. 0 l7 J: X# [' w( x' ~- k
  278. # 必须刷新boardinfo文件的crc行,并且清除reserved分区的出厂参数备份
    3 t0 V; n/ T# v9 @7 D3 u
  279. HW_Customize_ValidateBoardinfoCRC $var_boardinfo_file
    # a& S& L- G' |8 L2 R# V
  280. [ ! $? == 0 ] && exit 1& d- f- h& ]3 O" u
  281. HW_Customize_ClearFactoryParamsBackup+ b' Q- s3 P% V" [( V
  282. [ ! $? == 0 ] && exit 1
    ! {! X  P- W9 o) I- z( N* n) [
  283. ! G' j. X8 U4 F4 m7 O
  284. echo "success!"8 l/ b) G0 o, {/ g
  285.   Z, Q: Z. `9 [4 j, x8 a
  286. exit 0& z; n) U" d/ G% I7 A
  287. 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

本帖子中包含更多资源

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

×

点评

技术贴。。学习了。。。  发表于 2018-7-13 08:59
 楼主| 发表于 2018-4-4 22:41:11 | 显示全部楼层
本帖最后由 happyhack 于 2018-4-4 22:58 编辑
" x, }  z- T9 `4 F  V
% Z" a) V: P5 j: @" O. Y! Crestorehwmode.sh打包附后,
9 L  b. w& k9 k* V) i* d- v/ F8 r" [  Z9 D& q5 v
5 n* C5 n2 W8 `5 _4 q: m
大家看下,个人猜测这个应该是跟手机app控制光猫的一些文件0 g' C) E) a8 C3 W

本帖子中包含更多资源

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

×
发表于 2018-4-5 15:16:10 | 显示全部楼层
这个是不是要破解才能用的?
发表于 2018-4-8 22:28:23 | 显示全部楼层
技术贴,谢谢,学习了
发表于 2018-4-10 18:19:21 | 显示全部楼层
技术学习了
发表于 2018-4-13 20:57:06 | 显示全部楼层
专门学习的,楼主辛苦!
发表于 2018-5-6 22:32:33 | 显示全部楼层
谢谢,楼主无私的分享你宝贵的经验,顺便来赚个猫粮
发表于 2018-5-7 22:25:42 | 显示全部楼层
专门学习的,楼主辛苦!
发表于 2018-5-10 11:17:22 | 显示全部楼层
感谢lz的分享
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|宽带技术网 |网站地图

粤公网安备 44152102000001号

GMT+8, 2024-4-26 06:06 , Processed in 0.032423 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

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