找回密码
 注册

QQ登录

只需一步,快速开始

查看: 193257|回复: 267

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

  [复制链接]
发表于 2018-10-10 15:16:09 | 显示全部楼层 |阅读模式
本帖最后由 achaoge 于 2018-10-11 17:59 编辑
. e9 x5 i/ M- x" i: O9 K, A* W- @' o7 D, h# X
前言:    手头有一个华为的光猫 HS8145V,在补全Shell 的路上跌跌撞撞,终于在论坛翻楼找到了适合的方法。在此感谢各路神仙的探索和无私的分享。在摸索的过程中,发现光猫本身的系统没有提供自启动应用的入口,如果想在光猫上玩些花样也无能为力。但发现光猫除了本身的系统外,为了实现运营商的需求,还隐藏了一个openwrt 系统,我们倒是可以在这个系统里面,自由的做我们想做的事情。
( W" `8 v' h1 I0 w; x- k9 t: ^6 f! I' V, @4 w3 ^+ }6 ^
使用前提:
: I4 @+ a+ L9 d! O
  • 要有运营商定制文件的华为光猫,比如说天翼智能网关(其它家没有试过)。
  • 要有telnet,需要补全shell。; D# g  ?3 o3 r; K

& ~  _5 T$ m! h% F' ]7 ?$ @6 _6 R  X9 W# [* c: X
原理:  |! L; j  b3 K; S7 u
    为了满足运营商的需求,除了光猫自己的管理界面外,华为的光猫还有一个系统,配合运营商的管理需求。而这个系统,是运行在容器中的 openwrt 系统,在我手头的 HS8145v 光猫里面,就在 mtd17、mtd18、mtd19 分区上,分别挂载在 /opt/upt/framework 和 /opt/upt/apps 下面。其中 framework 分区为只读,映射为 openwrt 的 rootfs分区, apps 分区为可读写,映射为openwrt 的overlayer,可用容量为90多M。在启动过程中,华为的 saf-huawei 程序会在容器内完整的启动这个 openwrt 系统。; {! U6 q" H/ q3 T8 f( j( Z
    所以,只要我们把需要的文件放入这个内嵌的openwrt 系统,就可以像操普通的 openwrt 系统一样了,比如说启动 dropbear,asterisk 等等。
' X4 s3 G# {3 C/ G5 t    在我的光猫里面,内嵌的openwrt 是 CC,所以我找的软件源是 openwrt cc for omap,源:http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/1 e: y/ n5 _& B. [& h
6 n4 E1 W& y7 `
操作过程:
7 b: e8 G5 X8 q+ v9 H7 |5 u
  • 要操openwrt 系统,当然首先是准备好 dropbear
    $ e2 u# ~+ o# z& H1.1 首先禁用光猫自带的 dropbear,并开启防火墙的22端口,这一步编辑的文件是 /mnt/jffs2/hw_ctree.xml 文件,因为文件有加密,所以需要解密编辑之后,再加密放回去,注意先备份 hw_ctree.xml !。
    1. cd /tmp
      ; L# l: h. I* |. Y9 l9 I' r
    2. cp /mnt/jffs2/hw_ctree.xml hw_ctree.xml.gz7 D7 p- |( r: p( g, m  D, e
    3. aescrypt2 1 hw_ctree.xml.gz tmp
      : g5 i: @- @( N0 n5 h
    4. gunzip hw_ctree.xml.gz" a6 U: W  ]; h5 X7 p6 l1 {
    5. sed -i 's/\(X_HW_CLISSHControl Enable="\)./\10/;s/\(AclServices.*SSHLanEnable="\)./\11/' hw_ctree.xml $ h- J/ c8 x# K% S' q% r
    6. gzip hw_ctree.xml/ b; U, F5 t/ n: M9 [1 f& k/ O8 Z* Q+ x
    7. aescrypt2 0 hw_ctree.xml.gz tmp
      8 _) @+ j. F$ I
    8. cp hw_ctree.xml.gz /mnt/jffs2/hw_ctree.xml
    复制代码
    1.2 下载 dropbear 的包,解压,放入正确的位置。
    $ z. r2 V& {  p! b, C
    1. cd /tmp
      8 g; }$ |% F. v; b/ V& ]& j
    2. wget http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/base/dropbear_2015.67-1_omap.ipk, T- f( Z; i/ i& Y1 `; u9 I
    3. tar xzf dropbear_2015.67-1_omap.ipk 9 O& v2 _, l$ z2 m- S! w* |
    4. cd /opt/upt/apps/apps/: w; {: C  g) H
    5. tar xzf /tmp/data.tar.gz0 c2 O6 _! z3 C6 b9 Z: Q
    6. mkdir etc/rc.d && cd etc/rc.d& x- c$ X3 H/ v; R6 j
    7. ln -s ../init.d/dropbear S50dropbear
      ' T0 `- B1 ?7 F+ z
    8. rootpw=$(grep root /etc/shadow|cut -d: -f2)
      + k3 j! X+ j0 Q( L' x; Y7 \6 N' a
    9. sed -i "s/root:/root:$rootpw/" ../shadow
    复制代码
    1.3 这个系统里面root 密码在上一步已经设置为跟光猫的系统密码一致(我的机器上密码是 admin)。如果要免密登录openwrt 系统,需要自己创建ssh密钥对,将自己的公钥放到 /opt/upt/apps/apps/etc/dropbear 下面,并命名为 authorized_keys。
      Y+ j% Q2 O: [9 DOK,基本的系统操作完成,现在可以重启光猫了。
  • 重启光猫后,现在应该可以ssh 远程登录系统了,登录进去之后,我们得到一个 openwrt 系统的界面。- {0 n  t# w' ~: {1 k) i8 [9 M  a
    2.1 系统默认的软件源是不存在的,需要我们修改一下,指向一个arm架构的 openwrt cc 源,我的系统修改如下:
    1. root@SAF:~# cat /etc/opkg/distfeeds.conf
      0 A. v- a# q! M: b8 t2 n/ }5 z6 C
    2. src/gz chaos_calmer_base http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/base3 V8 R* t/ c9 n
    3. src/gz chaos_calmer_luci http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/luci
      , T) q$ j7 R# Y1 z6 o$ r5 j
    4. src/gz chaos_calmer_management http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/management
      0 x) c& q1 {5 n$ G1 p- K# u
    5. src/gz chaos_calmer_packages http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/packages
      # F- ]( A4 \  |
    6. src/gz chaos_calmer_routing http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/routing
      $ U* X; C/ U2 h7 O* ^& U7 ~) Z
    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.conf
      6 R7 N: ~: I. {6 l; P# g) R
    2. dest root /
      ; L' @/ L+ z2 _( {8 T6 j' A, b; @
    3. dest ram /tmp$ h8 @- ?  N3 _4 l, v) y
    4. lists_dir ext /var/opkg-lists
      6 p5 T; z! ]4 z) F: U3 V
    5. option overlay_root /overlay2 j& a& f' G1 [" G6 Q
    6. option check_signature 1
      ' X: n( K" W$ Y$ G0 V  x: R
    7. arch all 1
      1 J, y/ B9 U; }, p. ~
    8. arch noarch 10 L3 [6 ?' `# h% Y
    9. arch omap 10
      / |0 O. s: L0 I! Y4 j
    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.ipk7 a8 p& p3 O1 n) a
    2. tar xzf opkg_9c97d5ecd795709c8584e972bfdf3aee3a5b846d-9_omap.ipk ./data.tar.gz( g6 d" e4 W  J( d# }$ {
    3. tar xzf data.tar.gz ./bin/opkg! a; i/ H1 v$ w
    4. cp bin/opkg /bin/
    复制代码
    现在应该就可以愉快的操 openwrt 系统了。( ?. G/ ~- Q: G4 g( U" y* ?# {
7 v) l+ G- L! R# H, u

  r8 L7 C, O- q# T
* v2 ]+ r8 f7 r. w9 H* u1 Q# F' ~+ Y7 f' C% V4 O
. j$ F* X0 O' t( O. ~( v

% q  t% S* u+ u4 g# Z+ U: q8 _8 S2 a8 I" z9 @
补充内容 (2018-11-2 11:44):5 z9 \! ]" T% C9 G: Z" ?# x
有的同学测试过不成功,后来我弄一个新的光猫的时候发现问题出来哪里了。
8 l1 Z$ m; j4 H9 g新的猫,在 hw_ctree.xml 这个文件里面应该是没有X_HW_CLISSHControl这一行的,所以 sed 命令也不会报错,但是却无法关闭光猫自身的dropbear
3 s/ q! v  b' G* K6 e% E8 C" _6 m' {6 _5 D
补充内容 (2018-11-2 11:46):; W9 Q: E. p8 w0 Z5 X% Y' v6 w
所以解决方法就是在 telnet 的 wap 命令界面,随便输入一个关于 ssh 的命令,比如说我就是改变了 ssh 的认证模式,然后在 hw_ctree.xml 里面就会有关于 ssh 的那一行了。
) R5 U8 ~4 I: r( }再执行一遍操作过程应该就可以了。* T$ F" ]* M: T) Y8 p
' @* S7 q( U' R2 ]" \8 i
补充内容 (2018-11-23 11:28):3 u6 T/ l, Q' z! e
还不清楚ssh那行怎么处理的,请参考#48 楼的图。
 楼主| 发表于 2018-11-23 10:57:10 | 显示全部楼层
