Skip to content

Commit

Permalink
Update KernelSU v0.6.6
Browse files Browse the repository at this point in the history
  • Loading branch information
meloalfa159 committed Aug 9, 2023
1 parent cced0ad commit 6f125ad
Show file tree
Hide file tree
Showing 70 changed files with 2,749 additions and 485 deletions.
16 changes: 10 additions & 6 deletions KernelSU/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
**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)

**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

Expand All @@ -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

Expand All @@ -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.
16 changes: 9 additions & 7 deletions KernelSU/README_CN.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[English](README.md) | [Español](README_ES.md) | **简体中文** | [繁體中文](README_TW.md) | [日本語](README_JP.md) | [Polski](README_PL.md) | [Portuguese-Brazil](README_PT-BR.md) | [Türkçe](README_TR.md)
[English](README.md) | [Español](README_ES.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

Expand All @@ -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)

Expand All @@ -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 的实现。
2 changes: 1 addition & 1 deletion KernelSU/README_ES.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[ 🇬🇧 English](README.md) | 🇪🇸 **Español** | [🇨🇳 简体中文](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)
[ 🇬🇧 English](README.md) | 🇪🇸 **Español** | [🇨🇳 简体中文](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)

<div style="display: flex; align-items: center;">
<img src="https://kernelsu.org/logo.png" style="width: 96px;" alt="">
Expand Down
19 changes: 12 additions & 7 deletions KernelSU/README_JP.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[English](README.md) | [Español](README_ES.md) | [简体中文](README_CN.md) | [繁體中文](README_TW.md) | **日本語** | [Polski](README_PL.md) | [Portuguese-Brazil](README_PT-BR.md) | [Türkçe](README_TR.md)
[English](README.md) | [Español](README_ES.md) | [简体中文](README_CN.md) | [繁體中文](README_TW.md) | **日本語** | [Polski](README_PL.md) | [Portuguese-Brazil](README_PT-BR.md) | [Türkçe](README_TR.md) | [Русский](README_RU.md)

# KernelSU

Expand All @@ -8,24 +8,28 @@ Android におけるカーネルベースの root ソリューションです。

