红米AX6 SSH解锁和挂载overlay方法
原帖地址:https://www.right.com.cn/forum/thread-4060726-1-1.html
先放出来看看能不能抛砖引玉, 等大佬的AX6三方固件
AX6好多老的漏洞都被堵了, 发现两个可能可行的还因为非正常修复的其他原因用不了,最后只有这个需要另外一台路由器的可以用.估计大家想解锁的应该也都有解锁过的老机器吧...
固件(备用)
http://cdn.cnbj1.fds.api.mi-img.com/xiaoqiang/rom/ra69/miwifi_ra69_firmware_a7244_1.0.16.bin
http://cdn.cnbj1.fds.api.mi-img.com/xiaoqiang/rom/ra69/miwifi_ra69_firmware_45a77_1.0.18.bin
小米路由器修复工具(单纯以防万一, 非必须)
http://bigota.miwifi.com/xiaoqiang/tools/MIWIFIRepairTool.x86.zip
https://www.xiaomi.cn/post/5289432 (教程)
1.0.16和18的分区除了版本号和wifi固件之外基本上完全一致, 内核不清楚.
个人wifi6下目测, 2.4G信号18强一些,16信号质量好一些. 具体的是隔2~4堵墙的情况下, 18手机两格信号但连不上, 16一格但可以连上; 两个的5G差不多;
但诡异的是这机器2.4G的覆盖范围和5G几乎完全一致, 并没有2.4穿透更好的表现.
AX6 SSH解锁
参考
https://www.right.com.cn/forum/thread-4032490-1-1.html
AX3600 1.0.17原版固件
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=4036131
NyaMisty的unluac(修改版), 这个调整了一些代码优化unluac的反编译效果, 调整的部分我忙完有空的时候整理下就发PR...
本帖隐藏的内容
前提:
需要一台电脑(有线),
另外一台解锁了ssh的openwrt的老wifi路由器(下文B)
支持AX6 1.0.16/1.0.18, 可能支持其他型号的其他版本...
- 另一个路由器(B)ip设置为169.254.31.1,关DHCP(电脑设置固定ip:169.254.31.3上去看看, 另外保证能ping通, DHCP是一定要关的)
- 2.如果是openwrt的, ssh上去,自行添加文件/usr/lib/lua/luci/controller/admin/xqsystem.lua,
最终结果是访问http://169.254.31.1/cgi-bin/luci/api/xqsystem/token会显示类似
(论坛的编辑器会吞字, 所以看图...)
- {"code":0,"token":"; nvram set ssh_en=1; nvram commit; sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear; /etc/init.d/dropbear start;"}
复制代码
的内容(或者\”显示为\u0022, code和token的先后顺序可交换), 请自己先尝试下确保能成功返回
如果不是openwrt的请自行调整步骤, 保证访问相同地址会显示相同内容即可
lua内容如下
(
[11-29]
论坛的编辑器会吞字, 所以复制完之后, 看图自己改下...
感谢@zlf 提醒
已上传报错的可以修改后保存重启路由器B或者手动删除下/tmp/luci-indexcache
result["token"] = "; nvram set ssh_en=1; nvram commit; sed -i 's/channel=.*/channel=\"debug\"/g' /etc/init.d/dropbear; /etc/init.d/dropbear start;"
)
- module("luci.controller.admin.xqsystem", package.seeall)
- function index()
- local page = node("api")
- page.target = firstchild()
- page.title = ("")
- page.order = 100
- page.index = true
- page = node("api","xqsystem")
- page.target = firstchild()
- page.title = ("")
- page.order = 100
- page.index = true
- entry({"api", "xqsystem", "token"}, call("getToken"), (""), 103, 0x08)
- end
- local LuciHttp = require("luci.http")
- function getToken()
- local result = {}
- result["code"] = 0
- result["token"] = "; nvram set ssh_en=1; nvram commit; sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear; /etc/init.d/dropbear start;"
- LuciHttp.write_json(result)
- end
复制代码
- B放一边开着,下面先不连设备,电脑从B断开, 重新打开电脑的DHCP(不是B的);
- 登录红米A,记下<STOK>, 输入时不含<>, 请参考你路由器本来的url格式
<STOK>是啥请参考前面的https://www.right.com.cn/forum/thread-4032490-1-1.html
- 访问
不含{}, 等待返回
如果正常会显示0,
显示1646的请检查下第一步的DHCP是否关闭, 1619的请检查第一步IP是否设置正确或者路由器B下仍有其他设备, 1655的请再来一次, 有小概率会连接失败
如果一直失败请改下路由器B的SSID/密码/信道/换着连下2.4G和5G(不要开二合一)
- 访问
(中途不要重启任何一个路由器或者改ip)
三个xxx, 随便填, 我填的就是xxx, 不能是空
如果步骤2路由器B需要用户名密码可以这里填上试试, 不保证成功, 反正我的老路由不需要就没有试过
如果正常会显示和步骤2一样的结果
- 重启红米A(不然wifi没信号),把B的dhcp和ip还原(如果还原不了就恢复出厂吧...);
可选继续进行后面的步骤
固化telnet
防止系统升级后无法解锁或者需要再来一次上面的步骤
步骤请直接参考AX3600的教程1或者2, 操作前请先备份好自己的mtd9,导出到电脑(也可全盘备份)以防万一
备份步骤
mkdir /tmp/syslogbackup/
全盘就是下面的9换成0~15(也可跳过12~14, 只备份0~11和15), 重复16次, 注意从0开始
(16~18是ubifs的虚拟分区, 16+17≈12或者13,18≈14, 不需要备份, 12/13是A/B分区的固件本身, 也不需要, 14是恢复出厂就没了的数据区, 也可以不需要)
dd if=/dev/mtd9 of=/tmp/syslogbackup/mtd9
然后可以用下载工具下会到电脑(浏览器可能有几个文件会识别成页面下不了)
http://192.168.31.1/backup/log/mtd9
特别注意:
注意unlock那步的时候wifi可能会挂掉, 请全程有线, 不要慌继续往下执行, lock之后应该就恢复正常了.
完事之后可能需要重新设置下wifi密码
AX3600的教程:
- 成品工具(f**kax3600),直接从"下面继续"开始看:(建议第一次上传到/data, 不然重启之后还要传一遍)
https://www.right.com.cn/FORUM/thread-4046020-1-1.html
- 或者手动步骤:
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=4045295
(从SN计算默认ssh密码: https://www.oxygen7.cn/miwifi/)
[12-8]提示: SN区分大小写, 请直接从路由器登录后右下角复制
中间有个"/"的那个, 不是MAC地址
还是不行的146楼, 就是升级之后没有默认密码可能要再来一次
然后后续升级之后就是telnet应该能用, 然后telnet上去, 重新跑下
- sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear; /etc/init.d/dropbear start;
复制代码
挂载overlay
挂载overlay(读写), 方便装openwrt的软件包(带页面的应该显示不出来), 借鉴了NyaMisty的
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=4037482
因为AX6不需要改分区表, (没有那么多flash), 也就不需要刷uboot, 风险要低些, 有20M的可用空间可以支配
但还是请先准备好固件和小米路由器修复工具, 并做好telnet固化以防手残(我测试过程中手残, 来回了8次, 这机器的reset好像又不一定能恢复出厂...), 不过总体没啥风险就是了
更新官方固件后不保持存活, 请再来一次下面的步骤1~5
- 创建文件 /etc/init.d/miwifi_overlay , (可vi/etc/init.d/miwifi_overlay, i, 粘贴, :wq), 内容如下(不含```)
- #!/bin/sh /etc/rc.common
- START=00
- . /lib/functions/preinit.sh
- start() {
- [ -e /data/overlay ] || mkdir /data/overlay
- [ -e /data/overlay/upper ] || mkdir /data/overlay/upper
- [ -e /data/overlay/work ] || mkdir /data/overlay/work
- mount --bind /data/overlay /overlay
- fopivot /overlay/upper /overlay/work /rom 1
- #Fixup miwifi misc, and DO NOT use /overlay/upper/etc instead, /etc/uci-defaults/* may be already removed
- /bin/mount -o noatime,move /rom/data /data 2>&-
- /bin/mount -o noatime,move /rom/etc /etc 2>&-
- /bin/mount -o noatime,move /rom/ini /ini 2>&-
- /bin/mount -o noatime,move /rom/userdisk /userdisk 2>&-
- return 0
- }
复制代码
- chmod 755 /etc/init.d/miwifi_overlay
- /etc/init.d/miwifi_overlay enable
- sync
- reboot
重启完之后分区就可读写了, 更新固件后请1~5再来一次
测试, 安装sftp:
opkg update
opkg install openssh-sftp-server
AX6=>AX3600
AX6作死刷AX3600固件尝试 - 小米无线路由器以及小米无线相关的设备 - 恩山无线论坛 - Powered by Discuz! (right.com.cn)
测试完成后另发结果和重点, 危险性偏大就不发完整步骤了
感觉如果不是小米内核做了特殊处理的话, 两个机器的硬件差异可能比想象之中小. AX3600真心负优化, 256的flash就用了128...
不清楚到时候能不能直接白嫖AX3600的openwrt
可能影响保修, 另外因为硬件不一样, 不保证不会出现硬件物理损坏,未长期测试
目前测试直刷AX3600官方原版固件之后启动, 网口, 指示灯正常,配置页面恢复出厂后正常
wifi信号发射正常, 但疑似LNA不工作,3米之外无法建立连接
本文标题:红米AX6 SSH解锁和挂载overlay方法
本文链接:https://www.wifilu.com/25.html
版权声明:本站除标记为转载外,均为原创。转载请标注来源和原始链接。