闲来无事,看了看老毛子虚拟机刷机脚本
因为只有一点php经验,勉强能看下去吧有兴趣欢迎留言或者私信沟通交流。路由器交流群QQ群 699032478
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.刷固件
这一步就比较繁琐了
源代码文件: start.zip链接:https://pan.baidu.com/s/1S5TuJAqyLLkrZkgBzQph1w
提取码:qap9
复制这段内容后打开百度网盘手机App,操作更方便哦
有兴趣的自己看一下
整理得到
-
#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
-
复制代码
虚拟机脚本中含有nand坏块检测部分,检测到坏块就会减去这部分的值来切割,但有坏块的时候就会阻止刷入
用上面的出的值分割文件,并刷入
-
dd if=mi3.trx bs=4194304 count=1 2> /dev/null | dd of=mi3.trx.part1 2> /dev/null
-
mtd write mi3.trx.part1 kernel1
-
dd if=mi3.trx bs=4194304 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
复制代码
正式刷机:(刷机有风险,谨慎)
#降级
下载降级固件:miwifi_r3_all_55ac7_2.11.20.bin
进入路由器后台,常用设置,系统状态,手动升级,选择降级固件,勾选清除配置
如果文件校验失败,可能文件下载不完整,重新下载。也可能是因为你的路由不是小米路由器3
------------------------------
------------------------------
#获取ssh
1.官方方法获取
打开http://d.miwifi.com/rom/ssh
登陆后下载ssh工具,按说明使用U盘获取
2.漏洞法获取
登录后台,取得网址栏stok值替换到此处,然后在浏览器中访问,逐条进行
http://192.168.31.1/cgi-bin/luci/;stok=<你的stok值>/api/xqnetwork/set_wifi_ap?ssid=tianbao&encryption=NONE&enctype=NONE&channel=1%3Bnvram%20set%20ssh%5Fen%3D1%3B%20nvram%20commit
返回1616正常
http://192.168.31.1/cgi-bin/luci/;stok=<你的stok值>/api/xqnetwork/set_wifi_ap?ssid=tianbao&encryption=NONE&enctype=NONE&channel=1%3Bsed%20%2Di%20%22%3Ax%3AN%3As%2Fif%20%5C%5B%2E%2A%5C%3B%20then%5Cn%2E%2Areturn%200%5Cn%2E%2Afi%2F%23tb%2F%3Bb%20x%22%20%2Fetc%2Finit.d%2Fdropbear
返回1616正常
http://192.168.31.1/cgi-bin/luci/;stok=<你的stok值>/api/xqnetwork/set_wifi_ap?ssid=tianbao&encryption=NONE&enctype=NONE&channel=1%3B%2Fetc%2Finit.d%2Fdropbear%20start
返回1616正常
putty登录时,密码为web管理密码,或root密码
root密码在此处查看:http://d.miwifi.com/rom/ssh
如果都无法登录,请尝试更改密码
http://192.168.31.1/cgi-bin/luci/;stok=<你的stok值>/api/xqsystem/set_name_password?oldPwd=<你当前的后台管理密码>&newPwd=<新密码>
------------------------------
------------------------------
#获取putty和winscp(不会使用的话,我也没辙)
putty下载
http://downloads.openwrt.org.cn/software/putty.zip
winscp下载
http://downloads.openwrt.org.cn/software/WinSCP.rar
------------------------------
------------------------------
#备份固件
putty登录路由器
查看分区如下,命令:cat /proc/mtd
-
root@XiaoQiang:~# cat /proc/mtd
-
dev: size erasesize name
-
mtd0: 08000000 00020000 "ALL"
-
mtd1: 00040000 00020000 "Bootloader"
-
mtd2: 00040000 00020000 "Config"
-
mtd3: 00040000 00020000 "Bdata"
-
mtd4: 00040000 00020000 "Factory"
-
mtd5: 00040000 00020000 "crash"
-
mtd6: 00040000 00020000 "crash_syslog"
-
mtd7: 00080000 00020000 "reserved0"
-
mtd8: 00400000 00020000 "kernel0"
-
mtd9: 00400000 00020000 "kernel1"
-
mtd10: 02000000 00020000 "rootfs0"
-
mtd11: 02000000 00020000 "rootfs1"
-
mtd12: 03600000 00020000 "overlay"
复制代码
putty中逐条执行以下命令,备份至tmp目录,使用winscp下载备份,协议选scp
-
dd if=/dev/mtd0 of=mtd0.bin
-
dd if=/dev/mtd1 of=mtd1.bin
-
dd if=/dev/mtd2 of=mtd2.bin
-
dd if=/dev/mtd3 of=mtd3.bin
-
dd if=/dev/mtd4 of=mtd4.bin
-
dd if=/dev/mtd5 of=mtd5.bin
-
dd if=/dev/mtd6 of=mtd6.bin
-
dd if=/dev/mtd7 of=mtd7.bin
-
dd if=/dev/mtd8 of=mtd8.bin
-
dd if=/dev/mtd9 of=mtd9.bin
-
dd if=/dev/mtd10 of=mtd10.bin
-
dd if=/dev/mtd11 of=mtd11.bin
-
dd if=/dev/mtd12 of=mtd12.bin
复制代码
因存储不足导致的备份失败,可使用U盘备份
插入U盘,输入df -h
看到Size是自己的u盘大小那一行,再看Mounted on的对应路径
比如:/extdisks/sda1
那么修改路径备份即可
进入U盘目录
(责任编辑:捉蛋网)
|