typecho 发布的文章

参考文章:https://blog.joylau.cn/2020/04/13/Daily-KVR-NewifiD2-Breed/

背景

目前想要组 WIFI 漫游可选的方案有 AC + AP 或者 mesh 组网, 可这些的价格都不便宜, 而我选择用 2 台之前很火的矿机新路由 3 (Newifi D2) 来组 AP 实现 KVR 漫游
想要组 KVR 漫游, 2 台路由必须刷入集客 AP 固件, 而刷入集客 AP 固件前必须先刷入 Breed 固件
本篇介绍新路由 3 如何刷入该固件

概念介绍

802.11k

通过创建优化的频道列表,802.11k 标准可帮助设备快速搜索附近可作为漫游目标的 AP。如果当前接入点的信号强度变弱,您的设备将进行扫描来确定是否有此列表中的目标接入点。

802.11v

具备“即将解除关联”功能的 BSS 转换管理可向网络的控制层提供附近接入点的负载信息,从而影响客户端漫游行为。设备在确定可能的漫游目标时会考量这些信息。

DMS 可优化无线网络上的多播流量传输。设备会利用这些信息来增强多播通信,并保持电池续航能力。

BSS 最大空闲服务有助于客户端和接入点在没有流量传输时,高效地决定保持关联的时长。设备会利用这些信息来保持电池续航能力。

802.11r

当您的设备在同一网络中从一个 AP 漫游到另一个 AP 时,802.11r 会使用一项名为“快速基本服务集转换”(FT) 的功能更快地进行认证。FT 适用于预共享密钥 (PSK) 和 802.1X 鉴定方法。

以上来自苹果官网对于 KVR 的介绍: https://support.apple.com/zh-cn/HT202628

步骤

材料准备

newifi-d2-jail-break.ko

操作

重置现有路由器系统: 开机状态下按住 reset 键 5 秒,等待重启
进入 http://192.168.99.1 初始化路由器,设置好 WIFI 和密码
浏览器访问 http://192.168.99.1/newifi/ifiwen_hss.html 开启路由器的 ssh 登录, 用户名为 root ,密码为刚才设置的密码
使用 scp 命令拷贝 newifi-d2-jail-break.ko 到 tmp 目录下: scp ./newifi-d2-jail-break.ko root@192.168.99.1:/tmp
刷入系统: insmod /tmp/newifi-d2-jail-break.ko
等待 30 秒左右, 断电, 再按住 reset 键通电
此时路由器分配的网段为 192.168.1.0
访问 http://192.168.1.1 进行设置

注意