meixianghao 发表于 2018-11-22 13:27
6 S! R; O2 k3 O; I4 q. v我的机器是r017版本,没有ssh命令,手工修改hw_ctree.xml文件也不行,还有办法吗?1 L" I/ q7 T$ Y( l
现象跟asakiasako 的一样, ...

9 t# `" W% o* a4 M; b看图,在wap> 界面下运行ssh相关命令的示例截图+ }1 R; x6 i$ S

本帖子中包含更多资源

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

×
发表于 2022-6-24 00:54:16 | 显示全部楼层
能不能opkg install luci
发表于 2020-1-30 22:33:30 | 显示全部楼层
本帖最后由 yang1340751 于 2020-2-5 09:38 编辑
& L+ l: i, \3 Z  l0 [) ]7 N4 h3 W/ j& m! a+ g/ w: N4 [
现在开始opkg修改,修改后配置如下
6 D4 t* q# I* S' t0 N
  1. root@SAF:~# cat /etc/opkg.conf
    9 o7 B6 Y: `  _
  2. dest root /
    ! R5 g( T0 M5 k! z0 D3 c! W4 G/ P# d
  3. dest ram /tmp
    ' P$ R5 Q: \/ n0 r: c
  4. lists_dir ext /var/opkg-lists. I9 H2 |# ]/ P8 Z8 x
  5. option overlay_root /overlay
    - S" x  B. c4 S3 o8 [
  6. option check_signature 1
    $ ^6 G( {$ }1 L6 z
  7. arch all 14 _. ^4 M8 s) C& V: ?
  8. arch noarch 1
    ( j# o/ ?5 M2 f0 ]; o% \
  9. arch omap 10
    - P6 X' {' ?3 R$ M. w% {7 L% z
  10. arch sd5116v1 12
    % K5 o. f. Z9 N1 o+ m3 S0 I
  11. root@SAF:~#) t- q, W0 }$ Z7 K1 f; K: W$ w
复制代码

+ F+ g/ c3 T, f5 D- n( l2 `$ W2 t. X6 y0 c8 |
) O4 A4 E& e0 O" L2 T9 }# e) w& i
安装luci,提示已经安装了最新版的luci,不知道该怎么解决了( u- T" o' T# N( E

1 e- N1 x4 ^3 z; y+ R0 y
  1. root@SAF:~# opkg install luci-base
复制代码
% {6 F5 ?9 e' H# ^1 I+ T* r

8 H& _0 k( G! q7 J  q' ~上述问题解决了,需要先update后再install
- z* q5 k" N8 u3 u
  1. root@SAF:~# opkg update
    5 {( I+ T+ l( n) W- `6 s
  2. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/base/Packages.gz.
    + G6 X6 g5 R, F
  3. Updated list of available packages in /var/opkg-lists/chaos_calmer_base.
    % l1 B. s# R' _, V$ Y% @( S
  4. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/base/Packages.sig.
    7 k* j+ A' B2 ?
  5. Signature check passed.+ p8 r9 Y( Y% ]5 _0 E9 I2 g  Z
  6. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/luci/Packages.gz./ \3 T, U' u1 E7 \7 W
  7. Updated list of available packages in /var/opkg-lists/chaos_calmer_luci./ m4 A! F3 U( X5 v$ w% p
  8. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/luci/Packages.sig.3 O6 u* x1 X$ U$ P' M, F( [9 x
  9. Signature check passed.
    / r3 X' ~! u" O9 g
  10. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/management/Packages.gz.+ z0 }8 f, r! y" w" Q7 w
  11. Updated list of available packages in /var/opkg-lists/chaos_calmer_management.6 ~; t8 ]; {# q  W6 i+ _
  12. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/management/Packages.sig.
    . P8 X. Z# q# E7 }* ^
  13. Signature check passed.3 F! ?. F" C% W; F& g
  14. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/packages/Packages.gz.
    , |* ~1 `$ B6 S4 c5 H) `
  15. Updated list of available packages in /var/opkg-lists/chaos_calmer_packages.
    2 o& W& N6 T3 g, Y- h
  16. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/packages/Packages.sig.
    , m3 c' y0 w! x- U) x
  17. Signature check passed.
    . E( Z: M5 c8 i" k# W- w0 F+ V
  18. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/routing/Packages.gz.
    ; b8 j. ?. V; q! n+ k0 D; L. G
  19. Updated list of available packages in /var/opkg-lists/chaos_calmer_routing.( X3 z* F: F& ?& W9 L% w  ~+ b  U4 \
  20. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/routing/Packages.sig.
    9 d. B+ z  t- l- {5 B
  21. Signature check passed.$ ?& ?2 n6 X8 g7 Z$ O1 c
  22. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/telephony/Packages.gz.# r9 m1 l; N( u
  23. Updated list of available packages in /var/opkg-lists/chaos_calmer_telephony.6 S* P) Q' N3 k* g5 {# N
  24. Downloading http://archive.openwrt.org/chaos_calmer/15.05.1/omap/generic/packages/telephony/Packages.sig.4 v$ c( v  d7 }# X4 W
  25. Signature check passed.' o1 [) C' `! h/ f; ^1 I/ l
复制代码
4 V+ Z' l# X& ^9 ^, ~* ~0 G

$ O! T3 F7 s5 M4 |% v
1 w4 W& i9 q2 b9 Z# k) c( o安装好了之后,打开浏览器192.168.1.1,提示如下错误* e! B6 p; y8 m$ O
$ _3 l) V  ~0 h# w& {2 M' j1 B
8 x0 ^2 V1 r7 d2 K

" S7 J9 l6 u! k按照隔壁right网友的提示安装luci-theme-bootstrap5 W' C0 y, ]; n- C% g: S
: x+ ^' N# S) F! h" y, P2 b
  1. root@SAF:~# opkg install luci-theme-bootstrap4 ^7 d- p3 p/ }) E
  2. Upgrading luci-theme-bootstrap on root from R159 to git-16.018.33482-3201903-1...
    * _, B8 O) e; q5 K# ~' {
  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.
    0 T4 G: y% `/ Q; N# b
  4. Removing obsolete file /usr/lib/lua/luci/view/themes/bootstrap/header.html.
    0 _- w$ Z6 C  O+ M
  5. Removing obsolete file /usr/lib/lua/luci/view/themes/bootstrap/footer.html.
    ' _" b; y# e+ p8 y
  6. Configuring luci-theme-bootstrap.! \8 D1 M  `6 l. I
复制代码
错误少了一点,先这样吧。晚点再看看1 x+ P& ]3 ~6 ?5 _
1 |8 D& S6 i5 G9 T' Z% P9 t
上述问题已解决,方法:安装luci-theme-bootstrap之后,重启光猫" d) w: ]5 u. q" z+ i
9 D" N- [. t) i0 F8 s# t

0 }# n" g6 _/ R9 M
, u; H' u* u4 a* Q  u
* M6 B' Q( G9 l$ w* b) v
  n9 H3 T  c" e, i  c; o& @. X

