本帖最后由 yyjdelete 于 2020-12-8 23:44 编辑
先放出来看看能不能抛砖引玉, 等大佬的AX6三方固件 AX6好多老的漏洞都被堵了, 发现两个可能可行的还因为非正常修复的其他原因用不了,最后只有这个需要另外一台路由器的可以用.估计大家想解锁的应该也都有解锁过的老机器吧...
固件(备用)小米路由器修复工具(单纯以防万一, 非必须) 1.0.16和18的分区除了版本号和wifi固件之外基本上完全一致, 内核不清楚. 个人wifi6下目测, 2.4G信号18强一些,16信号质量好一些. 具体的是隔2~4堵墙的情况下, 18手机两格信号但连不上, 16一格但可以连上; 两个的5G差不多; 但诡异的是这机器2.4G的覆盖范围和5G几乎完全一致, 并没有2.4穿透更好的表现.
AX6 SSH解锁参考 AX3600 1.0.17原版固件 NyaMisty的unluac(修改版), 这个调整了一些代码优化unluac的反编译效果, 调整的部分我忙完有空的时候整理下就发PR...
前提: 需要一台电脑(有线), 另外一台解锁了ssh的openwrt的老wifi路由器(下文B)
支持AX6 1.0.16/1.0.18, 可能支持其他型号的其他版本...
1. 另一个路由器(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, (论坛的编辑器会吞字, 所以看图...) - {"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
复制代码3. B放一边开着, 下面先不连设备, 电脑从B断开, 重新打开电脑的DHCP(不是B的); 4. 登录红米A, 记下<STOK>, 输入时不含<>, 请参考你路由器本来的url格式 5. 访问 不含{}, 等待返回 如果正常会显示0, 显示1646的请检查下第一步的DHCP是否关闭, 1619的请检查第一步IP是否设置正确或者路由器B下仍有其他设备, 1655的请再来一次, 有小概率会连接失败 如果一直失败请改下路由器B的SSID/密码/信道/换着连下2.4G和5G(不要开二合一)
6. 访问 (中途不要重启任何一个路由器或者改ip) 三个xxx, 随便填, 我填的就是xxx, 不能是空 如果步骤2路由器B需要用户名密码可以这里填上试试, 不保证成功, 反正我的老路由不需要就没有试过 如果正常会显示和步骤2一样的结果
7. 重启红米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 然后可以用下载工具下会到电脑(浏览器可能有几个文件会识别成页面下不了)
特别注意: 注意unlock那步的时候wifi可能会挂掉, 请全程有线, 不要慌继续往下执行, lock之后应该就恢复正常了. 完事之后可能需要重新设置下wifi密码
AX3600的教程:
1. 成品工具(f**kax3600), 直接从"下面继续"开始看:(建议第一次上传到/data, 不然重启之后还要传一遍)
2. 或者手动步骤: [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的
因为AX6不需要改分区表, (没有那么多flash), 也就不需要刷uboot, 风险要低些, 有20M的可用空间可以支配
但还是请先准备好固件和小米路由器修复工具, 并做好telnet固化以防手残(我测试过程中手残, 来回了8次, 这机器的reset好像又不一定能恢复出厂...), 不过总体没啥风险就是了 更新官方固件后不保持存活, 请再来一次下面的步骤1~5
1. 创建文件 /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
- }
复制代码2. chmod 755 /etc/init.d/miwifi_overlay 3. /etc/init.d/miwifi_overlay enable 4. sync 5. 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米之外无法建立连接
|