小米路由器3(MI-3)刷华硕固件不用虚拟机刷华硕固件无需虚拟机方法-爱搜啊博客

当前位置:首页» 路由刷机»正文

小米路由器3(MI-3)刷华硕固件不用虚拟机刷华硕固件无需虚拟机方法

发布:爱搜啊  时间:2018年10月31日  分类:路由刷机   评论

闲来无事,看了看老毛子虚拟机刷机脚本

因为只有一点php经验,勉强能看下去吧小米路由器3(MI-3)刷华硕固件不用虚拟机刷华硕固件无需虚拟机方法

1.获取ssh

虚拟机采用的是漏洞法

如果你降级后没有配置路由器,虚拟机也人性化的提供了配置的功能,只不过你看不到

当然,这时候你就需要使用root密码来获取ssh

如果你开机配置了路由,就使用你设置的web管理密码来获取ssh

2.刷u-boot

nvram set boot_wait=on
nvram set uart_en=1
nvram commit
mtd write /tmp/uboot.bin Bootloader

3.刷固件

这一步就比较繁琐了

源代码:不贴出。有兴趣的自己看一下

整理后如下

#ssh登录路由
sshpass -p 密码 ssh -T -p 22 -o StrictHostKeyChecking=no root@192.168.31.1
#检查分区,获取Kernel1数据
cat /proc/mtd | grep -oEm1 '^mtd([0-9]+): ([[:xdigit:]]+) ([[:xdigit:]]+) "Kernel1"' | cut -d' ' -f2
cat /proc/mtd | grep -oEm1 '^mtd([0-9]+): ([[:xdigit:]]+) ([[:xdigit:]]+) "Kernel1"' | cut -d' ' -f3

得到:

size:00400000

erasesize:00020000

其实我们是可以直接看到的#cat /proc/mtd

退出ssh状态,在linux里执行运算

echo $((16#00400000))
4194304
echo $((16#00020000))
131072

脚本是这样计算的,得出一个值

mtd_max_size=$(($mtd_max_size-$block_erase_size))

4194304-131072=4063232

用上面得出的值分割文件,并刷入

dd if=mi3.trx bs=4063232 count=1 2> /dev/null | dd of=mi3.trx.part1 2> /dev/null
mtd write mi3.trx.part1 kernel1
dd if=mi3.trx bs=4063232 skip=1 2> /dev/null | dd of=mi3.trx.part2 2> /dev/null
mtd write mi3.trx.part2 rootfs0
nvram set flag_last_success=1
nvram commit

如果这样的话,就可以摆脱虚拟机,将u-boot和切割好的文件提供给需要的人就可以进行刷机了

额,有没有愿意尝试的朋友

可以直接刷 pb-boot,然后按住 Reset 通电进入 pb-boot 恢复界面刷系统。
不过因为 pb-boot 只会从 kernel0 启动,而 Padavan 是写到 kernel1 的,需要进行一些修改才能刷入。不过即使刷进去了,也不能在 Padavan 里面升级。
pb-boot 的意义是出问题了可以直接进入恢复模式刷回来。

原作者:恩山@醉老仙。感觉说的特别好,就参考了下以后备用,留底了。

转载请保留出处和本文地址: http://aisoa.cn/post-2213.html

评论 赞助本站

爱搜博客赞助收款二维码

欢迎参与讨论,新评论稍后显示,广告一律删除!