From 4ee56e18aa007eb5ae28027febacff92a6cfcde9 Mon Sep 17 00:00:00 2001 From: Wardenjohn Date: Mon, 8 May 2023 16:36:49 +0800 Subject: [PATCH] update README.md with limited --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 5996e59..5512b20 100644 --- a/README.md +++ b/README.md @@ -77,3 +77,12 @@ kpatch list 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request + +限制 +------ +- 注意:使用kpatch-build存在一定的限制,但是其中也有一些规避的方法。详情可以查看[用户指导](doc/patch-author-guide.md) +- 如果你的patch里面是修改了__init函数(由`__init`修饰的函数)的话,这种修改目前kpatch-build也是不支持的。 +- 如果你的补丁针对已经静态分配内存的数据的修改,kpatch-build不是直接支持的。当然,kpatch-build中提供了一种shadow变量的方式来进行弥补,详情可见[用户指导](doc/patch-author-guide.md) +- 那些修改了函数与动态分配数据的交互方式的补丁不一定是安全的。kpatch-build不会去验证这一类补丁的安全性。这个完全取决于patch的制作者是不是对其修改有足够的认识,以及对一个正在运行的系统打上这样的补丁会对系统造成什么潜在的影响。 +- 修改vdso函数是不支持的,因为这些函数运行在用户态下,并且ftrace hook不了它们。 +- 修改那些没有fentry的函数也是不支持的。kpatch-build基于ftrace进行函数跟踪,没有ftrace点将使kpatch无法工作。包括那些为了后续链接的所有链接到`lib.a`的`lib-y`的目标(打个比方:`lib/string.o`) \ No newline at end of file -- Gitee