找回密码
 注册

QQ登录

只需一步,快速开始

查看: 185298|回复: 267

[教程] 玩机:激活华为光猫的小宇宙-openwrt

  [复制链接]
发表于 2018-10-10 15:16:09 | 显示全部楼层 |阅读模式
本帖最后由 achaoge 于 2018-10-11 17:59 编辑
" X  t4 j1 i8 C8 g% k. K( W) S6 Q$ ^
前言:    手头有一个华为的光猫 HS8145V,在补全Shell 的路上跌跌撞撞,终于在论坛翻楼找到了适合的方法。在此感谢各路神仙的探索和无私的分享。在摸索的过程中,发现光猫本身的系统没有提供自启动应用的入口,如果想在光猫上玩些花样也无能为力。但发现光猫除了本身的系统外,为了实现运营商的需求,还隐藏了一个openwrt 系统,我们倒是可以在这个系统里面,自由的做我们想做的事情。0 v5 t  B- E0 f/ E* d
- Z; ]7 x3 v6 m: t! S4 X
使用前提:/ j0 J6 G: _, h6 G
  • 要有运营商定制文件的华为光猫,比如说天翼智能网关(其它家没有试过)。
  • 要有telnet,需要补全shell。+ j* ~7 ~4 v' M/ w: p
) s. c# _4 E9 F4 Z( J  \& w! b; x

# ~6 r2 O) v9 K. P3 t  e  F原理:8 S: x  S6 i% s' C
    为了满足运营商的需求,除了光猫自己的管理界面外,华为的光猫还有一个系统,配合运营商的管理需求。而这个系统,是运行在容器中的 openwrt 系统,在我手头的 HS8145v 光猫里面,就在 mtd17、mtd18、mtd19 分区上,分别挂载在 /opt/upt/framework 和 /opt/upt/apps 下面。其中 framework 分区为只读,映射为 openwrt 的 rootfs分区, apps 分区为可读写,映射为openwrt 的overlayer,可用容量为90多M。在启动过程中,华为的 saf-huawei 程序会在容器内完整的启动这个 openwrt 系统。. g$ ]& V& f) J, D
    所以,只要我们把需要的文件放入这个内嵌的openwrt 系统,就可以像操普通的 openwrt 系统一样了,比如说启动 dropbear,asterisk 等等。
) S9 p, z  b- U! v, @" l+ b    在我的光猫里面,内嵌的openwrt 是 CC,所以我找的软件源是 openwrt cc for omap,源:http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/* w, Y' K, d' y3 W) y5 J+ K

