当前位置: 首页 > news >正文

【路由器】小米 WR30U 解锁并刷机

文章目录

    • 解锁 ssh
      • 环境准备
      • 解锁过程
    • 刷入 mt798x uboot
      • 简介
      • 刷入流程
    • 刷入 ImmortalWrt
      • 简介
      • 刷入流程
    • 刷为原厂固件
    • 参考资料

本文主要记录个人对小米 WR30U 路由器的解锁和刷机过程,整体步骤与 一般安装流程 类似,但是由于 WR30U 的解锁 ssh 和刷机的过程中有一些细节需要注意,因此记录一下

解锁 ssh

环境准备

需要一台同时具有 WiFi 和有线网络的电脑,以及一根网线

然后需要配置 python 环境,并且安装 pycryptodome 依赖

conda create -n wr30u
conda activate wr30u
conda install pycryptodome

然后是解锁脚本,可以直接从 PatriciaLee3 的仓库中下载

解锁过程

PatriciaLee3 的仓库中已经给出了详细的解锁过程,这里只是简单记录一下

  1. 电脑连接原厂固件的路由器,进入 192.168.31.1 的管理后台,在常用设置-上网设置里分别设置:

    • 上网设置 DHCP,自动配置 DNS
    • 启动与智能网关无线配置同步(会重启)
    • 固定 WAN 口为 1(会重启)
  2. 电脑连接有正常网络的 WiFi,然后将网线连接到路由器的 WAN 口

  3. 打开 控制面板 - 网络和 Internet - 网络和共享中心 - 更改适配器设置 - 选择 WLAN - 右键属性 - 共享,勾选第一个并确认,这个时候 WR30U 会通过有线连接共享电脑的网络,并且网络指示灯会变成蓝色

    共享网络

  4. 打开 控制面板 - 系统和安全 - Windows Defender 防火墙 - 启动或关闭 Windows Defender 防火墙,关闭 Windows Defender 防火墙

    关闭防火墙

  5. 运行解锁脚本,并按照脚本提示操作

    conda activate wr30u
    python server_emulator.py
    
  6. 解锁完成后,路由器的账号密码为 rootadmin,之后记得重新开启防火墙,并且关闭共享网络

刷入 mt798x uboot

简介

这里首先推荐刷入 hanwckf 的 mt798x uboot,这个 uboot 有很多功能,其中以下两点非常实用:

  • 【使用方便】自带 MTK 原厂开发的简易 WebUI 恢复界面,可以通过 WebUI 直接刷入固件或者更新 uboot
  • 【兼容性好】支持多种 Flash 分区布局切换功能(仅支持 spi-nand),可以在 WebUI 中切换不同的分区布局,完美兼容小米原厂固件

