forked from tiann/KernelSU
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
60fcd27
commit 247cfe4
Showing
1 changed file
with
61 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
# KernelSU 项目说明文档 | ||
|
||
## 项目简介 | ||
|
||
KernelSU 是一个用于增强 Linux 内核功能的项目。它通过添加各种钩子和管理功能,提供了对系统权限和安全策略的更细粒度控制。 | ||
|
||
## 文件结构 | ||
|
||
### 1. `ksu_hook.h` | ||
|
||
该头文件定义了多个函数接口,用于处理不同的系统调用和事件。这些接口包括: | ||
|
||
- `ksu_handle_faccessat`:处理文件访问权限检查。 | ||
- `ksu_handle_stat`:处理文件状态获取。 | ||
- `ksu_handle_vfs_read`:处理虚拟文件系统的读取操作。 | ||
- `ksu_handle_execveat`:处理执行文件的系统调用。 | ||
- `ksu_handle_input_handle_event`:处理输入事件。 | ||
|
||
### 2. `allowlist.c` | ||
|
||
该文件实现了一个允许列表机制,用于管理哪些用户 ID (UID) 被允许执行特定操作。主要功能包括: | ||
|
||
- 初始化默认配置文件。 | ||
- 从允许列表中移除特定 UID。 | ||
- 获取和设置应用程序配置文件。 | ||
- 检查 UID 是否应该卸载。 | ||
|
||
### 3. `core_hook.c` | ||
|
||
该文件实现了核心钩子功能,用于拦截和处理各种系统事件。主要功能包括: | ||
|
||
- 检查当前用户是否被允许执行特定操作。 | ||
- 设置用户组信息。 | ||
- 设置用户权限和能力。 | ||
- 处理安全策略。 | ||
|
||
## 使用方法 | ||
|
||
1. **编译和安装**:按照标准的 Linux 内核模块编译和安装方法进行操作。 | ||
2. **配置文件**:根据需要修改配置文件,以适应特定的安全策略和权限管理需求。 | ||
3. **加载模块**:使用 `insmod` 命令加载编译好的内核模块。 | ||
|
||
## 注意事项 | ||
|
||
- 确保在修改和加载内核模块之前,备份当前系统配置。 | ||
- 详细阅读每个文件中的注释,以理解各个函数和宏的具体作用。 | ||
- 测试环境中进行充分测试,确保不会对生产环境造成影响。 | ||
|
||
## 贡献 | ||
|
||
欢迎对 KernelSU 项目进行贡献。请遵循以下步骤: | ||
|
||
1. Fork 本仓库。 | ||
2. 创建一个新的分支 (`git checkout -b feature-branch`)。 | ||
3. 提交你的修改 (`git commit -am 'Add new feature'`)。 | ||
4. 推送到分支 (`git push origin feature-branch`)。 | ||
5. 创建一个 Pull Request。 | ||
|
||
## 联系我们 | ||
|
||
如果有任何问题或建议,请通过 GitHub Issues 与我们联系。 |