newifi-d2-jail-break.ko 是恩山论坛上一个大神破解的,如果在 Breed 官网(https://breed.hackpascal.net/)下载固件 breed-mt7621-newifi-d2.bin,是无法通过自身恢复模式刷入固件的,别问我怎么知道的
本文作者: JoyLau
本文链接: https://blog.joylau.cn/2020/04/13/Daily-KVR-NewifiD2-Breed/
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

IC 卡是集成电路卡(Integrated Circuit Card)的简称,是镶嵌集成电路芯片的塑料卡片,其外形和尺寸都遵循国际标准(ISO)。
芯片一般采用不易挥发性的存储器(ROM、EEPROM)、保护逻辑电路、甚至带微处理器 CPU。
带有 CPU 的 IC 卡才是真正的智能卡。按照嵌入集成电路芯片的形式和芯片类型的不同 IC 卡大致可分为接触式,非接触式、双界面卡。
ID 卡全称为身份识别卡(Identification Card),是一种不可写入的感应卡,含固定的编号,主要有台湾 SYRIS 的 EM 格式、美国HIDMOTOROLA 等各类 ID 卡。ID 卡与磁卡一样,都仅仅使用了“卡的号码”而已,卡内除了卡号外,无任何保密功能,其“卡号”是公开、裸露的。所以说 ID 卡就是“感应式磁卡”。
ID 卡一般为低频卡,工作频率是 125KHz。IC 卡为高频卡,工作频率 13.56 MHz。高频卡的感应距离较远,低频卡比较近,两种辐射距离不同。
一、普通 ID 卡
ID 卡是指内含 EM 芯片或其他芯片的只读卡片。应用广泛。他只能读取序列号,不能往里写东西。ID 读卡器是现在市场上最流通的
读卡器,有多种传输格式,并且几乎都能通用。日常用的门禁卡基本都是这一类。仅是单纯判别是与否功能。工作频率是 125KHz。
二、5577 卡
属于 ID 卡,他只有一个可改写的序列号。
工作频率:125KHZ 存储器容量:363bits,11 分区,8 位密码
读写距离:3-10cm 擦写寿命:大于 100,000 次 数据保存时间:
10 年 尺寸:ISO 标准薄卡/厚卡/异形卡等 封装材料:PVC ABS
特点:可胶印图案,文字,LOGO 典型应用:典型应用:感应式智能门锁、学校/企业一卡通系统、门禁、通道系统等
三、M1 卡
所谓的 M1 芯片,是指菲利浦下属子公司恩智浦出品的芯片缩写,全称为 NXP Mifare1 系列,常用的有 S50 及 S70 两种型号,截止到2013 年 11 月 4 日,已经有国产芯片与其兼容,利用 PVC 封装 M1 芯片、感应天线,然后压制成型后而制作的卡即是智能卡行业所说的M1 卡,属于非接触式 IC 卡。非接触式 IC 卡又称射频卡,成功地解决了无源(卡中无电源)和免接触这一难题,是电子器件领域的一大突破。主要用于公交、轮渡、地铁的自动收费系统,也应用在门禁管理、身份证明和电子钱包。
优点是可读可写的多功能卡,缺点是:价格稍贵,感应距离短,适合非定额消费系统、停车场系统、门禁考勤系统等。
工作频率: 13.56 MHz
四、S50 卡
S50 卡,采用 NXP MF1 IC S50 制作的非接触智能卡,通常简称S50 卡或 Mifare 1K,符合 ISO14443A 标准,4 或 7 字节 UIDM1 的兼容产品。
五、UID 卡
UID 卡是一种 IC 卡,UID 卡片完全兼容 mifare 1k 卡片。卡片的block0(UID 所在的 block)可以任意修改,重复修改。block0 直接用普通 mifare 读写器修改,不需要特殊设备。卡片的默认密码为 12个 F,即 FFFFFFFFFFFF。此卡可以修改任意扇区,作为 M1 复制的子卡,主要应用在 IC 卡复制上。
卡可反复擦写卡,可改写 0 扇区以及全部扇区数据 ,可实现 M1卡、S50 卡的复制、克隆功能。同时亦可适用于一卡通、门禁、停车场、自动贩卖机、电子钱包、电子商务、身份验证等多个领域,在住宅、小区、写字楼、工厂、学校、医院等各行业中的非接触式 IC 卡应用
六、CUID 卡
CUID 卡是一款支持 UID 号重复擦写使用的 UID 卡,无限次修改 0扇区!完美替代普通防屏蔽卡(FUID,UFUID)。无需锁卡自动起防屏蔽作用,可重复擦写使用无废卡,不会像 FUID 或 UFUID 锁死后才起到防屏蔽作用,更不会因为锁卡而变成一次性卡,无法更改卡内数据成为废卡。
CUID 防屏蔽卡专门对付物业升级的防复卡和防复读头,是物业升级后 UID 卡不能使用的克星,CUID 卡无论从功能上和价格格都完
胜 FUID 和 UFUID,解决了大部分小区的“滚动密码”的难题。
优点:所有区块可被重复读写,卡片 ID 可改且使用普通写指令更改 ID,ID 可被重复修改。不响应后门指令(意味着不容易被可擦写防屏蔽卡,可以重复擦写所有扇区,UID 卡复制无效的情况下使用,可以绕过防火墙。反克隆系统发现)。
可反复擦写,但是必须有原卡数„„
七、FUID 卡
FUID 卡也是一款支持 UID 号擦写使用的 UID 卡,但 FUID 卡一旦写入备份的 dump 文件便固化了,丧失了 UID 卡的特点
0 区块可写且仅可写入一次使用普通写指令更改 ID更“反克隆”.
不可擦写防屏蔽卡,此卡的特点 0 扇区只能写入一次,写入一次变成 M1 卡,CUID 复制没用的情况下使用,可以绕过防火墙。
八、UFUID
可锁死,可不锁死,不锁死可反复擦写。
属于高级复制卡,我们就理解为是 UID 和 FUID 的合成卡,需要封卡操作,不封卡就是 UID 卡,封卡后就变为 M1 卡。
九、CPU 卡
CPU 卡芯片通俗地讲就是指芯片内含有一个微处理器,它的功能相当于一台微型计算机。人们经常使用的集成电路卡(IC 卡)上的
金属片就是 CPU 卡芯片。CPU 卡可适用于金融、保险、交警、政府行业等多个领域,具有用户空间大、读取速度快、支持一卡多用等特点,并已经通过中国人民银行和国家商秘委的认证。CPU 卡从外型上来说和普通 IC 卡,射频卡并无差异,但是性能上有巨大提升,安全性和普通 IC 卡比,提高很多,通常 CPU 卡内含有随机数发生器,硬件 DES,3DES 加密算法等,配合操作系统即片上 OS,也称 SoC,可以达到金融级别的安全等级。这个,基本无解。
十、HID 卡
HID卡是美国的一种读卡器与卡片牌子,它只是一款产品的品牌,与 ID 其实没有太多的关系,但也是 ID 卡的一种,只是它出厂的芯片按地区都设定了序列号,加了密,所以它有自定的格式,不能与别的牌子的读卡器通用,也就是 HID 卡只能在 HID 读卡器上使用。

在 GitHub 上确实存在一些与百度网盘数据搜索和下载相关的开源项目,但需要注意以下几点:

⚠️ 重要提示

官方限制与风险: 百度网盘官方对非官方的下载和搜索方式有严格的限制。任何非官方的工具或脚本都可能面临被封禁账号或失效的风险。

法律与道德: 确保你搜索和下载的数据内容是合法且不侵犯他人版权的。

工具可用性: 由于网盘接口的不断变化,许多工具可能随时会失效,需要用户自行维护或等待作者更新。

🔍 可能的项目类型

GitHub 上常见的相关项目大致分为以下几类:

命令行下载工具(CLI):

    这类工具通常需要安装在本地,通过输入分享链接或文件ID来实现高速下载(可能需要设置网盘Cookie或付费账号信息)。它们旨在绕过官方客户端的限速。

    关键词示例: BaiduPCS-Go (这是一个历史悠久且流行的项目,但可能需要自行编译或寻找最新版本)。

网盘资源搜索引擎:

    这类项目通常是第三方网站或脚本,用于索引和搜索用户公开分享的百度网盘链接。

    关键词示例: baiduyun-search (通常是搭建搜索站点的代码)。

浏览器脚本/插件:

    例如 油猴脚本(Tampermonkey scripts),用于增强网页版百度网盘的功能,如导出真实下载链接、解除某些限制等。

💻 如何进行搜索?

建议您使用以下关键词在 GitHub 官网进行搜索,并关注项目的“Stars”数量和最近的“Commit”时间(更新时间)来判断其活跃度和可用性:
搜索关键词 (中文) 搜索关键词 (英文/拼音)
百度网盘下载 Baidu Netdisk Downloader
网盘高速下载 BaiduPCS
百度网盘搜索 Baiduyun Search
百度网盘不限速 Baidu Pan unlimited speed

请自行前往 GitHub 搜索并仔细阅读项目的说明文档(README),了解其功能、安装方法、使用风险以及是否仍然可用。

您想让我帮您搜索一下 GitHub 上 “BaiduPCS-Go” 项目的最新情况或类似网盘高速下载工具的关键词吗?

Python 控制程序超时的核心方法是强制中断阻塞的代码,最常用且安全的是  threading.Timer  线程定时器,复杂场景可使用  signal  信号(限 Unix 系统)或  concurrent.futures  线程池。

方法1:threading.Timer(通用、跨平台)

通过启动一个定时器线程,超时后触发自定义函数(如抛出异常)来中断主逻辑,适用于几乎所有场景。

python

import threading
import time

def timeout_handler():

"""超时后执行的函数,这里直接抛出异常终止程序"""
raise Exception("程序超时!已强制终止")

1. 设置超时时间(单位:秒)

timeout_seconds = 5

2. 启动定时器:超时后调用 timeout_handler

timer = threading.Timer(timeout_seconds, timeout_handler)
timer.start()

try:

# -------------- 替换为你的目标代码(如下载、等待等)--------------
print("开始执行任务,超时时间5秒...")
time.sleep(10)  # 模拟耗时超过超时时间的任务
print("任务正常完成(此句不会执行,因为会超时)")

finally:

# 3. 若任务提前完成,取消定时器(避免误触发)
timer.cancel()

 

方法2:concurrent.futures(适合函数级超时)

用线程池执行目标函数,直接通过  result()  方法设置超时时间,代码更简洁,适合给单个函数加超时。

python

from concurrent.futures import ThreadPoolExecutor
import time

def target_task():

"""需要控制超时的目标函数"""
print("任务开始...")
time.sleep(10)  # 模拟耗时任务
return "任务完成结果"

1. 创建线程池(仅1个线程)

with ThreadPoolExecutor(max_workers=1) as executor:

# 2. 提交任务并设置超时时间(5秒)
future = executor.submit(target_task)
try:
    # 3. 等待结果,超时则抛出 TimeoutError
    result = future.result(timeout=5)
    print("任务结果:", result)
except TimeoutError:
    print("任务超时!")

 

方法3:signal(仅 Unix 系统,如 Linux/macOS)

利用系统信号机制,超时后发送  SIGALRM  信号终止程序,效率高但不支持 Windows。

python

import signal
import time

def timeout_handler(signum, frame):

raise Exception("程序超时(signal 触发)")

1. 注册信号:超时后调用 timeout_handler

signal.signal(signal.SIGALRM, timeout_handler)

2. 设置超时时间(5秒)

signal.alarm(5)

try:

print("任务开始,超时5秒...")
time.sleep(10)  # 模拟超时任务
print("任务完成(不会执行)")

except Exception as e:

print(e)

finally:

# 3. 任务完成后取消信号(避免误触发)
signal.alarm(0)

 

需要我针对你的具体场景(比如之前的 VLC 播放控制),写一个带超时功能的完整示例代码吗?你只需告诉我具体超时时间即可。