openwrt编译制作补丁patch文件
用于对openwrt固件特殊定制.
我对patch文件结构不太了解,这里只是记录我自己本次使用.
patch的作用
如果你要对源码进行修改有两个方法
一,找到源码文件,修改代码
二,使用patch文件打补丁.
直接修改源码有个严重的弊端
当你更新openwrt源码,或者更新feeds,或者更新包的时候,你会发现你修改的代码被覆盖了.
patch文件就是为了解决这个弊端出来的,你可以忽略官方更新,只需要更新后打下补丁,那么代码就修改了.
演示一个目标
当uhttpd启用ssl之后,会默认开启 http跳转https
你打开http://192.168.1.1的时候,会自动跳转到https://192.168.1.1而且浏览器还会提示证书错误.
尝试制作一个补丁文件,来处理这个问题.
找到配置文件
package/network/services/uhttpd/files/uhttpd.config
编写修改
原理:
其实只需要在uhttpd配置中option redirect_https 1 改成0即可
我这里还做了一些其他定制.(仅自己用)
1,复制文件
到自己一个临时目录,我在openwrt下建立一个yake_fix文件夹,用于临时存放各种自己修改后的文件.
2,修改文件
修改是修改拷贝后的文件,也就是拷贝到yake_fix目录的uhttpd.config
这个编辑看自己需求.
我做了3个修改
- 关掉http跳转https
- 去掉默认的IPV6访问(仅我个人需要)
- 新添加一个ipv6专用站点(仅我个人需要)
生成patch文件
不需要自己处理,用指令生成
diff 如果没有安装自己安装一个.
将在openwrt的主目录生成一个uhttpd-disable-https-redirect.patch
patch文件内容
第二行我修改过. 将文件名直接是源文件名.
打patch
-p后面的0是补丁编号.
然后编译openwrt会自动应用修改的后的文件.
补丁还原
patch -R 文件 < 补丁
参考链接
https://blog.csdn.net/qq_39522922/article/details/77648071
https://blog.csdn.net/shenwanjiang111/article/details/52252249
https://github.com/unwireddevices/openwrt/blob/master/uhttpd-disable-https-redirect.patch
https://www.cnblogs.com/xuhongchuan/p/3180013.html