Skip to content

TbusOS/openwrt-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenWrt 内核 CVE 补丁制作工具链 v8.16.0

一个专为 OpenWrt 开发者设计的混合架构高性能补丁管理平台,v8.16.0版本提供检测性能优化功能。

🚀 v8.16.0 核心特性

检测性能优化版本

  • ⚡ 性能提升: AWK 调用优化,大型补丁文件检测速度提升 30-40%
  • 🚀 效率优化: 合并重复的 awk 调用,减少文件读取次数
  • 🆕 新建文件检测增强: 新增对 "The next patch would create the file" 模式的识别
  • 📊 Ignored Hunks 处理: 智能处理 "X out of Y hunk ignored" 情况

补丁合并功能

  • 🔗 merge-patches命令: 支持合并两个Git格式补丁文件
  • 📊 智能元数据处理: 保留完整头部信息和统计数据
  • 🎯 自动输出管理: 生成带时间戳的合并文件名

国际化支持

  • 🌍 双语帮助系统: 完整的中英文帮助文档 (help-cn/help-en)
  • 🔤 Bash自动补全: 智能命令、选项和文件路径补全
  • 📁 多格式兼容: 支持Git、传统、上下文、Quilt等多种补丁格式

CVE补丁管理

  • 📥 批量下载工具: 自动获取Linux内核CVE补丁
  • 🔄 fold/header命令: 完整的补丁编辑和合并功能
  • 📊 可视化分析: graph/graph-pdf命令生成补丁依赖关系图

🔤 Bash自动补全安装

# 临时启用自动补全(当前终端会话)
source tools/quilt_patch_manager_completion.bash

# 永久启用自动补全(推荐)
echo "source $(pwd)/tools/quilt_patch_manager_completion.bash" >> ~/.bashrc
source ~/.bashrc

# 使用示例
./tools/quilt_patch_manager_final.sh <Tab><Tab>          # 显示所有可用命令
./tools/quilt_patch_manager_final.sh graph-pdf --<Tab>  # 显示graph-pdf选项
./tools/quilt_patch_manager_final.sh quick-apply <Tab>  # 补全.patch文件

📁 项目结构

openwrt-tools/
├── tools/                                   # 工具脚本目录
│   ├── quilt_patch_manager_final.sh         # v8.16.0 主工具 (检测性能优化版)
│   ├── quilt_patch_manager_completion.bash  # Bash自动补全脚本
│   ├── download_monthly_cve.sh              # CVE批量下载工具
│   ├── patch_helper.sh                      # 补丁辅助工具(历史版本)
│   ├── patch_helper_universal.sh            # 通用补丁辅助工具
│   ├── kernel_snapshot_tool/                # 内核快照工具目录
│   │   ├── kernel_snapshot                   # v1.1.0 可执行文件(编译生成)
│   │   ├── 使用指南.md                       # 详细使用指南
│   │   ├── 快速开始示例.md                   # 快速上手示例
│   │   └── 配置文件示例.conf                 # 配置文件模板
│   ├── snapshot_tool/                       # 快照工具(其他版本)
│   └── memory_monitor_drivers_suite/        # 内存监控驱动套件
├── doc/                                     # 完整文档体系
│   ├── DOCUMENTATION_INDEX.md               # 文档总索引 ⭐
│   ├── TECHNICAL_MANUAL_CN.rst              # 中文技术手册 
│   ├── TECHNICAL_MANUAL.rst                 # 英文技术手册
│   ├── QUICK_START_GUIDE_CN.rst             # 中文快速开始
│   ├── QUICK_START_GUIDE.rst                # 英文快速开始
│   ├── 01_tool_guides/                      # 工具使用指南
│   │   ├── QUILT_PATCH_MANAGER_GUIDE.md     # 补丁管理器详细指南
│   │   ├── FOLD_HEADER_USAGE.md             # fold/header命令使用指南
│   │   └── VERSION_COMPARISON_*.md          # 版本对比文档
│   ├── 02_workflow_guides/                  # 工作流程指南
│   │   ├── QUILT_CVE_PATCH_CREATION_GUIDE.md # CVE补丁制作实战教程
│   │   └── CVE_PATCH_WORKFLOW.md            # 标准化补丁工作流程
│   ├── 03_reference_manuals/                # 参考手册
│   │   ├── QUILT_COMMANDS_REFERENCE.md      # Quilt命令全集参考
│   │   └── OPENWRT_TARGET_LINUX_*.md        # OpenWrt相关参考
│   └── 04_summaries/                        # 总结与归档
├── suggest/                                 # 改进建议和计划文档
│   ├── ACTION_PLAN_FOR_PATCH_TOOL.md        # 工具行动计划
│   ├── ENHANCED_FEATURES_FOR_CVE_PATCH_TOOL.md
│   └── kernel_snapshot_tool_*.md            # 快照工具相关建议
├── CHANGELOG.md                             # 版本变更日志
├── README.md                                # 中文说明文档
├── README-en.md                             # 英文说明文档
├── quick_start.md                           # 快速开始指南
└── quick_start.txt                          # 快速开始文本版

注意patch_manager_work/ 是工具运行时自动生成的工作目录,包含缓存、输出和临时文件,已加入 .gitignore

🎯 核心功能

1. 智能冲突分析 (v8.16.0 性能优化)

