`
isiqi
  • 浏览: 16623350 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Patch文件的生成和使用

 
阅读更多
通过diff工具生成补丁, patch工具打上补丁. 在使用diff之前, 你需要保留一份未修改过的源码, 然后在其它地方修改源码的一份拷贝. diff对比这两份源码生成patch. 修改过的源码必须保留原来的文件名, 例如, 如果你修改源码中的a.c文件, 那么, 修改后的文件还是名为a.c, 在修改之前你可以复制a.c为a.orig.c进行备份. diff命令必须在整个Linux源码的根目录的上一级目录中执行. 1. 为单个文件生成补丁 diff -up linux-2.6.28.8/net/sunrpc/svc.orig.c linux-2.6.28.8/net/sunrpc/svc.c 这条命令会产生类似如下的输出, 你将它重定向到一个文件中, 这个文件就是patch. --- linux-2.6.28.8/net/sunrpc/svc.orig.c 2009-03-17 08:50:04.000000000 +0800 +++ linux-2.6.28.8/net/sunrpc/svc.c 2009-03-30 19:18:41.859375000 +0800 @@ -1050,11 +1050,11 @@ svc_process(struct svc_rqst *rqstp) 参数详解: -u 显示有差异行的前后几行(上下文), 默认是前后各3行, 这样, patch中带有更多的信息. -p 显示代码所在的c函数的信息. 2. 为多个文件生成补丁 diff -uprN linux-2.6.28.8.orig/net/sunrpc/ linux-2.6.28.8/net/sunrpc/ 这条命令对比了linux-2.6.28.8.orig/net/sunrpc/和linux-2.6.28.8/net/sunrpc/两个目录的源码差异. 不像只需要单个文件, 如果修改多个文件, 那么就需要拷贝整个Linux源码树. 参数详解: -r 递归地对比一个目录和它的所有子目录(即整个目录树). -N 如果某个文件缺少了, 就当作是空文件来对比. 如果不使用本选项, 当diff发现旧代码或者新代码缺少文件时, 只简单的提示缺少文件. 如果使用本选项, 会将新添加的文件全新打印出来作为新增的部分. 3. 打补丁 生成的补丁中, 路径信息包含了你的Linux源码根目录的名称, 但其他人的源码根目录可能是其它名字, 所以, 打补丁时, 要进入你的Linux源码根目录, 并且告诉patch工具, 请忽略补丁中的路径的第一级目录(参数-p1). patch -p1
分享到:
评论

相关推荐

    svn patch 小工具 (自动提取改动文件)

    标题 "svn patch 小工具 (自动提取改动文件)" 暗示了这是一个关于版本控制系统Subversion(简称svn)和patch文件处理的工具。Subversion是广泛使用的版本控制软件,用于跟踪和管理代码库中的更改。patch文件则通常...

    AndFix热修复Demo+apatch 文件生成工具

    本Demo和apatch文件生成工具旨在帮助开发者更便捷地理解和实践AndFix热修复机制。 首先,AndFix(Android Fast Fix)的核心原理是基于Android的动态代码加载机制。它主要分为两个步骤:一是生成补丁(apatch)文件,...

    Python比较差异化提取patch并生成bin

    5. **PATCH文件**:`patch.bin`和`patch.hex`可能是从比较过程中生成的差异文件。这些PATCH文件包含了从旧固件到新固件所需修改的部分,用于构建新的DFU更新文件。 6. **Address Table**:`address_table.bin`和`...

    Android BigNews 曾量更新 生成 patch.patch文件  工具

    4. **应用补丁**:这个过程通常涉及到读取 `patch.patch` 文件,然后使用类似bspatch的工具将补丁应用到旧APK上,生成新的APK文件。在Android应用中,这可能需要在运行时动态执行,或者在首次启动新版本应用时进行。...

    Linux中patch文件的使用.doc

    ### Linux中Patch文件的使用详解 #### 一、概述 在Linux系统中,`patch`命令和`diff`工具是非常重要的文件对比与合并工具。它们主要用于软件开发过程中的版本管理和更新,尤其在开源社区中非常常见。通过这些工具...

    详解如何使用git 生成patch 和打入patch

    本文将详细讲解如何使用Git生成patch文件以及如何将这些patch应用到项目中。 生成patch文件: 生成patch文件通常是为了提取某次或某系列提交的改动,以便于分享或审查。Git提供了`git format-patch`命令来完成这一...

    openwrt 制作patch

    - 生成新修改的patch文件,使用`quilt refresh`。 - 将新生成的patch更新到目标OpenWrt的patches目录下,使用`make target/linux/update V=s`。 6. **修改已有Patch**: - 对于已经存在的patch文件进行修改,...

    apatch工具

    这个过程通常涉及到对原应用APK和修复后的APK进行比对,找出差异部分,并生成对应的patch文件。 2. **发布补丁**: 将生成的patch文件上传到服务器,用户可以通过网络下载。 3. **客户端应用更新**: 客户端应用检测...

    node命令行生成补丁文件合并补丁生成新的文件

    2. 合并补丁生成新的文件:一旦有了一个或多个补丁文件,我们可以使用另一个命令将这些补丁应用到原始文件或目录上,生成一个更新后的版本。这在维护项目历史、集成多个人的工作或者在不丢失已有修改的情况下测试新...

    ad10破解文件及LICENSE + patch

    ad10破解文件及LICENSE + patch

    svn安装与patch文件应用

    - **生成Patch文件**: 使用 `TortoiseSVN` 的 `Export` 功能导出文件夹,然后使用 `Diff` 工具对比两个版本之间的差异。 - **应用Patch文件**: 使用 `TortoiseSVN` 的 `Apply Patch` 功能将差异应用到目标文件夹。 ...

    Linux初学者Patch使用指南

    - 例如,假设用户当前使用的内核版本为2.1.99,通过应用后续版本的patch文件,可以逐步升级到2.1.119版本。 **使用Patch更新内核示例:** ``` df -u --recursive --file v2.1.118 //mm/swapfile.c mm/swapfile.c -...

    Android热修复生成patch补丁工具

    4. 工具会分析两个APK的差异,生成一个`.patch`文件,这个文件就是我们要应用于用户设备上的热修复补丁。 生成的补丁文件通常包含以下内容: - 类文件的变更:如果修复涉及到Java或Kotlin类,补丁文件会包含这些类...

    diff和patch说明

    1. **基本功能**:`patch`工具接受`diff`生成的输出文件,将其应用于原始文件,从而更新文件内容,使其与另一个文件一致。 2. **应用`diff`输出**:`patch`会根据`diff`文件中的信息,逐行修改目标文件,将修改应用...

    linux 打补丁patch 详解

    如果你的 patch 文件是使用 gzip 或者 bzip2 来压缩的,那么你在使用之前就不必解压缩了,你可以像下面这样把它加入到 patch 文件中:zcat path/to/patch-x.y.z.gz | patch -p1bzcat path/to/patch-x.y.z.bz2 | ...

    ubuntu 下patch 的做法

    摘要:本文将详细介绍 Ubuntu 下使用 Git 管理 Android 项目 patch 的方法,包括同步代码、查看修改文件、添加修改文件、提交修改、生成 patch 等步骤。 知识点一:同步代码 在开始做 patch 之前,需要确保本地...

    Linux下patch的制作和应用

    使用 `patch` 应用刚才生成的补丁文件: ```bash [armlinux@lqmpatch]$ patch -p0 ``` 此时,`test0` 文件的内容应该已经更新为 `test1` 的内容了。 ### 2. 目录内多个文件的补丁制作及应用 #### 步骤一:创建...

    patch增量补丁生成自动化

    "patch增量补丁生成自动化"是指利用自动化工具或脚本,根据代码的修改路径,自动生成补丁包文件,以便快速、准确地将这些变更应用到目标系统上。这样的自动化流程可以显著提高开发效率,减少手动操作的错误。 在...

    patch安装包

    patch文件通常是ASCII文本格式,可以使用diff或git等工具生成。在本例中,"patches"可能是包含了一系列WiFi驱动相关修改的patch文件列表。 在处理这个"patch安装包"时,首先需要确保你有一个合适的开发环境,包括...

Global site tag (gtag.js) - Google Analytics