xiaomiR4c openwrt
文章目录
- openwrt 安装
- openwrt 配置
- 开启WiFi
- 救砖
- minieap
- 编译
- 参数帮助
openwrt 安装
- Router:xiaomi R4C
- 官方固件:openwrt 23.05.5 (下图标红处)
- 官方教程

- 下载 OpenWRTInvasion
python remote_command_execution_vulnerability.py,- 按照提示输入。路由器后台地址是
192.168.31.1,密码就是后台密码(stok参数可以自动获取,不用记)
- 按照提示输入。路由器后台地址是
- 然后通过
telnet 192.168.31.1登录进路由器 (User: root - No password)- cd /tmp
- 下载openwrt.bin文件,路由器中的wget无法下载https,我是先下载到本地
mtd -r write /tmp/openwrt.bin OS1,如下图所示

接着,WiFi 信号消失,最初以为又要变砖了。去B站看了视频,发现up主用的是以太网访问了
192.168.1.1,于是想到用网线连上路由器和电脑进行配置,果然成功了。
致谢:UP主DUX2468的视频
openwrt 配置
| Status | System | Network |
|---|---|---|
| Overview Routing Firewall System Log Processes | Administration Software Startup Scheduled Tasks | Interfaces Wirelesss Switch Routing DHCP and DNS |
开启WiFi
openwrt 安全和开启WiFi

添加WiFi密码

记得 Enable,以及Save & Apply
救砖
小米有个救砖工具,原理应该是通过网线连接电脑和路由器,将原版固件导入到Router,之前刷坏了一个R4A(刷breed后无WiFi),救砖工具没有奏效,刷 breed 有风险。
minieap
首次启动可能出现如下错误
[E] 无法打开配置文件: No such file or directory (2)
[W] 配置文件解析出错,请注意命令行参数是否完整
启动认证命令
minieap -u username -p password -n eth0.2 --module rjv3 -w
- 重要文件:/etc/minieap.conf, /var/log/minieap.log
-w会将命令行的参数更新到配置文件
编译
Reference: https://www.cnblogs.com/yellowsea/p/17152106.html
- 确定路由器的架构 Architecture(路由器后台管理会有),比如xiaomi R4C是 MT7628
- 到 OpenWrt 官网下载对应的sdk源码(我的是23.05.5),
https://downloads.openwrt.org/releases/23.05.5/targets/ramips/mt76x8/,找到openwrt-sdk-23.05.5-ramips-mt76x8_gcc-12.3.0_musl.Linux-x86_64.tar.xz - 在Linux环境编译:
# 源码解压
xz -d <xxxx.tar.xz> # 先进行第一层解压
tar -xvf <xxxx.tar> # 再进行第二层解压
cd <解压后sdk文件夹内># 依赖安装
apt install libncurses5-dev zlib1g-dev gawk flex patch git-core g++ subversion# 克隆仓库到 ./package/minieap 位置
git clone https://github.com/KumaTea/openwrt-minieap.git package/minieap
# 选择要编译的package, 会进入 UI界面
make menuconfig
依次选择Network、选中minieap(按y键选中,选中后左边会显示[*])、选择Save、ok、Exit,退出到shell即可

