| 
				
					
						
							 | 
			1 month ago | |
|---|---|---|
| .github | 9 months ago | |
| bootloader | 4 years ago | |
| data | 1 month ago | |
| firmware | 4 years ago | |
| image | 1 month ago | |
| kmod | 6 months ago | |
| python | 2 years ago | |
| xmir_base | 7 months ago | |
| !START.bat | 4 years ago | |
| .gitignore | 1 year ago | |
| README.md | 1 month ago | |
| activate_boot.py | 7 months ago | |
| connect.py | 2 months ago | |
| connect1.py | 6 months ago | |
| connect2.py | 9 months ago | |
| connect3.py | 2 years ago | |
| connect4.py | 9 months ago | |
| connect5.py | 7 months ago | |
| connect6.py | 7 months ago | |
| connect7.py | 2 months ago | |
| create_backup.py | 7 months ago | |
| devtree.py | 2 months ago | |
| envbuffer.py | 2 years ago | |
| gateway.py | 6 months ago | |
| install_bl.py | 2 years ago | |
| install_fw.py | 6 months ago | |
| install_lang.py | 8 months ago | |
| install_ssh.py | 6 months ago | |
| lmo2po.py | 3 years ago | |
| menu.py | 8 months ago | |
| passw.py | 2 years ago | |
| po2lmo.py | 3 years ago | |
| read_dmesg.py | 2 years ago | |
| read_info.py | 8 months ago | |
| reboot.py | 6 months ago | |
| requirements.txt | 10 months ago | |
| run.bat | 4 years ago | |
| run.sh | 7 months ago | |
| unlock_features.py | 8 months ago | |
| xqimage.py | 2 years ago | |
| xqmodel.py | 4 months ago | |
		
			
				
				README.md
			
		
		
	
	小米路由器破解工具 (XMiR-Patcher)
一个功能强大的小米路由器固件破解工具,支持多种小米路由器型号的漏洞利用、SSH启用、语言包安装、固件刷写等功能。
📋 目录
🔧 支持的设备
完全支持的型号
本工具支持以下小米路由器型号(按型号ID排序):
第一代系列
- R1CM (miwifi-mini) - 小米路由器 Mini
 - R1CL (miwifi-nano) - 小米路由器 Nano
 - R2D - 小米路由器 2
 - R2CM - 小米路由器 2
 
第三代系列
- R3 - 小米路由器 3
 - R3D (r3d) - 小米路由器 3D
 - R3L (miwifi-3c) - 小米路由器 3C
 - R3P (mi-router-3-pro) - 小米路由器 3 Pro
 - R3A - 小米路由器 3A
 - R3G (mi-router-3g) - 小米路由器 3G
 - R3GV2 (mi-router-3g-v2) - 小米路由器 3G V2
 
第四代系列
- R4 (mi-router-4) - 小米路由器 4
 - R4C (mi-router-4q) - 小米路由器 4Q
 - R4A (mi-router-4a-gigabit) - 小米路由器 4A 千兆版
 - R4CM (mi-router-4c) - 小米路由器 4C
 - R4AC (mi-router-4a-100m) - 小米路由器 4A 百兆版
 
AC系列
- R2100 (mi-router-ac2100) - 小米路由器 AC2100
 - RM2100 (redmi-router-ac2100) - 红米路由器 AC2100
 - R2200 - 小米路由器 AC2200
 - R2350 (aiot-ac2350) - 小米 AIoT 路由器 AC2350
 - R2600 - 小米路由器 AC2600
 
AX系列 (Wi-Fi 6)
- R3600 (ax3600) - 小米路由器 AX3600
 - R1350 - 小米路由器 AX1350
 - RA67 - 红米路由器 AX1800C
 - RA69 (ax6) - 小米路由器 AX6
 - RA70 (ax9000) - 小米路由器 AX9000
 - RA71 - 红米路由器 AX1800
 - RA72 - 小米路由器 AX6000
 - RA75 (mi-ra75) - 小米路由器 RA75
 - RA80/RA82 - 小米路由器 AX3000
 
企业级系列
- CR6006 (mi-router-cr6606) - 小米企业路由器 CR6606
 - CR6008 (mi-router-cr6608) - 小米企业路由器 CR6608
 - CR6009 (mi-router-cr6609) - 小米企业路由器 CR6609
 
其他型号
- P01 - 小米随身路由器
 - D01 - 小米路由器 HD
 - IR1200G - 小米路由器 1200G
 - RM1800 - 红米路由器 1800
 - R2100D - 小米路由器 AC2100D
 - RA50 - 小米路由器 RA50
 