# 支持多种输入格式的智能冲突分析,自动检测补丁是否已应用
# v8.16.0 优化:大型补丁文件检测速度提升 30-40%
./tools/quilt_patch_manager_final.sh test-patch commit-hash
./tools/quilt_patch_manager_final.sh test-patch local-patch.patch
./tools/quilt_patch_manager_final.sh test-patch https://url/to/patch
# 如果补丁已应用,会自动显示"补丁效果已存在"提示

2. Git风格快照系统

# 文件变更跟踪和管理
./tools/quilt_patch_manager_final.sh snapshot         # 创建快照
./tools/quilt_patch_manager_final.sh export          # 导出变更文件
./tools/quilt_patch_manager_final.sh export-from-file files.txt  # 按文件列表导出

3. Quilt补丁管理

# 标准Quilt操作
./tools/quilt_patch_manager_final.sh new patch-name      # 创建新补丁
./tools/quilt_patch_manager_final.sh push               # 应用补丁
./tools/quilt_patch_manager_final.sh refresh            # 刷新当前补丁
./tools/quilt_patch_manager_final.sh series             # 显示补丁系列

4. 补丁合并与编辑 (v8.11.0+)

# 补丁合并功能
./tools/quilt_patch_manager_final.sh merge-patches patch1.patch patch2.patch

# 补丁编辑功能
./tools/quilt_patch_manager_final.sh fold external.patch   # 合并外部补丁
./tools/quilt_patch_manager_final.sh header              # 编辑补丁头部

5. 可视化分析

# 生成补丁依赖关系图
./tools/quilt_patch_manager_final.sh graph              # 文本格式
./tools/quilt_patch_manager_final.sh graph-pdf         # PDF格式

6. CVE补丁下载

# 批量下载CVE补丁
./tools/download_monthly_cve.sh 2024 1 3  # 下载2024年1-3月CVE

7. 快速应用与清理

# 一键补丁应用
./tools/quilt_patch_manager_final.sh quick-apply patch-file.patch

# 快照数据清理
./tools/quilt_patch_manager_final.sh snapshot-clean     # 交互式清理
./tools/quilt_patch_manager_final.sh snapshot-clean -f  # 强制清理

🔧 安装与依赖

系统要求

  • Linux/Unix 环境
  • Bash 4.0+
  • Git 2.0+
  • Quilt 0.60+

可选依赖

  • graphviz (用于graph-pdf命令)
  • curl/wget (用于网址补丁下载)

安装步骤

# 1. 克隆仓库
git clone https://github.com/TbusOS/openwrt-tools.git
cd openwrt-tools

# 2. 设置执行权限
chmod +x tools/*.sh

# 3. 启用Bash自动补全(可选)
source tools/quilt_patch_manager_completion.bash

📖 文档导航

💡 使用场景

🔍 情况1:分析补丁冲突 (增强版)

当你不确定补丁是否会产生冲突时,使用智能冲突分析功能:

# 分析GitHub commit
./tools/quilt_patch_manager_final.sh test-patch 1234567890abcdef

# 分析本地补丁文件 
./tools/quilt_patch_manager_final.sh test-patch my-patch.patch

# 分析在线补丁
./tools/quilt_patch_manager_final.sh test-patch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/patch/?id=abc123

🚀 情况2:快速应用补丁

对于确认无冲突的补丁,使用快速应用功能:

# 一键应用补丁到OpenWrt
./tools/quilt_patch_manager_final.sh quick-apply security-fix.patch

📦 情况3:导出变更文件

当需要提取修改的文件时:

# 导出所有变更
./tools/quilt_patch_manager_final.sh export

# 按文件列表导出
./tools/quilt_patch_manager_final.sh export-from-file changed-files.txt

🔗 情况4:合并多个补丁

将多个相关补丁合并为一个:

# 合并两个Git格式补丁
./tools/quilt_patch_manager_final.sh merge-patches fix1.patch fix2.patch

🆚 版本对比

特性 v7.0.0 (最终稳定版) v8.0.0 (混合架构高性能版) v8.6.0 (新增命令功能版) v8.7.0 (Bash自动补全版) v8.9.0 (国际化增强版) v8.10.0 (补丁解析增强版) v8.11.0 (补丁合并功能版) v8.12.0 (冲突分析增强版) v8.15.0 (智能已应用检测版) v8.16.0 (检测性能优化版)
基础Quilt操作
智能冲突分析 ✅ 增强 Index格式支持 智能检测 性能优化
Git风格快照 新增
文件导出功能 增强
网址链接支持 新增
可视化图表 新增
Bash自动补全 新增
CVE批量下载 新增
双语帮助系统 新增
多格式解析 新增 增强
补丁合并功能 新增
冲突分析增强 新增
补丁已应用检测 新增
检测性能优化 新增

🌟 v8.0 核心优势

  1. 🎯 混合输入架构: 统一支持commit-id、本地文件、网址三种输入方式
  2. 📂 Git风格快照系统: 类似Git的文件变更跟踪和导出功能
  3. ⚡ 高性能C语言助手: 大文件处理速度提升5-10倍
  4. 🔄 增强冲突分析: 更准确的补丁冲突检测和定位
  5. 📊 智能报告系统: 详细的操作日志和统计报告
  6. 🌐 网络资源支持: 直接处理在线补丁资源
  7. 🔧 智能配置集成: 继承v8.1.0所有配置优化和错误诊断功能

🤝 贡献与支持

欢迎提交Issue和Pull Request来改进这个工具!

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。


OpenWrt补丁管理工具链 v8.16.0 - 让补丁管理更简单、更高效、更快速!