website: update translation (#1145)
This commit is contained in:
@@ -12,11 +12,11 @@ Certamente, sim.
|
||||
|
||||
## KernelSU suporta módulos?
|
||||
|
||||
Sim, mas está na versão inicial, pode apresentar bugs. Por favor, aguarde até que fique estável.
|
||||
Sim, verifique [Guias de módulo](module.md) por favor.
|
||||
|
||||
## KernelSU suporta Xposed?
|
||||
|
||||
Sim, [Dreamland](https://github.com/canyie/Dreamland) e [TaiChi](https://taichi.cool) funcionam agora. Para o LSPosed, você pode fazê-lo funcionar usando [ZygiskNext](https://github.com/Dr-TSNG/ZygiskNext).
|
||||
Sim, você pode usar LSPosed com [ZygiskNext](https://github.com/Dr-TSNG/ZygiskNext).
|
||||
|
||||
## KernelSU suporta Zygisk?
|
||||
|
||||
@@ -55,13 +55,14 @@ Por favor, consulte a guia [Como integrar o KernelSU para kernels não GKI](how-
|
||||
|
||||
A versão do Kernel não tem nada a ver com a versão do Android, se você precisar fazer o flash do kernel, use sempre a versão do kernel, a versão do Android não é tão importante.
|
||||
|
||||
## Existe algum namespace de montagem --mount-master/global no KernelSU?
|
||||
|
||||
Não existe agora (talvez no futuro), mas há muitas maneiras de mudar manualmente para o namespace de montagem global, como:
|
||||
|
||||
1. `nsenter -t 1 -m sh` para obter um shell no namespace de montagem global.
|
||||
2. Adicione `nsenter --mount=/proc/1/ns/mnt` ao comando que você deseja executar, o comando será executado no namespace de montagem global. O KernelSU também está [usando desta forma](https://github.com/tiann/KernelSU/blob/77056a710073d7a5f7ee38f9e77c9fd0b3256576/manager/app/src/main/java/me/weishu/kernelsu/ui/util/KsuCli.kt#L115).
|
||||
|
||||
## Eu sou GKI1.0, posso usar isso?
|
||||
|
||||
GKI1 é completamente diferente do GKI2, você deve compilar o kernel sozinho.
|
||||
|
||||
## Como posso fazer `/system` RW?
|
||||
|
||||
Não recomendamos que você modifique a partição do sistema diretamente. Você deve usar [Guias de módulo](module.md) para modificá-lo sem sistema. Se você insiste em fazer isso, verifique [magisk_overlayfs](https://github.com/HuskyDG/magic_overlayfs).
|
||||
|
||||
## O KernelSU pode modificar hosts? Como posso usar o AdAday?
|
||||
|
||||
Claro. Mas o KernelSU não tem suporte a hosts integrados, você pode instalar [systemless-hosts](https://github.com/symbuzzer/systemless-hosts-KernelSU-module) para fazer isso.
|
||||
|
||||
@@ -44,22 +44,20 @@ tools/bazel build --config=fast //common:kernel_aarch64_dist
|
||||
|
||||
Se você conseguir construir o kernel com sucesso, então construir o KernelSU é muito fácil. Selecione qualquer um executado no diretório raiz de origem do kernel:
|
||||
|
||||
- Tag mais recente (estável)
|
||||
::: code-group
|
||||
|
||||
```sh
|
||||
```sh[Tag mais recente (estável)]
|
||||
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -
|
||||
```
|
||||
|
||||
- branch principal (dev)
|
||||
|
||||
```sh
|
||||
```sh[Branch principal (dev)]
|
||||
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main
|
||||
```
|
||||
|
||||
- Selecione a tag (Como v0.5.2)
|
||||
|
||||
```sh
|
||||
```sh[Selecionar tag (como v0.5.2)]
|
||||
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.5.2
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
E então reconstrua o kernel e você obterá uma imagem do kernel com KernelSU!
|
||||
|
||||
@@ -46,27 +46,27 @@ Se o kprobe não funcionar no seu kernel (pode ser um bug do upstream ou do kern
|
||||
|
||||
Primeiro, adicione o KernelSU à árvore de origem do kernel:
|
||||
|
||||
- Tag mais recente (estável)
|
||||
::: code-group
|
||||
|
||||
```sh
|
||||
```sh[Tag mais recente (estável)]
|
||||
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -
|
||||
```
|
||||
|
||||
- branch principal (dev)
|
||||
|
||||
```sh
|
||||
```sh[Branch principal (dev)]
|
||||
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main
|
||||
```
|
||||
|
||||
- Selecione a tag (Como v0.5.2)
|
||||
|
||||
```sh
|
||||
```sh[Selecionar tag (como v0.5.2)]
|
||||
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.5.2
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
Em seguida, adicione chamadas KernelSU à fonte do kernel. Aqui está um patch para referência:
|
||||
|
||||
```diff
|
||||
::: code-group
|
||||
|
||||
```diff[exec.c]
|
||||
diff --git a/fs/exec.c b/fs/exec.c
|
||||
index ac59664eaecf..bdd585e1d2cc 100644
|
||||
--- a/fs/exec.c
|
||||
@@ -92,7 +92,7 @@ index ac59664eaecf..bdd585e1d2cc 100644
|
||||
return __do_execve_file(fd, filename, argv, envp, flags, NULL);
|
||||
}
|
||||
```
|
||||
```diff
|
||||
```diff[open.c]
|
||||
diff --git a/fs/open.c b/fs/open.c
|
||||
index 05036d819197..965b84d486b8 100644
|
||||
--- 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? */
|
||||
return -EINVAL;
|
||||
```
|
||||
```diff
|
||||
```diff[read_write.c]
|
||||
diff --git a/fs/read_write.c b/fs/read_write.c
|
||||
index 650fc7e0f3a6..55be193913b6 100644
|
||||
--- a/fs/read_write.c
|
||||
@@ -146,7 +146,7 @@ index 650fc7e0f3a6..55be193913b6 100644
|
||||
return -EBADF;
|
||||
if (!(file->f_mode & FMODE_CAN_READ))
|
||||
```
|
||||
```diff
|
||||
```diff[stat.c]
|
||||
diff --git a/fs/stat.c b/fs/stat.c
|
||||
index 376543199b5a..82adcef03ecc 100644
|
||||
--- a/fs/stat.c
|
||||
@@ -170,6 +170,8 @@ index 376543199b5a..82adcef03ecc 100644
|
||||
return -EINVAL;
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
Você deve encontrar as quatro funções no código-fonte do kernel:
|
||||
|
||||
1. do_faccessat, geralmente em `fs/open.c`
|
||||
@@ -262,3 +264,7 @@ index 45306f9ef247..815091ebfca4 100755
|
||||
```
|
||||
|
||||
Finalmente, construa seu kernel novamente, e então, o KernelSU deve funcionar bem.
|
||||
|
||||
:::info ENTRANDO NO MODO DE SEGURANÇA ACIDENTALMENTE?
|
||||
Se você estiver usando a integração manual e não desabilitar `CONFIG_KPROBES`, o usuário poderá acionar o Modo de Segurança pressionando o botão de diminuir volume após a inicialização! Portanto, se estiver usando a integração manual, você precisa desabilitar `CONFIG_KPROBES`!
|
||||
:::
|
||||
|
||||
Reference in New Issue
Block a user