注意: 不同型号支持的功能可能有差异,建议在操作前仔细阅读相关说明。
✨ 功能特性
核心功能
- 🔓 漏洞利用: 自动检测并利用小米路由器的已知漏洞
 - 🔑 SSH启用: 永久启用SSH访问,方便高级用户管理
 - 🌐 多语言支持: 安装英文/俄文语言包
 - 💾 完整备份: 创建路由器固件的完整备份
 - 🔄 固件刷写: 支持自定义固件的安装
 - ⚡ Bootloader替换: 支持安装Breed等第三方Bootloader
 
高级功能
- 📊 设备信息读取: 获取详细的硬件和系统信息
 - 🔐 密码修改: 修改路由器root密码
 - 📋 日志读取: 读取系统日志和内核信息
 - ⚙️ 分区备份: 创建指定分区的备份
 - 🚀 引导设置: 设置内核引导地址
 - 🔧 功能解锁: 解锁隐藏的路由器功能
 
🚀 安装教程
Windows 用户
- 
下载工具包
下载并解压项目文件到任意目录 - 
运行工具
双击运行 run.bat 文件 - 
自动环境配置
- 工具会自动使用内置的 Python 环境
 - 无需手动安装 Python 或依赖包
 
 
Linux / macOS 用户
- 
系统要求
# 确保已安装 Python 3.8+ 和 OpenSSL python3 --version # 应显示 3.8 或更高版本 openssl version # 确认 OpenSSL 已安装 - 
安装依赖
# Ubuntu/Debian sudo apt update sudo apt install python3 python3-pip python3-venv openssl # CentOS/RHEL sudo yum install python3 python3-pip openssl # macOS (使用 Homebrew) brew install python3 openssl - 
下载并运行
# 下载项目 git clone https://github.com/longzheng268/Xiaomi-Router-patcher.git cd Xiaomi-Router-patcher # 运行工具 chmod +x run.sh ./run.sh 
Docker 用户
# 构建 Docker 镜像
docker build -t xmir-patcher .
# 运行容器
docker run -it --network host xmir-patcher
📖 使用指南
第一步:连接准备
- 
网络连接
- 确保电脑和小米路由器在同一网络中
 - 记录路由器的IP地址(通常是 192.168.31.1)
 - 确保能正常访问路由器管理界面
 
 - 
启动工具
- Windows: 双击 
run.bat - Linux/macOS: 执行 
./run.sh 
 - Windows: 双击 
 
第二步:基本配置
运行工具后会看到主菜单:
==========================================================
Xiaomi MiR Patcher  
 1 - Set IP-address (current value: 192.168.31.1)
 2 - Connect to device (install exploit)
 3 - Read full device info
 4 - Create full backup
 5 - Install EN/RU languages
 6 - Install permanent SSH
 7 - Install firmware (from directory "firmware")
 8 - {{{ Other functions }}}
 9 - [[ Reboot device ]]
 0 - Exit
Select:
第三步:执行操作
必要的前置步骤
- 
设置IP地址 (选项1)
选择 1 → 输入路由器IP地址 → 按回车确认 - 
连接设备并安装漏洞利用 (选项2)
选择 2 → 工具会自动检测设备型号并安装相应的漏洞利用程序⚠️ 重要: 这是所有后续操作的前提,必须先成功执行此步骤!
 
常用操作流程
- 
完整备份 (推荐首先执行)
选择 4 → 工具会创建完整的固件备份,保存在 backup 目录中 - 
启用SSH访问
选择 6 → 工具会永久启用SSH访问,默认用户名/密码: root/root - 
安装语言包
选择 5 → 安装英文/俄文语言包,让路由器界面支持更多语言 
🔍 详细功能说明
主菜单功能
1. 设置IP地址
- 用途: 设置目标路由器的IP地址
 - 默认值: 192.168.31.1
 - 使用场景: 当路由器IP不是默认值时需要修改
 
2. 连接设备(安装漏洞利用)
- 用途: 检测设备型号并安装对应的漏洞利用程序
 - 支持的漏洞:
c_upload/netspeed- 适用于较老型号get_icon- 适用于较新型号
 - 执行过程:
- 自动检测路由器型号
 - 选择合适的漏洞利用方法
 - 上传并执行漏洞利用代码
 - 启用SSH和Telnet访问
 
 
3. 读取完整设备信息
- 获取信息包括:
- 硬件型号和版本
 - 固件版本信息
 - 分区表结构
 - 内存和存储信息
 - 网络配置
 
 - 输出位置: 
outdir/目录 
4. 创建完整备份
- 备份内容:
- 所有分区的原始数据
 - Bootloader
 - 内核镜像
 - 根文件系统
 - 配置数据
 
 - 备份格式: 二进制镜像文件
 - 存储位置: 
backup/目录 
5. 安装英文/俄文语言包
- 支持语言: 英文、俄文
 - 安装方式:
- 上传语言文件到路由器
 - 修改系统配置
 - 重启相关服务
 
 - 卸载: 通过扩展菜单选项5可以卸载
 
6. 安装永久SSH
- 功能: 启用持久化的SSH访问
 - 默认凭据:
- 用户名: 
root - 密码: 
root 
 - 用户名: 
 - 端口: 22
 - 特点: 重启后仍然有效
 
7. 安装固件
- 支持格式:
- 标准的小米固件格式
 - OpenWrt固件(需兼容)
 
 - 固件位置: 将固件放在 
firmware/目录 - 安装过程: 自动化刷写流程
 
8. 其他功能(扩展菜单)
进入扩展功能菜单,包含更多高级选项。
9. 重启设备
安全重启路由器设备。
扩展菜单功能
1. 设置IP地址
与主菜单功能1相同。
2. 修改root密码
- 用途: 修改路由器的root用户密码
 - 安全性: 提高系统安全性
 
3. 读取dmesg和syslog
- 获取内容:
- 内核日志 (dmesg)
 - 系统日志 (syslog)
 
 - 用途: 故障诊断和系统分析
 
4. 创建指定分区备份
- 灵活性: 可选择备份特定分区
 - 常用分区:
bootloader- 引导加载器kernel- 内核rootfs- 根文件系统overlay- 配置数据
 
5. 卸载英文/俄文语言包
还原到原始的中文界面。
6. 设置内核引导地址
- 用途: 修改内核的加载地址
 - 应用场景: 安装自定义固件时使用
 
7. 安装Breed引导加载器
- Breed特点:
- 功能强大的第三方Bootloader
 - 支持Web界面固件刷写
 - 不怕刷坏(变砖保护)
 
 - 支持型号:
- R3G: 
breed_r3g_eng.bin - 其他型号需要对应的Breed固件
 
 - R3G: 
 
8. 测试功能
开发和调试用途的测试功能。
9. 重启设备
与主菜单功能9相同。
🛠️ 故障排除
常见问题
1. 连接失败
问题: 无法连接到路由器 解决方案:
# 检查网络连接
ping 192.168.31.1
# 检查路由器管理界面
curl -I http://192.168.31.1
# 确认IP地址正确
# 某些路由器可能使用 192.168.1.1
2. 漏洞利用失败
问题: "Exploit not working" 错误 可能原因:
- 固件版本太新,已修复漏洞
 - 路由器型号不支持
 - 网络连接不稳定
 
解决方案:
# 检查设备型号支持情况
# 尝试降级固件(如果可能)
# 检查网络连接稳定性
3. SSH连接问题
问题: SSH连接被拒绝 解决方案:
# 检查SSH服务状态
ssh root@192.168.31.1
# 如果连接被拒绝,重新执行选项6
# 检查防火墙设置
4. 固件刷写失败
问题: 固件安装过程中出错 解决方案:
- 确保固件与设备型号匹配
 - 检查固件文件完整性
 - 确保有足够的存储空间
 - 检查电源稳定性
 
5. Python依赖问题
问题: ModuleNotFoundError 解决方案:
# 重新安装依赖
pip install -r requirements.txt
# 或者使用虚拟环境
python3 -m venv venv
source venv/bin/activate  # Linux/macOS
# venv\Scripts\activate   # Windows
pip install -r requirements.txt
恢复模式
如果路由器变砖,可以尝试以下恢复方法:
1. 使用Breed恢复(如已安装)
- 路由器断电
 - 按住reset键不放
 - 插入电源,等待10秒
 - 浏览器访问 
192.168.1.1 - 通过Web界面刷写固件
 
2. 使用备份恢复
- 通过SSH连接到路由器
 - 使用dd命令恢复分区:
 
# 恢复完整固件(谨慎操作!)
dd if=/tmp/backup.bin of=/dev/mtdblock0
# 恢复特定分区
dd if=/tmp/kernel_backup.bin of=/dev/mtdblock2
3. TFTP恢复模式
某些型号支持TFTP恢复:
- 设置电脑IP为 192.168.1.2
 - 运行TFTP服务器
 - 按住reset键启动路由器
 - 传输固件文件
 
⚠️ 安全提示
风险声明
- ⚠️ 刷机有风险,操作需谨慎!
 - ⚠️ 任何固件修改都可能导致设备变砖!
 - ⚠️ 修改固件可能失去官方保修!
 - ⚠️ 请在操作前做好完整备份!
 
安全建议
操作前准备
- 完整备份: 务必先执行选项4创建完整备份
 - 稳定电源: 确保操作过程中电源稳定
 - 网络稳定: 确保网络连接稳定
 - 充足时间: 不要在时间紧迫时进行操作
 
密码安全
- 修改默认密码: SSH启用后立即修改默认密码
 