# 开始编译
make package/minieap/compile V=s
在编译完成后,我们可以在 <sdk目录>/bin/packages/mipsel_24kc/base 目录下找到 minieap_0.93-1_mipsel_24kc.ipk 软件包。
登录到Openwrt 后台,System -> Software -> Upload Package,install
通过ssh连接到路由器,which minieap 看是否安装成功
参数帮助
root@OpenWrt:/tmp# minieap -h--kill, -k [1] 终止其他实例并退出。加任意非 0 参数表示终止其他实例后继续进行认证--save, -w # 保存本次认证所用参数-u <...> # 用户名-p <...> # 密码-n <...> # 监听的网卡, `ip a` 查看--stage-timeout, -t <num> 单个认证阶段的超时时间 [默认5]--wait-after-fail, -r <num> 认证失败后重新认证前的等待时间(但当服务器要求重新认证时将直接开始认证)[默认30]--max-fail, -l <num> 最大允许认证失败次数 [默认3]--no-auto-reauth, -x 认证掉线后不允许自动重连 [默认1]-b <0-3> # 后台运行方式: # 0 = 不后台 [默认]# 1 = 后台运行,关闭输出# 2 = 后台运行,输出到当前控制台# 3 = 后台运行,输出到日志文件--proxy-lan-iface, -z <...> 代理认证时的 LAN 网络界面名 [默认无]--auth-round, -j <num> 需要认证的次数 [默认1]--max-retries <num> 最大超时重试的次数 [默认3]--pid-file <...> PID 文件路径,设为none可禁用 [默认/var/run/minieap.pid]--conf-file <...> 配置文件路径 [默认/etc/minieap.conf]--if-impl <...> 选择此网络操作模块,仅允许选择一次 [默认为第一个可用的模块]--pkt-plugin <...> 启用此名称的数据包修改器,可启用多次、多个 [默认无]--module <...> 同上。当命令行选项中存在 --module 或 --pkt-plugin 时,配置文件中的所有 module= 行都将被忽略--log-file <...> 日志文件路径 [默认/var/log/minieap.log]--script <...> 事件脚本 认证成功后运行此命令[默认无]以下是可用的网络操作模块:sockraw (采用RAW Socket进行通信的轻量网络接口模块)以下是可用的数据包修改插件及其选项:插件名称: printer (将流经此插件的数据包内容打印出来)此插件无选项可用插件名称: rjv3 (来自 hyrathb@GitHub 的 Ruijie V3 验证算法)--heartbeat, -e <num> 心跳间隔秒数 [默认60]--eap-bcast-addr, -a <0-1> Start 包广播地址: [默认BROADCAST_STANDARD]0 = 标准地址1 = 锐捷私有地址--dhcp-type, -d <0-3> # 0 = 不使用 DHCP# 1 = 二次认证# 2 = 认证后 DHCP[默认]# 3 = 认证前 DHCP--dhcp-script, -c <...> 二次认证之间及认证完成后运行此命令 [默认无]--rj-option <type>:<value>[:r] 自定义认证字段,其中 type 和 value 必须为十六进制串如 --rj-option 6a:000102 表示新增一条类型为 0x6a、内容为 0x00 0x01 0x02的字段:r 表示替换内置生成的字段,如 --rj-option 6f:000102:r 表示将内置算法生成的类型为 0x6f 的字段内容替换为 0x00 0x12 0x02当命令行与配置文件中同时存在此选项时,两处的选项都将发挥作用。若认证失败,请检查配置文件中是否有错误的参数--service <str> 自定义服务名 [默认internet]--version-str <str> 自定义版本字符串 [默认RG-SU For Linux V1.0]--fake-dns1 <str> 自定义主 DNS 地址(点分十进制 IPv4 格式) [默认自动获取]--fake-dns2 <str> 自定义次 DNS 地址(IPv4 / IPv6 不限) [默认自动获取]--fake-serial <str> 自定义硬盘序列号 [默认自动获取]--max-dhcp-count <num> 二次认证时等待 DHCP 结果的允许超时次数 [默认3]从 --service 到 --fake-serial(除 --fake-dns1)都是对应的 --rj-option 的简单形式,可直接使用 ASCII 字符串作为参数,不需转化为十六进制表示
相关文章:
xiaomiR4c openwrt
文章目录 openwrt 安装openwrt 配置开启WiFi 救砖minieap编译参数帮助 openwrt 安装 Router:xiaomi R4C官方固件:openwrt 23.05.5 (下图标红处)官方教程 下载 OpenWRTInvasionpython remote_command_execution_vulnerability.py …...
leetcode-128.最长连续序列-day14
为什么我感觉上述代码时间复杂度接近O(2n), 虽然有while循环,但是前面有个if判断,能进入while循环的也不多,while循环就相当于两个for循环,但不是嵌套类型的: 变量作用域问题:...
梳理你的思路(从OOP到架构设计)_简介设计模式
目录 1、 模式(Pattern) 是较大的结构编辑 2、 结构形式愈大 通用性愈小编辑 3、 从EIT造形 组合出设计模式 1、 模式(Pattern) 是较大的结构 组合与创新 達芬奇說:簡單是複雜的終極形式 (Simplicity is the ultimate form of sophistication) —Leonardo d…...
JAVA前端开发中type=“danger“和 type=“text“的区别
在前端开发中,type 属性通常用于指定按钮或其他元素的样式或行为。不同的框架和库可能对 type 属性有不同的定义和用法。常见的框架包括 Bootstrap、Ant Design(antd)、Element Plus 等。下面我将分别介绍在这些框架中 type"danger"…...
python 中执行from elasticsearch import Elasticsearch,AsyncElasticsearch 报错
在 Python 中执行 from elasticsearch import Elasticsearch, AsyncElasticsearch 时,如果提示 AsyncElasticsearch 不存在,可能是因为以下几个原因: 1. 安装的 elasticsearch 库版本不匹配 AsyncElasticsearch 是在 elasticsearch 库的较新版本中引入的。如果你安装的版本…...
带有 Elasticsearch 和 Langchain 的 Agentic RAG
作者:来自 Elastic Han Xiang Choong 讨论并实现 Elastic RAG 的代理流程,其中 LLM 选择调用 Elastic KB。 更多阅读:Elasticsearch:基于 Langchain 的 Elasticsearch Agent 对文档的搜索。 简介 代理是将 LLM 应用于实际用例的…...
Jenkins持续集成部署——jenkins安装
前言 Jenkins 是一个开源的自动化服务器,主要用于持续集成(CI)和持续交付(CD)。它为软件开发团队提供了一个易于使用的平台来自动化构建、测试和部署应用程序的过程。 Jenkins 主要功能 1. 持续集成 (CI) 自动构建…...
微信小程序开发入门
实现滚动 需要设置高度和边框 轮播图 差值表达式( {{表达式的值}} ),info数据要写到js文件的data数据中 小程序中常用的事件...
深度学习中自适应学习率调度器
传统观点认为,太大的学习率不利于优化深度神经网络,而相比固定的学习率而言,变化的学习率更能提供快速的收敛。基于此,本文作者基于理论基础提出了一个计算深度神经网络学习率的新方法。实验结果证明了该方法的有效性。 训练神经…...
Phono3py hdf5文件数据读取与处理
Phono3py是一个主要用python写的声子-声子相互作用相关性质的模拟包,可以基于有限位移算法实现三阶力常数和晶格热导率的计算过程,同时输出包括声速,格林奈森常数,声子寿命和累积晶格热导率等参量。 相关介绍和安装请参考往期推荐…...
React 底部加载组件(基于antd)
底部加载组件的意义在于提供一种流畅的用户体验,以便在用户滚动到页面底部时自动加载更多内容。这样可以让用户无需离开当前页面,就能够无缝地浏览更多的内容.通过底部加载组件,可以分批加载页面内容,减少一次性加载大量数据对页面…...
将HTML转换为PDF:使用Spire.Doc的详细指南(一) 试用版
目录 引言 1. 为什么选择 Spire.Doc? 1.1 主要特点 1.2 适用场景 2. 准备工作 2.1 引入 Spire.Doc 依赖 2.2 禁用 SSL 证书验证 3. 实现功能 3.1 主类结构 3.2 代码解析 4. 处理图像 5. 性能优化 5.1 异步下载图像 示例代码 5.2 批量处理优化 示例代…...
数据结构经典算法总复习(下卷)
第五章:树和二叉树 先序遍历二叉树的非递归算法。 void PreOrderTraverse(BiTree T, void (*Visit)(TElemType)) {//表示用于查找的函数的指针Stack S; BiTree p T;InitStack(S);//S模拟工作栈while (p || !StackEmpty(S)) {//S为空且下一个结点为空,意味着结束遍…...
mac 安装graalvm
Download GraalVM 上面链接选择jdk的版本 以及系统的环境下载graalvm的tar包 解压tar包 tar -xzf graalvm-jdk-<version>_macos-<architecture>.tar.gz 移入java的文件夹目录 sudo mv graalvm-jdk-<version> /Library/Java/JavaVirtualMachines 设置环境变…...
【SH】在Ubuntu Server 24中基于Python Web应用的Flask Web开发(实现POST请求)学习笔记
文章目录 Flask开发环境搭建保持Flask运行Debug调试 路由和视图可变路由 请求和响应获取请求信息Request属性响应状态码常见状态码CookieSession 表单GET请求POST请求 Flask 在用户使用浏览器访问网页的过程中,浏览器首先会发送一个请求到服务器,服务器…...
一些经济政治学类书籍推荐 --- 以及与之相关我的经历和理解
我给所开设的兴趣专栏_墨#≯的博客-CSDN博客,的介绍是: 聊聊关于文学、经济(股票等)、法律方面的个人感受与理解。 不过目前已有的两篇以及现在在写的这篇都是经济相关的,其实专栏开设的9月至今,我也看了好几本文学相关的书&#…...
设计模式之 abstract factory
适用场景 一个系统要独立于它的产品的创建、组合和表示时。一个系统要由多个产品系列中的一个来配置时。当你要强调一系列相关的产品对象的设计以便进行联合使用时。当你提供一个产品类库,而只想显示它们的接口而不是实现时 架构演示 首先client这个东西可以接触到…...
汽车IVI中控开发入门及进阶(三十八):手机投屏HiCar开发
手机投屏轻松实现手机与汽车的无缝连接,导航、音乐、通话等功能应有尽有,还支持更多第三方应用,让车载互联生活更加丰富多彩。 HiCar在兼容性和开放性上更具优势。 手机投屏可以说是车机的杀手级应用,大大拓宽了车机的可用性范围。其中华为推出的HiCar就是非常好用的一种。…...
Springmvc,spring ,mybatis,整合,ssm
上一章内容: 1.spring框架:作用 开源的框架--提供IOC和AOPIOC控制反转 把创建对象的权力交于spring创建,并管理对象的生命周期,通过DI完成对象属性的注入。 2. spring配置中<bean>也可以使用注解Component Controller Service Repo…...
《庐山派从入门到...》板载按键启动!
《庐山派从入门到...》板载按键启动! 《庐山派从入门到...》板载按键启动! 视频内容大致如下 我们之前了解了GPIO的输出模式使用方法,并且成功点灯,很明显本篇要来分享的自然是GPIO的输入模式 正好回顾一下之前学的python基础包…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