$ z9 u* z8 Q5 Z- C. I) H3 N) A0 v操作过程:( D: k& I% \7 p% a6 m' n
  • 要操openwrt 系统,当然首先是准备好 dropbear 7 R6 f; N- b0 q, H
    1.1 首先禁用光猫自带的 dropbear,并开启防火墙的22端口,这一步编辑的文件是 /mnt/jffs2/hw_ctree.xml 文件,因为文件有加密,所以需要解密编辑之后,再加密放回去,注意先备份 hw_ctree.xml !。
    1. cd /tmp
      . e( ~& J8 J  F
    2. cp /mnt/jffs2/hw_ctree.xml hw_ctree.xml.gz+ Q) S( C1 y& F& u% F
    3. aescrypt2 1 hw_ctree.xml.gz tmp5 w0 m5 ^! \/ I. [* ~( b/ r
    4. gunzip hw_ctree.xml.gz2 }. w/ w) [% B8 e4 L; v
    5. sed -i 's/\(X_HW_CLISSHControl Enable="\)./\10/;s/\(AclServices.*SSHLanEnable="\)./\11/' hw_ctree.xml
      5 q+ F* K: I' d$ ]0 A
    6. gzip hw_ctree.xml9 V4 S) @% b. J* n0 J" `% p
    7. aescrypt2 0 hw_ctree.xml.gz tmp0 X. J9 V/ W) n9 E
    8. cp hw_ctree.xml.gz /mnt/jffs2/hw_ctree.xml
    复制代码
    1.2 下载 dropbear 的包,解压,放入正确的位置。
    * O; J/ z/ S( o: y8 s: G) ?
    1. cd /tmp
      ) v" {! i4 I* m3 ~
    2. wget http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/base/dropbear_2015.67-1_omap.ipk5 L6 T+ K+ K+ x1 t6 |* h9 D$ v# W* x
    3. tar xzf dropbear_2015.67-1_omap.ipk
      5 `! B3 f3 z5 p3 M" |5 ^, T
    4. cd /opt/upt/apps/apps/0 d3 t# o' _5 E
    5. tar xzf /tmp/data.tar.gz
      + O9 J% Q& _2 l9 l; F& ~
    6. mkdir etc/rc.d && cd etc/rc.d* |9 r& m3 `# a, V* W0 ]
    7. ln -s ../init.d/dropbear S50dropbear
      $ o5 o- j  m* _4 Q. F
    8. rootpw=$(grep root /etc/shadow|cut -d: -f2)* {! F( x8 U0 ]% x
    9. sed -i "s/root:/root:$rootpw/" ../shadow
    复制代码
    1.3 这个系统里面root 密码在上一步已经设置为跟光猫的系统密码一致(我的机器上密码是 admin)。如果要免密登录openwrt 系统,需要自己创建ssh密钥对,将自己的公钥放到 /opt/upt/apps/apps/etc/dropbear 下面,并命名为 authorized_keys。0 K9 A$ d# O  L: w
    OK,基本的系统操作完成,现在可以重启光猫了。
  • 重启光猫后,现在应该可以ssh 远程登录系统了,登录进去之后,我们得到一个 openwrt 系统的界面。8 k6 H) b! X# x0 s$ ?, {7 a
    2.1 系统默认的软件源是不存在的,需要我们修改一下,指向一个arm架构的 openwrt cc 源,我的系统修改如下:
    1. root@SAF:~# cat /etc/opkg/distfeeds.conf5 T; H2 h. M' Y* ]; V& i0 T" i# c
    2. src/gz chaos_calmer_base http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/base
      . o  B/ b) ?+ ]9 `5 U
    3. src/gz chaos_calmer_luci http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/luci
      5 `5 B9 O7 N8 W6 h
    4. src/gz chaos_calmer_management http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/management6 U8 i4 P- Y$ ?3 p
    5. src/gz chaos_calmer_packages http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/packages. ~+ o7 i0 G" m4 g" g; d% y
    6. src/gz chaos_calmer_routing http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/routing
      ( Q; u' S1 }2 z- m* N1 C; d
    7. src/gz chaos_calmer_telephony http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/telephony
    复制代码
    2.2 修改之后,要让系统能够接受omap 源的包,需要修改 /etc/opkg.conf 文件,请加入 arch omap 10 这一行,根据自己的情况编辑。我的文件内容如下:
    1. root@SAF:~# cat /etc/opkg.conf8 T& Q: M) A5 C5 y% c* ^
    2. dest root /
      ; U, Z* X4 w0 y6 @* Y8 r3 T
    3. dest ram /tmp% F1 E1 ]9 I, }1 ?$ e8 G3 x, J. E
    4. lists_dir ext /var/opkg-lists  ~: v' G$ v: W8 k/ i
    5. option overlay_root /overlay  c* y% J; ]5 K& Q
    6. option check_signature 1
        A( ~/ O% Y8 \
    7. arch all 1
        u# i5 L* Y' X! n5 g
    8. arch noarch 1
      / Z1 o0 I+ k) R$ q1 X( s
    9. arch omap 10
      / Y+ N, k: x) m0 k- P3 c" A
    10. arch sd5116v1 12
    复制代码
    2.3 现在可以运行 opkg 命令更新源,并查看软件信息了。但是奇怪的是,华为似乎阉割了 opkg 的安装功能,所以我们还需要替换掉系统的opkg命令,具体操作命令如下:
    1. wget http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/base/opkg_9c97d5ecd795709c8584e972bfdf3aee3a5b846d-9_omap.ipk
      ; T$ N  @7 M' R( g' Z7 C; J
    2. tar xzf opkg_9c97d5ecd795709c8584e972bfdf3aee3a5b846d-9_omap.ipk ./data.tar.gz5 ]: a! M) E! H, H
    3. tar xzf data.tar.gz ./bin/opkg
      ; [; \  h. }* I/ {7 v  V
    4. cp bin/opkg /bin/
    复制代码
    现在应该就可以愉快的操 openwrt 系统了。
    9 d# P% ~" g$ _6 V$ C

  o+ @/ @% W9 v5 f/ n7 _  W
* |/ d/ {' r8 `' S% h  T" m5 A, D$ d  H( }- t! v# U6 V
  o5 r% ~& p# [% k. r5 N4 {8 O0 [

  e! {' f- |0 z) l+ P! c" G) D. G6 u

- T9 L  B8 u8 w补充内容 (2018-11-2 11:44):; C2 F, E# d4 k5 ~0 L. D5 E0 o
有的同学测试过不成功,后来我弄一个新的光猫的时候发现问题出来哪里了。
# i8 Z/ A& u) j7 ^+ C; t5 V* b- p新的猫,在 hw_ctree.xml 这个文件里面应该是没有X_HW_CLISSHControl这一行的,所以 sed 命令也不会报错,但是却无法关闭光猫自身的dropbear
' Y, U  C% X% Q
8 S$ y6 D/ {. p' L9 Z2 O补充内容 (2018-11-2 11:46):2 E5 {" r  Q) d
所以解决方法就是在 telnet 的 wap 命令界面,随便输入一个关于 ssh 的命令,比如说我就是改变了 ssh 的认证模式,然后在 hw_ctree.xml 里面就会有关于 ssh 的那一行了。' ]' G3 j) B- C/ z& _1 E; \
再执行一遍操作过程应该就可以了。
; \4 A5 W, G; Z' r# G: Q& v; `
9 r8 i: w2 K. p, i& P8 U3 o补充内容 (2018-11-23 11:28):
, y$ p' E- o) b4 {$ Q1 |还不清楚ssh那行怎么处理的,请参考#48 楼的图。
 楼主| 发表于 2018-11-23 10:57:10 | 显示全部楼层
meixianghao 发表于 2018-11-22 13:27
; x( w9 b. F( E  M, i2 B7 y我的机器是r017版本,没有ssh命令,手工修改hw_ctree.xml文件也不行,还有办法吗?1 Q& ~) ]( S: I( r9 \
现象跟asakiasako 的一样, ...
! p8 w/ z) ^: Z- J$ L
看图,在wap> 界面下运行ssh相关命令的示例截图2 B2 j+ w6 j  r: Z

本帖子中包含更多资源

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

×
发表于 2022-6-24 00:54:16 | 显示全部楼层
能不能opkg install luci
发表于 2020-1-30 22:33:30 | 显示全部楼层
本帖最后由 yang1340751 于 2020-2-5 09:38 编辑
4 F3 M/ N& u+ l- U4 p* P2 ^( a) ^  u5 N8 M
现在开始opkg修改,修改后配置如下4 M% c! V+ {/ z' {
  1. root@SAF:~# cat /etc/opkg.conf( _$ R7 I. ~8 A$ Y
  2. dest root /$ T1 n) o+ @9 G+ E3 m
  3. dest ram /tmp" ?7 E9 u" y. r% u) z$ {
  4. lists_dir ext /var/opkg-lists
    # B9 }0 R$ K0 E5 m) {6 m5 T
  5. option overlay_root /overlay
    6 n; q' \% s% o$ j( c# E
  6. option check_signature 1$ k; A6 R# @7 H1 u1 n' R
  7. arch all 1
    6 |( m( q$ l. z% t0 p
  8. arch noarch 1
    " X9 L" e* F. m3 T# v- k3 Q4 G
  9. arch omap 10
    % T2 p& t4 Y" u2 A. K, r$ C3 l
  10. arch sd5116v1 12
    + K4 n7 J* x  z. U! f
  11. root@SAF:~#
    4 ^+ l3 |( N; F& b1 B
复制代码
5 E# n. B7 ^% R0 \/ B2 ^6 g: u3 v
2 w4 P3 T  a0 A3 @
3 d$ D: K; p. E' S) M
安装luci,提示已经安装了最新版的luci,不知道该怎么解决了
# p% Z& K9 e! g
+ k* T! E& X7 S# x! B
  1. root@SAF:~# opkg install luci-base
复制代码

+ ~+ e& J: b0 k) i# r- ^$ P/ @  n) S. D0 R/ n+ g% t
上述问题解决了,需要先update后再install
$ [- F0 G% R  Q( L7 H# y- A0 S8 h
  1. root@SAF:~# opkg update, J' v( z8 e, }, c) {) X
  2. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/base/Packages.gz.
    ) Y, f& o  B% O! W: i
  3. Updated list of available packages in /var/opkg-lists/chaos_calmer_base.% j& a) Z4 X- c. u
  4. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/base/Packages.sig.' w% X+ x1 A! b" _
  5. Signature check passed.( T* I' |0 V5 k* i
  6. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/luci/Packages.gz.+ b0 l1 S% a: S* K  }' Q! c
  7. Updated list of available packages in /var/opkg-lists/chaos_calmer_luci.1 H# J5 e+ O% ]0 O
  8. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/luci/Packages.sig.
    / E9 M' @& h1 O8 `1 {8 H. N
  9. Signature check passed.
    * ~( ?4 J. c( U4 w5 R/ H
  10. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/management/Packages.gz.$ x/ A. h( h" e$ `9 _
  11. Updated list of available packages in /var/opkg-lists/chaos_calmer_management.2 ]) f. i; v0 _: D$ D. u
  12. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/management/Packages.sig.
    ( L4 y# N3 _* |; e! i6 N2 N9 `
  13. Signature check passed.
    " Q- A6 b* S7 R" k& l
  14. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/packages/Packages.gz./ D5 p& ?. @6 @
  15. Updated list of available packages in /var/opkg-lists/chaos_calmer_packages.
    , G; r9 G( c9 f. b1 d6 |
  16. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/packages/Packages.sig.
    $ {' b7 W% r5 T
  17. Signature check passed.
    ( _0 m: s* m7 Z" o: J
  18. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/routing/Packages.gz.
    " a( W! a3 s1 F! j2 l! o
  19. Updated list of available packages in /var/opkg-lists/chaos_calmer_routing.# z: }3 `' ~; q, X& a
  20. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/routing/Packages.sig.
    ) _. q4 h: z2 W1 ], f4 m) ?9 V' W3 _
  21. Signature check passed.0 p/ a) x+ A9 o
  22. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/telephony/Packages.gz., }9 _- B3 D% w% `: g
  23. Updated list of available packages in /var/opkg-lists/chaos_calmer_telephony.
    : q) r, f; p. k/ w6 Y9 @; n, d& B6 Y
  24. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/telephony/Packages.sig.
    1 W# H/ m' }" Z1 B3 o" }
  25. Signature check passed.
    . j' o0 Y/ |, t# n3 r! \; {
复制代码
" Y: [0 G  F; y6 e1 Q
4 }+ {, [# i$ r1 }; v5 t- |

3 ~9 W6 W5 f8 `( [  R安装好了之后,打开浏览器192.168.1.1,提示如下错误
2 X9 p9 x, K7 ^
- ?5 t7 ]: g  @$ _" k# E* |' |  `; {- `
# u5 e* a  a- Z& ]( G0 y, F
按照隔壁right网友的提示安装luci-theme-bootstrap  P9 s5 x% z& d" K# g; g

' M; l, j" L' c( D! W
  1. root@SAF:~# opkg install luci-theme-bootstrap
    & X9 s8 U! `3 h$ z' d5 d/ {7 P
  2. Upgrading luci-theme-bootstrap on root from R159 to git-16.018.33482-3201903-1...
    - S1 a0 \* [" Y' t  a" }
  3. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/luci/luci-theme-bootstrap_git-16.018.33482-3201903-1_all.ipk.
    5 `: e; h! o- H3 p) W& [
  4. Removing obsolete file /usr/lib/lua/luci/view/themes/bootstrap/header.html.
    9 k' r4 `' a7 I
  5. Removing obsolete file /usr/lib/lua/luci/view/themes/bootstrap/footer.html.  o) L  X3 `$ @/ h2 W
  6. Configuring luci-theme-bootstrap.9 Z( B4 i! F0 n, i3 ~& I
复制代码
错误少了一点,先这样吧。晚点再看看' o' I$ U2 f( P
/ n! I. Q% a- ~+ g( M0 _
上述问题已解决,方法:安装luci-theme-bootstrap之后,重启光猫6 I) I' G) D" `+ D7 e+ {
* z/ z: I5 D& y3 i1 J1 q
! G3 R! E( C+ X/ {. q
$ K' L+ Q" t6 I- @" i% P& H- d; v
9 p  U6 j' s3 \- m. ]; N

" w: L* K8 ~6 n
3 b4 |% Q; k0 r+ B: q8 @: C
3 L9 F6 _& j& d! D5 c( ]/ s0 L% G  M

本帖子中包含更多资源

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

×
 楼主| 发表于 2019-4-24 08:42:06 | 显示全部楼层
SHB66091471 发表于 2019-4-23 18:48
* Z) J0 C; O9 a2 m8 {你好。我的光猫是HG8342R。。能否加个QQ或是微信qq是1305015879微信world566855
; r; \. k2 m0 b# g5 ]& E
我没有 HG8342R 这个型号,所以没有办法帮到你。
9 \8 [: Y! q! d) ^( F2 o你可以加这个群试试,里面玩光猫的人多: Group ID:212496900
发表于 2018-12-15 12:59:13 | 显示全部楼层
本帖最后由 ccbcfan 于 2018-12-15 05:01 编辑 7 N, g! e* H8 t( t3 X- x

' k3 u1 {1 z1 x& ^+ J3 \- P感谢楼主,终于连上openwrt-ssh了。重启后需要再手工运行一次: ' z- C6 V1 A+ b5 n: _% S$ ?
iptables -A INPUT_ACL -p tcp -mtcp --dport 22 -j ACCEPT; f4 ^) G* a7 ^5 P- ~# r+ j) o

本帖子中包含更多资源

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

×
发表于 2018-11-22 11:36:32 | 显示全部楼层
我的机器没有 06.<X_HW_CLISSHControl Enable="0" port="22" Mode="1" AluSSHAbility="0"/>2 }0 p9 {$ K+ S4 q2 @' J+ C& w
wap下也没有命令ssh,还有办法吗?
发表于 2018-11-6 21:36:19 | 显示全部楼层
回复挣猫粮,回复挣猫粮
发表于 2018-10-14 11:37:06 | 显示全部楼层
难得的技术贴
 楼主| 发表于 2018-10-11 17:55:46 | 显示全部楼层
本帖最后由 achaoge 于 2018-10-11 17:58 编辑 9 y" L" k& t  V8 o

- _& r+ q! ^) k6 E. Z. r3 E& W消灭零回复!# R$ ~, r# g! `
" \% f* B% M* O1 l2 y* C  P1 J
所有的操作简化到一个文件里面,下载附件里面的文件解压,并传到光猫里面,然后执行下面的命令,重启之后就可以远程 ssh 登录光猫了
  1. sh openwrt_fix.sh
复制代码

; ]4 I7 S1 ~7 k# z6 c另外说明下,我的猫的版本是HS8145V R018版本的,如果型号和版本不一样的话,建议还是按一楼的手动来处理。9 @* X0 V% g  I, Q: i
看看能赚点猫粮不?* o# p5 a) N$ O6 ^: m
) {0 W$ l) g  s0 N! ?5 c

本帖子中包含更多资源

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

×
发表于 2018-10-13 00:00:21 | 显示全部楼层
这么牛逼的东西不支持一下啊?
发表于 2018-10-14 16:45:47 | 显示全部楼层
高手啊,真是正姿势了。以前觉得光猫简直没法折腾
发表于 2018-10-14 19:01:27 | 显示全部楼层
高手!膜拜一下~
发表于 2018-10-14 19:36:05 | 显示全部楼层
谢谢分享,有空时再好好研究研究。
发表于 2018-10-14 20:35:28 | 显示全部楼层
折腾无止境,这下有得玩了,多谢分享!
发表于 2018-10-14 20:37:40 | 显示全部楼层
gunzip hw_ctree.xml.gz 这一步出错提示[img][/img]
发表于 2018-10-14 20:38:49 | 显示全部楼层
本帖最后由 Sc丶Marse 于 2018-10-14 20:50 编辑 5 y# ?- u; Q& k: [

5 ~3 l  K% o& b+ Y* |: [$ dgunzip hw_ctree.xml.gz
$ Y- n& D$ e5 \7 w这一步出错

本帖子中包含更多资源

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

×
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|宽带技术网 |网站地图 粤公网安备44152102000001号

GMT+8, 2025-5-9 14:49 , Processed in 0.039248 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

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