找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20241|回复: 35

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

[复制链接]
发表于 2018-4-4 22:39:49 | 显示全部楼层 |阅读模式
hs8546V的恢复出厂命令(restorehwmode.sh)分析; L% X5 \- ~) r  y7 {+ Z

0 d( f. H+ }8 Y6 Y3 p- v如下restorehwmode.sh这个命令的全部内容
+ j6 I$ ?7 Z$ S
  1. #! /bin/sh9 E) e% h# f. X$ P* G3 ?( g

  2. $ w- i! g( n7 f
  3. #set hw parameters
    1 M8 l; N- B4 C+ s2 g* e
  4. #copy etc/wap/hw_default_ctree.xml to /mnt/jffs2/hw_ctree.xml
    : A1 g4 M, f8 a* E/ `% l
  5. #set the spec para, D; y! W- J* `

  6. . i" B4 I8 M/ S5 ~
  7. var_default_ctree=/mnt/jffs2/hw_default_ctree.xml;% N9 \; m$ o. k2 R5 S0 G
  8. var_ctree=/mnt/jffs2/hw_ctree.xml
    2 W$ Z/ ~2 z  D7 ?3 ?
  9. var_customize=/mnt/jffs2/customizepara.txt
    * o' N( u! y# X$ S1 I
  10. var_bms_prevxml_temp="/mnt/jffs2/hw_bms_prev.xml"; V/ K' N+ h' a' M: d) W+ y, y
  11. var_bms_oldcrc_temp="/mnt/jffs2/oldcrc"
    9 w" p4 V7 e6 X
  12. var_bms_oltoldcrc_temp="/mnt/jffs2/oltoldcrc"
    - ]% B) f: K6 h4 e
  13. var_bms_prevcrc_temp="/mnt/jffs2/prevcrc"% ]  I6 `. r/ l" _
  14. var_bms_oltprevcrc_temp="/mnt/jffs2/oltprevcrc"
    3 E1 Q6 V( x/ G
  15. var_bms_oskvoice_temp="/mnt/jffs2/hw_osk_voip_prev.xml"( s; d' i' @2 r& C
  16. var_rebootsave="/mnt/jffs2/cwmp_rebootsave"* i$ r5 O$ M( Y  ?! M1 V
  17. var_recovername_temp="/mnt/jffs2/recovername"
    / W9 D5 ~6 B& ]
  18. var_usr_device_temp="/mnt/jffs2/usr_device.bin"
    $ q& b6 i. h' [
  19. var_ftcrc_temp="/mnt/jffs2/FTCRC"
    3 Z. n) `) e" {% ]7 I# R2 a
  20. var_ftvoip_temp="/mnt/jffs2/ftvoipcfgstate"+ }- s+ o3 u# p5 L
  21. var_dhcp_temp="/mnt/jffs2/dhcpc"* W7 K8 n4 j9 p- Q4 H8 \# j- g
  22. var_dhcp6_temp="/mnt/jffs2/dhcp6c". u  g0 h# \" e* e6 U
  23. var_DHCPlasterrwan1_temp="/mnt/jffs2/DHCPlasterrwan1"  f) Y  D) M" z2 p
  24. var_DHCPlasterrwan2_temp="/mnt/jffs2/DHCPlasterrwan2"5 m. g$ y8 v3 ~7 ~- J2 k" @+ [
  25. var_DHCPlasterrwan3_temp="/mnt/jffs2/DHCPlasterrwan3"% _2 C4 {5 m3 q, {: _% w
  26. var_DHCPlasterrwan4_temp="/mnt/jffs2/DHCPlasterrwan4"
    * K2 Q6 b, z' r1 v" B
  27. var_DHCPstatewan1_temp="/mnt/jffs2/DHCPstatewan1"
    * Q- g* n( k7 o+ J1 \9 H" U7 a
  28. var_DHCPstatewan2_temp="/mnt/jffs2/DHCPstatewan2"
    + z1 c  z) ~. \# h5 r; N
  29. var_DHCPstatewan3_temp="/mnt/jffs2/DHCPstatewan3"
    * f# J. n$ A( ?* _
  30. var_DHCPstatewan4_temp="/mnt/jffs2/DHCPstatewan4"
    - `, w( `  T$ U2 `3 A! Z2 l
  31. var_DHCPoutputwan1_temp="/mnt/jffs2/DHCPoutputwan1"
    / M* _9 o) [3 S1 I( S
  32. var_boardinfo_file="/mnt/jffs2/hw_boardinfo"1 e/ A- ?7 }- y- J4 P
  33. var_boardinfo_bakfile="/mnt/jffs2/hw_boardinfo.bak"8 _$ H) {5 v& }8 o- c
  34. var_boardinfo_temp="/mnt/jffs2/hw_boardinfo.temp"% K  u/ X6 }& Q+ {3 j+ l& A/ G
  35. var_jffs2_customize_txt_file="/mnt/jffs2/customize.txt"6 s1 }; N) C2 _5 j* F, G
  36. var_jffs2_choose_xml_dir="/mnt/jffs2/choose_xml"
    - `5 U/ b& N4 R6 S1 f: U- _: e
  37. var_jffs2_choose_xml_tar="/mnt/jffs2/choose_xml.tar.gz"* N& }/ P: A$ x. O# K
  38. var_jffs2_spec_file="/mnt/jffs2/hw_hardinfo_spec"9 q& v0 |# U6 s+ C! ]
  39. var_jffs2_spec_bak_file="/mnt/jffs2/hw_hardinfo_spec.bak"
    ; T: m% z% h; b/ [" ^4 t
  40. var_jffs2_feature_file="/mnt/jffs2/hw_hardinfo_feature"
    7 \0 i/ n* B1 n: @3 i( t5 ~$ |
  41. var_jffs2_feature_bak_file="/mnt/jffs2/hw_hardinfo_feature.bak"
    3 }2 F+ M6 \( |: y+ w  w1 v- p
  42. var_jffs2_hardinfo_para_file="/mnt/jffs2/hw_equip_hardinfo"
    ) x" I: _9 M6 I7 L  W- `
  43. var_ontfirstonline_temp="/mnt/jffs2/ontfirstonlinefile"
    ! {! _4 t# U$ K- X
  44. var_dublecore="/mnt/jffs2/doublecore"
    ' |3 Y! _* m& h# o  [. W" C9 p2 g
  45. var_customize_telmex=/mnt/jffs2/TelmexCusomizePara
    ( x+ d/ H+ j2 b: G& T% ^
  46. var_customize_dir="/mnt/jffs2/customize"
    1 R2 k+ V  t" j$ p
  47. var_smartshowbssguide="/mnt/jffs2/smartshowbssguide"
    * v9 i8 X3 e# o$ v; |4 L
  48. var_smartshowuserguide="/mnt/jffs2/smartshowuserguide"6 n, l/ @) X5 `: c" e1 ~
  49. var_old_ctree="/mnt/jffs2/hw_old_ctree.xml"
    + y' X; G! E  e( O+ P: h8 s+ M" }2 K
  50. var_ctree_bak="/mnt/jffs2/hw_ctree_bak.xml"1 o7 K- j; _( E# t  t, t) U
  51. var_cfgbackup="/mnt/jffs2/CfgFile_Backup"% l" x. W. P! S
  52. var_PrimaryDir="/mnt/jffs2/PrimaryDir") e/ e9 W# g1 V5 X
  53. var_p2p_dhcp_file="/mnt/jffs2/p2pdhcpboot_prev.ini", u! E  I: L0 a
  54. var_jffs2_hardversion_bak_file="/mnt/jffs2/hw_boardinfo.bak"8 d' R! N9 D- y5 _# G
  55. var_jffs2_specsn_file="/mnt/jffs2/customize_specsn"7 M3 D6 I9 W; _& L6 M9 i6 h

  56. - E- h) J' o; X0 i
  57. var_plat_root="/mnt/jffs2/platroot.crt" : n7 a2 w( q+ K7 e2 q: K
  58. var_plat_pub="/mnt/jffs2/platpub.crt". d, X8 j9 \$ V$ T
  59. var_plat_prvt="/mnt/jffs2/platprvt.key"
    , q; ^0 p$ d, m* u  f4 Y

  60. 5 g' r2 h6 P+ V
  61. # remove plugin files # a( ^$ L& M7 M" F$ z7 Q2 P
  62. HW_Script_RemovePluginFile()/ }- }/ S4 m0 N$ o) q  T
  63. {
    - O$ C. ~3 ^! R+ |0 u  F5 k4 n& m: D
  64.         #通过特性开关来决定删除哪些插件3 H  f6 k* F9 w; T( ]5 Q. E8 l) U, W5 o
  65.         var_feature_enble=`GetFeature HW_FT_OSGI_JVM_FROM_VAR`
    + C0 \  Y- A+ a% G8 ]
  66.         if [ $var_feature_enble = 1 ];then# g* l2 E3 D$ N4 E/ I: Q; j& K
  67.                 rm  -rf /mnt/jffs2/app/osgi/felix-cache;
    8 w& E" S2 W. w' j; m
  68.         rm  -f /mnt/jffs2/app/osgi/prebundlestatus.info;0 r# u8 W* e1 p% S
  69.         rm  -f /mnt/jffs2/app/osgi/dlna.jar;5 ~( w# A& \" [$ I2 g1 |9 }
  70.         rm  -f /mnt/jffs2/app/osgi/samba.jar;
    8 {# f1 s4 \& N5 F+ u( o
  71.         else% Q8 n' A% [* {% z- O
  72.                 rm  -rf /mnt/jffs2/app/osgi/* ;% O( Y4 L! v, k6 b( A7 |' {" k- y
  73.         fi8 Y0 v  K# h; J  f# P' A# j% z8 q/ A
  74.         rm -rf  /mnt/jffs2/app/cplugin/* /var/cplugin/*;* Z2 c4 l! z8 n; L
  75. }
    / l; q" J6 `! x$ \' Z* ?
  76. - z/ c) p, N$ K8 s
  77. # remove files
    3 E2 c8 e5 k7 b- p' ]1 X
  78. HW_Script_RemoveFile()
    8 j/ a$ j& }2 T- j: `  [) e
  79. {' d# U' Y( M8 f
  80.         rm -f $var_default_ctree6 |+ F9 q* g% f$ Q
  81.         rm -f $var_ctree
    0 X$ e  s3 U9 A# D
  82.         rm -f $var_customize
      [# c0 f+ N% z4 a3 a% i. ~
  83.         rm -f $var_bms_prevxml_temp
    1 q4 j; k' L+ A: N* a$ K
  84.         rm -f $var_bms_oldcrc_temp
    3 S' R3 N& e; y1 ^$ }4 Q
  85.         rm -f $var_bms_oltoldcrc_temp
    ' _* J  ~( o" H& z
  86.         rm -f $var_bms_prevcrc_temp
    9 K  J, e8 v3 V: o3 _. i
  87.         rm -f $var_bms_oltprevcrc_temp
    : a3 U& g9 d6 n& H' ?
  88.         rm -f $var_bms_oskvoice_temp1 j) m# Q) k/ w
  89.         rm -f $var_rebootsave! e( ?7 M7 N" u% v
  90.         rm -f $var_recovername_temp2 }) a, ^3 {, Y$ L
  91.         rm -f $var_usr_device_temp1 a7 t% p4 N/ N6 G
  92.         rm -rf $var_ftcrc_temp
    9 b- ^- Y4 O* S0 H# Q
  93.         rm -rf $var_ftvoip_temp; k, p7 o; ]: u3 {
  94.         rm -rf $var_dhcp_temp
    . U% }- V% i, a: C3 W/ P% o
  95.         rm -rf $var_dhcp6_temp
      T5 |3 X4 z4 G% B$ X3 x. m
  96.         rm -rf $var_DHCPlasterrwan1_temp
    % Q9 ?& v+ i, C. n: j% _
  97.         rm -rf $var_DHCPlasterrwan2_temp, k  R7 e( j6 p8 j
  98.         rm -rf $var_DHCPlasterrwan3_temp
    & n8 F* F6 e3 P; Z0 c( i
  99.         rm -rf $var_DHCPlasterrwan4_temp$ W! K: m) @. D& |/ n. N
  100.         rm -rf $var_DHCPstatewan1_temp* [8 l% A0 A% B5 Z& B, Q* T
  101.         rm -rf $var_DHCPstatewan2_temp" z5 m/ S" ]* ?0 f9 h5 `3 e; D
  102.         rm -rf $var_DHCPstatewan3_temp
    - `7 y0 j) s9 f6 L& \. F' U% ?
  103.         rm -rf $var_DHCPstatewan4_temp9 s0 e- _0 ~9 v- [. x' B
  104.         rm -rf $var_DHCPoutputwan1_temp
    8 l. [* U. w2 f: i; k8 J
  105.         rm -rf $var_jffs2_customize_txt_file
    # ]3 b8 J/ C  @& G0 e3 F& J. q
  106.         rm -rf $var_jffs2_choose_xml_dir$ l7 O+ m8 T2 v; t0 k  X/ X$ u+ p
  107.         rm -f $var_jffs2_choose_xml_tar  Z% |& q- b$ B! B1 \  {! k* u
  108.         rm -fr $var_jffs2_spec_file
    2 d7 L5 ^" W7 n9 \, z
  109.         rm -fr $var_jffs2_spec_bak_file  d( F; w' u- i
  110.         rm -fr $var_jffs2_feature_file
    / H% g1 f( v* G, g
  111.         rm -fr $var_jffs2_feature_bak_file8 _# @6 I4 x3 @1 j, e2 N8 z' R0 n
  112.         rm -fr $var_jffs2_hardinfo_para_file9 Q9 a' O7 T& W3 x4 o/ D' ~
  113.         rm -fr $var_ontfirstonline_temp& K1 f' V9 Y  [- F" l
  114.         rm -f $var_dublecore% i5 ]$ x( ?6 y, e$ ?! z
  115.         rm -f /mnt/jffs2/simcard_flowflag0 y" g2 q5 n  A1 }8 p
  116.         rm -f /mnt/jffs2/simcardreadflag
    - n: R- u/ ^1 P
  117.         rm -f /mnt/jffs2/typeword7 T5 j' ?6 Q! X# v. p, n) N, Y
  118.         rm -f $var_customize_telmex+ g+ B$ L0 o# I' x1 c
  119.         rm -rf $var_customize_dir
    9 y: \4 G: D; w' C+ R+ _8 h( j5 ~
  120.         rm -f $var_smartshowbssguide
    $ _. Q, F* F0 x2 k, H2 `8 j& Y4 V
  121.         rm -rf $var_smartshowuserguide% f) D  H: o7 l, ^, b5 q* Z; q
  122.         rm -fr $var_old_ctree# P" z2 D0 |$ P) c: F
  123.         rm -fr $var_ctree_bak' T" C  B* K; s* [3 s  Q4 e
  124.         rm -fr $var_cfgbackup6 ?+ K* K- U8 f1 J
  125.         rm -f $var_jffs2_hardversion_bak_file! S' b7 e5 b- I0 g
  126.         rm -rf $var_PrimaryDir. g8 s8 J8 H7 F
  127.         rm -rf /mnt/jffs2/p2ploadcfgdone& b4 E2 t) U2 {) S
  128.         rm -rf /mnt/jffs2/dhcp6c
    ! I, G* b- C2 z' N5 m
  129.     rm -rf /mnt/jffs2/dhcpc
    : \: U3 c( V4 w1 @; v
  130.         rm -rf /mnt/jffs2/onlinecounter
    1 B  C5 P# F# J/ i6 r* L# C
  131.         rm -rf $var_jffs2_specsn_file6 n9 y, l; H" e" J: Y
  132.         rm -rf /mnt/jffs2/reboot_bind_tag
    + Q* k# [# b$ I  Z6 K2 c! M: L! ~% R
  133.         rm -rf $var_p2p_dhcp_file
    " J$ }5 y/ C" g  E6 Z) S
  134.                 ) a( ~) O+ e+ U1 x
  135.         rm  -rf /mnt/jffs2/app/osgi/*
    1 c# Y( o8 ?: \& t) P! {6 P/ R
  136.         rm  -rf /mnt/jffs2/app/cplugin/*
    # E, C# c! w" K9 K' c$ Z  V' \: {! _
  137.         6 P0 C" {! D# j8 S& L* z
  138.         rm -f /mnt/jffs2/smooth_finsh! A! t6 H' y. K8 ]$ `! X
  139.         rm -f /mnt/jffs2/gdstbmac.bin# u1 s- L3 J* C  t% x
  140.         " p- l8 L+ z: R. z$ [1 Z8 n5 H
  141.         rm -f $var_plat_root6 n% Z" O1 U" [3 O) }/ \
  142.         rm -f $var_plat_pub
    " L* Y& _7 U# f; r* E+ p$ t: j
  143.         rm -f $var_plat_prvt
    7 R" v0 n* f3 x% |& r4 _- T

  144. - q5 e7 A( q: I7 Y  L$ l5 x% S
  145.         HW_Script_RemovePluginFile
    3 _$ I- G$ j  t- s
  146.         return
    0 P. Q4 R" q7 T$ C
  147. }
    # l0 `( }) @" m* W  k

  148. 5 Y6 N$ z1 G. p/ Z
  149. #creat files
    ( e$ x  D8 J6 g: Q% U% k6 x) _
  150. HW_Script_CreateFile()' ]) i6 z, [2 j2 L. c
  151. {
    + [* Y) E3 M/ c: E0 u1 A: {
  152.         var_telnet_flag=/mnt/jffs2/ProductLineMode
    4 A% \* w) g  U+ @( S3 Y

  153. " W, r; p  M1 y0 l
  154.         echo "" > $var_telnet_flag, h+ m6 v: |% M+ a2 V3 B
  155.         if [ 0 -ne $? ]
    " H0 `! [9 L- C! q( M% {" v
  156.         then
    ! f7 m, V+ D! @- F& A+ m1 u+ R
  157.         {
    ' H0 T0 B, k/ H" a6 z
  158.                 echo "ERROR::Failed to create telnet flag!"9 o6 l$ ]& s& C: v: ?2 p
  159.         return 1: Y* G. x& c$ c) k/ R  \
  160.         }
    4 j* t( E0 r/ `) K7 b/ M" x
  161.         fi
    ( S# Z1 J' B& ?# p$ _8 \
  162. . a' m' e" O5 e& x0 R
  163.         return 04 S" \# q2 }/ s* p
  164. }0 y; C. P: n( w6 {2 |" t

  165. 6 b8 o6 D* S8 |3 S/ x  U
  166. # copy files0 c. Z" X( t9 X! E
  167. HW_Script_CopyFile()
    6 R, N( |! O1 l' ?* m
  168. {
    ' e/ @$ z0 F) F" b- T/ S, B9 i
  169.         var_etc_def=/etc/wap/hw_default_ctree.xml; @0 @3 X' R  Y# R* b# D
  170.        
    ( q1 v, M8 z' v4 f% c$ Y1 a$ L1 @
  171.         #增加延时,确保DB不保存
    " Q+ h! z: z; _0 S7 J
  172.         echo > /var/notsavedata
    $ ]( U$ D! o* @" l# C3 [  o
  173.         sleep 13 E) C" s# t4 S

  174. & r- \  f8 B3 l- C( c$ o" l
  175.         cp -f $var_etc_def $var_ctree* ^) X6 j2 R. i& a5 \
  176.         if [ 0 -ne $? ]
    4 C6 f4 D0 P$ w. p: M! Z0 N
  177.         then
    $ m8 x% k+ @  R8 z; R5 k
  178.                 rm -rf /var/notsavedata
    0 |, X, _* N' S7 u( ^' A! \
  179.                 echo "ERROR::Failed to cp hw_default_ctree.xml to hw_ctree.xml!"
    ! i3 Q7 T6 N+ P. h) p# ?
  180.                 return 1# c: `, j, s! T. U4 ^
  181.         fi* a3 i6 R8 h, x+ i7 @" I) i
  182. / P- O$ k% K7 H5 r( `* D5 z
  183.         return
    4 R+ C0 E3 L2 O0 b$ D$ U1 X
  184. }
    4 T. g8 ]$ @7 C+ ]3 _6 |5 \
  185. ' b( u  l8 c: F6 l: X* |  Y
  186. # set spec data- n$ \) D- Z  k
  187. HW_Script_SetData(); ?7 A7 l6 K$ e3 P
  188. {8 `; Q" X! B+ K% v
  189.         cat $var_boardinfo_file | while read -r line;! H: D5 g$ z, b# ~! S& H+ H
  190.         do
    2 _3 m: _1 n3 j# ?
  191.                 obj_id_temp=`echo $line | sed 's/\(.*\)obj.value\(.*\)/\1/g'`& B3 s( H+ {9 f' e$ q$ F! F2 [
  192.                 obj_id=`echo $obj_id_temp | sed 's/\(.*\)"\(.*\)"\(.*\)/\2/g'`+ m# O5 K6 f  _3 \7 Z# T
  193. 7 N9 r3 G/ X: ?1 Q
  194.                 if [ "0x00000003" == $obj_id ];then
    . M. e! o5 ~* ~- P8 a; X
  195.                         echo "obj.id = "0x00000003" ; obj.value = "";"3 n& @1 y6 V: ]8 D1 ~+ u
  196.                 elif [ "0x00000004" == $obj_id ];then7 Q5 y4 V8 g- k, x
  197.                         echo "obj.id = "0x00000004" ; obj.value = "";"7 `: b1 g/ _; Y
  198.                 elif [ "0x00000005" == $obj_id ];then  m' \, ?1 M9 T9 a3 J
  199.                         echo "obj.id = "0x00000005" ; obj.value = "";"' _" v  q( k7 H7 R
  200.                 elif [ "0x00000006" == $obj_id ];then& O4 \6 R' s. U  ?
  201.                         echo "obj.id = "0x00000006" ; obj.value = "";"  C  W9 ~$ v8 s2 b0 T
  202.                 elif [ "0x00000016" == $obj_id ];then
    / u% [1 O8 M' R- a
  203.                         echo "obj.id = "0x00000016" ; obj.value = "";"& t  |& {8 R- R) e# @4 p; S
  204.                 elif [ "0x0000001a" == $obj_id ];then- |+ ~1 d, o$ _
  205.                         echo "obj.id = "0x0000001a" ; obj.value = "COMMON";"4 p+ N# G1 l! Y8 M6 T# @! b
  206.                 elif [ "0x0000001b" == $obj_id ];then
    8 [4 P4 ?! M! [# X) ?9 C3 i5 I
  207.                         echo "obj.id = "0x0000001b" ; obj.value = "COMMON";"& P7 F3 ^7 k5 Y) u& {0 n& A
  208.                 elif [ "0x00000019" == $obj_id ];then
    6 \: h) Y  {% o) S; W3 i* D
  209.                         echo "obj.id = "0x00000019" ; obj.value = "";"
    ' _" G, O/ s, k' c  F2 w
  210.                 elif [ "0x00000020" == $obj_id ];then( H2 e. }# z" h
  211.                         echo "obj.id = "0x00000020" ; obj.value = "";"
    + q& J2 A+ a6 X/ z! V
  212.                 elif [ "0x00000031" == $obj_id ];then
    9 s4 s$ T4 r9 V8 q1 y- |8 f. @, t
  213.                         echo "obj.id = "0x00000031" ; obj.value = "NOCHOOSE";"
    ) ^% [/ W& m! b/ l. O: l
  214.                 elif [ "0x00000035" == $obj_id ];then
    0 m4 \/ y2 a% V* X' r! \" U9 i
  215.                         echo "obj.id = "0x00000035" ; obj.value = "";"
    - _8 |6 k9 e/ {' y# W
  216.                 elif [ "0x0000003a" == $obj_id ];then8 }4 ^9 R8 t7 p; \
  217.                         echo "obj.id = "0x0000003a" ; obj.value = "";"
    & q7 Y6 t$ k" X
  218.                 else/ i: y  i7 B& {0 u
  219.                         echo -E $line6 T2 o) T% h4 ]. ?, m* ?
  220.                 fi# ?! V% O6 B' ?
  221.         done  > $var_boardinfo_temp
    ! T# [$ Y" J6 e/ Y! U5 }% _7 l

  222. * h; n% Z6 ~) P( K" D- B5 c2 N8 a# e
  223.         mv -f $var_boardinfo_temp $var_boardinfo_file* @/ x2 k. i; f; l6 B8 c% l( q7 N( a( @

  224. ! ^6 T. S, D" f
  225.         return' {' w4 g% U7 x4 J5 t' _1 q
  226. }
    3 U/ b! V1 `8 v9 ?
  227. 1 o. w; b1 g0 x. o4 y
  228. # 刷新boardinfo文件的crc行
    + ?5 i% I8 i* |- z5 K- s& I: l
  229. HW_Customize_ValidateBoardinfoCRC()
    2 J0 a: t7 w4 R; M
  230. {- g4 F4 p$ B$ o  P; @9 ]1 d
  231.         if [ -z $1 ]; then
    " S: C" ^3 k/ ~/ D
  232.                 return 0% O* ?; Q+ e9 F, N9 f: V
  233.         fi' J: |& j# f3 V' A3 B! `! O
  234.         if [ -x /bin/factparam ]; then4 r4 x9 D, J8 M
  235.                 /bin/factparam -v $15 b6 ^; o9 h4 u, X8 M
  236.                 if [ 0 -ne $? ]; then8 b( ?+ u/ A1 E8 h' C& Z: m7 b! o( @
  237.                         echo "ERROR::Failed to validate boardinfo crc on $1!"
    3 F; b3 K) B. r: q% D
  238.                         return 11 i9 N. z% _& V5 T; T3 M; [3 h
  239.                 fi! O$ U. ]* l$ ^, x
  240.         fi
      K8 l# y3 S: ~) ?& ]  o8 h
  241. }: G9 U, y7 O5 p& w- Y% x

  242. 2 ^" O8 ~8 G3 p9 C4 J
  243. # 清除出厂参数备份
    & D3 A! q0 N: q3 p& ?& Q
  244. HW_Customize_ClearFactoryParamsBackup()# H/ W$ E; v0 W$ n
  245. {9 l: |3 F- \, ^: h, ~
  246.         if [ -x /bin/factparam ]; then
    ! E8 O) U- q+ D9 k% X( [
  247.                 /bin/factparam -e reserved
    ) P8 e0 H* s- W; a  ]. n3 x6 |
  248.                 if [ 0 -ne $? ]; then
    ( B1 R. G1 Q! y% j
  249.                         echo "ERROR::Failed to clear factory parameter backup area!"7 Z+ Y9 c* I+ O! i+ _. v6 _3 w
  250.                         return 1" c# m4 ~. j7 h0 y, ?
  251.                 fi9 y$ [" S9 ]. v  J3 F
  252.         fi) i7 n$ W' M3 [* Y
  253. }+ [+ P( q$ Q% P; H9 G

  254. ; F" D5 T: @/ S3 B) Q" E0 T
  255. if [ 0 -ne $# ]; then) ?5 }& I4 }+ h  H0 u6 z
  256.         echo "ERROR::input para is not right!";! v  X- w* O1 `( {
  257.         exit 1;$ b, \* W, x" E  E6 y5 |( H: a
  258. else
    ! N" l7 K- ]) p3 X; S8 G: E1 G
  259. HW_Script_CreateFile2 R: y' f5 d6 \% j
  260. [ ! $? == 0 ] && exit 1
    , V" A7 V2 r+ S; X. |
  261. 3 L6 Z* ^# w  A* }7 w/ d
  262. HW_Script_RemoveFile
      y  f+ w+ ~$ _& ^' i" m- P* S7 W
  263. [ ! $? == 0 ] && exit 1
    1 l6 \. _6 c. k3 v, O; z0 \8 R7 _
  264. 6 E4 c" R7 Q: f  A% I2 r
  265. HW_Script_CopyFile+ b! {% k9 r3 k
  266. [ ! $? == 0 ] && exit 1* C1 g+ [+ U" a9 [0 L  y- E; ^

  267. * w- s8 W& K1 Q, `6 _
  268. HW_Script_SetData# [% `2 P- Q) o2 D) D- I
  269. [ ! $? == 0 ] && exit 1
    # k" P& _! `! E, x7 s. s$ k
  270. - }" A3 K, q, h: W1 V2 ?
  271. rm -rf $var_boardinfo_bakfile
    3 s! _& |6 v. e# X

  272. 6 G2 U! S0 U: V  T0 M1 {* [
  273. ctrg_support=`GetFeature HW_SSMP_FEATURE_CTRG`  b- f6 M( l1 ]9 \
  274. if [ $ctrg_support = 1 ] ;then- n: {9 A* ?4 v: [
  275.         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
  276. fi5 R! A8 t5 d% c+ z1 R
  277. : W  T. [- I8 n. b7 ^( M
  278. # 必须刷新boardinfo文件的crc行,并且清除reserved分区的出厂参数备份( c8 v4 G+ ~9 w5 m
  279. HW_Customize_ValidateBoardinfoCRC $var_boardinfo_file$ u) m' {* `# E% a9 d4 D+ N/ r- M+ v
  280. [ ! $? == 0 ] && exit 1
    2 Z/ R1 ?$ c# u" X' E! {# q  F
  281. HW_Customize_ClearFactoryParamsBackup6 e' W7 i/ _) T
  282. [ ! $? == 0 ] && exit 1
    & d/ W0 @+ z- u, b: B+ u

  283. 6 B% S. U5 {9 W/ J
  284. echo "success!"
    - q" ^; r# T1 H+ Z4 D

  285. * J2 j. H: ^' F5 q
  286. exit 0
    + R; R0 P  m" x+ A* f! u. `
  287. 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

本帖子中包含更多资源

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

×

点评

技术贴。。学习了。。。  发表于 2018-7-13 08:59
 楼主| 发表于 2018-4-4 22:41:11 | 显示全部楼层
本帖最后由 happyhack 于 2018-4-4 22:58 编辑
/ i# x' P7 \+ O  I! n2 ]7 k8 B
  l2 m3 I% [0 ^( \+ }, n* |+ P' _, |restorehwmode.sh打包附后,
1 R: l) o7 e9 {! l9 a5 S5 H
5 p8 p; r) [6 h" H3 g) _5 `" x
- m8 R, b+ E8 j( l4 [. B大家看下,个人猜测这个应该是跟手机app控制光猫的一些文件
! f( y" g- w  F1 c

本帖子中包含更多资源

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

×
发表于 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-24 09:06 , Processed in 0.029797 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

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