/ y; M3 j" d% B& }5 k! y& v- m) `  B' G' g; r- L

本帖子中包含更多资源

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

×
 楼主| 发表于 2019-4-24 08:42:06 | 显示全部楼层
SHB66091471 发表于 2019-4-23 18:48
2 Q! j2 i, S, g) [$ H' G你好。我的光猫是HG8342R。。能否加个QQ或是微信qq是1305015879微信world566855
" _4 I: D  r! v+ C
我没有 HG8342R 这个型号,所以没有办法帮到你。
0 i! x/ Q$ u; C9 x) S你可以加这个群试试,里面玩光猫的人多: Group ID:212496900
发表于 2018-12-15 12:59:13 | 显示全部楼层
本帖最后由 ccbcfan 于 2018-12-15 05:01 编辑 0 m8 T; X; R8 y

( K+ q5 p0 ^/ s# F1 @感谢楼主,终于连上openwrt-ssh了。重启后需要再手工运行一次: & B9 ?3 M: h/ |0 c( X+ C1 S, b! |
iptables -A INPUT_ACL -p tcp -mtcp --dport 22 -j ACCEPT, c6 G  J* h1 f% Q; c# h7 j

本帖子中包含更多资源

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

×
发表于 2018-11-22 11:36:32 | 显示全部楼层
我的机器没有 06.<X_HW_CLISSHControl Enable="0" port="22" Mode="1" AluSSHAbility="0"/>( M2 p5 A4 Y+ E( N
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 编辑
  O2 A) d3 j: `/ [8 Z+ N; E- i
0 q% L7 W/ h8 K1 t% K消灭零回复!
0 F6 |4 w6 ]& y0 N. O" }* k* j7 c9 ]+ f# \4 l9 H* ^
所有的操作简化到一个文件里面,下载附件里面的文件解压,并传到光猫里面,然后执行下面的命令,重启之后就可以远程 ssh 登录光猫了
  1. sh openwrt_fix.sh
复制代码

7 |2 B. O; s; y0 g另外说明下,我的猫的版本是HS8145V R018版本的,如果型号和版本不一样的话,建议还是按一楼的手动来处理。
7 [1 ~$ ~$ `1 u5 C& Y看看能赚点猫粮不?  u2 \' Y( u5 b
5 J2 ~/ a' G& I7 y! n$ R$ o

本帖子中包含更多资源

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

×
发表于 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 编辑
/ h4 |# j% r5 A9 _1 I! x- q" O( P0 \6 x% N4 n/ z
gunzip hw_ctree.xml.gz
5 }  v" ?1 G2 H0 Y; ~" M2 u这一步出错

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-6-17 11:23 , Processed in 0.037989 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5 Licensed

Copyright © 2001-2020, Tencent Cloud.

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