Docs update (#1143)

This commit is contained in:
weishu
2023-11-14 13:56:21 +08:00
committed by GitHub
parent 9223558197
commit 0617c4440b
14 changed files with 68 additions and 67 deletions

View File

@@ -36,7 +36,6 @@ export default defineConfig({
function nav() { function nav() {
return [ return [
{ text: 'Guide', link: '/guide/what-is-kernelsu' }, { text: 'Guide', link: '/guide/what-is-kernelsu' },
{ text: 'GitHub', link: 'https://github.com/tiann/KernelSU' }
] ]
} }

View File

@@ -36,7 +36,6 @@ export default defineConfig({
function nav() { function nav() {
return [ return [
{ text: 'Petunjuk', link: '/id_ID/guide/what-is-kernelsu' }, { text: 'Petunjuk', link: '/id_ID/guide/what-is-kernelsu' },
{ text: 'GitHub', link: 'https://github.com/tiann/KernelSU' }
] ]
} }

View File

@@ -36,7 +36,6 @@ export default defineConfig({
function nav() { function nav() {
return [ return [
{ text: 'ガイド', link: '/ja_JP/guide/what-is-kernelsu' }, { text: 'ガイド', link: '/ja_JP/guide/what-is-kernelsu' },
{ text: 'GitHub', link: 'https://github.com/tiann/KernelSU' }
] ]
} }

View File

@@ -36,7 +36,6 @@ export default defineConfig({
function nav() { function nav() {
return [ return [
{ text: 'Guia', link: '/pt_BR/guide/what-is-kernelsu' }, { text: 'Guia', link: '/pt_BR/guide/what-is-kernelsu' },
{ text: 'GitHub', link: 'https://github.com/tiann/KernelSU' }
] ]
} }

View File

@@ -36,7 +36,6 @@ export default defineConfig({
function nav() { function nav() {
return [ return [
{ text: 'Руководство', link: '/ru_RU/guide/what-is-kernelsu' }, { text: 'Руководство', link: '/ru_RU/guide/what-is-kernelsu' },
{ text: 'GitHub', link: 'https://github.com/tiann/KernelSU' }
] ]
} }

View File

@@ -36,7 +36,6 @@ export default defineConfig({
function nav() { function nav() {
return [ return [
{ text: 'Hướng Dẫn', link: '/vi_VN/guide/what-is-kernelsu' }, { text: 'Hướng Dẫn', link: '/vi_VN/guide/what-is-kernelsu' },
{ text: 'GitHub', link: 'https://github.com/tiann/KernelSU' }
] ]
} }

View File

@@ -36,7 +36,6 @@ export default defineConfig({
function nav() { function nav() {
return [ return [
{ text: '指南', link: '/zh_CN/guide/what-is-kernelsu' }, { text: '指南', link: '/zh_CN/guide/what-is-kernelsu' },
{ text: 'GitHub', link: 'https://github.com/tiann/KernelSU' }
] ]
} }

View File

@@ -36,7 +36,6 @@ export default defineConfig({
function nav() { function nav() {
return [ return [
{ text: '指南', link: '/zh_TW/guide/what-is-kernelsu' }, { text: '指南', link: '/zh_TW/guide/what-is-kernelsu' },
{ text: 'GitHub', link: 'https://github.com/tiann/KernelSU' }
] ]
} }

View File

@@ -12,11 +12,11 @@ Certainly, yes.
## Does KernelSU support modules? ## Does KernelSU support modules?
Yes, But it is in early version, it may be buggy. Please wait for it to be stable :) Yes, check [Module Page](module.md) please.
## Does KernelSU support Xposed? ## Does KernelSU support Xposed?
Yes, [Dreamland](https://github.com/canyie/Dreamland) and [TaiChi](https://taichi.cool) work now. For LSPosed, you can make it work by [ZygiskNext](https://github.com/Dr-TSNG/ZygiskNext) Yes, you can use LSPosed on [ZygiskNext](https://github.com/Dr-TSNG/ZygiskNext)
## Does KernelSU support Zygisk? ## Does KernelSU support Zygisk?
@@ -49,19 +49,20 @@ It is possible, KernelSU is backported to kernel 4.14 now, for older kernel, you
## How to integrate KernelSU for old kernel? ## How to integrate KernelSU for old kernel?
Please refer [guide](how-to-integrate-for-non-gki) Please refer [Guide](how-to-integrate-for-non-gki)
## Why my Android version is 13, and the kernel shows "android12-5.10"? ## Why my Android version is 13, and the kernel shows "android12-5.10"?
The Kernel version has nothing to do with Android version, if you need to flash kernel, always use the kernel version, Android version is not so important. The Kernel version has nothing to do with Android version, if you need to flash kernel, always use the kernel version, Android version is not so important.
## Is there any --mount-master/global mount namespace in KernelSU?
There isn't now(maybe in the future), But there are many ways to switch to global mount namespace manully, such as:
1. `nsenter -t 1 -m sh` to get a shell in global mount namespace.
2. Add `nsenter --mount=/proc/1/ns/mnt` to the command you want to execute, then the command is executed in global mount namespace. KernelSU is also [using this way](https://github.com/tiann/KernelSU/blob/77056a710073d7a5f7ee38f9e77c9fd0b3256576/manager/app/src/main/java/me/weishu/kernelsu/ui/util/KsuCli.kt#L115)
## I am GKI1.0, can i use this? ## I am GKI1.0, can i use this?
GKI1 is completely different from GKI2, you must compile kernel by yourself. GKI1 is completely different from GKI2, you must compile kernel by yourself.
## How can i make `/system` RW?
We do not recommend you to modify the system partition directly. You should use the [module](module.md) to modify it systemlessly. If you insist on doing this, check [magisk_overlayfs](https://github.com/HuskyDG/magic_overlayfs).
## Can KernelSU modify hosts? How can i use AdAday
Of course. But KernelSU doesn't have builtin hosts support, you can install [systemless-hosts](https://github.com/symbuzzer/systemless-hosts-KernelSU-module) to do it.

View File

@@ -44,22 +44,20 @@ tools/bazel build --config=fast //common:kernel_aarch64_dist
If you can build the kernel successfully, then build KernelSU is so easy, Select any one run in Kernel source root dir: If you can build the kernel successfully, then build KernelSU is so easy, Select any one run in Kernel source root dir:
- Latest tag(stable) ::: code-group
```sh ```sh[Latest tag(stable)]
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash - curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -
``` ```
- main branch(dev) ```sh[ main branch(dev)]
```sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main
``` ```
- Select tag(Such as v0.5.2) ```sh[Select tag(Such as v0.5.2)]
```sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.5.2 curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.5.2
``` ```
:::
And then rebuild the kernel and you will get a kernel image with KernelSU! And then rebuild the kernel and you will get a kernel image with KernelSU!

View File

@@ -46,27 +46,27 @@ If kprobe does not work in your kernel (may be an upstream or kernel bug below 4
First, add KernelSU to your kernel source tree: First, add KernelSU to your kernel source tree:
- Latest tag(stable) ::: code-group
```sh ```sh[Latest tag(stable)]
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash - curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -
``` ```
- main branch(dev) ```sh[ main branch(dev)]
```sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main
``` ```
- Select tag(Such as v0.5.2) ```sh[Select tag(Such as v0.5.2)]
```sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.5.2 curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.5.2
``` ```
:::
Then, add KernelSU calls to the kernel source, here is a patch to refer: Then, add KernelSU calls to the kernel source, here is a patch to refer:
```diff ::: code-group
```diff[exec.c]
diff --git a/fs/exec.c b/fs/exec.c diff --git a/fs/exec.c b/fs/exec.c
index ac59664eaecf..bdd585e1d2cc 100644 index ac59664eaecf..bdd585e1d2cc 100644
--- a/fs/exec.c --- a/fs/exec.c
@@ -92,7 +92,7 @@ index ac59664eaecf..bdd585e1d2cc 100644
return __do_execve_file(fd, filename, argv, envp, flags, NULL); return __do_execve_file(fd, filename, argv, envp, flags, NULL);
} }
``` ```
```diff ```diff[open.c]
diff --git a/fs/open.c b/fs/open.c diff --git a/fs/open.c b/fs/open.c
index 05036d819197..965b84d486b8 100644 index 05036d819197..965b84d486b8 100644
--- a/fs/open.c --- a/fs/open.c
@@ -123,7 +123,7 @@ index 05036d819197..965b84d486b8 100644
if (mode & ~S_IRWXO) /* where's F_OK, X_OK, W_OK, R_OK? */ if (mode & ~S_IRWXO) /* where's F_OK, X_OK, W_OK, R_OK? */
return -EINVAL; return -EINVAL;
``` ```
```diff ```diff[read_write.c]
diff --git a/fs/read_write.c b/fs/read_write.c diff --git a/fs/read_write.c b/fs/read_write.c
index 650fc7e0f3a6..55be193913b6 100644 index 650fc7e0f3a6..55be193913b6 100644
--- a/fs/read_write.c --- a/fs/read_write.c
@@ -146,7 +146,7 @@ index 650fc7e0f3a6..55be193913b6 100644
return -EBADF; return -EBADF;
if (!(file->f_mode & FMODE_CAN_READ)) if (!(file->f_mode & FMODE_CAN_READ))
``` ```
```diff ```diff[stat.c]
diff --git a/fs/stat.c b/fs/stat.c diff --git a/fs/stat.c b/fs/stat.c
index 376543199b5a..82adcef03ecc 100644 index 376543199b5a..82adcef03ecc 100644
--- a/fs/stat.c --- a/fs/stat.c
@@ -170,6 +170,8 @@ index 376543199b5a..82adcef03ecc 100644
return -EINVAL; return -EINVAL;
``` ```
:::
You should find the four functions in kernel source: You should find the four functions in kernel source:
1. do_faccessat, usually in `fs/open.c` 1. do_faccessat, usually in `fs/open.c`
@@ -262,3 +264,7 @@ index 45306f9ef247..815091ebfca4 100755
``` ```
Finally, build your kernel again, KernelSU should work well. Finally, build your kernel again, KernelSU should work well.
:::info Entering safe mode accidiently?
If you use manual integration and do not disable `CONFIG_KPROBES`, then the user may trigger safe mode by pressing the volume down button after booting! Therefore if using manual integration you need to disable `CONFIG_KPROBES`!
:::

View File

@@ -12,11 +12,11 @@
## KernelSU 是否支持模块 ## KernelSU 是否支持模块
支持,但它是早期版本,可能有问题。请等待它稳定 :) 支持。请查阅 [模块](module.md)。
## KernelSU 是否支持 Xposed ## KernelSU 是否支持 Xposed
支持。[Dreamland](https://github.com/canyie/Dreamland) 和 [TaiChi](https://taichi.cool) 可以正常运行。LSPosed 可以在 [ZygiskNext](https://github.com/Dr-TSNG/ZygiskNext) 的支持下正常运行。 支持。LSPosed 可以在 [ZygiskNext](https://github.com/Dr-TSNG/ZygiskNext) 的支持下正常运行。
## KernelSU 支持 Zygisk 吗? ## KernelSU 支持 Zygisk 吗?
@@ -55,13 +55,14 @@ KernelSU 的模块系统与 Magisk 的 magic mount 有冲突,如果 KernelSU
内核版本与 Android 版本无关,如果你需要刷入 KernelSU请永远使用**内核版本**而非 Android 版本,如果你为 "android12-5.10" 的设备刷入 Android 13 的内核,等待你的将是 bootloop. 内核版本与 Android 版本无关,如果你需要刷入 KernelSU请永远使用**内核版本**而非 Android 版本,如果你为 "android12-5.10" 的设备刷入 Android 13 的内核,等待你的将是 bootloop.
## KernelSU 支持 --mount-master/全局挂载命名空间吗?
目前没有(未来可能会支持),但实际上有很多种办法手动进入全局命名空间,无需 su 内置支持,比如:
1. `nsenter -t 1 -m sh` 可以获得一个全局 mount namespace 的 shell.
2. 在你要执行的命令之前添加 `nsenter --mount=/proc/1/ns/mnt` 就可以让此命令在全局 mount namespace 下执行。 KernelSU 本身也使用了 [这种方法](https://github.com/tiann/KernelSU/blob/77056a710073d7a5f7ee38f9e77c9fd0b3256576/manager/app/src/main/java/me/weishu/kernelsu/ui/util/KsuCli.kt#L115)
## 我是 GKI1.0, 能用 KernelSU 吗? ## 我是 GKI1.0, 能用 KernelSU 吗?
GKI1 跟 GKI2 完全是两个东西,所以你需要自行编译内核。 GKI1 跟 GKI2 完全是两个东西,所以你需要自行编译内核。
## 如何把 `/system` 变成挂载为可读写?
我们不建议你直接修改系统分区,你应该使用[模块功能](module.md) 来做修改;如果你执意要这么做,可以看看 [magisk_overlayfs](https://github.com/HuskyDG/magic_overlayfs)
## KernelSU 能修改 hosts 吗,我如何使用 AdAday
当然可以。但这个功能 KernelSU 没有内置,你可以安装这个 [systemless-hosts](https://github.com/symbuzzer/systemless-hosts-KernelSU-module)

View File

@@ -44,22 +44,20 @@ tools/bazel build --config=fast //common:kernel_aarch64_dist
如果您可以成功构建内核,那么构建 KernelSU 就很容易,根据自己的需求在内核源代码根目录中运行以下任一命令: 如果您可以成功构建内核,那么构建 KernelSU 就很容易,根据自己的需求在内核源代码根目录中运行以下任一命令:
- 最新tag(稳定版本) ::: code-group
```sh ```sh[最新tag(稳定版本)]
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash - curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -
``` ```
- main分支(开发版本) ```sh[main分支(开发版本)]
```sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main
``` ```
- 指定tag(比如v0.5.2) ```sh[指定tag(比如v0.5.2)]
```sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.5.2 curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.5.2
``` ```
:::
然后重建内核,您将获得带有 KernelSU 的内核映像! 然后重建内核,您将获得带有 KernelSU 的内核映像!

View File

@@ -17,24 +17,22 @@ KernelSU 使用 kprobe 机制来做内核的相关 hook如果 *kprobe* 可以
首先,把 KernelSU 添加到你的内核源码树,在内核的根目录执行以下命令: 首先,把 KernelSU 添加到你的内核源码树,在内核的根目录执行以下命令:
- 最新tag(稳定版本) ::: code-group
```sh ```sh[最新tag(稳定版本)]
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash - curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -
``` ```
- main分支(开发版本) ```sh[main分支(开发版本)]
```sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main
``` ```
- 指定tag(比如v0.5.2) ```sh[指定tag(比如v0.5.2)]
```sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.5.2 curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.5.2
``` ```
:::
然后,你需要检查你的内核是否开启了 *kprobe* 相关的配置,如果没有开启,需要添加以下配置: 然后,你需要检查你的内核是否开启了 *kprobe* 相关的配置,如果没有开启,需要添加以下配置:
``` ```
@@ -66,7 +64,9 @@ curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh
然后,手动修改内核源码,你可以参考下面这个 patch: 然后,手动修改内核源码,你可以参考下面这个 patch:
```diff ::: code-group
```diff[exec.c]
diff --git a/fs/exec.c b/fs/exec.c diff --git a/fs/exec.c b/fs/exec.c
index ac59664eaecf..bdd585e1d2cc 100644 index ac59664eaecf..bdd585e1d2cc 100644
--- a/fs/exec.c --- a/fs/exec.c
@@ -92,7 +92,7 @@ index ac59664eaecf..bdd585e1d2cc 100644
return __do_execve_file(fd, filename, argv, envp, flags, NULL); return __do_execve_file(fd, filename, argv, envp, flags, NULL);
} }
``` ```
```diff ```diff[open.c]
diff --git a/fs/open.c b/fs/open.c diff --git a/fs/open.c b/fs/open.c
index 05036d819197..965b84d486b8 100644 index 05036d819197..965b84d486b8 100644
--- a/fs/open.c --- a/fs/open.c
@@ -123,7 +123,7 @@ index 05036d819197..965b84d486b8 100644
if (mode & ~S_IRWXO) /* where's F_OK, X_OK, W_OK, R_OK? */ if (mode & ~S_IRWXO) /* where's F_OK, X_OK, W_OK, R_OK? */
return -EINVAL; return -EINVAL;
``` ```
```diff ```diff[read_write.c]
diff --git a/fs/read_write.c b/fs/read_write.c diff --git a/fs/read_write.c b/fs/read_write.c
index 650fc7e0f3a6..55be193913b6 100644 index 650fc7e0f3a6..55be193913b6 100644
--- a/fs/read_write.c --- a/fs/read_write.c
@@ -146,7 +146,7 @@ index 650fc7e0f3a6..55be193913b6 100644
return -EBADF; return -EBADF;
if (!(file->f_mode & FMODE_CAN_READ)) if (!(file->f_mode & FMODE_CAN_READ))
``` ```
```diff ```diff[stat.c]
diff --git a/fs/stat.c b/fs/stat.c diff --git a/fs/stat.c b/fs/stat.c
index 376543199b5a..82adcef03ecc 100644 index 376543199b5a..82adcef03ecc 100644
--- a/fs/stat.c --- a/fs/stat.c
@@ -169,6 +169,7 @@ index 376543199b5a..82adcef03ecc 100644
AT_EMPTY_PATH | KSTAT_QUERY_FLAGS)) != 0) AT_EMPTY_PATH | KSTAT_QUERY_FLAGS)) != 0)
return -EINVAL; return -EINVAL;
``` ```
:::
主要是要改四个地方: 主要是要改四个地方:
@@ -262,3 +263,7 @@ index 45306f9ef247..815091ebfca4 100755
``` ```
改完之后重新编译内核即可。 改完之后重新编译内核即可。
:::info 莫名其妙进入安全模式?
如果你采用手动集成的方式,并且没有禁用`CONFIG_KPROBES`,那么用户在开机之后按音量下,也可能触发安全模式!因此如果使用手动集成,你需要关闭 `CONFIG_KPROBES`
:::