小米路由器简单救砖

最近在将小米路由器CR8808刷机时,不小心操作失败,路由器成砖头了。好消息是,按reset可以进入openwrt 恢复控制台;坏消息是,通过恢复控制台上传的所有的固件,都提示无效固件。简单记录下成砖过程和救砖过程。PS:在某鱼上咨询一些救砖人士,至少需要50大洋,我也差一点买编程器。

一、成砖

之前将CR880X系列都根据,恩山论坛的教程都成功将固件刷新为红米AX3000,但是一直没有能刷成功极客固件。

1、刷红米AX3000分区,采用如下命令

bash 复制代码
tftpboot OpenWrt.mtd1.bin && flash 0:MIBIB
#做完不要断电!继续输入以下命令:
tftpboot OpenWrt.mtd11.bin && flash 0:APPSBL
tftpboot OpenWrt.mtd12.bin && flash 0:APPSBL_1
#确认好步骤,没有报错后直接拔电!
reset #重启

2、重启后,使用小米恢复工具就可以正常输入Redmi AX3000的固件了。

3、本打算使用大分区(CR880X合并分区并刷带web的uboot)。如下命令,但是第三步失败。

bash 复制代码
tftpboot MIBIB.bin && flash 0:MIBIB
#刷完务必断电重启
#重新卡进uboot   
#继续刷入带web的uboot命令:
tftpboot APPSBL.bin && flash 0:APPSBL
tftpboot APPSBL1.bin && flash 0:APPSBL1.bin

4、重启后就变成砖了。系统自动进入uboot,并且网络不通。尝试使用小米恢复工具,根本网络不通。通过 httpd 可以启动openwrt web恢复界面,但是固件校验都失败,此时网络是通的。Ctrl+C退出httpd后,网络不通。

二、救砖

1、help领命发现,printevn可以查看环境变量,setenv 可以设置变量,saveenv则可保存变量。但是printenv发现,环境变量非常少。大概如下

bash 复制代码
IPQ5018# printenv
baudrate=115200
bootargs=console=ttyMSM0,115200n8
bootcmd=bootmiwifi
bootdelay=5
eth1addr=44:df:65:5e:8d:9
ethact=eth0
ethaddr=44:df:65:a:2f:3
fdt_high=0x4A400000
fdtcontroladdr=4a9d4004
flash_type=11
ipaddr=192.168.2.1
machid=8040000
netmask=255.255.255.0
serverip=192.168.2.100
soc_hw_version=20180101
soc_version_major=1
soc_version_minor=1
stderr=serial@78AF000
stdin=serial@78AF000
stdout=serial@78AF000

Environment size: 450/262140 bytes

2、找到另一台同型号的CR880X(已经刷成Redmi AX3000了),查看环境变量。内容非常多,包含系列号、无线信息、超密等等。

bash 复制代码
IPQ5018# printenv
CMSN=2411000125813
CountryCode=CN
SN=4484/FVA30551
andlink_dev_key=00010001045A73D1EBD6CDF1285FDF9A62C8DF4A736BF96B9628D299034D31934789873
andlink_prov_code=ZHJ
andlink_svr_try_count=3
boot_wait=on
bootargs=ubi.mtd=rootfs root=mtd:ubi_rootfs rootfstype=squashfs rootwait
bootcmd=bootmiwifi
bootdelay=2
bootfile=miwifi_cr8808_all_fac_release_6.4.52.bin
cmei=11105167225813
color=101
default_netmode=router
eth1addr=4c:c6:4c:65:ca:87
ethact=eth1
ethaddr=4c:c6:4c:1:ee:2d
ethprime=eth1
fdt_high=0x4A400000
fdtcontroladdr=4a9d4004
fileaddr=44000000
filesize=1a8ae28
flag_boot_recovery=0
flag_boot_rootfs=0
flag_boot_success=1
flag_boot_type=2
flag_last_success=0
flag_ota_reboot=0
flag_try_sys1_failed=0
flag_try_sys2_failed=0
flash_type=11
fsbootargs=ubi.mtd=rootfs root=mtd:ubi_rootfs rootfstype=squashfs
gatewayip=192.168.31.1
ipaddr=192.168.31.111
machid=8040000
mgtpsd=y@3jmca
miot_did=69992866
miot_key=6MWwxcU0cAwqNVZ
mode=Router
model=CR8808
mtddevname=fs
mtddevnum=0
mtdids=nand0=nand0
mtdparts=mtdparts=nand0:0x2400000@0xa80000(fs),
netmask=255.255.255.0
no_wifi_dev_times=0
partition=nand0,0
serverip=192.168.31.100
soc_hw_version=20180101
soc_version_major=1
soc_version_minor=1
stderr=serial@78AF000
stdin=serial@78AF000
stdout=serial@78AF000
telnet_en=0
uart_en=0
wifipsd=9h36uk9
wl0_radio=1
wl0_ssid=CMCC-ukw-5G
wl1_radio=1
wl1_ssid=CMCC-ukw
wl_pa_type=xpa

Environment size: 1505/65532 bytes

3、经过对比,使用 setenv,saveenv恢复环境变量。最后可以启动、网络也通了。刷红米AX3000分区。使用小米恢复工具恢复后,可以正常启动了,wifi也可以接入。但是,路由器管理密码不对,怀疑miot_key、nv_sys_pwd每台路由器不同,但是这2个我已经复制过去了。尝试了很多密码都无法登录。再次使用小米恢复工具时,悲催的是路由器和电脑网络有不通了。恢复环境变量的时候,没有将TTL开启,启动后TTL直接无法中断了。

三、后续计划。

1、操作TTL的时候,西安执行永久开启TTL的命令,如下:

bash 复制代码
setenv boot_wait on
setenv uart_en 1
saveenv

2、寻找CR8808开启ssh方法,类似于CR660X系列解锁ssh方法。

相关推荐
侯小啾1 天前
VMware-ubuntu网络配置
网络·ubuntu·智能路由器·vmware·虚拟机
ARoger_miu571 天前
11月13号作业
网络·智能路由器
Yurko131 天前
【计网】基于三层交换机的多 VLAN 局域网组建
网络·学习·计算机网络·智能路由器
njxiejing3 天前
基于Packet Tracer的路由器的基本配置(地址、密码,远程登录)
网络·智能路由器
xxtzaaa4 天前
手游端游IP被限制无法多开如何解决
网络协议·tcp/ip·智能路由器
xiaoxiongip6665 天前
假设两个设备在不同网段,网关怎么设置才能通呢
网络·爬虫·python·https·智能路由器
渡我白衣5 天前
字符串的陷阱与艺术——std::string全解析
网络·c++·人工智能·自然语言处理·智能路由器·信息与通信·caffe
报错小能手6 天前
计算机网络自顶向下方法33——网络层 路由器工作原理 输入端口处理和基于目的地转发 交换 输出端口处理
网络·计算机网络·智能路由器
Yurko136 天前
【计网】基于三层交换机和 RIP 协议的局域网组建
网络·学习·计算机网络·智能路由器
xixixi777777 天前
内部网关协议——OSPF 协议(开放最短路径优先)(链路状态路由协议)
网络·智能路由器