diff --git a/KernelSU-translation-status b/KernelSU-translation-status deleted file mode 100644 index e0cf5fe1..00000000 --- a/KernelSU-translation-status +++ /dev/null @@ -1,19 +0,0 @@ -Portuguese -语言名称 -pt -语言代码 -100.0 -已翻译百分比 -0 -字符串数量 -0 -已翻译字符串的数量 -manager/app/src/main/res/values-pt/strings.xml -翻译文件名 -Manager -部件名称 -manager -部件 URL 标识符 -KernelSU -项目名称 -kernelsu \ No newline at end of file diff --git a/README.md b/README.md index ecf2b042..9b5540ef 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ + **English** | [Español](README_ES.md) | [简体中文](README_CN.md) | [繁體中文](README_TW.md) | [日本語](README_JP.md) | [Polski](README_PL.md) | [Portuguese-Brazil](README_PT-BR.md) | [Türkçe](README_TR.md) | [Русский](README_RU.md) # KernelSU @@ -8,22 +9,25 @@ A Kernel based root solution for Android devices. 1. Kernel-based `su` and root access management. 2. Module system based on overlayfs. +3. [App Profile](https://kernelsu.org/guide/app-profile.html): Lock up the root power in a cage. ## Compatibility State KernelSU officially supports Android GKI 2.0 devices(with kernel 5.10+), old kernels(4.14+) is also compatible, but you need to build kernel yourself. -WSA and containter-based Android should also work with KernelSU integrated. +WSA, ChromeOS and containter-based Android can also work with KernelSU integrated. And the current supported ABIs are : `arm64-v8a` and `x86_64` ## Usage -[Installation](https://kernelsu.org/guide/installation.html) +- [Installation Instruction](https://kernelsu.org/guide/installation.html) +- [How to build?](https://kernelsu.org/guide/how-to-build.html) +- [Official Website](https://kernelsu.org/) -## Build +## Translation -[How to build?](https://kernelsu.org/guide/how-to-build.html) +To translate KernelSU into your language, or to improve an existing translation, use [Weblate](https://hosted.weblate.org/engage/kernelsu/) please. ### Discussion @@ -37,6 +41,6 @@ And the current supported ABIs are : `arm64-v8a` and `x86_64` ## Credits - [kernel-assisted-superuser](https://git.zx2c4.com/kernel-assisted-superuser/about/): the KernelSU idea. +- [Magisk](https://github.com/topjohnwu/Magisk): the powerful root tool. - [genuine](https://github.com/brevent/genuine/): apk v2 signature validation. - [Diamorphine](https://github.com/m0nad/Diamorphine): some rootkit skills. -- [Magisk](https://github.com/topjohnwu/Magisk): the sepolicy implementation. diff --git a/README_CN.md b/README_CN.md index d5687514..15b6acb3 100644 --- a/README_CN.md +++ b/README_CN.md @@ -8,24 +8,26 @@ - 基于内核的 su 和权限管理。 - 基于 overlayfs 的模块系统。 +- [App Profile](https://kernelsu.org/guide/app-profile.html): 把 Root 权限关进笼子里。 ## 兼容状态 KernelSU 官方支持 GKI 2.0 的设备(内核版本5.10以上);旧内核也是兼容的(最低4.14+),不过需要自己编译内核。 -WSA 和运行在容器上的 Android 也可以与 KernelSU 一起工作。 +WSA, ChromeOS 和运行在容器上的 Android 也可以与 KernelSU 一起工作。 目前支持架构 : `arm64-v8a` 和 `x86_64` ## 使用方法 -[安装教程](https://kernelsu.org/zh_CN/guide/installation.html) +- [安装教程](https://kernelsu.org/zh_CN/guide/installation.html) +- [如何构建?](https://kernelsu.org/zh_CN/guide/how-to-build.html) -## 构建 +## 参与翻译 -[如何构建?](https://kernelsu.org/zh_CN/guide/how-to-build.html) +要将 KernelSU 翻译成您的语言,或完善现有的翻译,请使用 [Weblate](https://hosted.weblate.org/engage/kernelsu/)。 -### 讨论 +## 讨论 - Telegram: [@KernelSU](https://t.me/KernelSU) @@ -37,6 +39,6 @@ WSA 和运行在容器上的 Android 也可以与 KernelSU 一起工作。 ## 鸣谢 - [kernel-assisted-superuser](https://git.zx2c4.com/kernel-assisted-superuser/about/):KernelSU 的灵感。 +- [Magisk](https://github.com/topjohnwu/Magisk):强大的 root 工具箱。 - [genuine](https://github.com/brevent/genuine/):apk v2 签名验证。 - [Diamorphine](https://github.com/m0nad/Diamorphine):一些 rootkit 技巧。 -- [Magisk](https://github.com/topjohnwu/Magisk):sepolicy 的实现。 diff --git a/userspace/ksud/src/ksu.rs b/userspace/ksud/src/ksu.rs index 855cc76f..e386f5ba 100644 --- a/userspace/ksud/src/ksu.rs +++ b/userspace/ksud/src/ksu.rs @@ -262,7 +262,7 @@ pub fn root_shell() -> Result<()> { fn add_path_to_env(path: &str) -> Result<()> { let mut paths = env::var_os("PATH").map_or(Vec::new(), |val| env::split_paths(&val).collect::>()); - let new_path = PathBuf::from(path); + let new_path = PathBuf::from(path.trim_end_matches('/')); paths.push(new_path); let new_path_env = env::join_paths(paths)?; env::set_var("PATH", new_path_env);