|
本帖最后由 风吹落叶 于 2020-8-29 18:52 编辑
参考IPTV爱好者论坛(http://www.iptvfans.cn/wiki/inde ... 3%E8%B7%AF%E7%94%B1)小米路由器R2D固件修改整理写出
以下内容摘抄自IPTV爱好者论坛
固件解包
如果手头有R2D小米路由器,并且能够SSH登录,则可登录路由器后用mkxqimage对固件进行解包,具体命令为:
- mkxqimage -x brcm4709_r2d_all_51387_2.10.14.bin
复制代码 得到root.ubi.lzma、xiaoqing_version和vmlinuz.trx三个文件,其中root.ubi.lzma为lzma压缩后的UBI格式的rootfs MTD分区文件,vmlinuz.trx为linux内核文件。
root.ubi文件解包
小米R2D路由器的根文件系统采用UBI格式,可以借助Linux mtd-utils进行解包和打包,作者在UbuntuKylin-14.04.4下测试了root.ubi的解包。
1、安装mtd-utils
- sudo apt-get install mtd-utils
复制代码
2、解压缩
得到解压后的root.ubi文件。
3、模拟UBI设备
- sudo modprobe nandsim first_id_byte=0xec second_id_byte=0xa1 third_id_byte=0x00 fourth_id_byte=0x15
复制代码 查看MTD设备
4、将 ubi 与 /dev/mtd0 关联
5、ubi格式化
格式化前先解绑定
- sudo ubidetach /dev/ubi_ctrl -m 0
复制代码 格式化,并写入root.ubi
- sudo ubiformat /dev/mtd0 -f root.ubi -O 2048
复制代码 当遇到“ubiformat: use new offsets 2048 and 4096? (yes/no)”提示时,输入:yes
6、挂载ubi
绑定ubi设备
- sudo ubiattach /dev/ubi_ctrl -m 0 -O 2048
复制代码 挂载到/mnt
- sudo mount -t ubifs ubi0 /mnt
复制代码
root.ubi文件打包
1、mkfs.ubifs
- sudo mkfs.ubifs -m 2048 -e 126976 -c 1024 -r /mnt ubifs.img -x none
复制代码 得到文件ubifs.img
2、ubinize
- sudo ubinize -o root.ubi -p 131072 -m 2048 -s 2048 -O 2048 ubi.ini
复制代码 其中ubi.ini的内容为:
[ubi_rfs]
mode=ubi
image=ubifs.img
vol_id=0
vol_size=87359488
vol_type=dynamic
vol_name=system
vol_alignment=1
vol_flags=autoresize
注意:vol_size为ubifs.img的实际大小。
3、压缩root.ubi文件
- ./lzma e -a0 root.ubi root.ubi.lzma
复制代码
固件打包
使用小米工具mkxqimage进行打包,由于小米固件中有RSA签名,在打包前需要自己创建一对私钥和公钥,如果需要在Web界面下升级打包好的固件,需要提前把/usr/share/xiaoqiang目录中的public.pem文件替换为自己创建的公钥,否则固件无法通过验证。
以上内容摘抄自IPTV爱好者论坛
注意!!!
原作者教程在压缩root.ubi文件是在Ubuntu系统下进行压缩,但生成的包无法完整刷入路由器,会有变砖的可能,需要把root.bui文件复制到小米路由器上,通过附件中的lzma进行压缩,上文中的压缩命令已修改。
也就是说“压缩root.ubi ./lzma e -a0 root.ubi root.ubi.lzma ”这步需要在路由器中操作。
IPTV爱好者论坛未写出打包的方法,经过几天努力奋斗后,找出了打包的方法。(也是参考了IPTV爱好者论坛其他型号的打包方法)
- mkxqimage -s 5120000 -o xiugai.bin -p ../private.pem -f root.ubi.lzma -f vmlinuz.trx -f xiaoqiang_version -m 4
复制代码 private.pem为私钥文件
a
a
a
|
评分
-
查看全部评分
|