passwd root
- 禁用不必要的服务:
 
# 如不需要Telnet,建议禁用
/etc/init.d/telnet disable
- 配置防火墙:
 
# 限制SSH访问的IP范围
iptables -A INPUT -p tcp --dport 22 -s 192.168.31.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
固件安全
- 验证固件来源: 只使用可信来源的固件
 - 校验文件完整性: 使用MD5或SHA256校验
 - 渐进式升级: 避免跨越太多版本升级
 
🔧 开发说明
项目结构
Xiaomi-Router-patcher/
├── menu.py              # 主菜单界面
├── gateway.py           # 网关通信模块
├── connect*.py          # 各种漏洞利用脚本
├── xqmodel.py           # 设备型号定义
├── read_info.py         # 设备信息读取
├── create_backup.py     # 备份功能
├── install_*.py         # 各种安装功能
├── unlock_features.py   # 功能解锁
├── xmir_base/           # 核心库
│   ├── ubireader/       # UBI文件系统读取
│   ├── fdt/             # 设备树处理
│   └── telnetlib/       # Telnet库
├── data/                # 数据文件
│   ├── payload/         # 漏洞利用载荷
│   ├── payload_ssh/     # SSH相关脚本
│   └── *.po             # 语言包文件
├── bootloader/          # 引导加载器文件
├── firmware/            # 固件存放目录
└── python/              # Windows内置Python
核心模块说明
Gateway类 (gateway.py)
负责与路由器的通信,包括:
- HTTP/HTTPS请求
 - SSH连接
 - Telnet连接
 - FTP传输
 - 设备检测
 
漏洞利用模块 (connect*.py)
connect1.py: c_upload/netspeed漏洞connect7.py: get_icon漏洞- 支持多种小米路由器型号
 
设备模型 (xqmodel.py)
定义了所有支持的设备型号和属性。
添加新设备支持
- 在xqmodel.py中添加设备定义:
 
mi(42, "NEW_MODEL", "", "device-alt-name")
- 在connect.py中添加检测逻辑:
 
if gw.model_id == get_modelid_by_name('NEW_MODEL'):
    # 使用适当的漏洞利用方法
- 测试新设备:
 
# 创建测试脚本验证功能
自定义漏洞利用
参考现有的connect脚本,主要步骤:
- 检测设备:
 
gw.detect_device()
- 安装载荷:
 
install_exploit(api='API/endpoint')
- 执行功能:
 
run_exploit('function_name', timeout=10)
🤝 贡献指南
如何贡献
- Fork 项目
 - 创建功能分支:
 
git checkout -b feature/new-feature
- 提交更改:
 
git commit -am 'Add new feature'
- 推送分支:
 
git push origin feature/new-feature
- 创建 Pull Request
 
贡献方向
- 支持新的路由器型号
 - 修复现有漏洞利用
 - 改进用户界面
 - 增加新功能
 - 完善文档
 - 修复bug
 
代码规范
- 使用Python 3.8+语法
 - 遵循PEP 8代码风格
 - 添加适当的注释
 - 编写测试用例
 
报告问题
请在GitHub Issues中报告bug或提出功能请求:
- 详细描述问题
 - 提供复现步骤
 - 包含系统环境信息
 - 附上相关日志
 
📄 许可证
本项目采用 GPL-3.0 许可证。详见 LICENSE 文件。
💝 捐赠支持
如果这个项目对您有帮助,欢迎支持开发:
📞 联系方式
- GitHub Issues: 提交问题
 - 讨论区: GitHub Discussions
 
🙏 致谢
- 感谢原始项目的所有贡献者
 - 感谢小米路由器破解社区
 - 感谢OpenWrt项目
 - 感谢所有测试用户的反馈
 
⚠️ 免责声明: 本工具仅供学习和研究使用。使用本工具进行的任何操作,风险由用户自行承担。开发者不对因使用本工具而造成的任何损失负责。
English Summary
XMiR-Patcher is a comprehensive firmware patcher for Xiaomi routers that supports:
- 50+ Xiaomi router models from R1CM to latest AX series
 - Exploit installation for gaining root access
 - Permanent SSH access with customizable credentials
 - Full firmware backup and selective partition backup
 - Custom firmware installation including OpenWrt support
 - Bootloader replacement (Breed support)
 - Multi-language support (EN/RU language packs)
 - Advanced features like password change, log reading, feature unlocking
 
Quick Start
Windows: Run run.bat | Linux/macOS: Run ./run.sh
Basic Usage Flow
- Set router IP address (default: 192.168.31.1)
 - Connect and install exploit (essential first step)
 - Create full backup (highly recommended)
 - Enable permanent SSH access
 - Install custom firmware or additional features
 
⚠️ Warning: Firmware modification carries risks. Always backup before proceeding!