Kernel-based
KernelSU bekerja dalam mode Linux kernel, dan mempunyai kelebihan diatas aplikasi userspace.
diff --git a/404.html b/404.html index 06a7de002ae9..313d05e558f6 100644 --- a/404.html +++ b/404.html @@ -12,7 +12,7 @@
404
But if you don't change your direction, and if you keep looking, you may end up where you are heading.
Note that the allow app1 * * *
rule is used for demonstration purposes only. In practice, this rule should not be used extensively since it doesn't differ much from permissive mode.
If the configuration of the Root Profile is not set properly, an escalation scenario may occur: the restrictions imposed by the Root Profile can unintentionally fail.
For example, if you grant root permission to an ADB shell user (which is a common case), and then you grant root permission to a regular application but configure its root profile with UID 2000 (which is the UID of the ADB shell user), the application can obtain full root access by executing the su
command twice:
su
execution is subject to the enforcement of the App Profile and will switch to UID 2000
(adb shell) instead of 0
(root).su
execution, since the UID is 2000
, and you have granted root access to the UID 2000
(adb shell) in the configuration, the application will gain full root privileges.Note
This behavior is entirely expected and not a bug. Therefore, we recommend the following:
If you genuinely need to grant root permissions to ADB (e.g., as a developer), it is not advisable to change the UID to 2000
when configuring the Root Profile. Using 1000
(system) would be a better choice.
KernelSU provides a systemless mechanism for modifying system partitions, achieved through overlayfs mounting. However, some apps may be sensitive to such behavior. Thus, we can unload modules mounted on these apps by setting the "umount modules" option.
Additionally, the settings interface of the KernelSU manager provides a switch for "umount modules by default". By default, this switch is enabled, which means that KernelSU or some modules will unload modules for this app unless additional settings are applied. If you do not prefer this setting or if it affects certain apps, you have the following options:
INFO
In devices using kernel version 5.10 and above, the kernel performs the unloading of modules. However, for devices running kernel versions below 5.10, this switch is merely a configuration option, and KernelSU itself does not take any action. Some modules, such as Zygisksu, may use this switch to determine whether module unloading is necessary.
Although there are many similarities between KernelSU modules and Magisk modules, there are inevitably some differences due to their completely different implementation mechanisms. If you want your module to run on both Magisk and KernelSU, you must understand these differences.
/data/adb/modules
Before understanding the differences, you need to know how to differentiate whether your module is running in KernelSU or Magisk. You can use the environment variable KSU
to differentiate it in all places where you can run module scripts (customize.sh
, post-fs-data.sh
, service.sh
). In KernelSU, this environment variable will be set to true
.
Here are some differences:
.replace
method. Instead, you need to create a same-named file with mknod filename c 0 0
to delete the corresponding file./data/adb/ksu/bin/busybox
, while in Magisk it is in /data/adb/magisk/busybox
. Note that this is an internal behavior of KernelSU and may change in the future!.replace
files; however, KernelSU supports the REMOVE
and REPLACE
variable to remove or replace files and folders.boot-completed
stage to run some scripts on boot completed.post-mount
stage to run some scripts after mounting overlayfsFirst, your devices should be able to unlock the bootloader. If it can't, then it is unsupported.
Then install KernelSU manager App to your device and open it, if it shows Unsupported
then your device cannot be supported out of box, but you can build kernel source and integrate KernelSU to make it work or using unofficially-support-devices.
Certainly, yes.
Yes, But it is in early version, it may be buggy. Please wait for it to be stable 😃
Yes, Dreamland and TaiChi work now. For LSPosed, you can make it work by Zygisk on KernelSU
KernelSU has no builtin Zygisk support, but you can use Zygisk on KernelSU instead.
KernelSU's module system is conflict with Magisk's magic mount, if there is any module enabled in KernelSU, then the whole Magisk would not work.
But if you only use the su
of KernelSU, then it will work well with Magisk: KernelSU modify the kernel
and Magisk modify the ramdisk
, they can work together.
We don't think so and it's not our goal. Magisk is good enough for userspace root solution and it will live long. KernelSU's goal is to provide a kernel interface to users, not substituting Magisk.
It is possible. But you should download the kernel source and intergrate KernelSU to the source tree and compile the kernel yourself.
It is device's kernel that affect KernelSU's compatability and it has nothing to do with Android version.The only restriction is that devices launched with Android 12 must be kernel 5.10+(GKI devices). So:
It is possible, KernelSU is backported to kernel 4.14 now, for older kernel, you need to backport it manully and PRs welcome!
Please refer guide
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.
There isn't now(maybe in the future), But there are many ways to switch to global mount namespace manully, such as:
nsenter -t 1 -m sh
to get a shell in global mount namespace.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 wayGKI1 is completely different from GKI2, you must compile kernel by yourself.
When flashing a device, we may encounter situations where the device becomes "bricked". In theory, if you only use fastboot to flash the boot partition or install unsuitable modules that cause the device to fail to boot, then this can be restored by appropriate operations. This document aims to provide some emergency methods to help you recover from a "bricked" device.
In KernelSU, the following situations may cause boot brick when flashing the boot partition:
gz
, but you flashed an lz4
format image, then the phone will not be able to boot.No matter what the situation is, you can recover by flashing the stock boot image. Therefore, at the beginning of the installation tutorial, we strongly recommend that you back up your stock boot before flashing. If you haven't backed up, you can obtain the original factory boot from other users with the same device as you or from the official firmware.
Installing modules can be a more common cause of bricking your device, but we must seriously warn you: Do not install modules from unknown sources! Since modules have root privileges, they can potentially cause irreversible damage to your device!
If you have flashed a module that has been proven to be safe but causes your device to fail to boot, then this situation is easily recoverable in KernelSU without any worries. KernelSU has built-in mechanisms to rescue your device, including the following:
KernelSU's module updates draw inspiration from the Android system's AB update mechanism used in OTA updates. If you install a new module or update an existing one, it will not directly modify the currently used module file. Instead, all modules will be built into another update image. After the system is restarted, it will attempt to start using this update image. If the Android system successfully boots up, the modules will then be truly updated.
Therefore, the simplest and most commonly used method to rescue your device is to force a reboot. If you are unable to start your system after flashing a module, you can press and hold the power button for more than 10 seconds, and the system will automatically reboot; after rebooting, it will roll back to the state before updating the module, and the previously updated modules will be automatically disabled.
If AB updates still cannot solve the problem, you can try using Safe Mode. In Safe Mode, all modules are disabled.
There are two ways to enter Safe Mode:
After entering safe mode, all modules on the module page of the KernelSU Manager are disabled, but you can perform "uninstall" operations to uninstall any modules that may be causing issues.
The built-in safe mode is implemented in the kernel, so there is no possibility of missing key events due to interception. However, for non-GKI kernels, manual integration of the code may be required, and you can refer to the official documentation for guidance.
If the above methods cannot rescue your device, it is highly likely that the module you installed has malicious operations or has damaged your device through other means. In this case, there are only two suggestions:
WARNING
In this page, there are kernels for non-GKI devices supporting KernelSU maintained by other developers.
WARNING
This page is only for you to find the source code corresponding to your device, it does NOT mean that the source code has been reviewed by KernelSU Developers. You should use it at your own risk.
Maintainer | Repository | Support devices |
---|---|---|
diphons | D8G_Kernel_oxygen | Poco F3: alioth | Poco F4: munch | MI10T/PRO: Apollo |
diphons | D8G_Kernel_SM8150 | Poco X3 Pro: Vayu | Bhima |
diphons | D8G_Kernel_SDM845 | Poco F1 | MI8 | MiMix2S |
diphons | D8G_Kernel_SM8350 | Vili |
diphons | D8G_Kernel_Marble | Poco F5 | Redmi Note 12 Turbo | Marble |
th1nhhdk | android_kernel_sony_sm8250-kernelsu | Sony Xperia 1 II | Sony Xperia 5 II |
akash07k | nexus_kernel_xiaomi_sm8250 | Poco F4: munch |
HMTheBoy154 | Darkmatter-kernel | Generic x86_64 devices running Android-x86 |
Asuka-mio | android_kernel_xiaomi_cas | Mi 10 Ultra: cas |
xiaoleGun | Miku_kernel_xiaomi_wayne | wayne |
YamazakuraH | kernel_xiaomi_cepheus | cepheus for pixel experience |
SakuraNotStupid | android_kernel_xiaomi_sdm710 | Xiaomi MI 8 SE(sirius/xmsirius) |
Aquarius223(paper) | android_kernel_xiaomi_msm8998 | MI 6 (sagit) and MIX 2 (chiron) for LineageOS |
SlackerState | android_kernel_xiaomi_sm6150 | Redmi K30 4G (phoenix) |
RooGhz720 | kernel_xiaomi_sm6150 | REDMI NOTE 10 PRO (sweet) |
OnlyTomInSecond | android_kernel_xiaomi_sdm845 | Mi 8 (dipper) for LineageOS |
Rohail33 | RealKing Kernel | Apollo(Redmi K30S Ultra/Mi 10T/Mi 10T Pro),Alioth(Redmi K40/POCO F3/Mi 11X),Munch(Redmi K40S/POCO F4), both MIUI and AOSP. |
lateautumn233 | android_kernel_oneplus_sm8250 | OnePlus 8 Serials |
Sreeshankar K | NeverSettle Kernel | OnePlus Nord (avicii) |
Molyuu | neko_kernel_xiaomi_gauguin | Redmi Note 9 Pro/ Mi 10T Lite/ Mi 10i |
guh0613 | android_kernel_oppo_sm8150 | OPPO Reno Ace (OP4A89) |
LeviMarvin | android_kernel_xiaomi_alioth | Redmi K40 / POCO F3 |
cibimo | kernel_xiaomi_raphael_ksu | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
EndCredits | kernel_xiaomi_sm7250 | Redmi K30 5G ( picasso ) , Redmi K30i 5G ( picasso_48m) |
msnx | android-msm-coral-4.14-android13 | Pixel 4 XL |
SoDebug | kernel_xiaomi_raphael | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
H1mJT | kernel_realme_RMX1901 | Realme X (RMX1901/RMX1901CN) |
SonalSingh18 | android_kernel_xiaomi_sm6250 | Miatoll [curtana, excalibur, gram, joyeuse] |
RooGhz720 | kernel_xiaomi_lavender | Redmi Note 7 (Lavender) |
JunASAKA | kernel_google_msm-4.9_KernelSU | Google Pixel 3a & 3a XL (sargo & bonito) |
RooGhz720 | kernel_asus_X01BD | Asus Zenfone Max Pro M1/M2 |
Evans Mike | kernel_xiaomi_raphael_bool-x | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
easterNday | KSU_Thyme_BuildBot | Xiaomi 10S |
tedomi2705 | kernel_xiaomi_sdm660 | Xiaomi Redmi Note 6 Pro (tulip) |
RyuujiX | android_kernel_asus_sdm660-4.19 | Asus Zenfone Max Pro M1 (X00TD)/ M2 (X01BD) (Linux 4.19) |
liqidecg | android_kernel_xiaomi_sdm710 | Mi 8 SE (sirius) (Linux 4.9) |
Abdelhay-Ali | android_kernel_huawei_hi6250 | Huawei P20 lite (hi6250) (Linux 4.9) |
reocat | android_kernel_nokia_sdm660_ksu | Nokia 6.1 (2018) |
Tuan Anh | kernel_nokia_msm8998 | Nokia 8 (Repartitioned)/8 Sirocco (NLA/A1N) |
bggRGjQaUbCoE | android_kernel_samsung_sm8250 | Samsung Galaxy S20+ 5G (y2q) |
SOVIET-ANDROID | kernel_xiaomi_raphael | XK20 Pro Raphael DSP & A only SAR support |
Coconutat | android_kernel_huawei_vtr_emui9_KernelSU | Huawei P10,P10 Plus,Mate9,Mate9 Pro(Kirin960 Series),Stable For GSI |
dabao1955 | android_kernel_OPPO_PEQM00 | MediaTek devices in the OPPO Reno series on ColorOS13.x |
Aflaungos | android_kernel_motorola_msm8998 | Moto G6 Plus (evert) |
TheNoFace | kernel_oneplus_msm8998 | OnePlus 5/5T (cheeseburger/dumpling) |
Nipin NA (Joker-V2) | Xcalibur kernel (violet) | Xiaomi Redmi Note 7 Pro (violet) |
Sr-Han | kernel_xiaomi_mojito | Redmi Note 10 (Sunny/Mojito) |
dabao1955 | android_kernel_OPPO_OP4ED5 | OPPO Reno6 on ColorOS11.x/ColorOS12.x,kernel version4.14.186+ |
rushiranpise | android_kernel_samsung_exynos9610_mint | Kernel 4.14.194 exynos9610 Non-GKI Device, Added KernelSu using manual method |
CN-Scars | pixel_experience_kernel_xiaomi_sm8250_kernelSU | Pixel Experience Kernel 4.19.282 for Xiaomi Redmi K40S / Xiaomi Poco F4 (munch) |
exer | Miyo Toku | Sony Tama (akari, apollo, aurora, akatsuki) (Linux 4.9) |
likkai | Quicksilver Kernel | Xiaomi 11 Lite 5G NE (lisa) |
awakened1712 | android_kernel_samsung_exynos9820 | Samsung S10/N10 |
awakened1712 | android_kernel_oneplus_sm8350 | Oneplus 9/9Pro |
siimsek | Lightning Kernel | Xiaomi Redmi Note 8/8T (ginkgo/willow) |
GiovanYCringe | kernel_a50 | Galaxy A50 (A505f,fn,g,gn,gt) |
Asriadi Rahim | android_kernel_google_wahoo | Google Pixel 2/2XL |
Flame | android_kernel_xiaomi_sm8250 | POCO F3/Redmi K40/Mi 11X (alioth) |
DawfukFR | kernel_oneplus_sm8250 (Stellaris-Kernel) | Oneplus 8 (Instantnoodle), Oneplus 8T (Kebab), Oneplus 8 Pro (Instantnoodlep), Oneplus 9R (lemonades) [msm-4.19] |
Tejas Singh | kernel_xiaomi_ginkgo (Cuh Kernel) | Xiaomi Redmi Note 8/8T (ginkgo/willow) |
Coconutat | android_kernel_xiaomi_ruby_exp | Redmi Note 12 Pro / Pro+ For MIUI 14 |
Coconutat | android_kernel_xiaomi_sdm845_exp | Xiaomi Mi 8 Pro(UD)[equuleus]/Explorer Edition[ursa] |
Abdul Wahid Khan | kernel_xiaomi_begonia | Redmi Note 8 Pro (Begonia/Begoniain) |
Abdul Wahid Khan | kernel_xiaomi_marble | Xiaomi Poco F5 / Redmi Note 12 Turbo (Marble) |
zfdx123 | kernel_xiaomi_alioth | Redmi K40 (alioth) |
wxt1221 | android_kernel_oneplus_sdm845 | Oneplus 6 (enchilada) | Oneplus 6T (fajita) with no Retrofit Dynamic Partitions |
zharzinhoo | Kernel-Oriente-Guamp | Moto g9 play |
hc841 | NovaCore_kernel | Moto g9 play |
zlm324 | android_kernel_xiaomi_msm8998_ksu | a lineage kernel forked from LineageOS official repository, version 4.4.302, added ksu. |
zlm324 | android_kernel_xiaomi_msm8953_ksu | Xiaomi 5X (tiffany) |
Vincent4440 | android_kernel_xiaomi_sm8250 | Poco F4: munch |
zharzinhoo | android_kernel_motorola_cebu | Moto g9 power |
tiandoufayale | android_kernel_samsung_sm8250 | Samsung Tab S7 WIFI(T870) |
starmoe | android_kernel_oneplus_msm8998 | Oneplus 5/5T, kernel version 4.4.302 |
KernelSU is a root solution for Android GKI devices, it works in kernel mode and grant root permission to userspace application directly in kernel space.
The main feature of KernelSU is it is Kernel-based. KernelSU works in kernel mode, so it can provide kernel interface we never had before. For example, we can add hardware breakpoint to any process in kernel mode; We can access physical memory of any process without anybody being aware of; We can intercept any syscall in kernel space; etc.
And also, KernelSU provides a module system via overlayfs, which allows you to load your custom plugin into system. It also provides a mechanism to modify files in /system
partition.
Please refer: Installation
Meskipun ada banyak kesamaan antara modul KernelSU dan modul Magisk, pasti ada beberapa perbedaan karena mekanisme implementasinya yang sangat berbeda. Jika Anda ingin modul Anda berjalan di Magisk dan KernelSU, Anda harus memahami perbedaan ini.
/data/adb/modules
Sebelum memahami perbedaannya, Anda perlu mengetahui cara membedakan apakah modul Anda berjalan di KernelSU atau Magisk. Anda dapat menggunakan variabel lingkungan KSU
untuk membedakannya di semua tempat di mana Anda dapat menjalankan skrip modul (customize.sh
, post-fs-data.sh
, service.sh
). Di KernelSU, variabel lingkungan ini akan disetel ke true
.
Berikut beberapa perbedaannya:
.replace
. Sebagai gantinya, Anda perlu membuat file dengan nama yang sama dengan mknod filename c 0 0
untuk menghapus file terkait./data/adb/ksu/bin/busybox
, sedangkan di Magisk terletak di /data/adb/magisk/busybox
. Perhatikan bahwa ini adalah perilaku internal KernelSU dan dapat berubah di masa mendatang!.replace
; namun, KernelSU mendukung variabel REMOVE
dan REPLACE
untuk menghapus atau mengganti file dan folder.Pertama, perangkatmu harus bisa dibuka bootloadernya. Jika tiddak bisa, berarti tidak memungkinkan untuk bekerja.
Lalu instal aplikasi KernelSU manager di dalam perangkatmu dan buka, jika terlihat Unsupported
berarti perangkatmu tidak didukung dan tidak akan didukung di kemudian hari.
Ya, seharusnya.
Ya, Tetapi masih dalam versi awal, bisa jadi ngebug. Mohon tunggu sampai semuanya stabil 😃
Ya, Dreamland dan TaiChi sekarang bekerja sebagian, Dan kita sedang mencoba untuk membuat Xposed Framework lainnya bekerja.
Sistem modul KernelSU bertentangan dengan magic mount Magisk, jika ada modul yang diaktifkan di KernelSU, maka seluruh Magisk tidak akan bekerja.
Tetapi jika Anda hanya menggunakan su
dari KernelSU, maka KernelSU akan bekerja dengan baik dengan Magisk: KernelSU memodifikasi kernel
dan Magisk memodifikasi ramdisk
, keduanya dapat bekerja bersama.
Kami rasa tidak dan itu bukan tujuan kami. Magisk sudah cukup baik untuk solusi root userspace dan akan bertahan lama. Tujuan KernelSU adalah untuk menyediakan antarmuka kernel kepada pengguna, bukan untuk menggantikan Magisk.
Hal ini dimungkinkan. Tetapi Anda harus mengunduh sumber kernel dan mengintegrasikan KernelSU ke source tree dan mengkompilasi kernel sendiri.
Kernel perangkatlah yang mempengaruhi kompatibilitas KernelSU dan tidak ada hubungannya dengan versi Android, satu-satunya batasan adalah bahwa perangkat yang diluncurkan dengan Android 12 harus menggunakan kernel 5.10+ (perangkat GKI). Jadi:
Ada kemungkinan, KernelSU sudah di-backport ke kernel 4.14 sekarang, untuk kernel yang lebih lama, Anda harus melakukan backport secara manual dan menyambut baik PR darimu!
Silakan merujuk ke guide
Unduh aplikasi manajer KernelSU dari github releases atau github actions, lalu instal aplikasi ke perangkat dan buka aplikasi:
Unsupported
, itu berarti Anda harus mengkompilasi kernel sendiri, KernelSU tidak akan dan tidak pernah menyediakan boot image untuk Anda flash.Not installed
, maka perangkat Anda secara resmi didukung oleh KernelSU.KernelSU menyediakan boot.img umum untuk perangkat GKI, Anda harus mem-flash boot.img ke partisi boot perangkat Anda.
Anda dapat mengunduh boot.img dari [github actions for kernel] (https://github.com/tiann/KernelSU/actions/workflows/build-kernel.yml), perlu diketahui bahwa Anda harus menggunakan versi boot.img yang tepat. Sebagai contoh, jika perangkat Anda menunjukkan bahwa kernelnya adalah 5.10.101
, maka Anda harus mengunduh 5.10.101-xxxx.boot.xxx
.
Dan juga, silakan periksa format boot.img Anda, Anda harus menggunakan format yang tepat, seperti lz4
、gz
.
Hubungkan perangkat Anda dengan adb
lalu jalankan adb reboot bootloader
untuk masuk ke mode fastboot, lalu gunakan perintah ini untuk mem-flash KernelSU:
fastboot flash boot boot.img
Ketika di-flash, Anda harus menyalakan ulang perangkat Anda:
fastboot reboot
Saat mem-flash perangkat, kami mungkin menghadapi situasi di mana perangkat menjadi "bata". Secara teori, jika Anda hanya menggunakan fastboot untuk mem-flash partisi boot atau menginstal modul yang tidak sesuai yang menyebabkan perangkat gagal melakukan booting, ini dapat dipulihkan dengan operasi yang sesuai. Dokumen ini bertujuan untuk memberikan beberapa metode darurat untuk membantu Anda pulih dari perangkat "bricked".
Di KernelSU, situasi berikut dapat menyebabkan bata boot saat mem-flash partisi boot:
gz
, tetapi Anda mem-flash image berformat lz4
, maka ponsel tidak akan dapat melakukan booting.Apa pun situasinya, Anda dapat memulihkannya dengan mem-flash gambar boot stok. Oleh karena itu, di awal tutorial instalasi, kami sangat menyarankan Anda untuk mem-backup stock boot Anda sebelum melakukan flashing. Jika Anda belum mencadangkan, Anda dapat memperoleh boot pabrik asli dari pengguna lain dengan perangkat yang sama dengan Anda atau dari firmware resmi.
Memasang modul dapat menjadi penyebab yang lebih umum dari bricking perangkat Anda, tetapi kami harus memperingatkan Anda dengan serius: Jangan memasang modul dari sumber yang tidak dikenal! Karena modul memiliki hak akses root, mereka berpotensi menyebabkan kerusakan permanen pada perangkat Anda!
Jika Anda telah mem-flash modul yang telah terbukti aman tetapi menyebabkan perangkat Anda gagal booting, maka situasi ini dapat dipulihkan dengan mudah di KernelSU tanpa rasa khawatir. KernelSU memiliki mekanisme bawaan untuk menyelamatkan perangkat Anda, termasuk yang berikut:
Pembaruan modul KernelSU menarik inspirasi dari mekanisme pembaruan AB sistem Android yang digunakan dalam pembaruan OTA. Jika Anda menginstal modul baru atau memperbarui modul yang sudah ada, itu tidak akan langsung mengubah file modul yang sedang digunakan. Sebagai gantinya, semua modul akan dibangun ke gambar pembaruan lainnya. Setelah sistem dimulai ulang, sistem akan mencoba untuk mulai menggunakan gambar pembaruan ini. Jika sistem Android berhasil melakukan booting, modul akan benar-benar diperbarui.
Oleh karena itu, metode paling sederhana dan paling umum digunakan untuk menyelamatkan perangkat Anda adalah dengan memaksa reboot. Jika Anda tidak dapat memulai sistem Anda setelah mem-flash modul, Anda dapat menekan dan menahan tombol daya selama lebih dari 10 detik, dan sistem akan melakukan reboot secara otomatis; setelah mem-boot ulang, itu akan kembali ke keadaan sebelum memperbarui modul, dan modul yang diperbarui sebelumnya akan dinonaktifkan secara otomatis.
Jika pembaruan AB masih tidak dapat menyelesaikan masalah, Anda dapat mencoba menggunakan Safe Mode. Dalam Safe Mode, semua modul dinonaktifkan.
Ada dua cara untuk masuk ke Safe Mode:
Setelah memasuki mode aman, semua modul pada halaman modul KernelSU Manager dinonaktifkan, tetapi Anda dapat melakukan operasi "uninstall" untuk menghapus semua modul yang mungkin menyebabkan masalah.
Mode aman bawaan diimplementasikan di kernel, jadi tidak ada kemungkinan peristiwa penting yang hilang karena intersepsi. Namun, untuk kernel non-GKI, integrasi kode secara manual mungkin diperlukan, dan Anda dapat merujuk ke dokumentasi resmi untuk mendapatkan panduan.
Jika metode di atas tidak dapat menyelamatkan perangkat Anda, kemungkinan besar modul yang Anda instal memiliki operasi jahat atau telah merusak perangkat Anda melalui cara lain. Dalam hal ini, hanya ada dua saran:
:::peringatan
di halaman ini, terdapat kernel untuk perangkat non-GKI yang mendukung KernelSU yang dikelola oleh pengembang lain.
:::
:::peringatan
Halaman ini hanya untuk Anda yang ingin menemukan kode sumber yang sesuai dengan perangkat Anda, itu BUKAN berarti kode sumber telah ditinjau oleh KernelSU Developers. Anda harus menggunakannya dengan risiko Anda sendiri.
:::
Pengelola | Repository | Perangkat yang didukung |
---|---|---|
diphons | D8G_Kernel_oxygen | Poco F3: alioth | Poco F4: munch | MI10T/PRO: Apollo |
diphons | D8G_Kernel_SM8150 | Poco X3 Pro: Vayu | Bhima |
diphons | D8G_Kernel_SDM845 | Poco F1 | MI8 | MiMix2S |
diphons | D8G_Kernel_SM8350 | Vili |
diphons | D8G_Kernel_Marble | Poco F5 | Redmi Note 12 Turbo | Marble |
th1nhhdk | android_kernel_sony_sm8250-kernelsu | Sony Xperia 1 II | Sony Xperia 5 II |
akash07k | nexus_kernel_xiaomi_sm8250 | Poco F4: munch |
HMTheBoy154 | Darkmatter-kernel | Generic x86_64 devices running Android-x86 |
Asuka-mio | android_kernel_xiaomi_cas | Mi 10 Ultra: cas |
xiaoleGun | Miku_kernel_xiaomi_wayne | wayne |
YamazakuraH | kernel_xiaomi_cepheus | cepheus for pixel experience |
SakuraNotStupid | android_kernel_xiaomi_sdm710 | Xiaomi MI 8 SE(sirius/xmsirius) |
Aquarius223(paper) | android_kernel_xiaomi_msm8998 | MI 6 (sagit) and MIX 2 (chiron) for LineageOS |
SlackerState | android_kernel_xiaomi_sm6150 | Redmi K30 4G (phoenix) |
RooGhz720 | kernel_xiaomi_sm6150 | REDMI NOTE 10 PRO (sweet) |
OnlyTomInSecond | android_kernel_xiaomi_sdm845 | Mi 8 (dipper) for LineageOS |
Rohail33 | RealKing Kernel | Apollo(Redmi K30S Ultra/Mi 10T/Mi 10T Pro),Alioth(Redmi K40/POCO F3/Mi 11X),Munch(Redmi K40S/POCO F4), both MIUI and AOSP. |
lateautumn233 | android_kernel_oneplus_sm8250 | OnePlus 8 Serials |
Sreeshankar K | NeverSettle Kernel | OnePlus Nord (avicii) |
Molyuu | neko_kernel_xiaomi_gauguin | Redmi Note 9 Pro/ Mi 10T Lite/ Mi 10i |
guh0613 | android_kernel_oppo_sm8150 | OPPO Reno Ace (OP4A89) |
LeviMarvin | android_kernel_xiaomi_alioth | Redmi K40 / POCO F3 |
cibimo | kernel_xiaomi_raphael_ksu | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
EndCredits | kernel_xiaomi_sm7250 | Redmi K30 5G ( picasso ) , Redmi K30i 5G ( picasso_48m) |
msnx | android-msm-coral-4.14-android13 | Pixel 4 XL |
SoDebug | kernel_xiaomi_raphael | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
H1mJT | kernel_realme_RMX1901 | Realme X (RMX1901/RMX1901CN) |
SonalSingh18 | android_kernel_xiaomi_sm6250 | Miatoll [curtana, excalibur, gram, joyeuse] |
RooGhz720 | kernel_xiaomi_lavender | Redmi Note 7 (Lavender) |
JunASAKA | kernel_google_msm-4.9_KernelSU | Google Pixel 3a & 3a XL (sargo & bonito) |
RooGhz720 | kernel_asus_X01BD | Asus Zenfone Max Pro M1/M2 |
Evans Mike | kernel_xiaomi_raphael_bool-x | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
easterNday | KSU_Thyme_BuildBot | Xiaomi 10S |
tedomi2705 | kernel_xiaomi_sdm660 | Xiaomi Redmi Note 6 Pro (tulip) |
RyuujiX | android_kernel_asus_sdm660-4.19 | Asus Zenfone Max Pro M1 (X00TD)/ M2 (X01BD) (Linux 4.19) |
liqidecg | android_kernel_xiaomi_sdm710 | Mi 8 SE (sirius) (Linux 4.9) |
Abdelhay-Ali | android_kernel_huawei_hi6250 | Huawei P20 lite (hi6250) (Linux 4.9) |
reocat | android_kernel_nokia_sdm660_ksu | Nokia 6.1 (2018) |
Tuan Anh | kernel_nokia_msm8998 | Nokia 8 (Repartitioned)/8 Sirocco (NLA/A1N) |
bggRGjQaUbCoE | android_kernel_samsung_sm8250 | Samsung Galaxy S20+ 5G (y2q) |
SOVIET-ANDROID | kernel_xiaomi_raphael | XK20 Pro Raphael DSP & A only SAR support |
Coconutat | android_kernel_huawei_vtr_emui9_KernelSU | Huawei P10,P10 Plus,Mate9,Mate9 Pro(Kirin960 Series),Stable For GSI |
dabao1955 | android_kernel_OPPO_PEQM00 | MediaTek devices in the OPPO Reno series on ColorOS13.x |
Aflaungos | android_kernel_motorola_msm8998 | Moto G6 Plus (evert) |
TheNoFace | kernel_oneplus_msm8998 | OnePlus 5/5T (cheeseburger/dumpling) |
Nipin NA (Joker-V2) | Xcalibur kernel (violet) | Xiaomi Redmi Note 7 Pro (violet) |
Sr-Han | kernel_xiaomi_mojito | Redmi Note 10 (Sunny/Mojito) |
dabao1955 | android_kernel_OPPO_OP4ED5 | OPPO Reno6 on ColorOS11.x/ColorOS12.x,kernel version4.14.186+ |
rushiranpise | android_kernel_samsung_exynos9610_mint | Kernel 4.14.194 exynos9610 Non-GKI Device, Added KernelSu using manual method |
CN-Scars | pixel_experience_kernel_xiaomi_sm8250_kernelSU | Pixel Experience Kernel 4.19.282 for Xiaomi Redmi K40S / Xiaomi Poco F4 (munch) |
exer | Miyo Toku | Sony Tama (akari, apollo, aurora, akatsuki) (Linux 4.9) |
likkai | Quicksilver Kernel | Xiaomi 11 Lite 5G NE (lisa) |
awakened1712 | android_kernel_samsung_exynos9820 | Samsung S10/N10 |
awakened1712 | android_kernel_oneplus_sm8350 | Oneplus 9/9Pro |
siimsek | Lightning Kernel | Xiaomi Redmi Note 8/8T (ginkgo/willow) |
GiovanYCringe | kernel_a50 | Galaxy A50 (A505f,fn,g,gn,gt) |
Asriadi Rahim | android_kernel_google_wahoo | Google Pixel 2/2XL |
Flame | android_kernel_xiaomi_sm8250 | POCO F3/Redmi K40/Mi 11X (alioth) |
DawfukFR | kernel_oneplus_sm8250 (Stellaris-Kernel) | Oneplus 8 (Instantnoodle), Oneplus 8T (Kebab), Oneplus 8 Pro (Instantnoodlep), Oneplus 9R (lemonades) [msm-4.19] |
Tejas Singh | kernel_xiaomi_ginkgo (Cuh Kernel) | Xiaomi Redmi Note 8/8T (ginkgo/willow) |
Coconutat | android_kernel_xiaomi_ruby_exp | Redmi Note 12 Pro / Pro+ For MIUI 14 |
Coconutat | android_kernel_xiaomi_sdm845_exp | Xiaomi Mi 8 Pro(UD)[equuleus]/Explorer Edition[ursa] |
Abdul Wahid Khan | kernel_xiaomi_begonia | Redmi Note 8 Pro (Begonia/Begoniain) |
Abdul Wahid Khan | kernel_xiaomi_marble | Xiaomi Poco F5 / Redmi Note 12 Turbo (Marble) |
zfdx123 | kernel_xiaomi_alioth | Redmi K40 (alioth) |
wxt1221 | android_kernel_oneplus_sdm845 | Oneplus 6 (enchilada) | Oneplus 6T (fajita) with no Retrofit Dynamic Partitions |
zharzinhoo | Kernel-Oriente-Guamp | Moto g9 play |
hc841 | NovaCore_kernel | Moto g9 play |
zlm324 | android_kernel_xiaomi_msm8998_ksu | a lineage kernel forked from LineageOS official repository, version 4.4.302, added ksu. |
zlm324 | android_kernel_xiaomi_msm8953_ksu | Xiaomi 5X (tiffany) |
Vincent4440 | android_kernel_xiaomi_sm8250 | Poco F4: munch |
zharzinhoo | android_kernel_motorola_cebu | Moto g9 power |
tiandoufayale | android_kernel_samsung_sm8250 | Samsung Tab S7 WIFI(T870) |
starmoe | android_kernel_oneplus_msm8998 | Oneplus 5/5T, kernel version 4.4.302 |
KernelSU adalah solusi root untuk perangkat GKI Android, ia bekerja dalam mode kernel dan memberikan izin root ke aplikasi userspace secara langsung di ruang kernel.
Fitur utama dari KernelSU adalah berbasis kernel. KernelSU bekerja dalam mode kernel, sehingga dapat menyediakan antarmuka kernel yang belum pernah kita miliki sebelumnya. Sebagai contoh, kita dapat menambahkan breakpoint perangkat keras ke proses apa pun dalam mode kernel; Kita dapat mengakses memori fisik dari proses apa pun tanpa diketahui oleh siapa pun; Kita dapat mencegat syscall apa pun di ruang kernel; dll.
Dan juga, KernelSU menyediakan sistem modul melalui overlayfs, yang memungkinkan Anda untuk memuat plugin kustom Anda ke dalam sistem. KernelSU juga menyediakan mekanisme untuk memodifikasi berkas-berkas pada partisi /system
.
Silakan merujuk ke: Installation
KernelSU bekerja dalam mode Linux kernel, dan mempunyai kelebihan diatas aplikasi userspace.
Hanya aplikasi yang diberikan izin root yang bisa mengakses `su`, aplikasi lain tidak bisa mengakses su.
KernelSU mendukung modifikasi /system tanpa-sistem dalam overlayfs, bahkan bisa membuat system dapat ditulis.
KernelSU adalah projek sumber terbuka dibawah lisensi GPL-3.
As the name suggests, KernelSU works under the Linux kernel giving it more control over userspace applications.
Only permitted apps may access or see `su`, all other apps are not aware of this.
KernelSU allows customization of `su`'s uid, gid, groups, capabilities, and SELinux rules, locking up root privileges.
Modules may modify /system systemlessly using overlayfs enabling great power.
KernelSU モジュールと Magisk モジュールには多くの共通点がありますが、実装の仕組みが全く異なるため、必然的にいくつかの相違点が存在します。Magisk と KernelSU の両方でモジュールを動作させたい場合、これらの違いを理解する必要があります。
/data/adb/modules
に配置されます。違いを理解する前に、モジュールが KernelSU で動作しているか Magisk で動作しているかを区別する方法を知っておく必要があります。環境変数 KSU
を使うとモジュールスクリプトを実行できるすべての場所 (customize.sh
, post-fs-data.sh
, service.sh
) で区別できます。KernelSU では、この環境変数に true
が設定されます。
以下は違いです:
.replace
メソッドをサポートしていません。その代わり、mknod filename c 0 0
で同名のファイルを作成し、対応するファイルを削除する必要があります。/data/adb/ksu/bin/busybox
に、Magisk では /data/adb/magisk/busybox
に配置されます。これは KernelSU の内部動作であり、将来的に変更される可能性があることに注意してください!.replace
ファイルをサポートしていません。しかし、KernelSU はファイルやフォルダを削除したり置き換えたりするための REMOVE
と REPLACE
変数をサポートしています。まず、お使いのデバイスがブートローダーのロックを解除できる必要があります。もしできないのであれば、サポート外です。
もし KernelSU アプリで「非対応」と表示されたら、そのデバイスは最初からサポートされていないことになりますが、カーネルソースをビルドして KernelSU を組み込むか、非公式の対応デバイスで動作させることが可能です。
はい。
はい。ただし初期バージョンであるためバグがある可能性があります。安定するのをお待ちください。
はい。Dreamland や TaiChi が動作します。LSPosed については、Zygisk on KernelSU を使うと動作するようにできます。
KernelSU は Zygisk サポートを内蔵していません。Zygisk on KernelSU を使ってください。
KernelSU のモジュールシステムは Magisk のマジックマウントと競合しており、KernelSU で有効になっているモジュールがある場合、Magisk 全体が動作しなくなります。
しかし、KernelSU の su
だけを使うのであれば、Magisk とうまく連携することができます。KernelSU は kernel
を、Magisk は ramdisk
を修正するため、両者は共存できます。
私たちはそうは思っていませんし、それが目標でもありません。Magisk はユーザ空間の root ソリューションとして十分であり、長く使われ続けるでしょう。KernelSU の目標は、ユーザーにカーネルインターフェースを提供することであり、Magisk の代用ではありません。
可能です。ただしカーネルソースをダウンロードし、KernelSU をソースツリーに統合して、自分でカーネルをビルドする必要があります。
KernelSU の互換性に影響を与えるのはデバイスのカーネルであり、Android のバージョンとは無関係です。唯一の制限は、Android 12 で発売されたデバイスはカーネル5.10以上(GKI デバイス)でなければならないことです:
KernelSU は現在カーネル4.14にバックポートされていますが、それ以前のカーネルについては手動でバックポートする必要があります。プルリクエスト歓迎です!
ガイド を参考にしてください。
カーネルのバージョンは Android のバージョンと関係ありません。カーネルを書き込む必要がある場合は、常にカーネルのバージョンを使用してください。Android のバージョンはそれほど重要ではありません。
今はまだありませんが(将来的にはあるかもしれません)、グローバルマウントの名前空間に手動で切り替える方法は、以下のようにたくさんあります:
nsenter -t 1 -m sh
でシェルをグローバル名前空間にします。nsenter --mount=/proc/1/ns/mnt
を実行したいコマンドに追加すればグローバル名前空間で実行されます。 KernelSU は このような使い方 もできます。GKI1 は GKI2 と全く異なるため、カーネルは自分でビルドする必要があります。
デバイスに書き込む際、デバイスが「文鎮化」状態になる場面に遭遇することがあります。理論的には、fastboot で boot パーティションを書き込んだだけだったり、不適切なモジュールをインストールしてデバイスが起動しなくなったりした場合なら、適切な操作で復旧できます。このページでは、「文鎮化」状態になったデバイスを復旧させるための緊急手段を紹介します。
KernelSU では、以下のような状況で boot パーティションを書き込んだときに文鎮化する場合があります:
gz
なのに lz4
形式のイメージを書き込んでしまうと、起動しなくなります。どのような状況であっても、純正の boot イメージを書き込むことで復旧できます。したがって、インストールする前にまずは純正の boot パーティションをバックアップすることを強くおすすめします。バックアップしていない場合は、あなたと同じデバイスを持つ他のユーザー、または公式ファームウェアから純正の boot イメージを入手できます。
モジュールのインストールはデバイスを文鎮化させる一般的な原因です。モジュールを未知のソースからインストールしないでください!モジュールは root 権限を持つため、あなたのデバイスに不可逆的なダメージを与える可能性があります!
安全であることが確認されているモジュールをインストールしてデバイスが起動しなくなった場合、KernelSU では心配することなく簡単に復旧できます。KernelSU には、以下のようなデバイスを救出するための仕組みが組み込まれています:
KernelSU のモジュール更新は、OTA アップデートで使用される Android システムの AB アップデート機構からヒントを得ています。新しいモジュールをインストールしたり、既存のモジュールを更新したりする場合、現在使用されているモジュールファイルを直接変更することはありません。代わりに、すべてのモジュールが別のアップデートイメージに組み込まれます。システムが再起動された後、このアップデートイメージの使用を開始しようとします。Android システムが正常に起動した場合、モジュールは本当に更新されます。
そのため、デバイスを復旧する最もシンプルで一般的な方法は、強制的に再起動することです。モジュールをインストールした後にシステムを起動できなくなった場合、電源ボタンを10秒以上長押しするとシステムが自動的に再起動します。再起動後はモジュールを更新する前の状態にロールバックされ、以前に更新したモジュールは自動的に無効化されます。
AB アップデートでも解決しない場合は、セーフモードを使用してみてください。セーフモードでは、すべてのモジュールが無効化されます。
セーフモードに入るには、2つの方法があります:
セーフモードに入ると、KernelSU Manager のモジュールページにあるすべてのモジュールが無効になります。「アンインストール」操作を行うことで、問題を起こしている可能性のあるモジュールをアンインストールできます。
内蔵のセーフモードはカーネルに実装されているため、キーイベントを見逃す可能性はありません。ただし、GKI 以外のカーネルでは手動によるコードの統合が必要な場合があるため、公式ドキュメントを参考にしてください。
上記の方法でデバイスを救出できない場合、インストールしたモジュールが悪意のある操作をしているか、他の手段でデバイスを損傷している可能性が高いです。この場合、2つの方法しかありません:
警告
このページでは他の開発者が管理している、KernelSU をサポートする GKI 以外のデバイス用のカーネルを紹介しています。
警告
このページはあなたのデバイスに対応するソースコードを見つけるためのものであり、そのソースコードが KernelSU 開発者 によってレビューされたことを意味するものではありません。ご自身の責任においてご利用ください。
メンテナー | リポジトリ | 対応デバイス |
---|---|---|
diphons | D8G_Kernel_oxygen | Poco F3: alioth | Poco F4: munch | MI10T/PRO: Apollo |
diphons | D8G_Kernel_SM8150 | Poco X3 Pro: Vayu | Bhima |
diphons | D8G_Kernel_SDM845 | Poco F1 | MI8 | MiMix2S |
diphons | D8G_Kernel_SM8350 | Vili |
diphons | D8G_Kernel_Marble | Poco F5 | Redmi Note 12 Turbo | Marble |
th1nhhdk | android_kernel_sony_sm8250-kernelsu | Sony Xperia 1 II | Sony Xperia 5 II |
akash07k | nexus_kernel_xiaomi_sm8250 | Poco F4: munch |
HMTheBoy154 | Darkmatter-kernel | Generic x86_64 devices running Android-x86 |
Asuka-mio | android_kernel_xiaomi_cas | Mi 10 Ultra: cas |
xiaoleGun | Miku_kernel_xiaomi_wayne | wayne |
YamazakuraH | kernel_xiaomi_cepheus | cepheus for pixel experience |
SakuraNotStupid | android_kernel_xiaomi_sdm710 | Xiaomi MI 8 SE(sirius/xmsirius) |
Aquarius223(paper) | android_kernel_xiaomi_msm8998 | MI 6 (sagit) and MIX 2 (chiron) for LineageOS |
SlackerState | android_kernel_xiaomi_sm6150 | Redmi K30 4G (phoenix) |
RooGhz720 | kernel_xiaomi_sm6150 | REDMI NOTE 10 PRO (sweet) |
OnlyTomInSecond | android_kernel_xiaomi_sdm845 | Mi 8 (dipper) for LineageOS |
Rohail33 | RealKing Kernel | Apollo(Redmi K30S Ultra/Mi 10T/Mi 10T Pro),Alioth(Redmi K40/POCO F3/Mi 11X),Munch(Redmi K40S/POCO F4), both MIUI and AOSP. |
lateautumn233 | android_kernel_oneplus_sm8250 | OnePlus 8 Serials |
Sreeshankar K | NeverSettle Kernel | OnePlus Nord (avicii) |
Molyuu | neko_kernel_xiaomi_gauguin | Redmi Note 9 Pro/ Mi 10T Lite/ Mi 10i |
guh0613 | android_kernel_oppo_sm8150 | OPPO Reno Ace (OP4A89) |
LeviMarvin | android_kernel_xiaomi_alioth | Redmi K40 / POCO F3 |
cibimo | kernel_xiaomi_raphael_ksu | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
EndCredits | kernel_xiaomi_sm7250 | Redmi K30 5G ( picasso ) , Redmi K30i 5G ( picasso_48m) |
msnx | android-msm-coral-4.14-android13 | Pixel 4 XL |
SoDebug | kernel_xiaomi_raphael | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
H1mJT | kernel_realme_RMX1901 | Realme X (RMX1901/RMX1901CN) |
SonalSingh18 | android_kernel_xiaomi_sm6250 | Miatoll [curtana, excalibur, gram, joyeuse] |
RooGhz720 | kernel_xiaomi_lavender | Redmi Note 7 (Lavender) |
JunASAKA | kernel_google_msm-4.9_KernelSU | Google Pixel 3a & 3a XL (sargo & bonito) |
RooGhz720 | kernel_asus_X01BD | Asus Zenfone Max Pro M1/M2 |
Evans Mike | kernel_xiaomi_raphael_bool-x | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
easterNday | KSU_Thyme_BuildBot | Xiaomi 10S |
tedomi2705 | kernel_xiaomi_sdm660 | Xiaomi Redmi Note 6 Pro (tulip) |
RyuujiX | android_kernel_asus_sdm660-4.19 | Asus Zenfone Max Pro M1 (X00TD)/ M2 (X01BD) (Linux 4.19) |
liqidecg | android_kernel_xiaomi_sdm710 | Mi 8 SE (sirius) (Linux 4.9) |
Abdelhay-Ali | android_kernel_huawei_hi6250 | Huawei P20 lite (hi6250) (Linux 4.9) |
reocat | android_kernel_nokia_sdm660_ksu | Nokia 6.1 (2018) |
Tuan Anh | kernel_nokia_msm8998 | Nokia 8 (Repartitioned)/8 Sirocco (NLA/A1N) |
bggRGjQaUbCoE | android_kernel_samsung_sm8250 | Samsung Galaxy S20+ 5G (y2q) |
SOVIET-ANDROID | kernel_xiaomi_raphael | XK20 Pro Raphael DSP & A only SAR support |
Coconutat | android_kernel_huawei_vtr_emui9_KernelSU | Huawei P10,P10 Plus,Mate9,Mate9 Pro(Kirin960 Series),Stable For GSI |
dabao1955 | android_kernel_OPPO_PEQM00 | MediaTek devices in the OPPO Reno series on ColorOS13.x |
Aflaungos | android_kernel_motorola_msm8998 | Moto G6 Plus (evert) |
TheNoFace | kernel_oneplus_msm8998 | OnePlus 5/5T (cheeseburger/dumpling) |
Nipin NA (Joker-V2) | Xcalibur kernel (violet) | Xiaomi Redmi Note 7 Pro (violet) |
Sr-Han | kernel_xiaomi_mojito | Redmi Note 10 (Sunny/Mojito) |
dabao1955 | android_kernel_OPPO_OP4ED5 | OPPO Reno6 on ColorOS11.x/ColorOS12.x,kernel version4.14.186+ |
rushiranpise | android_kernel_samsung_exynos9610_mint | Kernel 4.14.194 exynos9610 Non-GKI Device, Added KernelSu using manual method |
CN-Scars | pixel_experience_kernel_xiaomi_sm8250_kernelSU | Pixel Experience Kernel 4.19.282 for Xiaomi Redmi K40S / Xiaomi Poco F4 (munch) |
exer | Miyo Toku | Sony Tama (akari, apollo, aurora, akatsuki) (Linux 4.9) |
likkai | Quicksilver Kernel | Xiaomi 11 Lite 5G NE (lisa) |
awakened1712 | android_kernel_samsung_exynos9820 | Samsung S10/N10 |
awakened1712 | android_kernel_oneplus_sm8350 | Oneplus 9/9Pro |
siimsek | Lightning Kernel | Xiaomi Redmi Note 8/8T (ginkgo/willow) |
GiovanYCringe | kernel_a50 | Galaxy A50 (A505f,fn,g,gn,gt) |
Asriadi Rahim | android_kernel_google_wahoo | Google Pixel 2/2XL |
Flame | android_kernel_xiaomi_sm8250 | POCO F3/Redmi K40/Mi 11X (alioth) |
DawfukFR | kernel_oneplus_sm8250 (Stellaris-Kernel) | Oneplus 8 (Instantnoodle), Oneplus 8T (Kebab), Oneplus 8 Pro (Instantnoodlep), Oneplus 9R (lemonades) [msm-4.19] |
Tejas Singh | kernel_xiaomi_ginkgo (Cuh Kernel) | Xiaomi Redmi Note 8/8T (ginkgo/willow) |
Coconutat | android_kernel_xiaomi_ruby_exp | Redmi Note 12 Pro / Pro+ For MIUI 14 |
Coconutat | android_kernel_xiaomi_sdm845_exp | Xiaomi Mi 8 Pro(UD)[equuleus]/Explorer Edition[ursa] |
Abdul Wahid Khan | kernel_xiaomi_begonia | Redmi Note 8 Pro (Begonia/Begoniain) |
Abdul Wahid Khan | kernel_xiaomi_marble | Xiaomi Poco F5 / Redmi Note 12 Turbo (Marble) |
zfdx123 | kernel_xiaomi_alioth | Redmi K40 (alioth) |
wxt1221 | android_kernel_oneplus_sdm845 | Oneplus 6 (enchilada) | Oneplus 6T (fajita) with no Retrofit Dynamic Partitions |
zharzinhoo | Kernel-Oriente-Guamp | Moto g9 play |
hc841 | NovaCore_kernel | Moto g9 play |
zlm324 | android_kernel_xiaomi_msm8998_ksu | a lineage kernel forked from LineageOS official repository, version 4.4.302, added ksu. |
zlm324 | android_kernel_xiaomi_msm8953_ksu | Xiaomi 5X (tiffany) |
Vincent4440 | android_kernel_xiaomi_sm8250 | Poco F4: munch |
zharzinhoo | android_kernel_motorola_cebu | Moto g9 power |
tiandoufayale | android_kernel_samsung_sm8250 | Samsung Tab S7 WIFI(T870) |
starmoe | android_kernel_oneplus_msm8998 | Oneplus 5/5T, kernel version 4.4.302 |
KernelSU は Android GKI デバイスのための root ソリューションです。カーネルモードで動作し、カーネル空間で直接ユーザー空間アプリに root 権限を付与します。
KernelSU の最大の特徴は、カーネルベースであることです。KernelSU はカーネルモードで動作するため、今までにないカーネルインターフェイスを提供できます。例えば、カーネルモードで任意のプロセスにハードウェアブレークポイントを追加できる、誰にも気づかれずに任意のプロセスの物理メモリにアクセスできる、カーネル空間で任意のシステムコールを傍受できる、などです。
また、KernelSU は OverlayFS によるモジュールシステムを提供しており、カスタムプラグインをシステムに読み込めます。/system
パーティションを変更する仕組みも提供しています。
こちらをご覧ください: インストール方法
KernelSU は Linux カーネルモードで動作し、ユーザー空間よりも高度な制御が可能です。
root 権限を許可したアプリのみが su にアクセスでき、他のアプリは su を見つけられません。
KernelSU は OverlayFS により実際のシステムを改変せずに /system を変更できます。書き込み可能にすることさえできます。
KernelSU は GPL-3 でライセンスされたオープンソースプロジェクトです。
Embora existam muitas semelhanças entre os módulos KernelSU e os módulos Magisk, existem inevitavelmente algumas diferenças devido aos seus mecanismos de implementação completamente diferentes. Se você deseja que seu módulo seja executado no Magisk e no KernelSU, você deve entender essas diferenças.
/data/adb/modules
./system
de maneira sem sistema por meio de módulos.Antes de entender as diferenças, você precisa saber diferenciar se o seu módulo está rodando no KernelSU ou Magisk. Você pode usar a variável de ambiente KSU
para diferenciá-la em todos os locais onde você pode executar os scripts do módulo (customize.sh
, post-fs-data.sh
, service.sh
). No KernelSU, esta variável de ambiente será definida como true
.
Aqui estão algumas diferenças:
.replace
. Em vez disso, você precisa criar um arquivo com o mesmo nome mknod filename c 0 0
para excluir o arquivo correspondente./data/adb/ksu/bin/busybox
, enquanto no Magisk está em /data/adb/magisk/busybox
. Observe que este é um comportamento interno do KernelSU e pode mudar no futuro!.replace
, entretanto, o KernelSU suporta as variáveis REMOVE
e REPLACE
para remover ou substituir arquivos e pastas.boot-completed
para executar alguns scripts na inicialização concluída.post-mount
para executar alguns scripts após montar overlayfs.Primeiro, seu dispositivo deve ser capaz de desbloquear o bootloader. Se não, então não há suporte.
Em seguida, instale o app gerenciador KernelSU em seu dispositivo e abra-o, se mostrar Sem suporte
então seu dispositivo não pode ser suportado imediatamente, mas você pode construir a fonte do kernel e integrar o KernelSU para fazê-lo funcionar ou usar dispositivos com suporte não oficial.
Certamente, sim.
Sim, mas está na versão inicial, pode apresentar bugs. Por favor, aguarde até que fique estável.
Sim, Dreamland e TaiChi funcionam agora. Para o LSPosed, você pode fazer funcionar usando ZygiskOnKernelSU.
KernelSU não tem suporte integrado ao Zygisk, mas você pode usar ZygiskOnKernelSU.
O sistema de módulos do KernelSU está em conflito com a montagem mágica do Magisk, se houver algum módulo habilitado no KernelSU, então todo o Magisk não funcionaria.
Mas se você usar apenas o su
do KernelSU, então funcionará bem com o Magisk. KernelSU modifica o kernel
e o Magisk modifica o ramdisk
, eles podem trabalhar juntos.
Achamos que não e esse não é o nosso objetivo. O Magisk é bom o suficiente para solução root do espaço do usuário e terá uma longa vida. O objetivo do KernelSU é fornecer uma interface de kernel aos usuários, não substituindo o Magisk.
É possível. Mas você deve baixar o código-fonte do kernel e integrar o KernelSU à árvore do código-fonte e compilar o kernel você mesmo.
É o kernel do dispositivo que afeta a compatibilidade do KernelSU e não tem nada a ver com a versão do Android. A única restrição é que os dispositivos lançados com Android 12 devem ser kernel 5.10+ (dispositivos GKI). Então:
É possível, o KernelSU é portado para o kernel 4.14 agora, para o kernel mais antigo, você precisa fazer o backport manualmente e PRs são bem-vindos!
Por favor, consulte a guia Como integrar o KernelSU para kernels não GKI
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.
Não existe agora (talvez no futuro), mas há muitas maneiras de mudar manualmente para o namespace de montagem global, como:
nsenter -t 1 -m sh
para obter um shell no namespace de montagem global.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 formaGKI1 é completamente diferente do GKI2, você deve compilar o kernel sozinho.
Ao atualizar um dispositivo, podemos encontrar situações em que o dispositivo fica "bloqueado". Em teoria, se você usar o fastboot apenas para atualizar a partição boot ou instalar módulos inadequados que causam falha na inicialização do dispositivo, isso poderá ser restaurado por meio de operações apropriadas. Este documento tem como objetivo fornecer alguns métodos de emergência para ajudá-lo a se recuperar de um dispositivo "bloqueado".
No KernelSU, as seguintes situações podem causar bloqueio de inicialização ao fleshear a partição boot:
gz
, mas você atualizou uma imagem no formato lz4
, o telefone não será capaz de inicializar.Não importa qual seja a situação, você pode recuperar fleshando a imagem de boot padrão. Portanto, no início do tutorial de instalação, recomendamos fortemente que você faça backup de seu boot padrão antes de fleshar. Se você não fez backup, poderá obter o boot original de fábrica de outros usuários com o mesmo dispositivo que você ou do firmware oficial.
A instalação de módulos pode ser uma causa mais comum de bloqueio do seu dispositivo, mas devemos avisá-lo seriamente: NÃO INSTALE MÓDULOS DE FONTES DESCONHECIDAS! Como os módulos têm privilégios root, eles podem causar danos irreversíveis ao seu dispositivo!
Se você instalou um módulo que foi comprovadamente seguro, mas faz com que seu dispositivo não inicialize, então esta situação é facilmente recuperável no KernelSU sem qualquer preocupação. O KernelSU possui mecanismos integrados para recuperar seu dispositivo, incluindo o seguinte:
As atualizações do módulo KernelSU inspiram-se no mecanismo de atualização AB do sistema Android usado em atualizações OTA. Se você instalar um novo módulo ou atualizar um existente, isso não modificará diretamente o arquivo do módulo usado atualmente. Em vez disso, todos os módulos serão integrados em outra imagem de atualização. Depois que o sistema for reiniciado, ele tentará começar a usar esta imagem de atualização. Se o sistema Android inicializar com sucesso, os módulos serão realmente atualizados.
Portanto, o método mais simples e comumente usado para recuperar seu dispositivo é forçar uma reinicialização. Se você não conseguir iniciar o sistema após instalar um módulo, você pode pressionar e segurar o botão liga/desliga por mais de 10 segundos e o sistema será reinicializado automaticamente. Após a reinicialização, ele retornará ao estado anterior à atualização do módulo e os módulos atualizados anteriormente serão desativados automaticamente.
Se as atualizações AB ainda não resolverem o problema, você pode tentar usar o Modo de Segurança. No Modo de Segurança, todos os módulos estão desabilitados.
Existem duas maneiras de entrar no Modo de Segurança:
Após entrar no Modo de Segurança, todos os módulos na página de módulos do gerenciador KernelSU são desabilitados, mas você pode executar operações de "desinstalação" para desinstalar quaisquer módulos que possam estar causando problemas.
O Modo de Segurança integrado é implementado no kernel, portanto não há possibilidade de perder eventos importantes devido à interceptação. No entanto, para kernels não GKI, a integração manual do código pode ser necessária e você pode consultar a documentação oficial para obter orientação.
Se os métodos acima não conseguirem recuperar seu dispositivo, é altamente provável que o módulo que você instalou tenha operações maliciosas ou tenha danificado seu dispositivo por outros meios. Neste caso, existem apenas duas sugestões:
AVISO
Nesta página, existem kernels para dispositivos não GKI que suportam o KernelSU mantidos por outros desenvolvedores.
AVISO
Esta página é apenas para você encontrar o código-fonte correspondente ao seu dispositivo, NÃO significa que o código-fonte foi revisado pelos desenvolvedores do KernelSU. Você deve usá-lo por sua própria conta e risco.
Mantenedor | Repositório | Dispositivos suportados |
---|---|---|
diphons | D8G_Kernel_oxygen | Poco F3: alioth | Poco F4: munch | MI10T/PRO: Apollo |
diphons | D8G_Kernel_SM8150 | Poco X3 Pro: Vayu | Bhima |
diphons | D8G_Kernel_SDM845 | Poco F1 | MI8 | MiMix2S |
diphons | D8G_Kernel_SM8350 | Vili |
diphons | D8G_Kernel_Marble | Poco F5 | Redmi Note 12 Turbo | Marble |
th1nhhdk | android_kernel_sony_sm8250-kernelsu | Sony Xperia 1 II | Sony Xperia 5 II |
akash07k | nexus_kernel_xiaomi_sm8250 | Poco F4: munch |
HMTheBoy154 | Darkmatter-kernel | Generic x86_64 devices running Android-x86 |
Asuka-mio | android_kernel_xiaomi_cas | Mi 10 Ultra: cas |
xiaoleGun | Miku_kernel_xiaomi_wayne | wayne |
YamazakuraH | kernel_xiaomi_cepheus | cepheus for pixel experience |
SakuraNotStupid | android_kernel_xiaomi_sdm710 | Xiaomi MI 8 SE(sirius/xmsirius) |
Aquarius223(paper) | android_kernel_xiaomi_msm8998 | MI 6 (sagit) and MIX 2 (chiron) for LineageOS |
SlackerState | android_kernel_xiaomi_sm6150 | Redmi K30 4G (phoenix) |
RooGhz720 | kernel_xiaomi_sm6150 | REDMI NOTE 10 PRO (sweet) |
OnlyTomInSecond | android_kernel_xiaomi_sdm845 | Mi 8 (dipper) for LineageOS |
Rohail33 | RealKing Kernel | Apollo(Redmi K30S Ultra/Mi 10T/Mi 10T Pro),Alioth(Redmi K40/POCO F3/Mi 11X),Munch(Redmi K40S/POCO F4), both MIUI and AOSP. |
lateautumn233 | android_kernel_oneplus_sm8250 | OnePlus 8 Serials |
Sreeshankar K | NeverSettle Kernel | OnePlus Nord (avicii) |
Molyuu | neko_kernel_xiaomi_gauguin | Redmi Note 9 Pro/ Mi 10T Lite/ Mi 10i |
guh0613 | android_kernel_oppo_sm8150 | OPPO Reno Ace (OP4A89) |
LeviMarvin | android_kernel_xiaomi_alioth | Redmi K40 / POCO F3 |
cibimo | kernel_xiaomi_raphael_ksu | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
EndCredits | kernel_xiaomi_sm7250 | Redmi K30 5G ( picasso ) , Redmi K30i 5G ( picasso_48m) |
msnx | android-msm-coral-4.14-android13 | Pixel 4 XL |
SoDebug | kernel_xiaomi_raphael | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
H1mJT | kernel_realme_RMX1901 | Realme X (RMX1901/RMX1901CN) |
SonalSingh18 | android_kernel_xiaomi_sm6250 | Miatoll [curtana, excalibur, gram, joyeuse] |
RooGhz720 | kernel_xiaomi_lavender | Redmi Note 7 (Lavender) |
JunASAKA | kernel_google_msm-4.9_KernelSU | Google Pixel 3a & 3a XL (sargo & bonito) |
RooGhz720 | kernel_asus_X01BD | Asus Zenfone Max Pro M1/M2 |
Evans Mike | kernel_xiaomi_raphael_bool-x | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
easterNday | KSU_Thyme_BuildBot | Xiaomi 10S |
tedomi2705 | kernel_xiaomi_sdm660 | Xiaomi Redmi Note 6 Pro (tulip) |
RyuujiX | android_kernel_asus_sdm660-4.19 | Asus Zenfone Max Pro M1 (X00TD)/ M2 (X01BD) (Linux 4.19) |
liqidecg | android_kernel_xiaomi_sdm710 | Mi 8 SE (sirius) (Linux 4.9) |
Abdelhay-Ali | android_kernel_huawei_hi6250 | Huawei P20 lite (hi6250) (Linux 4.9) |
reocat | android_kernel_nokia_sdm660_ksu | Nokia 6.1 (2018) |
Tuan Anh | kernel_nokia_msm8998 | Nokia 8 (Repartitioned)/8 Sirocco (NLA/A1N) |
bggRGjQaUbCoE | android_kernel_samsung_sm8250 | Samsung Galaxy S20+ 5G (y2q) |
SOVIET-ANDROID | kernel_xiaomi_raphael | XK20 Pro Raphael DSP & A only SAR support |
Coconutat | android_kernel_huawei_vtr_emui9_KernelSU | Huawei P10,P10 Plus,Mate9,Mate9 Pro(Kirin960 Series),Stable For GSI |
dabao1955 | android_kernel_OPPO_PEQM00 | MediaTek devices in the OPPO Reno series on ColorOS13.x |
Aflaungos | android_kernel_motorola_msm8998 | Moto G6 Plus (evert) |
TheNoFace | kernel_oneplus_msm8998 | OnePlus 5/5T (cheeseburger/dumpling) |
Nipin NA (Joker-V2) | Xcalibur kernel (violet) | Xiaomi Redmi Note 7 Pro (violet) |
Sr-Han | kernel_xiaomi_mojito | Redmi Note 10 (Sunny/Mojito) |
dabao1955 | android_kernel_OPPO_OP4ED5 | OPPO Reno6 on ColorOS11.x/ColorOS12.x,kernel version4.14.186+ |
rushiranpise | android_kernel_samsung_exynos9610_mint | Kernel 4.14.194 exynos9610 Non-GKI Device, Added KernelSu using manual method |
CN-Scars | pixel_experience_kernel_xiaomi_sm8250_kernelSU | Pixel Experience Kernel 4.19.282 for Xiaomi Redmi K40S / Xiaomi Poco F4 (munch) |
exer | Miyo Toku | Sony Tama (akari, apollo, aurora, akatsuki) (Linux 4.9) |
likkai | Quicksilver Kernel | Xiaomi 11 Lite 5G NE (lisa) |
awakened1712 | android_kernel_samsung_exynos9820 | Samsung S10/N10 |
awakened1712 | android_kernel_oneplus_sm8350 | Oneplus 9/9Pro |
siimsek | Lightning Kernel | Xiaomi Redmi Note 8/8T (ginkgo/willow) |
GiovanYCringe | kernel_a50 | Galaxy A50 (A505f,fn,g,gn,gt) |
Asriadi Rahim | android_kernel_google_wahoo | Google Pixel 2/2XL |
Flame | android_kernel_xiaomi_sm8250 | POCO F3/Redmi K40/Mi 11X (alioth) |
DawfukFR | kernel_oneplus_sm8250 (Stellaris-Kernel) | Oneplus 8 (Instantnoodle), Oneplus 8T (Kebab), Oneplus 8 Pro (Instantnoodlep), Oneplus 9R (lemonades) [msm-4.19] |
Tejas Singh | kernel_xiaomi_ginkgo (Cuh Kernel) | Xiaomi Redmi Note 8/8T (ginkgo/willow) |
Coconutat | android_kernel_xiaomi_ruby_exp | Redmi Note 12 Pro / Pro+ For MIUI 14 |
Coconutat | android_kernel_xiaomi_sdm845_exp | Xiaomi Mi 8 Pro(UD)[equuleus]/Explorer Edition[ursa] |
Abdul Wahid Khan | kernel_xiaomi_begonia | Redmi Note 8 Pro (Begonia/Begoniain) |
Abdul Wahid Khan | kernel_xiaomi_marble | Xiaomi Poco F5 / Redmi Note 12 Turbo (Marble) |
zfdx123 | kernel_xiaomi_alioth | Redmi K40 (alioth) |
wxt1221 | android_kernel_oneplus_sdm845 | Oneplus 6 (enchilada) | Oneplus 6T (fajita) with no Retrofit Dynamic Partitions |
zharzinhoo | Kernel-Oriente-Guamp | Moto g9 play |
hc841 | NovaCore_kernel | Moto g9 play |
zlm324 | android_kernel_xiaomi_msm8998_ksu | a lineage kernel forked from LineageOS official repository, version 4.4.302, added ksu. |
zlm324 | android_kernel_xiaomi_msm8953_ksu | Xiaomi 5X (tiffany) |
Vincent4440 | android_kernel_xiaomi_sm8250 | Poco F4: munch |
zharzinhoo | android_kernel_motorola_cebu | Moto g9 power |
tiandoufayale | android_kernel_samsung_sm8250 | Samsung Tab S7 WIFI(T870) |
starmoe | android_kernel_oneplus_msm8998 | Oneplus 5/5T, kernel version 4.4.302 |
O KernelSU é uma solução root para dispositivos Android GKI, funciona no modo kernel e concede permissão root ao app do espaço do usuário diretamente no espaço do kernel.
A principal característica do KernelSU é que ele é baseado em kernel. O KernelSU funciona no modo kernel, portanto pode fornecer uma interface de kernel que nunca tivemos antes. Por exemplo, podemos adicionar um ponto de interrupção de hardware a qualquer processo no modo kernel; Podemos acessar a memória física de qualquer processo sem que ninguém perceba; Podemos interceptar qualquer syscall no espaço do kernel; etc.
E também, o KernelSU fornece um sistema de módulos via overlayfs, que permite carregar seu plugin personalizado no sistema. Ele também fornece um mecanismo para modificar arquivos na partição /system
.
Por favor, consulte: Instalação
Como o nome sugere, KernelSU funciona no kernel Linux, dando-lhe mais controle sobre os apps do espaço do usuário.
Somente apps permitidos podem acessar ou ver su, todos os outros apps não estão cientes disso.
KernelSU permite a personalização de uid, gid, grupos, capacidades e regras SELinux do su, bloqueando privilégios de root.
Os módulos podem modificar /system sem sistema usando overlayfs permitindo grande potência.
Несмотря на большое количество сходств между модулями KernelSU и модулями Magisk, неизбежно возникают и различия, обусловленные совершенно разными механизмами их реализации. Если вы хотите, чтобы ваш модуль работал как на Magisk, так и на KernelSU, вы должны понимать эти различия.
/data/adb/modules
.Прежде чем разбираться в различиях, необходимо знать, как отличить, в каком режиме работает ваш модуль - KernelSU или Magisk. Для этого можно использовать переменную окружения KSU
во всех местах, где можно запустить скрипты модуля (customize.sh
, post-fs-data.sh
, service.sh
). В KernelSU эта переменная окружения будет установлена в значение true
.
Вот некоторые отличия:
.replace
. Вместо этого необходимо создать одноименный файл с помощью команды mknod filename c 0 0
для удаления соответствующего файла./data/adb/ksu/bin/busybox
, а в Magisk - в каталоге /data/adb/magisk/busybox
. Обратите внимание, что это внутреннее поведение KernelSU и в будущем оно может измениться!.replace
; однако KernelSU поддерживает переменные REMOVE
и REPLACE
для удаления или замены файлов и папок.Во-первых, ваше устройство должно быть способно разблокировать загрузчик. Если не может, значит, устройство не поддерживается.
Затем установите на устройство приложение KernelSU manager App и откройте его, если оно покажет Unsupported
, то ваше устройство не поддерживается из коробки, но вы можете собрать исходный код ядра и интегрировать KernelSU, чтобы заставить его работать, или использовать неофициально-поддерживаемые-устройства.
Безусловно, да.
Да, но это ранняя версия, она может быть глючной. Пожалуйста, подождите, пока она станет стабильной 😃
Да, Dreamland и TaiChi работают. Что касается LSPosed, то его можно заставить работать с помощью Zygisk на KernelSU
KernelSU не имеет встроенной поддержки Zygisk, но вы можете использовать Zygisk на KernelSU.
Система модулей KernelSU конфликтует с магическим монтированием Magisk, если в KernelSU включен какой-либо модуль, то весь Magisk не будет работать.
Но если вы используете только su
из KernelSU, то он будет хорошо работать с Magisk: KernelSU модифицирует kernel
, а Magisk - ramdisk
, они могут работать вместе.
Мы так не считаем, и это не является нашей целью. Magisk достаточно хорош для решения проблемы root в пользовательском пространстве и будет жить долго. Цель KernelSU - предоставить пользователям интерфейс ядра, а не заменить Magisk.
Это возможно. Но для этого необходимо скачать исходный текст ядра, подключить KernelSU к дереву исходных текстов и скомпилировать ядро самостоятельно.
На совместимость KernelSU влияет ядро устройства, и версия Android здесь ни при чем. Единственное ограничение - устройства, запускаемые с Android 12, должны иметь ядро 5.10+ (устройства GKI). Итак:
Это возможно, KernelSU бэкпортирован на ядро 4.14, для более старых ядер, вам нужно сделать бэкпорт вручную, и PR приветствуются!
Пожалуйста, обратитесь к руководству
Версия ядра не имеет никакого отношения к версии Android, если вам нужно прошить ядро, всегда используйте версию ядра, версия Android не так важна.
Сейчас нет (возможно, в будущем), но есть много способов переключиться на глобальное пространство имен монтирования вручную, например:
nsenter -t 1 -m sh
для получения оболочки в глобальном пространстве имен монтирования.nsenter --mount=/proc/1/ns/mnt
к команде, которую вы хотите выполнить, тогда команда будет выполнена в глобальном пространстве имен монтирования. KernelSU также использует этот способGKI1 полностью отличается от GKI2, вы должны скомпилировать ядро самостоятельно.
При прошивке устройства могут возникать ситуации, когда устройство становится "окирпиченным". Теоретически, если использовать fastboot только для прошивки загрузочного раздела или установить неподходящие модули, из-за которых устройство не загружается, то это можно восстановить соответствующими операциями. В данном документе описаны некоторые экстренные методы восстановления работоспособности "окирпиченного" устройства.
В KernelSU при прошивке загрузочного раздела могут возникнуть следующие ситуации:
gz
, а вы прошили образ в формате lz4
, то телефон не сможет загрузиться.Независимо от ситуации, восстановить работоспособность можно путем прошивки стокового загрузочного образа. Поэтому в начале руководства по установке мы настоятельно рекомендуем создать резервную копию стокового загрузочного образа перед прошивкой. Если у вас нет резервной копии, вы можете получить оригинальную заводскую загрузку от других пользователей с таким же устройством, как у вас, или из официальной прошивки.
Установка модулей может быть более распространенной причиной окирпичивания устройства, но мы должны серьезно предупредить вас: Не устанавливайте модули из неизвестных источников! Поскольку модули обладают правами root, они могут нанести непоправимый ущерб вашему устройству!
Если вы прошили модуль, безопасность которого доказана, но он приводит к невозможности загрузки устройства, то такая ситуация легко восстанавливается в KernelSU без каких-либо проблем. KernelSU имеет встроенные механизмы для спасения устройства, в том числе следующие:
Механизм обновления модулей в KernelSU основан на механизме AB-обновления, используемом в OTA-обновлениях системы Android. При установке нового модуля или обновлении существующего он не будет напрямую изменять текущий файл модуля. Вместо этого все модули будут встроены в другой образ обновления. После перезагрузки системы она попытается начать использовать этот образ обновления. Если система Android успешно загрузится, то модули будут действительно обновлены.
Поэтому самым простым и наиболее часто используемым методом спасения устройства является принудительная перезагрузка. Если после прошивки модуля не удается запустить систему, можно нажать и удерживать кнопку питания более 10 секунд, после чего система автоматически перезагрузится; после перезагрузки произойдет откат к состоянию до обновления модуля, а ранее обновленные модули будут автоматически отключены.
Если обновление AB не помогло решить проблему, можно попробовать использовать Безопасный режим. В безопасном режиме все модули отключены.
Войти в безопасный режим можно двумя способами:
После входа в безопасный режим все модули на странице модулей менеджера KernelSU Manager отключаются, но можно выполнить операцию "деинсталляция" для удаления модулей, которые могут вызывать проблемы.
Встроенный безопасный режим реализован в ядре, поэтому вероятность пропуска ключевых событий из-за перехвата исключена. Однако для ядер, отличных от ГКИ, может потребоваться ручная интеграция кода, и за рекомендациями можно обратиться к официальной документации.
Если описанные выше способы не помогли спасти устройство, то высока вероятность того, что установленный модуль имеет вредоносные операции или повредил устройство иным способом. В этом случае есть только два варианта:
WARNING
На этой странице представлены ядра для устройств, не поддерживающих ГКИ и поддерживающих KernelSU, которые поддерживаются другими разработчиками.
WARNING
Эта страница предназначена только для поиска исходного кода, соответствующего вашему устройству, и НЕ означает, что исходный код был проверен разработчиками KernelSU. Вы должны использовать его на свой страх и риск.
Сопровождающий | Репозиторий | Поддерживаемое устройство |
---|---|---|
diphons | D8G_Kernel_oxygen | Poco F3: alioth | Poco F4: munch | MI10T/PRO: Apollo |
diphons | D8G_Kernel_SM8150 | Poco X3 Pro: Vayu | Bhima |
diphons | D8G_Kernel_SDM845 | Poco F1 | MI8 | MiMix2S |
diphons | D8G_Kernel_SM8350 | Vili |
diphons | D8G_Kernel_Marble | Poco F5 | Redmi Note 12 Turbo | Marble |
th1nhhdk | android_kernel_sony_sm8250-kernelsu | Sony Xperia 1 II | Sony Xperia 5 II |
akash07k | nexus_kernel_xiaomi_sm8250 | Poco F4: munch |
HMTheBoy154 | Darkmatter-kernel | Generic x86_64 devices running Android-x86 |
Asuka-mio | android_kernel_xiaomi_cas | Mi 10 Ultra: cas |
xiaoleGun | Miku_kernel_xiaomi_wayne | wayne |
YamazakuraH | kernel_xiaomi_cepheus | cepheus for pixel experience |
SakuraNotStupid | android_kernel_xiaomi_sdm710 | Xiaomi MI 8 SE(sirius/xmsirius) |
Aquarius223(paper) | android_kernel_xiaomi_msm8998 | MI 6 (sagit) and MIX 2 (chiron) for LineageOS |
SlackerState | android_kernel_xiaomi_sm6150 | Redmi K30 4G (phoenix) |
RooGhz720 | kernel_xiaomi_sm6150 | REDMI NOTE 10 PRO (sweet) |
OnlyTomInSecond | android_kernel_xiaomi_sdm845 | Mi 8 (dipper) for LineageOS |
Rohail33 | RealKing Kernel | Apollo(Redmi K30S Ultra/Mi 10T/Mi 10T Pro),Alioth(Redmi K40/POCO F3/Mi 11X),Munch(Redmi K40S/POCO F4), both MIUI and AOSP. |
lateautumn233 | android_kernel_oneplus_sm8250 | OnePlus 8 Serials |
Sreeshankar K | NeverSettle Kernel | OnePlus Nord (avicii) |
Molyuu | neko_kernel_xiaomi_gauguin | Redmi Note 9 Pro/ Mi 10T Lite/ Mi 10i |
guh0613 | android_kernel_oppo_sm8150 | OPPO Reno Ace (OP4A89) |
LeviMarvin | android_kernel_xiaomi_alioth | Redmi K40 / POCO F3 |
cibimo | kernel_xiaomi_raphael_ksu | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
EndCredits | kernel_xiaomi_sm7250 | Redmi K30 5G ( picasso ) , Redmi K30i 5G ( picasso_48m) |
msnx | android-msm-coral-4.14-android13 | Pixel 4 XL |
SoDebug | kernel_xiaomi_raphael | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
H1mJT | kernel_realme_RMX1901 | Realme X (RMX1901/RMX1901CN) |
SonalSingh18 | android_kernel_xiaomi_sm6250 | Miatoll [curtana, excalibur, gram, joyeuse] |
RooGhz720 | kernel_xiaomi_lavender | Redmi Note 7 (Lavender) |
JunASAKA | kernel_google_msm-4.9_KernelSU | Google Pixel 3a & 3a XL (sargo & bonito) |
RooGhz720 | kernel_asus_X01BD | Asus Zenfone Max Pro M1/M2 |
Evans Mike | kernel_xiaomi_raphael_bool-x | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
easterNday | KSU_Thyme_BuildBot | Xiaomi 10S |
tedomi2705 | kernel_xiaomi_sdm660 | Xiaomi Redmi Note 6 Pro (tulip) |
RyuujiX | android_kernel_asus_sdm660-4.19 | Asus Zenfone Max Pro M1 (X00TD)/ M2 (X01BD) (Linux 4.19) |
liqidecg | android_kernel_xiaomi_sdm710 | Mi 8 SE (sirius) (Linux 4.9) |
Abdelhay-Ali | android_kernel_huawei_hi6250 | Huawei P20 lite (hi6250) (Linux 4.9) |
reocat | android_kernel_nokia_sdm660_ksu | Nokia 6.1 (2018) |
Tuan Anh | kernel_nokia_msm8998 | Nokia 8 (Repartitioned)/8 Sirocco (NLA/A1N) |
bggRGjQaUbCoE | android_kernel_samsung_sm8250 | Samsung Galaxy S20+ 5G (y2q) |
SOVIET-ANDROID | kernel_xiaomi_raphael | XK20 Pro Raphael DSP & A only SAR support |
Coconutat | android_kernel_huawei_vtr_emui9_KernelSU | Huawei P10,P10 Plus,Mate9,Mate9 Pro(Kirin960 Series),Stable For GSI |
dabao1955 | android_kernel_OPPO_PEQM00 | MediaTek devices in the OPPO Reno series on ColorOS13.x |
Aflaungos | android_kernel_motorola_msm8998 | Moto G6 Plus (evert) |
TheNoFace | kernel_oneplus_msm8998 | OnePlus 5/5T (cheeseburger/dumpling) |
Nipin NA (Joker-V2) | Xcalibur kernel (violet) | Xiaomi Redmi Note 7 Pro (violet) |
Sr-Han | kernel_xiaomi_mojito | Redmi Note 10 (Sunny/Mojito) |
dabao1955 | android_kernel_OPPO_OP4ED5 | OPPO Reno6 on ColorOS11.x/ColorOS12.x,kernel version4.14.186+ |
rushiranpise | android_kernel_samsung_exynos9610_mint | Kernel 4.14.194 exynos9610 Non-GKI Device, Added KernelSu using manual method |
CN-Scars | pixel_experience_kernel_xiaomi_sm8250_kernelSU | Pixel Experience Kernel 4.19.282 for Xiaomi Redmi K40S / Xiaomi Poco F4 (munch) |
exer | Miyo Toku | Sony Tama (akari, apollo, aurora, akatsuki) (Linux 4.9) |
likkai | Quicksilver Kernel | Xiaomi 11 Lite 5G NE (lisa) |
awakened1712 | android_kernel_samsung_exynos9820 | Samsung S10/N10 |
awakened1712 | android_kernel_oneplus_sm8350 | Oneplus 9/9Pro |
siimsek | Lightning Kernel | Xiaomi Redmi Note 8/8T (ginkgo/willow) |
GiovanYCringe | kernel_a50 | Galaxy A50 (A505f,fn,g,gn,gt) |
Asriadi Rahim | android_kernel_google_wahoo | Google Pixel 2/2XL |
Flame | android_kernel_xiaomi_sm8250 | POCO F3/Redmi K40/Mi 11X (alioth) |
DawfukFR | kernel_oneplus_sm8250 (Stellaris-Kernel) | Oneplus 8 (Instantnoodle), Oneplus 8T (Kebab), Oneplus 8 Pro (Instantnoodlep), Oneplus 9R (lemonades) [msm-4.19] |
Tejas Singh | kernel_xiaomi_ginkgo (Cuh Kernel) | Xiaomi Redmi Note 8/8T (ginkgo/willow) |
Coconutat | android_kernel_xiaomi_ruby_exp | Redmi Note 12 Pro / Pro+ For MIUI 14 |
Coconutat | android_kernel_xiaomi_sdm845_exp | Xiaomi Mi 8 Pro(UD)[equuleus]/Explorer Edition[ursa] |
Abdul Wahid Khan | kernel_xiaomi_begonia | Redmi Note 8 Pro (Begonia/Begoniain) |
Abdul Wahid Khan | kernel_xiaomi_marble | Xiaomi Poco F5 / Redmi Note 12 Turbo (Marble) |
zfdx123 | kernel_xiaomi_alioth | Redmi K40 (alioth) |
wxt1221 | android_kernel_oneplus_sdm845 | Oneplus 6 (enchilada) | Oneplus 6T (fajita) with no Retrofit Dynamic Partitions |
zharzinhoo | Kernel-Oriente-Guamp | Moto g9 play |
hc841 | NovaCore_kernel | Moto g9 play |
zlm324 | android_kernel_xiaomi_msm8998_ksu | a lineage kernel forked from LineageOS official repository, version 4.4.302, added ksu. |
zlm324 | android_kernel_xiaomi_msm8953_ksu | Xiaomi 5X (tiffany) |
Vincent4440 | android_kernel_xiaomi_sm8250 | Poco F4: munch |
zharzinhoo | android_kernel_motorola_cebu | Moto g9 power |
tiandoufayale | android_kernel_samsung_sm8250 | Samsung Tab S7 WIFI(T870) |
starmoe | android_kernel_oneplus_msm8998 | Oneplus 5/5T, kernel version 4.4.302 |
KernelSU - это root-решение для устройств Android GKI, работающее в режиме ядра и предоставляющее root-права пользовательским приложениям непосредственно в пространстве ядра.
Основной особенностью KernelSU является то, что он основан на ядре. KernelSU работает в режиме ядра, поэтому он может предоставить интерфейс ядра, которого раньше не было. Например, мы можем добавить аппаратную точку останова любому процессу в режиме ядра; мы можем получить доступ к физической памяти любого процесса без чьего-либо ведома; мы можем перехватить любой syscall в пространстве ядра; и т.д.
Кроме того, KernelSU предоставляет систему модулей через overlayfs, что позволяет загружать в систему пользовательские плагины. Также предусмотрен механизм модификации файлов в разделе /system
.
Пожалуйста, обратитесь к: Установка
KernelSU работает в режиме ядра Linux, он имеет больше контроля над пользовательскими приложениями.
Только приложение, которому предоставлено разрешение root, может получить доступ к `su`, другие приложения не могут воспринимать su.
KernelSU позволяет вам настраивать uid, gid, группы, возможности и правила SELinux для su. Заприте root-власть в клетке.
KernelSU поддерживает модификацию /system бессистемно с помощью overlayfs и имеет открытый исходный код под лицензией GPL-3.
Mặc dù có nhiều điểm tương đồng giữa mô-đun KernelSU và mô-đun Magisk nhưng chắc chắn vẫn có một số khác biệt do cơ chế triển khai hoàn toàn khác nhau của chúng. Nếu muốn mô-đun của mình chạy trên cả Magisk và KernelSU, bạn phải hiểu những khác biệt này.
/data/adb/modules
Trước khi hiểu sự khác biệt, bạn cần biết cách phân biệt mô-đun của bạn đang chạy trong KernelSU hay Magisk. Bạn có thể sử dụng biến môi trường KSU
để phân biệt nó ở tất cả những nơi bạn có thể chạy tập lệnh mô-đun (customize.sh
, post-fs-data.sh
, service.sh
). Trong KernelSU, biến môi trường này sẽ được đặt thành true
.
Dưới đây là một số khác biệt:
.replace
. Thay vào đó, bạn cần tạo một file cùng tên với mknod filename c 0 0
để xóa file tương ứng./data/adb/ksu/bin/busybox
, trong khi ở Magisk nó nằm ở /data/adb/magisk/busybox
. Lưu ý rằng đây là hoạt động nội bộ của KernelSU và có thể thay đổi trong tương lai!.replace
; tuy nhiên, KernelSU hỗ trợ biến REMOVE
và REPLACE
để xóa hoặc thay thế các tệp và thư mục.boot-completed
để chạy một số script khi khởi động xong.post-mount
để chạy một số tập lệnh sau khi gắn overlayfsĐầu tiên, thiết bị của bạn sẽ có thể mở khóa bootloader. Nếu không thể thì nó không được hỗ trợ.
Sau đó, cài đặt Ứng dụng KernelSU manager vào thiết bị của bạn và mở nó, nếu nó hiển thị Unsupported
thì thiết bị của bạn chưa được hỗ trợ ngay, nhưng bạn có thể tạo nguồn kernel và tích hợp KernelSU để nó hoạt động hoặc sử dụng unofficially-support-devices.
Chắc chắn có.
Có, nhưng đây là phiên bản đầu tiên nên có thể bị lỗi. Đợi nó ổn định nhé 😃
Có, Dreamland và TaiChi hiện đã hoạt động. Đối với LSPosed, bạn có thể làm cho nó hoạt động bằng Zygisk on KernelSU
KernelSU không có hỗ trợ Zygisk tích hợp sẵn nhưng thay vào đó, bạn có thể sử dụng Zygisk on KernelSU.
Hệ thống mô-đun của KernelSU xung đột với magic mount của Magisk, nếu có bất kỳ mô-đun nào được kích hoạt trong KernelSU thì toàn bộ Magisk sẽ không hoạt động.
Nhưng nếu bạn chỉ sử dụng su
của KernelSU thì nó sẽ hoạt động tốt với Magisk: KernelSU sửa đổi kernel
và Magisk sửa đổi ramdisk
, chúng có thể hoạt động cùng nhau.
Chúng tôi không nghĩ như vậy và đó không phải là mục tiêu của chúng tôi. Magisk đủ tốt cho giải pháp root userspace và nó sẽ tồn tại lâu dài. Mục tiêu của KernelSU là cung cấp giao diện kernel cho người dùng chứ không thay thế Magisk.
Điều đó là có thể. Nhưng bạn nên tải nguồn kernel về và tích hợp KernelSU vào source tree rồi tự biên dịch kernel.
Chính kernel của thiết bị ảnh hưởng đến khả năng tương thích của KernelSU và nó không liên quan gì đến phiên bản Android. Hạn chế duy nhất là các thiết bị chạy Android 12 phải là kernel 5.10+(thiết bị GKI). Vì thế:
Có thể, KernelSU hiện đã được backport sang kernel 4.14, đối với kernel cũ hơn, bạn cần backport nó một cách cẩn thận và PR rất đáng hoan nghênh!
Vui lòng tham khảo hướng dẫn
Phiên bản Kernel không liên quan gì đến phiên bản Android, nếu bạn cần flash kernel thì dùng luôn phiên bản kernel, phiên bản Android không quá quan trọng.
Hiện tại thì không (có thể có trong tương lai), nhưng có nhiều cách để chuyển sang global mount namespace một cách thủ công, chẳng hạn như:
nsenter -t 1 -m sh
để lấy shell trong global mount namespace.nsenter --mount=/proc/1/ns/mnt
vào lệnh bạn muốn thực thi, sau đó lệnh được thực thi trong global mount namespace. KernelSU cũng sử dụng cách nàyGKI1 khác hoàn toàn với GKI2, bạn phải tự biên dịch kernel.
Khi flash một thiết bị, chúng ta có thể gặp phải tình trạng máy "bị brick". Về lý thuyết, nếu bạn chỉ sử dụng fastboot để flash phân vùng boot hoặc cài đặt các mô-đun không phù hợp khiến máy không khởi động được thì điều này có thể được khắc phục bằng các thao tác thích hợp. Tài liệu này nhằm mục đích cung cấp một số phương pháp khẩn cấp để giúp bạn khôi phục từ thiết bị "bị brick".
Trong KernelSU, các tình huống sau có thể gây ra lỗi khởi động khi flash phân vùng khởi động:
gz
, nhưng bạn flash image định dạng lz4
thì điện thoại sẽ không thể khởi động.Bất kể tình huống thế nào, bạn có thể khôi phục bằng cách flash boot image gốc. Do đó, khi bắt đầu hướng dẫn cài đặt, chúng tôi thực sự khuyên bạn nên sao lưu boot image gốc trước khi flash. Nếu chưa sao lưu, bạn có thể lấy boot image gốc từ người dùng khác có cùng thiết bị với bạn hoặc từ chương trình cơ sở chính thức (official firmware).
Việc cài đặt mô-đun có thể là nguyên nhân phổ biến hơn khiến thiết bị của bạn bị brick, nhưng chúng tôi phải nghiêm túc cảnh báo bạn: Không cài đặt mô-đun từ các nguồn không xác định! Vì các mô-đun có đặc quyền root nên chúng có thể gây ra thiệt hại không thể khắc phục cho thiết bị của bạn!
Nếu bạn đã flash một mô-đun đã được chứng minh là an toàn nhưng khiến thiết bị của bạn không khởi động được thì tình huống này có thể dễ dàng phục hồi trong KernelSU mà không phải lo lắng gì. KernelSU có các cơ chế tích hợp sẵn để giải cứu thiết bị của bạn, bao gồm:
Các bản cập nhật mô-đun của KernelSU lấy cảm hứng từ cơ chế cập nhật AB của hệ thống Android được sử dụng trong các bản cập nhật OTA. Nếu bạn cài đặt một mô-đun mới hoặc cập nhật mô-đun hiện có, nó sẽ không trực tiếp sửa đổi tệp mô-đun hiện đang sử dụng. Thay vào đó, tất cả các mô-đun sẽ được tích hợp vào một hình ảnh cập nhật khác. Sau khi hệ thống được khởi động lại, nó sẽ cố gắng bắt đầu sử dụng hình ảnh cập nhật này. Nếu hệ thống Android khởi động thành công, các mô-đun sẽ được cập nhật thực sự.
Vì vậy, phương pháp đơn giản và được sử dụng phổ biến nhất để cứu thiết bị của bạn là buộc khởi động lại. Nếu bạn không thể khởi động hệ thống của mình sau khi flash một mô-đun, bạn có thể nhấn và giữ nút nguồn trong hơn 10 giây và hệ thống sẽ tự động khởi động lại; sau khi khởi động lại, nó sẽ quay trở lại trạng thái trước khi cập nhật mô-đun và các mô-đun được cập nhật trước đó sẽ tự động bị tắt.
Nếu bản cập nhật AB vẫn không giải quyết được vấn đề, bạn có thể thử sử dụng Chế độ an toàn. Ở Chế độ an toàn, tất cả các mô-đun đều bị tắt.
Có hai cách để vào Chế độ an toàn:
Sau khi vào chế độ an toàn, tất cả các mô-đun trên trang mô-đun của KernelSU Manager đều bị tắt nhưng bạn có thể thực hiện thao tác "gỡ cài đặt" để gỡ cài đặt bất kỳ mô-đun nào có thể gây ra sự cố.
Chế độ an toàn tích hợp được triển khai trong kernel, do đó không có khả năng thiếu các sự kiện chính do bị chặn. Tuy nhiên, đối với các hạt nhân không phải GKI, có thể cần phải tích hợp mã thủ công và bạn có thể tham khảo tài liệu chính thức để được hướng dẫn.
Nếu các phương pháp trên không thể cứu được thiết bị của bạn thì rất có thể mô-đun bạn cài đặt có hoạt động độc hại hoặc đã làm hỏng thiết bị của bạn thông qua các phương tiện khác. Trong trường hợp này, chỉ có hai gợi ý:
WARNING
Đây là trang liệt kê kernel cho các thiết bị không dùng GKI được hỗ trợ bởi các lập trình viên khác.
WARNING
Trang này chỉ để cho bạn tìm thấy source cho thiết bị của bạn, nó HOÀN TOÀN KHÔNG được review bởi lập trình viên của KernelSU. Vậy nên hãy chấp nhận rủi ro khi sử dụng chúng.
Người bảo trì | Kho lưu trữ | Thiết bị hỗ trợ |
---|---|---|
diphons | D8G_Kernel_oxygen | Poco F3: alioth | Poco F4: munch | MI10T/PRO: Apollo |
diphons | D8G_Kernel_SM8150 | Poco X3 Pro: Vayu | Bhima |
diphons | D8G_Kernel_SDM845 | Poco F1 | MI8 | MiMix2S |
diphons | D8G_Kernel_SM8350 | Vili |
diphons | D8G_Kernel_Marble | Poco F5 | Redmi Note 12 Turbo | Marble |
th1nhhdk | android_kernel_sony_sm8250-kernelsu | Sony Xperia 1 II | Sony Xperia 5 II |
akash07k | nexus_kernel_xiaomi_sm8250 | Poco F4: munch |
HMTheBoy154 | Darkmatter-kernel | Generic x86_64 devices running Android-x86 |
Asuka-mio | android_kernel_xiaomi_cas | Mi 10 Ultra: cas |
xiaoleGun | Miku_kernel_xiaomi_wayne | wayne |
YamazakuraH | kernel_xiaomi_cepheus | cepheus for pixel experience |
SakuraNotStupid | android_kernel_xiaomi_sdm710 | Xiaomi MI 8 SE(sirius/xmsirius) |
Aquarius223(paper) | android_kernel_xiaomi_msm8998 | MI 6 (sagit) and MIX 2 (chiron) for LineageOS |
SlackerState | android_kernel_xiaomi_sm6150 | Redmi K30 4G (phoenix) |
RooGhz720 | kernel_xiaomi_sm6150 | REDMI NOTE 10 PRO (sweet) |
OnlyTomInSecond | android_kernel_xiaomi_sdm845 | Mi 8 (dipper) for LineageOS |
Rohail33 | RealKing Kernel | Apollo(Redmi K30S Ultra/Mi 10T/Mi 10T Pro),Alioth(Redmi K40/POCO F3/Mi 11X),Munch(Redmi K40S/POCO F4), both MIUI and AOSP. |
lateautumn233 | android_kernel_oneplus_sm8250 | OnePlus 8 Serials |
Sreeshankar K | NeverSettle Kernel | OnePlus Nord (avicii) |
Molyuu | neko_kernel_xiaomi_gauguin | Redmi Note 9 Pro/ Mi 10T Lite/ Mi 10i |
guh0613 | android_kernel_oppo_sm8150 | OPPO Reno Ace (OP4A89) |
LeviMarvin | android_kernel_xiaomi_alioth | Redmi K40 / POCO F3 |
cibimo | kernel_xiaomi_raphael_ksu | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
EndCredits | kernel_xiaomi_sm7250 | Redmi K30 5G ( picasso ) , Redmi K30i 5G ( picasso_48m) |
msnx | android-msm-coral-4.14-android13 | Pixel 4 XL |
SoDebug | kernel_xiaomi_raphael | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
H1mJT | kernel_realme_RMX1901 | Realme X (RMX1901/RMX1901CN) |
SonalSingh18 | android_kernel_xiaomi_sm6250 | Miatoll [curtana, excalibur, gram, joyeuse] |
RooGhz720 | kernel_xiaomi_lavender | Redmi Note 7 (Lavender) |
JunASAKA | kernel_google_msm-4.9_KernelSU | Google Pixel 3a & 3a XL (sargo & bonito) |
RooGhz720 | kernel_asus_X01BD | Asus Zenfone Max Pro M1/M2 |
Evans Mike | kernel_xiaomi_raphael_bool-x | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
easterNday | KSU_Thyme_BuildBot | Xiaomi 10S |
tedomi2705 | kernel_xiaomi_sdm660 | Xiaomi Redmi Note 6 Pro (tulip) |
RyuujiX | android_kernel_asus_sdm660-4.19 | Asus Zenfone Max Pro M1 (X00TD)/ M2 (X01BD) (Linux 4.19) |
liqidecg | android_kernel_xiaomi_sdm710 | Mi 8 SE (sirius) (Linux 4.9) |
Abdelhay-Ali | android_kernel_huawei_hi6250 | Huawei P20 lite (hi6250) (Linux 4.9) |
reocat | android_kernel_nokia_sdm660_ksu | Nokia 6.1 (2018) |
Tuan Anh | kernel_nokia_msm8998 | Nokia 8 (Repartitioned)/8 Sirocco (NLA/A1N) |
bggRGjQaUbCoE | android_kernel_samsung_sm8250 | Samsung Galaxy S20+ 5G (y2q) |
SOVIET-ANDROID | kernel_xiaomi_raphael | XK20 Pro Raphael DSP & A only SAR support |
Coconutat | android_kernel_huawei_vtr_emui9_KernelSU | Huawei P10,P10 Plus,Mate9,Mate9 Pro(Kirin960 Series),Stable For GSI |
dabao1955 | android_kernel_OPPO_PEQM00 | MediaTek devices in the OPPO Reno series on ColorOS13.x |
Aflaungos | android_kernel_motorola_msm8998 | Moto G6 Plus (evert) |
TheNoFace | kernel_oneplus_msm8998 | OnePlus 5/5T (cheeseburger/dumpling) |
Nipin NA (Joker-V2) | Xcalibur kernel (violet) | Xiaomi Redmi Note 7 Pro (violet) |
Sr-Han | kernel_xiaomi_mojito | Redmi Note 10 (Sunny/Mojito) |
dabao1955 | android_kernel_OPPO_OP4ED5 | OPPO Reno6 on ColorOS11.x/ColorOS12.x,kernel version4.14.186+ |
rushiranpise | android_kernel_samsung_exynos9610_mint | Kernel 4.14.194 exynos9610 Non-GKI Device, Added KernelSu using manual method |
CN-Scars | pixel_experience_kernel_xiaomi_sm8250_kernelSU | Pixel Experience Kernel 4.19.282 for Xiaomi Redmi K40S / Xiaomi Poco F4 (munch) |
exer | Miyo Toku | Sony Tama (akari, apollo, aurora, akatsuki) (Linux 4.9) |
likkai | Quicksilver Kernel | Xiaomi 11 Lite 5G NE (lisa) |
awakened1712 | android_kernel_samsung_exynos9820 | Samsung S10/N10 |
awakened1712 | android_kernel_oneplus_sm8350 | Oneplus 9/9Pro |
siimsek | Lightning Kernel | Xiaomi Redmi Note 8/8T (ginkgo/willow) |
GiovanYCringe | kernel_a50 | Galaxy A50 (A505f,fn,g,gn,gt) |
Asriadi Rahim | android_kernel_google_wahoo | Google Pixel 2/2XL |
Flame | android_kernel_xiaomi_sm8250 | POCO F3/Redmi K40/Mi 11X (alioth) |
DawfukFR | kernel_oneplus_sm8250 (Stellaris-Kernel) | Oneplus 8 (Instantnoodle), Oneplus 8T (Kebab), Oneplus 8 Pro (Instantnoodlep), Oneplus 9R (lemonades) [msm-4.19] |
Tejas Singh | kernel_xiaomi_ginkgo (Cuh Kernel) | Xiaomi Redmi Note 8/8T (ginkgo/willow) |
Coconutat | android_kernel_xiaomi_ruby_exp | Redmi Note 12 Pro / Pro+ For MIUI 14 |
Coconutat | android_kernel_xiaomi_sdm845_exp | Xiaomi Mi 8 Pro(UD)[equuleus]/Explorer Edition[ursa] |
Abdul Wahid Khan | kernel_xiaomi_begonia | Redmi Note 8 Pro (Begonia/Begoniain) |
Abdul Wahid Khan | kernel_xiaomi_marble | Xiaomi Poco F5 / Redmi Note 12 Turbo (Marble) |
zfdx123 | kernel_xiaomi_alioth | Redmi K40 (alioth) |
wxt1221 | android_kernel_oneplus_sdm845 | Oneplus 6 (enchilada) | Oneplus 6T (fajita) with no Retrofit Dynamic Partitions |
zharzinhoo | Kernel-Oriente-Guamp | Moto g9 play |
hc841 | NovaCore_kernel | Moto g9 play |
zlm324 | android_kernel_xiaomi_msm8998_ksu | a lineage kernel forked from LineageOS official repository, version 4.4.302, added ksu. |
zlm324 | android_kernel_xiaomi_msm8953_ksu | Xiaomi 5X (tiffany) |
Vincent4440 | android_kernel_xiaomi_sm8250 | Poco F4: munch |
zharzinhoo | android_kernel_motorola_cebu | Moto g9 power |
tiandoufayale | android_kernel_samsung_sm8250 | Samsung Tab S7 WIFI(T870) |
starmoe | android_kernel_oneplus_msm8998 | Oneplus 5/5T, kernel version 4.4.302 |
KernelSU là một giải pháp root cho các thiết bị Android GKI, nó hoạt động ở chế độ kernel và cấp quyền root cho ứng dụng không gian người dùng trực tiếp trong không gian kernel.
Tính năng chính của KernelSU là Kernel-based (dựa trên Kernel). KernelSU hoạt động ở chế độ kernel nên nó có thể cung cấp giao diện kernel mà chúng ta chưa từng có trước đây. Ví dụ: chúng ta có thể thêm điểm dừng phần cứng vào bất kỳ quy trình nào ở chế độ kernel; Chúng ta có thể truy cập bộ nhớ vật lý của bất kỳ quy trình nào mà không bị phát hiện; Chúng ta còn có thể chặn bất kỳ syscall nào trong không gian kernel; v.v.
Ngoài ra, KernelSU còn cung cấp hệ thống mô-đun thông qua lớp phủ, cho phép bạn tải plugin tùy chỉnh vào hệ thống. Nó cũng cung cấp một cơ chế để sửa đổi các tập tin trong phân vùng /system
.
Xin hãy xem: Cách cài đặt
KernelSU đang hoạt động ở chế độ kernel Linux, nó có nhiều quyền kiểm soát hơn đối với các ứng dụng userspace.
Chỉ ứng dụng được cấp quyền root mới có thể truy cập `su`, các ứng dụng khác không thể nhận được su.
KernelSU cho phép bạn tùy chỉnh uid, gid, group, capabilities và các quy tắc SELinux của su. Giới hạn sức mạnh của root.
KernelSU hỗ trợ sửa đổi /system một cách systemless bằng overlayfs và nó có nguồn mở theo GPL-3.
虽然 KernelSU 模块与 Magisk 模块有很多相似之处,但由于它们的实现机制完全不同,因此不可避免地会有一些差异;如果你希望你的模块能同时在 Magisk 与 KernelSU 中运行,那么你必须了解这些差异。
/data/adb/modules
post-fs-data.sh
: 执行时机完全一致,语义也完全一致service.sh
: 执行时机完全一致,语义也完全一致system.prop
: 完全相同sepolicy.rule
: 完全相同在了解不同之处之前,你需要知道如何区分你的模块是运行在 KernelSU 还是运行在 Magisk 之中;在所有你可以运行模块脚本的地方(customize.sh
, post-fs-data.sh
, service.sh
),你都可以通过环境变量KSU
来区分,在 KernelSU 中,这个环境变量将被设置为 true
。
以下是一些不同之处:
.replace
方式,相反,你需要通过 mknod filename c 0 0
创建同名文件夹来删除对应文件。/data/adb/ksu/bin/busybox
而 Magisk 在 /data/adb/magisk/busybox
;注意此为 KernelSU 内部行为,未来可能会更改!.replace
文件;但 KernelSU 支持 REPLACE
和 REMOVE
变量。boot-completed.sh
,以便在 Android 系统启动后运行某些任务。post-mount.sh
,以便在 Overlayfs 挂载后运行某些任务。首先,您的设备应该能够解锁 bootloader。 如果不能,则不支持。
然后在你的设备上安装 KernelSU 管理器并打开它,如果它显示 不支持
,那么你的设备没有官方支持的开箱即用的 boot image;但你可以自己编译内核集成 KernelSU 进而使用它。
当然需要。
支持,但它是早期版本,可能有问题。请等待它稳定 😃
支持。Dreamland 和 TaiChi 可以正常运行。LSPosed 可以在 Zygisk on KernelSU 的支持下正常运行。
KernelSU 本体不支持 Zygisk,但是你可以用 Zygisk on KernelSU 来使用 Zygisk 模块。
KernelSU 的模块系统与 Magisk 的 magic mount 有冲突,如果 KernelSU 中启用了任何模块,那么整个 Magisk 将无法工作。
但是如果你只使用 KernelSU 的 su
,那么它会和 Magisk 一起工作:KernelSU 修改 kernel
、 Magisk 修改 ramdisk
,它们可以一起工作。
我们不这么认为,这也不是我们的目标。Magisk 对于用户空间 root 解决方案来说已经足够好了,它会存活很久。KernelSU 的目标是为用户提供内核接口,而不是替代 Magisk。
可以。但是你应该下载内核源代码并将 KernelSU 集成到源代码树中并自己编译内核。
影响 KernelSU 兼容性的是设备内核的版本,它与设备的 Android 版本没有直接的关系。唯一有关联的是:出厂 Android 12 的设备,一定是 5.10 或更高的内核(GKI设备);因此结论如下:
可以,目前最低支持到 4.14;更低的版本你需要手动移植它,欢迎 PR !
参考教程
内核版本与 Android 版本无关,如果你需要刷入 KernelSU,请永远使用内核版本而非 Android 版本,如果你为 "android12-5.10" 的设备刷入 Android 13 的内核,等待你的将是 bootloop.
目前没有(未来可能会支持),但实际上有很多种办法手动进入全局命名空间,无需 su 内置支持,比如:
nsenter -t 1 -m sh
可以获得一个全局 mount namespace 的 shell.nsenter --mount=/proc/1/ns/mnt
就可以让此命令在全局 mount namespace 下执行。 KernelSU 本身也使用了 这种方法GKI1 跟 GKI2 完全是两个东西,所以你需要自行编译内核。
在刷机的时候我们可能会遇到设备“变砖”的情况,理论上讲,如果你只是使用 fastboot 刷入 boot 分区或者安装不合适的模块导致设备无法启动,那么这都可以通过合适的操作恢复手机;本文档旨在提供一些急救方法让你可以在“变砖”中恢复。
在 KernelSU 中,刷入 boot 变砖有如下可能:
gz
的,但你刷入了 lz4
格式的镜像,那么此时手机无法启动。无论哪种情况,你都可以通过刷入原厂 boot恢复;因此,在安装教程最开始,我们已经强烈建议大家,在刷机之前备份自己的原厂 boot!如果你没有备份,那么你可以通过其他跟你相同设备的童鞋或者官方固件包获取原厂 boot。
刷入模块变砖可能是大家遇到更常见的情况,但是这里必须郑重告诉大家:请勿刷入来路不明的模块!!。因为模块其实是有 root 权限的,它完全可能导致你的设备发生不可逆的损坏!
如果大家刷入某些开源的或者被证明是安全的模块使得手机无法启动,那么这种情况在 KernelSU 中非常容易恢复,完全无需担心。KernelSU 内置了如下两种机制来救砖:
KernelSU 的模块更新借鉴了 Android 系统 OTA 更新时的 AB 更新机制,如果你安装了新模块或者对已有模块有更新操作,不会直接操作当前使用的模块文件,而是会把所有模块构建成另外一个 update 镜像;系统重启之后,会使用这个 update 镜像尝试启动一次,如果 Android 系统成功启动,才会真正更新模块。
因此,最简单最常用的救砖方法就是:强制重启一次。如果你在刷某个模块之后系统无法启动,你可以长按电源键超过 10 秒,系统会自动重启;重启之后会回滚到更新模块之前的状态,之前更新的模块会被自动禁用。
如果 AB 更新依然无法解决,你可以尝试使用安全模式。进入安全模式之后,所有的模块都会被禁用。
进入安全模式的方法有两种:
进入安全模式以后,KernelSU 管理器的模块页面所有模块都被禁用,但你可以执行“卸载”操作,卸载可能会有问题的模块。
内置的安全模式是在内核里面实现的,因此不会出现按键事件被拦截导致捕获不到的情况。不过对于非 GKI 内核,可能需要手动集成代码,可以参考官网教程。
如果以上方法无法拯救你的设备,那么很有可能你装的模块有恶意操作或者通过其他方式损坏了你的设备,这种情况下,只有两个建议:
WARNING
本文档列出由其他开发者维护的支持 KernelSU 的非 GKI 设备内核
WARNING
本文档仅方便查找设备对应源码,这并不意味该源码被 KernelSU 开发者审查,你应自行承担使用风险。
维护者 | 仓库地址 | 支持设备 |
---|---|---|
diphons | D8G_Kernel_oxygen | Poco F3: alioth | Poco F4: munch | MI10T/PRO: Apollo |
diphons | D8G_Kernel_SM8150 | Poco X3 Pro: Vayu | Bhima |
diphons | D8G_Kernel_SDM845 | Poco F1 | MI8 | MiMix2S |
diphons | D8G_Kernel_SM8350 | Vili |
diphons | D8G_Kernel_Marble | Poco F5 | Redmi Note 12 Turbo | Marble |
th1nhhdk | android_kernel_sony_sm8250-kernelsu | Sony Xperia 1 II | Sony Xperia 5 II |
akash07k | nexus_kernel_xiaomi_sm8250 | Poco F4: munch |
HMTheBoy154 | Darkmatter-kernel | Generic x86_64 devices running Android-x86 |
Asuka-mio | android_kernel_xiaomi_cas | Mi 10 Ultra: cas |
xiaoleGun | Miku_kernel_xiaomi_wayne | wayne |
YamazakuraH | kernel_xiaomi_cepheus | cepheus for pixel experience |
SakuraNotStupid | android_kernel_xiaomi_sdm710 | Xiaomi MI 8 SE(sirius/xmsirius) |
Aquarius223(paper) | android_kernel_xiaomi_msm8998 | MI 6 (sagit) and MIX 2 (chiron) for LineageOS |
SlackerState | android_kernel_xiaomi_sm6150 | Redmi K30 4G (phoenix) |
RooGhz720 | kernel_xiaomi_sm6150 | REDMI NOTE 10 PRO (sweet) |
OnlyTomInSecond | android_kernel_xiaomi_sdm845 | Mi 8 (dipper) for LineageOS |
Rohail33 | RealKing Kernel | Apollo(Redmi K30S Ultra/Mi 10T/Mi 10T Pro),Alioth(Redmi K40/POCO F3/Mi 11X),Munch(Redmi K40S/POCO F4), both MIUI and AOSP. |
lateautumn233 | android_kernel_oneplus_sm8250 | OnePlus 8 Serials |
Sreeshankar K | NeverSettle Kernel | OnePlus Nord (avicii) |
Molyuu | neko_kernel_xiaomi_gauguin | Redmi Note 9 Pro/ Mi 10T Lite/ Mi 10i |
guh0613 | android_kernel_oppo_sm8150 | OPPO Reno Ace (OP4A89) |
LeviMarvin | android_kernel_xiaomi_alioth | Redmi K40 / POCO F3 |
cibimo | kernel_xiaomi_raphael_ksu | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
EndCredits | kernel_xiaomi_sm7250 | Redmi K30 5G ( picasso ) , Redmi K30i 5G ( picasso_48m) |
msnx | android-msm-coral-4.14-android13 | Pixel 4 XL |
SoDebug | kernel_xiaomi_raphael | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
H1mJT | kernel_realme_RMX1901 | Realme X (RMX1901/RMX1901CN) |
SonalSingh18 | android_kernel_xiaomi_sm6250 | Miatoll [curtana, excalibur, gram, joyeuse] |
RooGhz720 | kernel_xiaomi_lavender | Redmi Note 7 (Lavender) |
JunASAKA | kernel_google_msm-4.9_KernelSU | Google Pixel 3a & 3a XL (sargo & bonito) |
RooGhz720 | kernel_asus_X01BD | Asus Zenfone Max Pro M1/M2 |
Evans Mike | kernel_xiaomi_raphael_bool-x | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
easterNday | KSU_Thyme_BuildBot | Xiaomi 10S |
tedomi2705 | kernel_xiaomi_sdm660 | Xiaomi Redmi Note 6 Pro (tulip) |
RyuujiX | android_kernel_asus_sdm660-4.19 | Asus Zenfone Max Pro M1 (X00TD)/ M2 (X01BD) (Linux 4.19) |
liqidecg | android_kernel_xiaomi_sdm710 | Mi 8 SE (sirius) (Linux 4.9) |
Abdelhay-Ali | android_kernel_huawei_hi6250 | Huawei P20 lite (hi6250) (Linux 4.9) |
reocat | android_kernel_nokia_sdm660_ksu | Nokia 6.1 (2018) |
Tuan Anh | kernel_nokia_msm8998 | Nokia 8 (Repartitioned)/8 Sirocco (NLA/A1N) |
bggRGjQaUbCoE | android_kernel_samsung_sm8250 | Samsung Galaxy S20+ 5G (y2q) |
SOVIET-ANDROID | kernel_xiaomi_raphael | XK20 Pro Raphael DSP & A only SAR support |
Coconutat | android_kernel_huawei_vtr_emui9_KernelSU | Huawei P10,P10 Plus,Mate9,Mate9 Pro(Kirin960 Series),Stable For GSI |
dabao1955 | android_kernel_OPPO_PEQM00 | MediaTek devices in the OPPO Reno series on ColorOS13.x |
Aflaungos | android_kernel_motorola_msm8998 | Moto G6 Plus (evert) |
TheNoFace | kernel_oneplus_msm8998 | OnePlus 5/5T (cheeseburger/dumpling) |
Nipin NA (Joker-V2) | Xcalibur kernel (violet) | Xiaomi Redmi Note 7 Pro (violet) |
Sr-Han | kernel_xiaomi_mojito | Redmi Note 10 (Sunny/Mojito) |
dabao1955 | android_kernel_OPPO_OP4ED5 | OPPO Reno6 on ColorOS11.x/ColorOS12.x,kernel version4.14.186+ |
rushiranpise | android_kernel_samsung_exynos9610_mint | Kernel 4.14.194 exynos9610 Non-GKI Device, Added KernelSu using manual method |
CN-Scars | pixel_experience_kernel_xiaomi_sm8250_kernelSU | Pixel Experience Kernel 4.19.282 for Xiaomi Redmi K40S / Xiaomi Poco F4 (munch) |
exer | Miyo Toku | Sony Tama (akari, apollo, aurora, akatsuki) (Linux 4.9) |
likkai | Quicksilver Kernel | Xiaomi 11 Lite 5G NE (lisa) |
awakened1712 | android_kernel_samsung_exynos9820 | Samsung S10/N10 |
awakened1712 | android_kernel_oneplus_sm8350 | Oneplus 9/9Pro |
siimsek | Lightning Kernel | Xiaomi Redmi Note 8/8T (ginkgo/willow) |
GiovanYCringe | kernel_a50 | Galaxy A50 (A505f,fn,g,gn,gt) |
Asriadi Rahim | android_kernel_google_wahoo | Google Pixel 2/2XL |
Flame | android_kernel_xiaomi_sm8250 | POCO F3/Redmi K40/Mi 11X (alioth) |
DawfukFR | kernel_oneplus_sm8250 (Stellaris-Kernel) | Oneplus 8 (Instantnoodle), Oneplus 8T (Kebab), Oneplus 8 Pro (Instantnoodlep), Oneplus 9R (lemonades) [msm-4.19] |
Tejas Singh | kernel_xiaomi_ginkgo (Cuh Kernel) | Xiaomi Redmi Note 8/8T (ginkgo/willow) |
Coconutat | android_kernel_xiaomi_ruby_exp | Redmi Note 12 Pro / Pro+ For MIUI 14 |
Coconutat | android_kernel_xiaomi_sdm845_exp | Xiaomi Mi 8 Pro(UD)[equuleus]/Explorer Edition[ursa] |
Abdul Wahid Khan | kernel_xiaomi_begonia | Redmi Note 8 Pro (Begonia/Begoniain) |
Abdul Wahid Khan | kernel_xiaomi_marble | Xiaomi Poco F5 / Redmi Note 12 Turbo (Marble) |
zfdx123 | kernel_xiaomi_alioth | Redmi K40 (alioth) |
wxt1221 | android_kernel_oneplus_sdm845 | Oneplus 6 (enchilada) | Oneplus 6T (fajita) with no Retrofit Dynamic Partitions |
zharzinhoo | Kernel-Oriente-Guamp | Moto g9 play |
hc841 | NovaCore_kernel | Moto g9 play |
zlm324 | android_kernel_xiaomi_msm8998_ksu | a lineage kernel forked from LineageOS official repository, version 4.4.302, added ksu. |
zlm324 | android_kernel_xiaomi_msm8953_ksu | Xiaomi 5X (tiffany) |
Vincent4440 | android_kernel_xiaomi_sm8250 | Poco F4: munch |
zharzinhoo | android_kernel_motorola_cebu | Moto g9 power |
tiandoufayale | android_kernel_samsung_sm8250 | Samsung Tab S7 WIFI(T870) |
starmoe | android_kernel_oneplus_msm8998 | Oneplus 5/5T, kernel version 4.4.302 |
KernelSU 是 Android GKI 设备的 root 解决方案,它工作在内核模式,并直接在内核空间中为用户空间应用程序授予 root 权限。
KernelSU 的主要特点是它是基于内核的。 KernelSU 运行在内核空间, 所以它可以提供我们以前从未有过的内核接口。 例如,我们可以在内核模式下为任何进程添加硬件断点;我们可以在任何进程的物理内存中访问,而无人知晓;我们可以在内核空间拦截任何系统调用; 等等。
KernelSU 还提供了一个基于 overlayfs 的模块系统,允许您加载自定义插件到系统中。它还提供了一种修改 /system 分区中文件的机制。
请参考: 安装
请参考: 如何构建
KernelSU 运行在内核空间,对用户空间应用有更强的掌控。
只有被授权的 App 才可以访问 `su`,而其他 App 无法感知其存在。
KernelSU 可以自定义 `su` 的 uid, gid, groups, capabilities 和 SELinux 规则:把 root 权限关进笼子里。
KernelSU 支持通过 overlayfs 修改 /system,并且是 GPL-3 许可下的开源项目。
儘管 KernelSU 模組和 Magisk 模組之間有許多相似之處,但由於它們完全不同的實作機制,不可避免地存在一些差異;如果您想讓您的模組同時在 Magisk 和 KernelSU 上運作,那麼您必須瞭解這些差異。
/data/adb/modules
post-fs-data.sh
:執行時間和語義完全相同service.sh
:執行時間和語義完全相同system.prop
:完全相同sepolicy.rule
:完全相同在瞭解不同之處之前,您需要知道如何區分您的模組是在 KernelSU 還是 Magisk 中執行;在所有可以執行模組指令碼的位置 (customize.sh
, post-fs-data.sh
, service.sh
),您都可以使用環境變數 KSU
來區分,在 KernelSU 中,這個環境變數將被設定為 true
。
以下是一些不同之處:
.replace
方法,相反,您需要透過 mknod filename c 0 0
建立相同名稱的資料夾以刪除對應檔案。/data/adb/ksu/bin/busybox
而 Magisk 在 /data/adb/magisk/busybox
;注意此為 KernelSU 內部行為,未來可能會變更!.replace
檔案;但 KernelSU 支援 REPLACE
和 REMOVE
變數以移除或取代檔案 (資料夾)。首先,您的裝置應該能解鎖 Bootloader。如果不能,則不支援。
然後在您的裝置上安裝 KernelSU 管理員並開啟它,如果它顯示 不支援
,那麼您的裝置沒有官方支援的開箱即用的 Boot 映像;但您可以自行建置核心來源並整合 KernelSU 以繼續使用。
當然需要。
支援,但它是早期版本,可能存在問題。請等候它逐漸穩定 😃
支援。Dreamland 和 TaiChi 可以正常運作。LSPosed 可以在 Zygisk on KernelSU 的支援下正常運作。
KernelSU 沒有內建 Zygisk 支援,但是您可以用 Zygisk on KernelSU 來使用 Zygisk 模組。
KernelSU 的模組系統與 Magisk 的 magic mount 存在衝突,如果在 KernelSU 中啟用了任何模組,那麼整個 Magisk 將無法正常運作。
但是如果您只使用 KernelSU 的 su
,那么它會和 Magisk 一同運作:KernelSU 修改 kernel
、 Magisk 修改 ramdisk
,它們可以搭配使用。
我們不這樣認為,這也不是我們的目標。Magisk 對於使用者空間 Root 解決方案來說已經足夠優秀了,它會存在很長一段時間。KernelSU 的目標是為使用者提供核心介面,而非取代 Magisk。
可以。但是您應該下載核心來源並整合 KernelSU 至來源樹狀結構並自行編譯核心。
影響 KernelSU 相容性的是裝置的核心版本,它與 Android 版本並無直接關係。唯一有關聯的是:原廠 Android 12 的裝置,一定是 5.10 或更高的核心 (GKI 裝置);因此結論如下:
可以,目前最低支援到 4.14;更低的版本您需要手動移植它,歡迎 PR!
請參閱指南
核心版本與 Android 版本無關,如果您要刷新 KernelSU,請一律使用核心版本而非 Android 版本,如果你為 "android12-5.10" 的裝置刷新 Android 13 的核心,等候您的將會是開機迴圈。
目前沒有 (未來可能會支援),但實際上有很多種方法手動進入全域命名空間,無需 Su 內建支援,比如:
nsenter -t 1 -m sh
可以取得一個全域 mount namespace 的 shell.nsenter --mount=/proc/1/ns/mnt
即可使此命令在全域 mount namespace 下執行。KernelSU 本身也使用了 這種方法GKI1 與 GKI2 完全不同,所以您需要自行編譯核心。
在刷新裝置時,我們很可能會遇到裝置「變磚」的狀況,從理論上講,如果您只是使用 Fastboot 刷新 Boot 分割區或者安裝不合適的模組導致裝置無法開機,那麼這都可以透過合適的作業還原您的手機;這個文件提供一些緊急方法可以讓您在「變磚」中還原。
在 KernelSU 中,刷新 boot 時變磚有下列原因:
gz
,但您刷新 lz4
格式的映像,那麼此時手機將無法開機。無論哪種狀況,您都可以透過刷新原廠 Boot還原;因此,在安裝教學最開始,我們已經強烈建議大家,在刷新之前備份自己的原廠 Boot!如果您沒有備份,那麼您可以透過其他與您相同裝置的使用者或官方韌體擷取 Boot。
刷新模組變磚可能是大家遇到的更常見的狀況,但是這裡要嚴正警示大家:不要刷新未知來源的模組!!。因為模組擁有 Root 權限,它能完全對您的裝置造成無法復原的損壞!
如果大家刷新了某些開放原始碼的或者被證明是安全的模組使手機無法開機,那麼這種狀況在 KernelSU 中非常容易還原,也無需擔心。KernelSU 內建了下列兩種機制以搶救您的裝置:
KernelSU 的模組借鑒了 Android 系統 OTA 更新時的 AB 更新機制,如果您安裝了新模組或者對現存模組進行了更新作業,不會直接修改目前使用的模組檔案,而是會把所有模組建置為另外一個更新映像;系統重新啟動後,會使用這個更新映像嘗試重新啟動一次,如果 Android 系統成功開機,模組才會真正更新。
因此,最簡單最常用的搶救方法就是:強制重新開機一次。如果您在刷新某個模組之後系統無法開機,您可以長按電源按鈕超過 10 秒,系統會自動重新開機;模組會回復為更新前的狀態,先前更新的模組也將會被自動停用。
如果 AB 更新仍然無法解決,您可以嘗試使用安全模式。進入安全模式之後,所有的模組將會被停用。
進入安全模式的方法有兩種:
進入安全模式後,KernelSU 管理員的模組頁面的所有模組將會被停用,但您可以執行「解除安裝」作業,將可能存在問題的模組解除安裝。
內建的安全模式在核心中實作,因此不會出現按鍵活動無法攔截的狀況。不過對於非 GKI 核心,可能需要手動整合程式碼,可以參閱官方文件指南。
如果以上方法無法搶救您的裝置,那麼很可能您安裝的模組存在惡意作業或透過其他方式損壞了您的裝置,在這種狀況下,只有兩個建議:
WARNING
本文件列出由其他開發人員維護的支援 KernelSU 的非 GKI 裝置核心
WARNING
本文件仅便於尋找裝置對應原始碼,這並非意味著這些原始碼被 KernelSU 開發人員審查,您應自行承擔風險。
維護者 | 存放庫 | 支援裝置 |
---|---|---|
diphons | D8G_Kernel_oxygen | Poco F3: alioth | Poco F4: munch | MI10T/PRO: Apollo |
diphons | D8G_Kernel_SM8150 | Poco X3 Pro: Vayu | Bhima |
diphons | D8G_Kernel_SDM845 | Poco F1 | MI8 | MiMix2S |
diphons | D8G_Kernel_SM8350 | Vili |
diphons | D8G_Kernel_Marble | Poco F5 | Redmi Note 12 Turbo | Marble |
th1nhhdk | android_kernel_sony_sm8250-kernelsu | Sony Xperia 1 II | Sony Xperia 5 II |
akash07k | nexus_kernel_xiaomi_sm8250 | Poco F4: munch |
HMTheBoy154 | Darkmatter-kernel | Generic x86_64 devices running Android-x86 |
Asuka-mio | android_kernel_xiaomi_cas | Mi 10 Ultra: cas |
xiaoleGun | Miku_kernel_xiaomi_wayne | wayne |
YamazakuraH | kernel_xiaomi_cepheus | cepheus for pixel experience |
SakuraNotStupid | android_kernel_xiaomi_sdm710 | Xiaomi MI 8 SE(sirius/xmsirius) |
Aquarius223(paper) | android_kernel_xiaomi_msm8998 | MI 6 (sagit) and MIX 2 (chiron) for LineageOS |
SlackerState | android_kernel_xiaomi_sm6150 | Redmi K30 4G (phoenix) |
RooGhz720 | kernel_xiaomi_sm6150 | REDMI NOTE 10 PRO (sweet) |
OnlyTomInSecond | android_kernel_xiaomi_sdm845 | Mi 8 (dipper) for LineageOS |
Rohail33 | RealKing Kernel | Apollo(Redmi K30S Ultra/Mi 10T/Mi 10T Pro),Alioth(Redmi K40/POCO F3/Mi 11X),Munch(Redmi K40S/POCO F4), both MIUI and AOSP. |
lateautumn233 | android_kernel_oneplus_sm8250 | OnePlus 8 Serials |
Sreeshankar K | NeverSettle Kernel | OnePlus Nord (avicii) |
Molyuu | neko_kernel_xiaomi_gauguin | Redmi Note 9 Pro/ Mi 10T Lite/ Mi 10i |
guh0613 | android_kernel_oppo_sm8150 | OPPO Reno Ace (OP4A89) |
LeviMarvin | android_kernel_xiaomi_alioth | Redmi K40 / POCO F3 |
cibimo | kernel_xiaomi_raphael_ksu | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
EndCredits | kernel_xiaomi_sm7250 | Redmi K30 5G ( picasso ) , Redmi K30i 5G ( picasso_48m) |
msnx | android-msm-coral-4.14-android13 | Pixel 4 XL |
SoDebug | kernel_xiaomi_raphael | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
H1mJT | kernel_realme_RMX1901 | Realme X (RMX1901/RMX1901CN) |
SonalSingh18 | android_kernel_xiaomi_sm6250 | Miatoll [curtana, excalibur, gram, joyeuse] |
RooGhz720 | kernel_xiaomi_lavender | Redmi Note 7 (Lavender) |
JunASAKA | kernel_google_msm-4.9_KernelSU | Google Pixel 3a & 3a XL (sargo & bonito) |
RooGhz720 | kernel_asus_X01BD | Asus Zenfone Max Pro M1/M2 |
Evans Mike | kernel_xiaomi_raphael_bool-x | Xiaomi Redmi K20 Pro / Mi 9T Pro (raphael) |
easterNday | KSU_Thyme_BuildBot | Xiaomi 10S |
tedomi2705 | kernel_xiaomi_sdm660 | Xiaomi Redmi Note 6 Pro (tulip) |
RyuujiX | android_kernel_asus_sdm660-4.19 | Asus Zenfone Max Pro M1 (X00TD)/ M2 (X01BD) (Linux 4.19) |
liqidecg | android_kernel_xiaomi_sdm710 | Mi 8 SE (sirius) (Linux 4.9) |
Abdelhay-Ali | android_kernel_huawei_hi6250 | Huawei P20 lite (hi6250) (Linux 4.9) |
reocat | android_kernel_nokia_sdm660_ksu | Nokia 6.1 (2018) |
Tuan Anh | kernel_nokia_msm8998 | Nokia 8 (Repartitioned)/8 Sirocco (NLA/A1N) |
bggRGjQaUbCoE | android_kernel_samsung_sm8250 | Samsung Galaxy S20+ 5G (y2q) |
SOVIET-ANDROID | kernel_xiaomi_raphael | XK20 Pro Raphael DSP & A only SAR support |
Coconutat | android_kernel_huawei_vtr_emui9_KernelSU | Huawei P10,P10 Plus,Mate9,Mate9 Pro(Kirin960 Series),Stable For GSI |
dabao1955 | android_kernel_OPPO_PEQM00 | MediaTek devices in the OPPO Reno series on ColorOS13.x |
Aflaungos | android_kernel_motorola_msm8998 | Moto G6 Plus (evert) |
TheNoFace | kernel_oneplus_msm8998 | OnePlus 5/5T (cheeseburger/dumpling) |
Nipin NA (Joker-V2) | Xcalibur kernel (violet) | Xiaomi Redmi Note 7 Pro (violet) |
Sr-Han | kernel_xiaomi_mojito | Redmi Note 10 (Sunny/Mojito) |
dabao1955 | android_kernel_OPPO_OP4ED5 | OPPO Reno6 on ColorOS11.x/ColorOS12.x,kernel version4.14.186+ |
rushiranpise | android_kernel_samsung_exynos9610_mint | Kernel 4.14.194 exynos9610 Non-GKI Device, Added KernelSu using manual method |
CN-Scars | pixel_experience_kernel_xiaomi_sm8250_kernelSU | Pixel Experience Kernel 4.19.282 for Xiaomi Redmi K40S / Xiaomi Poco F4 (munch) |
exer | Miyo Toku | Sony Tama (akari, apollo, aurora, akatsuki) (Linux 4.9) |
likkai | Quicksilver Kernel | Xiaomi 11 Lite 5G NE (lisa) |
awakened1712 | android_kernel_samsung_exynos9820 | Samsung S10/N10 |
awakened1712 | android_kernel_oneplus_sm8350 | Oneplus 9/9Pro |
siimsek | Lightning Kernel | Xiaomi Redmi Note 8/8T (ginkgo/willow) |
GiovanYCringe | kernel_a50 | Galaxy A50 (A505f,fn,g,gn,gt) |
Asriadi Rahim | android_kernel_google_wahoo | Google Pixel 2/2XL |
Flame | android_kernel_xiaomi_sm8250 | POCO F3/Redmi K40/Mi 11X (alioth) |
DawfukFR | kernel_oneplus_sm8250 (Stellaris-Kernel) | Oneplus 8 (Instantnoodle), Oneplus 8T (Kebab), Oneplus 8 Pro (Instantnoodlep), Oneplus 9R (lemonades) [msm-4.19] |
Tejas Singh | kernel_xiaomi_ginkgo (Cuh Kernel) | Xiaomi Redmi Note 8/8T (ginkgo/willow) |
Coconutat | android_kernel_xiaomi_ruby_exp | Redmi Note 12 Pro / Pro+ For MIUI 14 |
Coconutat | android_kernel_xiaomi_sdm845_exp | Xiaomi Mi 8 Pro(UD)[equuleus]/Explorer Edition[ursa] |
Abdul Wahid Khan | kernel_xiaomi_begonia | Redmi Note 8 Pro (Begonia/Begoniain) |
Abdul Wahid Khan | kernel_xiaomi_marble | Xiaomi Poco F5 / Redmi Note 12 Turbo (Marble) |
zfdx123 | kernel_xiaomi_alioth | Redmi K40 (alioth) |
wxt1221 | android_kernel_oneplus_sdm845 | Oneplus 6 (enchilada) | Oneplus 6T (fajita) with no Retrofit Dynamic Partitions |
zharzinhoo | Kernel-Oriente-Guamp | Moto g9 play |
hc841 | NovaCore_kernel | Moto g9 play |
zlm324 | android_kernel_xiaomi_msm8998_ksu | a lineage kernel forked from LineageOS official repository, version 4.4.302, added ksu. |
zlm324 | android_kernel_xiaomi_msm8953_ksu | Xiaomi 5X (tiffany) |
Vincent4440 | android_kernel_xiaomi_sm8250 | Poco F4: munch |
zharzinhoo | android_kernel_motorola_cebu | Moto g9 power |
tiandoufayale | android_kernel_samsung_sm8250 | Samsung Tab S7 WIFI(T870) |
starmoe | android_kernel_oneplus_msm8998 | Oneplus 5/5T, kernel version 4.4.302 |
KernelSU 是 Android GKI 裝置的 Root 解決方案,它以核心模式運作,並直接在核心空間中為使用者空間應用程式授予 Root 權限。
KernelSU 的主要功能是它是以核心為基礎的。 KernelSU 在核心空間中執行,所以它可以向我們提供從未有過的核心介面。例如,我們可以在核心模式中為任何處理程序新增硬體中斷點;我們可以在任何處理程序的實體記憶體中存取,而無人知曉;我們可以在核心空間攔截任何系統呼叫;等等。
KernelSU 還提供了一個以 overlayfs 為基礎的模組系統,允許您將自訂外掛程式載入到系統中。它還提供了一種修改 /system 分割區中檔案的機制。
請參閱:安裝
请參閱:如何建置
KernelSU 以 Linux 核心模式運作,對使用者空間有更強的掌控。
僅有被授予 Root 權限的應用程式才可存取 `su`,而其他應用程式完全無法知悉。
KernelSU 支援透過 overlayfs 修改 /system,它甚至可以使 /system 可寫入。
KernelSU 是 GPL-3 授權下的開放原始碼專案。