刷入流程

  1. 电脑接入正常网络,然后去 hanwckf 的仓库 release 页面下载对应的 uboot 文件:mt7981_wr30u-fip-fixed-parts-multi-layout.bin

  2. 电脑接入路由器网络,通过 scp 将 uboot 传到路由器上

    scp mt7981_wr30u-fip-fixed-parts-multi-layout.bin root@192.168.31.1:/tmp
    
  3. 通过 ssh 登录路由器,查看布局

    # on PC
    ssh root@192.168.31.1# on Router
    # 查看当前分区布局
    cat /proc/mtd
    

    默认布局如下:

    dev:    size   erasesize  name
    mtd0: 08000000 00020000 "spi0.0"
    mtd1: 00100000 00020000 "BL2"
    mtd2: 00040000 00020000 "Nvram"
    mtd3: 00040000 00020000 "Bdata"
    mtd4: 00200000 00020000 "Factory"
    mtd5: 00200000 00020000 "FIP"
    mtd6: 00040000 00020000 "crash"
    mtd7: 00040000 00020000 "crash_log"
    mtd8: 02200000 00020000 "ubi"
    mtd9: 02200000 00020000 "ubi1"
    mtd10: 02000000 00020000 "overlay"
    mtd11: 00c00000 00020000 "data"
    mtd12: 00040000 00020000 "KF"
    

    如果需要备份,可以通过 nanddump 命令备份,之后通过 scp 将备份的文件传到电脑上

    # on Router
    nanddump -f /tmp/BL2.bin /dev/mtd1
    nanddump -f /tmp/Nvram.bin /dev/mtd2
    nanddump -f /tmp/Bdata.bin /dev/mtd3
    nanddump -f /tmp/Factory.bin /dev/mtd4
    nanddump -f /tmp/FIP.bin /dev/mtd5
    nanddump -f /tmp/ubi.bin /dev/mtd8
    nanddump -f /tmp/KF.bin /dev/mtd12# on PC
    scp root@192.168.31.1:/tmp/*.bin .
    
  4. 然后将 uboot 刷入 FIP 分区,之后关机

    # on Router
    mtd write /tmp/mt7981_wr30u-fip-fixed-parts-multi-layout.bin FIPpoweroff
    

刷入 ImmortalWrt

简介

ImmortalWrt 是 OpenWrt 的一个分支,相比于 OpenWrt 有更多的软件包以及设备支持,并且对中国大陆用户有特殊优化

刷入流程

  1. 电脑连接正常网络,去官网下载 Sysupgrade 固件

    这里选择了 custom U-Boot layout 的固件,也就是 112M UBI layout 的固件,这样可以有更多的空间用于安装软件包,固件名格式为 immortalwrt-xxxxxx-mediatek-filogic-xiaomi_mi-router-wr30u-112m-nmbm-squashfs-sysupgrade.bin

  2. 针按住 reset 不放,再接上电源,等待 10s 左右松开,路由器的系统灯变蓝后就是成功进入 uboot 了

  3. 因 uboot 不支持 DHCP 功能,需要把电脑的 IP 地址设置成固定 IP:

    电脑通过网线连接路由器,然后在网络设置里将以太网设置为静态,IP地址:192.168.31.100,子网掩码:255.255.255.0,网关:192.168.31.1,首选 DNS:192.168.31.1,最后保存

  4. 直接访问 WebUI 进行刷固件,将 layout 选为 immortalwrt-112m,然后上传前面下载的固件,点击刷机即可

    layout 选择

刷为原厂固件

刷回原厂固件的过程与刷入 ImmortalWrt 类似,只是需要下载原厂固件,然后在 WebUI 中将 layout 配置为 default,之后上传原厂固件刷机即可

参考资料

  • 【个人博客】酱紫表 - 小米 WR30U 解锁 SSH 刷 openwrt,最有性价比的百元路由器
  • 【GitHub】wr30u_ssh
  • 【个人博客】hanwckf - mt798x uboot 功能介绍
  • 【ImmortalWrt】固件下载

本文作者: ywang_wnlo
本文链接: https://ywang-wnlo.github.io/posts/e6410576.html
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

相关文章:

【路由器】小米 WR30U 解锁并刷机

文章目录 解锁 ssh环境准备解锁过程 刷入 mt798x uboot简介刷入流程 刷入 ImmortalWrt简介刷入流程 刷为原厂固件参考资料 本文主要记录个人对小米 WR30U 路由器的解锁和刷机过程,整体步骤与 一般安装流程 类似,但是由于 WR30U 的解锁 ssh 和刷机的过程中…...

数据库操作语句

一,SQL分类 DDL:数据定义语言 DML:数据操纵语言 DQL:数据查询语言 DCL:数据控制语言 创建数据库和表 #创建数据库 create database 数据库名; #创建数据表 create table 表名 (字段1 字段1类型(字段长度) 字段限制,字…...

Mr. Cappuccino的第64杯咖啡——Spring循环依赖问题

Spring循环依赖问题 什么是循环依赖问题示例项目结构项目代码运行结果 Async注解导致的问题使用Lazy注解解决Async注解导致的问题开启Aop使用代理对象示例项目结构项目代码运行结果 Spring是如何解决循环依赖问题的原理源码解读 什么情况下Spring无法解决循环依赖问题 什么是循…...

Adapting Language Models to Compress Contexts

本文是LLM系列文章,针对《Adapting Language Models to Compress Contexts》的翻译。 使语言模型适应上下文压缩 摘要1 引言2 相关工作3 方法4 实验5 上下文学习6 压缩检索语料库实现高效推理7 结论不足 摘要 1 引言 2 相关工作 3 方法 4 实验 5 上下文学习 …...

Kubernetes(K8S)使用PV和PVC做存储安装mysql

Kubernetes使用PV和PVC做存储安装mysql 环境准备什么是PV和PVC环境准备配置nfs安装nfs配置nfs服务端 创建命名空间配置pv和pvcpv的yaml文件pvc的yaml文件 部署mysql创建mysql的root密码的secret创建mysql部署的yaml部署mysql链接mysql外部链接内部链接 环境准备 首先你需要一个…...

Ansible Playbook 常用变量

以下是 Ansible Playbook 常用变量 ansible_connection: 指定连接类型(如 ssh、winrm) ansible_user: 指定远程用户 ansible_ssh_pass: 指定远程用户密码 ansible_become: 指定是否切换为超级用户 ansible_become_user: 指定切换到的用户 ansible_b…...

0103水平分片-jdbc-shardingsphere-中间件

文章目录 1 准备服务器1.1 创建server-order0容器1.2 创建server-order1容器 2、基本水平分片2.1、基本配置2.2、数据源配置2.3、标椎分片表配置2.4、行表达式2.5、分片算法配置2.6、分布式序列算法 3、多表关联3.1、创建关联表3.2、创建实体类3.3、创建Mapper3.4、配置关联表3…...

Vue2.0+webpack 引入字体文件(eot,ttf,woff)

webpack.base.config.js 需要配置 {test:/\/(woff2?|eot|ttf|otf)(\?.*)?$/,loader: url-loader,options: {limit: 10000,name: utils.assetsPath(fonts/[name].[hash:7].[ext])}} 如果 Vue2.0webpack3.6引入字体文件(eot,ttf,woff&…...

Eureka:CAP原则及对比Zookeeper

...

WPF入门到精通:3.MVVM简单应用及全局异常处理

MVVM简介 在WPF应用程序开发中,MVVM(Model-View-ViewModel)是一种非常流行的架构模式。它为应用程序的设计提供了良好的分层结构和可扩展性。 结构分为下列三部分 Model:定义了应用程序的数据模型 就是系统中的对象,…...

Springboot+mybatis-plus+dynamic-datasource+Druid 多数据源 分布式事务

Springbootmybatis-plusdynamic-datasourceDruid 多数据源事务,分布式事务 文章目录 Springbootmybatis-plusdynamic-datasourceDruid 多数据源事务,分布式事务0.前言1. 基础介绍ConnectionFactoryAbstractRoutingDataSource 动态路由数据源的抽象类 Dyn…...

673. 最长递增子序列的个数

673. 最长递增子序列的个数 原题链接:完成情况:解题思路:方法一:动态规划方法二:贪心 前缀和 二分查找 参考代码:__673最长递增子序列的个数__动态规划__673最长递增子序列的个数__贪心_前缀和_二分查找…...

Android12之ABuffer数据处理(三十四)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…...

whisper 语音识别项目部署

1.安装anaconda软件 在如下网盘免费获取软件: 链接:https://pan.baidu.com/s/1zOZCQOeiDhx6ebHh5zNasA 提取码:hfnd 2.使用conda命令创建python3.8环境 conda create -n whisper python3.83.进入whisper虚拟环境 conda activate whisper4.…...

实例044 在关闭窗口前加入确认对话框

实例说明 用户对程序进行操作时,难免会有错误操作的情况,例如不小心关闭程序,如果尚有许多资料没有保存,那么损失将非常严重,所以最好使程序具有灵活的交互性。人机交互过程一般都是通过对话框来实现的,对话…...

子查询和事务隔离以及用户管理

一、子查询 子查询是另一个语句中的select语句嵌套在另一个select中。注意子查询语法上必须使用()包起来。 嵌套的那个语句返回的结果有可能是: 一个字段,一行记录,一个列或一个表。嵌套的位置 where / having语句里面作为条件使用在from语…...

uniapp 滚动到指定元素的位置(锚点)

需求:在页面中,不管位于何处,点击按钮页面滚动到对应的标题位置。 最简单有效的方式(直接复制改数据就行) 使用 scroll-view 标签的属性:scroll-top(距离值 num) 或 scroll-into-view(子元素的id,不能以…...

Spring AOP 的 afterReturing 返回值是否能修改问题

文章目录 结论举例子原因外传 结论 最近要搞脱敏信息,所以,想了几种方案,最后使用全局的接口拦截,但是,又不能用注解的方式,毕竟是几年的老产品,有很多限制。 中间尝试过使用Spring AOP 的 aft…...

MyBatis分页插件PageHelper的使用及特殊字符的处理

目录 一、PageHelper简介 1.什么是分页 2.PageHelper是什么 3.使用PageHelper的优点 二、PageHelper插件的使用 原生limit查询 1. 导入pom依赖 2. Mybatis.cfg.xml 配置拦截器 3. 使用PageHelper进行分页 三、特殊字符的处理 1.SQL注入: 2.XML转义&#…...

[语音识别] 基于Python构建简易的音频录制与语音识别应用

语音识别技术的快速发展为实现更多智能化应用提供了无限可能。本文旨在介绍一个基于Python实现的简易音频录制与语音识别应用。文章简要介绍相关技术的应用,重点放在音频录制方面,而语音识别则关注于调用相关的语音识别库。本文将首先概述一些音频基础概…...

AI从业者的“薪资真相”:不同方向、不同级别AI从业者的薪资水平

在人工智能技术飞速渗透各行业的当下,AI领域已成为软件测试从业者跨界转型的热门方向。相较于测试岗位相对稳定但涨幅平缓的薪资体系,AI行业的薪资结构呈现出极强的分层性与差异性。对于具备技术基础的测试从业者而言,深入了解AI领域的薪资逻…...

给工程师的傅里叶变换:从信号处理到图像压缩,用Python代码理解核心推导

给工程师的傅里叶变换:从信号处理到图像压缩,用Python代码理解核心推导 当你在Spotify上听歌时,算法如何从嘈杂环境中分离人声?手机拍照时,JPEG压缩为何能大幅减小文件体积却保持清晰?这些看似不相关的技术…...

Linux下MT7601 USB无线网卡驱动编译与网络配置全攻略

1. 项目概述:从零构建一个可用的USB无线网卡最近在折腾一个基于老旧工控板的自制家庭服务器项目,手头正好有一块闲置的、芯片方案为MT7601的USB无线网卡。在Linux系统下,这类第三方芯片的网卡往往不像Intel、Realtek那样有完善的内核原生支持…...

Vue3后台管理系统终极指南:5个关键问题与V3 Admin Vite解决方案

Vue3后台管理系统终极指南:5个关键问题与V3 Admin Vite解决方案 【免费下载链接】v3-admin-vite ☀️ A crafted Vue3 admin template | Vue Admin | Vue Template | Vue3 Admin | Vue3 Template | Vue 后台 | Vue 模板 | Vue3 后台 | Vue3 模板 项目地址: https:…...

如何高效使用Display Driver Uninstaller:显卡驱动清理终极指南

如何高效使用Display Driver Uninstaller:显卡驱动清理终极指南 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uni…...

别再被假密码骗了!手把手教你用010 Editor识别并破解ZIP/RAR伪加密压缩包

010 Editor实战:揭秘ZIP/RAR伪加密压缩包的技术真相 当你从某个CTF比赛下载到一个加密压缩包,输入密码却提示错误时,是否想过这可能是个精心设计的陷阱?网络安全领域存在一种特殊的"伪加密"技术,它让压缩包看…...

Oryx 2部署与运维手册:生产环境配置完全解析

Oryx 2部署与运维手册:生产环境配置完全解析 【免费下载链接】oryx Oryx 2: Lambda architecture on Apache Spark, Apache Kafka for real-time large scale machine learning 项目地址: https://gitcode.com/gh_mirrors/or/oryx 想要在生产环境中稳定运行大…...

Linux 新手必会 30 个高频基础命令(零基础可直接上手)

前言对于Linux新手来说,无需死记硬背所有命令,重点掌握这30个高频基础命令,就能完成日常90%的操作(目录切换、文件管理、系统查看等)。本文按“使用场景分类”,每个命令标注【用法示例新手提示】&#xff0…...

别再只会if-else了!用状态机思路重构你的STM32寻迹小车代码(附工程源码)

从if-else到状态机:重构STM32寻迹小车的工程化实践 当三个红外传感器同时检测到黑色轨迹时,你的小车应该左转还是右转?当传感器短暂丢失信号时,是紧急刹车还是保持原有动作?这些问题在初学者用if-else堆砌的代码中往往…...

建模也有Skills了:MWORKS.Sysplorer Skills已开源至MoHub!

智能体能调用建模工具,并不等于它能稳定完成工程建模任务。在真实工程场景中,一个可交付的模型往往要经过需求理解、模型库选择、组件映射、参数补全、检查翻译、仿真验证、结果判读和交付归档。过去,这些环节高度依赖工程师经验;…...