1. カーネルベースの `su` と権限管理
2. OverlayFS に基づくモジュールシステム
3. [アプリのプロファイル](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/ja_JP/guide/installation.html)
- [インストール方法はこちら](https://kernelsu.org/ja_JP/guide/installation.html)
- [ビルド方法はこちら](https://kernelsu.org/guide/how-to-build.html)
- [公式サイト](https://kernelsu.org)

## ビルド
## 翻訳

[ビルド方法はこちら](https://kernelsu.org/guide/how-to-build.html)
KernelSU をあなたの言語に翻訳するか、既存の翻訳を改善するには、[Weblate](https://hosted.weblate.org/engage/kernelsu/) を使用してください。

### ディスカッション
## ディスカッション

- Telegram: [@KernelSU](https://t.me/KernelSU)

Expand All @@ -37,6 +41,7 @@ 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 の実装

2 changes: 1 addition & 1 deletion KernelSU/README_PL.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[English](README.md) | [Español](README_ES.md) | [简体中文](README_CN.md) | [繁體中文](README_TW.md) | [日本語](README_JP.md) | **Polski** | [Portuguese-Brazil](README_PT-BR.md) | [Türkçe](README_TR.md)
[English](README.md) | [Español](README_ES.md) | [简体中文](README_CN.md) | [繁體中文](README_TW.md) | [日本語](README_JP.md) | **Polski** | [Portuguese-Brazil](README_PT-BR.md) | [Türkçe](README_TR.md) | [Русский](README_RU.md)

# KernelSU

Expand Down
21 changes: 10 additions & 11 deletions KernelSU/README_PT-BR.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[English](README.md) | [Español](README_ES.md) | [简体中文](README_CN.md) | [繁體中文](README_TW.md) | [日本語](README_JP.md) | [Polski](README_PL.md) | **Portuguese-Brazil** | [Türkçe](README_TR.md)
[English](README.md) | [Español](README_ES.md) | [简体中文](README_CN.md) | [繁體中文](README_TW.md) | [日本語](README_JP.md) | [Polski](README_PL.md) | **Portuguese-Brazil** | [Türkçe](README_TR.md) | [Русский](README_RU.md)

# KernelSU

Expand All @@ -10,21 +10,23 @@ Uma solução raiz baseada em Kernel para dispositivos Android.

2. Sistema modular baseado em overlayfs.

3. [App Perfil](https://kernelsu.org/guide/app-profile.html): Tranque o poder raiz em uma gaiola.

## Estado de compatibilidade

O KernelSU suporta oficialmente dispositivos Android GKI 2.0 (com kernel 5.10+), kernels antigos (4.14+) também são compatíveis, mas você mesmo precisa construir o kernel.

O Android baseado em WSA e contêiner também deve funcionar com o KernelSU integrado.
WSA, ChromeOS e Android baseado em contêiner também deve funcionar com o KernelSU integrado.

E os ABIs atualmente suportados são: `arm64-v8a` e `x86_64`

## Uso
- [Instalação](https://kernelsu.org/guide/installation.html)
- [Como construir?](https://kernelsu.org/guide/how-to-build.html)
- [Site Oficial](https://kernelsu.org/)

[Instalação](https://kernelsu.org/guide/installation.html)

## Construir

[Como construir?](https://kernelsu.org/guide/how-to-build.html)
## Tradução
Para traduzir o KernelSU para o seu idioma, ou para melhorar uma tradução existente, use o [Weblate](https://hosted.weblate.org/engage/kernelsu/), por favor.

### Discussão

Expand All @@ -39,9 +41,6 @@ E os ABIs atualmente suportados são: `arm64-v8a` e `x86_64`
## Créditos

- [kernel-assisted-superuser](https://git.zx2c4.com/kernel-assisted-superuser/about/): a ideia do KernelSU.

- [Magisk](https://github.com/topjohnwu/Magisk): a implementação da sepolicy.
- [genuine](https://github.com/brevent/genuine/): validação de assinatura apk v2.

- [Diamorphine](https://github.com/m0nad/Diamorphine): algumas habilidades de rootkit.

- [Magisk](https://github.com/topjohnwu/Magisk): a implementação da sepolicy.
42 changes: 42 additions & 0 deletions KernelSU/README_RU.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
[English](README.md) | [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) | **Русский**

# KernelSU

Решение на основе ядра root для Android-устройств.

## Особенности

1. Управление `su` и root-доступом на основе ядра.
2. Система модулей на основе overlayfs.

## Совместимость

KernelSU официально поддерживает устройства на базе Android GKI 2.0 (с ядром 5.10+), старые ядра (4.14+) также совместимы, но для этого необходимо собрать ядро самостоятельно.

WSA и Android на основе контейнеров также должны работать с интегрированным KernelSU.

В настоящее время поддерживаются следующие ABI: `arm64-v8a` и `x86_64`.

## Использование

[Установка](https://kernelsu.org/ru_RU/guide/installation.html)

## Сборка

[Как собрать?](https://kernelsu.org/ru_RU/guide/how-to-build.html)

## Обсуждение

- Telegram: [@KernelSU](https://t.me/KernelSU)

## Лицензия

- Файлы в директории `kernel` - [GPL-2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
- Все остальные части, кроме директории `kernel` - [GPL-3](https://www.gnu.org/licenses/gpl-3.0.html)

## Благодарности

- [kernel-assisted-superuser](https://git.zx2c4.com/kernel-assisted-superuser/about/): идея KernelSU.
- [genuine](https://github.com/brevent/genuine/): проверка подписи apk v2.
- [Diamorphine](https://github.com/m0nad/Diamorphine): некоторые навыки руткита.
- [Magisk](https://github.com/topjohnwu/Magisk): реализация sepolicy.
13 changes: 8 additions & 5 deletions KernelSU/README_TR.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[English](README.md) | [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**
[English](README.md) | [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_RU.md)

# KernelSU

Expand All @@ -8,6 +8,7 @@ Android cihazlar için kernel tabanlı bir root çözümü.

1. Kernel-tabanlı `su` ve root erişimi yönetimi.
2. Overlayfs'ye dayalı modül sistemi.
3. [Uygulama profili](https://kernelsu.org/guide/app-profile.html): Root gücünü bir kafese kapatın.

## Uyumluluk Durumu

Expand All @@ -19,11 +20,13 @@ Ve desteklenen mevcut ABI'ler : `arm64-v8a` ve `x86_64`

## Kullanım

[Yükleme](https://kernelsu.org/guide/installation.html)
- [Yükleme](https://kernelsu.org/guide/installation.html)
- [Nasıl inşa edilir?](https://kernelsu.org/guide/how-to-build.html)
- [Resmi WEB sitesi](https://kernelsu.org/)

## İnşaa
## Çeviri

[Nasıl inşa edilir?](https://kernelsu.org/guide/how-to-build.html)
KernelSU'yu kendi dilinize çevirmek veya varolan bir çeviriyi geliştirmek istiyorsanız, lütfen [Weblate](https://hosted.weblate.org/engage/kernelsu/)'i kullanın.

### Tartışma

Expand All @@ -37,6 +40,6 @@ Ve desteklenen mevcut ABI'ler : `arm64-v8a` ve `x86_64`
## Krediler

- [kernel-assisted-superuser](https://git.zx2c4.com/kernel-assisted-superuser/about/): KernelSU fikri.
- [Magisk](https://github.com/topjohnwu/Magisk): güçlü root aracı.
- [genuine](https://github.com/brevent/genuine/): apk v2 imza doğrulama.
- [Diamorphine](https://github.com/m0nad/Diamorphine): bazı rootkit becerileri.
- [Magisk](https://github.com/topjohnwu/Magisk): sepolicy uygulaması.
2 changes: 1 addition & 1 deletion KernelSU/README_TW.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[English](README.md) | [Español](README_ES.md) | [简体中文](README_CN.md) | **繁體中文** | [日本語](README_JP.md) | [Polski](README_PL.md) | [Portuguese-Brazil](README_PT-BR.md) | [Türkçe](README_TR.md)
[English](README.md) | [Español](README_ES.md) | [简体中文](README_CN.md) | **繁體中文** | [日本語](README_JP.md) | [Polski](README_PL.md) | [Portuguese-Brazil](README_PT-BR.md) | [Türkçe](README_TR.md) | [Русский](README_RU.md)

# KernelSU

Expand Down
15 changes: 9 additions & 6 deletions KernelSU/kernel/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,18 @@ $(warning "KSU_GIT_VERSION not defined! It is better to make KernelSU a git subm
ccflags-y += -DKSU_VERSION=16
endif

ifndef EXPECTED_SIZE
EXPECTED_SIZE := 0x033b
ifndef KSU_EXPECTED_SIZE
KSU_EXPECTED_SIZE := 0x033b
endif

ifndef EXPECTED_HASH
EXPECTED_HASH := 0xb0b91415
ifndef KSU_EXPECTED_HASH
KSU_EXPECTED_HASH := 0xb0b91415
endif

ccflags-y += -DEXPECTED_SIZE=$(EXPECTED_SIZE)
ccflags-y += -DEXPECTED_HASH=$(EXPECTED_HASH)
$(info -- KernelSU Manager signature size: $(KSU_EXPECTED_SIZE))
$(info -- KernelSU Manager signature hash: $(KSU_EXPECTED_HASH))

ccflags-y += -DEXPECTED_SIZE=$(KSU_EXPECTED_SIZE)
ccflags-y += -DEXPECTED_HASH=$(KSU_EXPECTED_HASH)
ccflags-y += -Wno-implicit-function-declaration -Wno-strict-prototypes -Wno-int-conversion -Wno-gcc-compat
ccflags-y += -Wno-declaration-after-statement
4 changes: 3 additions & 1 deletion KernelSU/kernel/core_hook.c
Original file line number Diff line number Diff line change
Expand Up @@ -232,8 +232,10 @@ int ksu_handle_prctl(int option, unsigned long arg2, unsigned long arg3,
// someone wants to be root manager, just check it!
// arg3 should be `/data/user/<userId>/<manager_package_name>`
char param[128];
if (copy_from_user(param, arg3, sizeof(param))) {
if (ksu_strncpy_from_user_nofault(param, arg3, sizeof(param)) == -EFAULT) {
#ifdef CONFIG_KSU_DEBUG
pr_err("become_manager: copy param err\n");
#endif
return 0;
}

Expand Down
45 changes: 42 additions & 3 deletions KernelSU/kernel/kernel_compat.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include "linux/nsproxy.h"
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)
#include "linux/sched/task.h"
#include "linux/uaccess.h"
#else
#include "linux/sched.h"
#endif
Expand Down Expand Up @@ -77,12 +78,10 @@ void ksu_android_ns_fs_check()
struct file *ksu_filp_open_compat(const char *filename, int flags, umode_t mode)
{
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
static bool keyring_installed = false;
if (init_session_keyring != NULL && !keyring_installed &&
if (init_session_keyring != NULL && !current_cred()->session_keyring &&
(current->flags & PF_WQ_WORKER)) {
pr_info("installing init session keyring for older kernel\n");
install_session_keyring(init_session_keyring);
keyring_installed = true;
}
#endif
// switch mnt_ns even if current is not wq_worker, to ensure what we open is the correct file in android mnt_ns, rather than user created mnt_ns
Expand Down Expand Up @@ -133,3 +132,43 @@ ssize_t ksu_kernel_write_compat(struct file *p, const void *buf, size_t count,
return result;
#endif
}

#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)
long ksu_strncpy_from_user_nofault(char *dst, const void __user *unsafe_addr,
long count)
{
return strncpy_from_user_nofault(dst, unsafe_addr, count);
}
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0)
long ksu_strncpy_from_user_nofault(char *dst, const void __user *unsafe_addr,
long count)
{
return strncpy_from_unsafe_user(dst, unsafe_addr, count);
}
#else
// Copied from: https://elixir.bootlin.com/linux/v4.9.337/source/mm/maccess.c#L201
long ksu_strncpy_from_user_nofault(char *dst, const void __user *unsafe_addr,
long count)
{
mm_segment_t old_fs = get_fs();
long ret;

if (unlikely(count <= 0))
return 0;

set_fs(USER_DS);
pagefault_disable();
ret = strncpy_from_user(dst, unsafe_addr, count);
pagefault_enable();
set_fs(old_fs);

if (ret >= count) {
ret = count;
dst[ret - 1] = '\0';
} else if (ret > 0) {
ret++;
}

return ret;
}
#endif
Loading

0 comments on commit 6f125ad

Please sign in to comment.