diff --git a/404.html b/404.html index 06a7de002ae9..313d05e558f6 100644 --- a/404.html +++ b/404.html @@ -12,7 +12,7 @@
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.

Released under the GPL3 License.

- diff --git a/guide/app-profile.html b/guide/app-profile.html index 89af955454b2..1cd1cd11b570 100644 --- a/guide/app-profile.html +++ b/guide/app-profile.html @@ -19,7 +19,7 @@ enforce app1 typeattribute app1 mlstrustedsubject allow app1 * * *

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.

Escalation

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:

  1. The first su execution is subject to the enforcement of the App Profile and will switch to UID 2000 (adb shell) instead of 0 (root).
  2. The second 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.

Non-Root Profile

Umount Modules

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:

  1. Keep the switch for "umount modules by default" and individually disable the "umount modules" option in the App Profile for apps requiring module loading (acting as a "whitelist").
  2. Disable the switch for "umount modules by default" and individually enable the "umount modules" option in the App Profile for apps requiring module unloading (acting as a "blacklist").

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.

- diff --git a/guide/difference-with-magisk.html b/guide/difference-with-magisk.html index 06e85db5ffd1..3e868f16c48d 100644 --- a/guide/difference-with-magisk.html +++ b/guide/difference-with-magisk.html @@ -15,7 +15,7 @@
Skip to content
On this page

Difference with Magisk

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.

Similarities

  • Module file format: both use zip format to organize modules, and the format of modules is almost the same
  • Module installation directory: both located in /data/adb/modules
  • Systemless: both support modifying /system in a systemless way through modules
  • post-fs-data.sh: the execution time and semantics are exactly the same
  • service.sh: the execution time and semantics are exactly the same
  • system.prop: completely the same
  • sepolicy.rule: completely the same
  • BusyBox: scripts are run in BusyBox with "standalone mode" enabled in both cases

Differences

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:

  • KernelSU modules cannot be installed in Recovery mode.
  • KernelSU modules do not have built-in support for Zygisk (but you can use Zygisk modules through ZygiskOnKernelSU.
  • The method for replacing or deleting files in KernelSU modules is completely different from Magisk. KernelSU does not support the .replace method. Instead, you need to create a same-named file with mknod filename c 0 0 to delete the corresponding file.
  • The directories for BusyBox are different. The built-in BusyBox in KernelSU is located in /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!
  • KernelSU does not support .replace files; however, KernelSU supports the REMOVE and REPLACE variable to remove or replace files and folders.
  • KernelSU adds boot-completed stage to run some scripts on boot completed.
  • KernelSU adds post-mount stage to run some scripts after mounting overlayfs

Released under the GPL3 License.

- diff --git a/guide/faq.html b/guide/faq.html index e92cd4713696..c76d38abc070 100644 --- a/guide/faq.html +++ b/guide/faq.html @@ -15,7 +15,7 @@
Skip to content
On this page

FAQ

Does KernelSU support my device?

First, 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.

Does KernelSU need to unlock Bootloader?

Certainly, yes.

Does KernelSU support modules?

Yes, But it is in early version, it may be buggy. Please wait for it to be stable 😃

Does KernelSU support Xposed?

Yes, Dreamland and TaiChi work now. For LSPosed, you can make it work by Zygisk on KernelSU

Does KernelSU support Zygisk?

KernelSU has no builtin Zygisk support, but you can use Zygisk on KernelSU instead.

Is KernelSU compatible with Magisk?

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.

Will KernelSU substitute Magisk?

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.

Can KernelSU support non GKI devices?

It is possible. But you should download the kernel source and intergrate KernelSU to the source tree and compile the kernel yourself.

Can KernelSU support devices below Android 12?

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:

  1. Devices launched with Android 12 must be supported.
  2. Devices with has an old kernel (Some Android 12 devices is also old kernel) is compatable (You should build kernel yourself)

Can KernelSU support old kernel?

It is possible, KernelSU is backported to kernel 4.14 now, for older kernel, you need to backport it manully and PRs welcome!

How to integrate KernelSU for old kernel?

Please refer guide

Why my Android version is 13, and the kernel shows "android12-5.10"?

The Kernel version has nothing to do with Android version, if you need to flash kernel, always use the kernel version, Android version is not so important.

Is there any --mount-master/global mount namespace in KernelSU?

There isn't now(maybe in the future), But there are many ways to switch to global mount namespace manully, such as:

  1. nsenter -t 1 -m sh to get a shell in global mount namespace.
  2. Add nsenter --mount=/proc/1/ns/mnt to the command you want to execute, then the command is executed in global mount namespace. KernelSU is also using this way

I am GKI1.0, can i use this?

GKI1 is completely different from GKI2, you must compile kernel by yourself.

Released under the GPL3 License.

- diff --git a/guide/hidden-features.html b/guide/hidden-features.html index 3deeef15273f..1d1af22b8159 100644 --- a/guide/hidden-features.html +++ b/guide/hidden-features.html @@ -15,7 +15,7 @@
Skip to content
On this page

Hidden Features

.ksurc

By default, /system/bin/sh loads /system/etc/mkshrc.

You can make su load customized rc file by creating a /data/adb/ksu/.ksurc file.

Released under the GPL3 License.

- diff --git a/guide/how-to-build.html b/guide/how-to-build.html index bf7c61a48355..86043460f389 100644 --- a/guide/how-to-build.html +++ b/guide/how-to-build.html @@ -18,7 +18,7 @@ mv <kernel_manifest.xml> .repo/manifests repo init -m manifest.xml repo sync

The <kernel_manifest.xml> is a manifest file which can determine a build uniquely, you can use the manifest to do a re-preducable build. You should download the manifest file from Google GKI release builds

Build

Please check the official docs first.

For example, we need to build aarch64 kernel image:

sh
LTO=thin BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh

Don't forget to add the LTO=thin flag, otherwise the build may fail if your computer's memory is less then 24Gb.

Starting from Android 13, the kernel is built by bazel:

sh
tools/bazel build --config=fast //common:kernel_aarch64_dist

Build Kernel with KernelSU

If you can build the kernel successfully, then build KernelSU is so easy, Select any one run in Kernel source root dir:

sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -
sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main
sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.5.2

And then rebuild the kernel and you will get a kernel image with KernelSU!

- diff --git a/guide/how-to-integrate-for-non-gki.html b/guide/how-to-integrate-for-non-gki.html index edb7e2de0f72..baad8e569b5a 100644 --- a/guide/how-to-integrate-for-non-gki.html +++ b/guide/how-to-integrate-for-non-gki.html @@ -166,7 +166,7 @@ if (disposition != INPUT_IGNORE_EVENT && type != EV_SYN) add_input_randomness(type, code, value);

Finally, build your kernel again, KernelSU should work well.

- diff --git a/guide/installation.html b/guide/installation.html index f68d61f39a37..c01177c04b10 100644 --- a/guide/installation.html +++ b/guide/installation.html @@ -17,7 +17,7 @@
Skip to content
On this page

Installation

Check if your device is supported

Download KernelSU manager APP from GitHub Releases or Coolapk market, and install it to your device:

  • If the app shows Unsupported, it means You should compile the kernel yourself, KernelSU won't and never provide a boot image for you to flash.
  • If the app shows Not installed, then your devices is officially supported by KernelSU.

INFO

For devices showing Unsupported, here is an Unofficially-support-devices, you can compile the kernel yourself.

Backup stock boot.img

Before flashing, you must first backup your stock boot.img. If you encounter any bootloop, you can always restore the system by flashing back to the stock factory boot using fastboot.

WARNING

Flashing may cause data loss, be sure to do this step well before proceeding to the next step!! You can also back up all the data on your phone if necessary.

Necessary knowledge

ADB and fastboot

By default, you will use ADB and fastboot tools in this tutorial, so if you don't know them, we recommend using a search engine to learn about them first.

KMI

Kernel Module Interface (KMI), kernel versions with the same KMI are compatible This is what "general" means in GKI; conversely, if the KMI is different, then these kernels are not compatible with each other, and flashing a kernel image with a different KMI than your device may cause a bootloop.

Specifically, for GKI devices, the kernel version format should be as follows:

txt
KernelRelease :=
 Version.PatchLevel.SubLevel-AndroidRelease-KmiGeneration-suffix
 w      .x         .y       -zzz           -k            -something

w.x-zzz-k is the KMI version. For example, if a device kernel version is 5.10.101-android12-9-g30979850fc20, then its KMI is 5.10-android12-9; theoretically, it can boot up normally with other KMI kernels.

TIP

Note that the SubLevel in the kernel version is not part of the KMI! That means that 5.10.101-android12-9-g30979850fc20 has the same KMI as 5.10.137-android12-9-g30979850fc20!

Kernel version vs. Android version

Please note: Kernel version and Android version are not necessarily the same!

If you find that your kernel version is android12-5.10.101, but your Android system version is Android 13 or other; please don't be surprised, because the version number of the Android system is not necessarily the same as the version number of the Linux kernel; The version number of the Linux kernel is generally consistent with the version of the Android system that comes with the device when it is shipped. If the Android system is upgraded later, the kernel version will generally not change. If you need to flash, please always refer to the kernel version!!

Introduction

There are several installation methods for KernelSU, each suitable for a different scenario, so please choose as needed.

  1. Install with custom Recovery (e.g. TWRP)
  2. Install with a kernel flash app, such as Franco Kernel Manager
  3. Install with fastboot using the boot.img provided by KernelSU
  4. Repair the boot.img manually and install it

Install with custom Recovery

Prerequisite: Your device must have a custom Recovery, such as TWRP; if not or only official Recovery is available, use another method.

Step:

  1. From the Release page of KernelSU, download the zip package starting with AnyKernel3 that matches your phone version; for example, the phone kernel version is android12-5.10. 66, then you should download the file AnyKernel3-android12-5.10.66_yyyy-MM.zip (where yyyy is the year and MM is the month).
  2. Reboot the phone into TWRP.
  3. Use adb to put AnyKernel3-*.zip into the phone /sdcard and choose to install it in the TWRP GUI; or you can directly adb sideload AnyKernel-*.zip to install.

PS. This method is suitable for any installation (not limited to initial installation or subsequent upgrades), as long as you use TWRP.

Install with Kernel Flasher

Prerequisite: Your device must be rooted. For example, you have installed Magisk to get root, or you have installed an old version of KernelSU and need to upgrade to another version of KernelSU; if your device is not rooted, please try other methods.

Step:

  1. Download the AnyKernel3 zip; refer to the section Installing with Custom Recovery for downloading instructions.
  2. Open the Kernel Flash App and use the provided AnyKernel3 zip to flash.

If you haven't used the Kernel flash App before, the following are the more popular ones.

  1. Kernel Flasher
  2. Franco Kernel Manager
  3. Ex Kernel Manager

PS. This method is more convenient when upgrading KernelSU and can be done without a computer (backup first!). .

Install with boot.img provided by KernelSU

This method does not require you to have TWRP, nor does it require your phone to have root privileges; it is suitable for your first installation of KernelSU.

Find proper boot.img

KernelSU provides a generic boot.img for GKI devices and you should flush the boot.img to the boot partition of the device.

You can download boot.img from GitHub Release, please note that you should use the correct version of boot.img. For example, if your device displays the kernel android12-5.10.101 , you need to download android-5.10.101_yyyy-MM.boot-<format>.img. (Keep KMI consistent!)

Where <format> refers to the kernel compression format of your official boot.img, please check the kernel compression format of your original boot.img, you should use the correct format, e.g. lz4, gz; if you use an incorrect compression format, you may encounter bootloop.

INFO

  1. You can use magiskboot to get the compression format of your original boot; of course you can also ask other, more experienced kids with the same model as your device. Also, the compression format of the kernel usually does not change, so if you boot successfully with a certain compression format, you can try that format later.
  2. Xiaomi devices usually use gz or uncompressed.
  3. For Pixel devices, follow below instructions.

flash boot.img to device

Use adb to connect your device, then execute adb reboot bootloader to enter fastboot mode, then use this command to flash KernelSU:

sh
fastboot flash boot boot.img

INFO

If your device supports fastboot boot, you can first use fastboot boot boot.img to try to use boot.img to boot the system first. If something unexpected happens, restart it again to boot.

reboot

After flashing is complete, you should reboot your device:

sh
fastboot reboot

Patch boot.img manually

For some devices, the boot.img format is not so common, such as not lz4, gz and uncompressed; the most typical is Pixel, its boot.img format is lz4_legacy compressed, ramdisk may be gz may also be lz4_legacy compression; at this time, if you directly flash the boot.img provided by KernelSU, the phone may not be able to boot; at this time, you can manually patch the boot.img to achieve.

There are generally two patch methods:

  1. Android-Image-Kitchen
  2. magiskboot

Among them, Android-Image-Kitchen is suitable for operation on PC, and magiskboot needs the cooperation of mobile phone.

Preparation

  1. Get your phone's stock boot.img; you can get it from your device manufacturers, you may need payload-dumper-go
  2. Download the AnyKernel3 zip file provided by KernelSU that matches the KMI version of your device (you can refer to the Install with custom Recovery).
  3. Unpack the AnyKernel3 package and get the Image file, which is the kernel file of KernelSU.

Using Android-Image-Kitchen

  1. Download Android-Image-Kitchen to your computer.
  2. Put stock boot.img to Android-Image-Kitchen's root folder.
  3. Execute ./unpackimg.sh boot.img at root directory of Android-Image-Kitchen, this command would unpack boot.img and you will get some files.
  4. Replace boot.img-kernel in the split_img directory with the Image you extracted from AnyKernel3 (note the name change to boot.img-kernel).
  5. Execute ./repackimg.sh at root directory of 在 Android-Image-Kitchen; And you will get a file named image-new.img; Flash this boot.img by fastboot(Refer to the previous section).

Using magiskboot

  1. Download latest Magisk from Release Page
  2. Rename Magisk-*.apk to Magisk-vesion.zip and unzip it.
  3. Push Magisk-v25.2/lib/arm64-v8a/libmagiskboot.so to your device by adb: adb push Magisk-v25.2/lib/arm64-v8a/libmagiskboot.so /data/local/tmp/magiskboot
  4. Push stock boot.img and Image in AnyKernel3 to your device.
  5. Enter adb shell and cd /data/local/tmp/ directory, then chmod +x magiskboot
  6. Enter adb shell and cd /data/local/tmp/ directory, execute ./magiskboot unpack boot.img to unpack boot.img, you will get a kernel file, this is your stock kernel.
  7. Replace kernel with Image: mv -f Image kernel
  8. Execute ./magiskboot repack boot.img to repack boot img, and you will get a new-boot.img file, flash this file to device by fastboot.

Other methods

In fact, all these installation methods have only one main idea, which is to replace the original kernel for the one provided by KernelSU; as long as this can be achieved, it can be installed; for example, the following are other possible methods.

  1. First install Magisk, get root privileges through Magisk and then use the kernel flasher to flash in the AnyKernel zip from KernelSU.
  2. Use some flashing toolkit on PCs to flash in the kernel provided KernelSU.

Released under the GPL3 License.

- diff --git a/guide/module.html b/guide/module.html index c45371dbffb6..d93835574088 100644 --- a/guide/module.html +++ b/guide/module.html @@ -97,7 +97,7 @@ set_perm file owner group filepermission context for all directories in <directory> (including itself), it will call: set_perm dir owner group dirpermission context

Boot scripts

In KernelSU, scripts are divided into two types based on their running mode: post-fs-data mode and late_start service mode:

In KernelSU, startup scripts are divided into two types based on their storage location: general scripts and module scripts:

All boot scripts will run in KernelSU's BusyBox ash shell with "Standalone Mode" enabled.

- diff --git a/guide/rescue-from-bootloop.html b/guide/rescue-from-bootloop.html index 05f782a84b19..42bcd53b1948 100644 --- a/guide/rescue-from-bootloop.html +++ b/guide/rescue-from-bootloop.html @@ -15,7 +15,7 @@
Skip to content
On this page

Rescue from bootloop

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.

Brick by flashing boot partition

In KernelSU, the following situations may cause boot brick when flashing the boot partition:

  1. You flashed a boot image in the wrong format. For example, if your phone's boot format is gz, but you flashed an lz4 format image, then the phone will not be able to boot.
  2. Your phone needs to disable AVB verification in order to boot properly (usually requiring wiping all data on the phone).
  3. Your kernel has some bugs or is not suitable for your phone to flash.

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.

Brick by modules

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!

Normal modules

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:

  1. AB update
  2. Rescue by pressing Volume Down

AB update

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.

Rescue by pressing Volume Down

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:

  1. The built-in Safe Mode of some systems; some systems have a built-in Safe Mode that can be accessed by long-pressing the volume down button, while others (such as MIUI) can enable Safe Mode in Recovery. When entering the system's Safe Mode, KernelSU will also enter Safe Mode and automatically disable modules.
  2. The built-in Safe Mode of KernelSU; the operation method is to press the volume down key continuously for more than three times after the first boot screen. Note that it is press-release, press-release, press-release, not press and hold.

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.

Malicious modules

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:

  1. Wipe the data and flash the official system.
  2. Consult the after-sales service.

Released under the GPL3 License.

- diff --git a/guide/unofficially-support-devices.html b/guide/unofficially-support-devices.html index 5b6e9ef27d99..cf6cae1e0947 100644 --- a/guide/unofficially-support-devices.html +++ b/guide/unofficially-support-devices.html @@ -16,7 +16,7 @@
Skip to content
On this page

Unofficially Supported Devices

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.

MaintainerRepositorySupport devices
diphonsD8G_Kernel_oxygenPoco F3: alioth | Poco F4: munch | MI10T/PRO: Apollo
diphonsD8G_Kernel_SM8150Poco X3 Pro: Vayu | Bhima
diphonsD8G_Kernel_SDM845Poco F1 | MI8 | MiMix2S
diphonsD8G_Kernel_SM8350Vili
diphonsD8G_Kernel_MarblePoco F5 | Redmi Note 12 Turbo | Marble
th1nhhdkandroid_kernel_sony_sm8250-kernelsuSony Xperia 1 II | Sony Xperia 5 II
akash07knexus_kernel_xiaomi_sm8250Poco F4: munch
HMTheBoy154Darkmatter-kernelGeneric x86_64 devices running Android-x86
Asuka-mioandroid_kernel_xiaomi_casMi 10 Ultra: cas
xiaoleGunMiku_kernel_xiaomi_waynewayne
YamazakuraHkernel_xiaomi_cepheuscepheus for pixel experience
SakuraNotStupidandroid_kernel_xiaomi_sdm710Xiaomi MI 8 SE(sirius/xmsirius)
Aquarius223(paper)android_kernel_xiaomi_msm8998MI 6 (sagit) and MIX 2 (chiron) for LineageOS
SlackerStateandroid_kernel_xiaomi_sm6150Redmi K30 4G (phoenix)
RooGhz720kernel_xiaomi_sm6150REDMI NOTE 10 PRO (sweet)
OnlyTomInSecondandroid_kernel_xiaomi_sdm845Mi 8 (dipper) for LineageOS
Rohail33RealKing KernelApollo(Redmi K30S Ultra/Mi 10T/Mi 10T Pro),Alioth(Redmi K40/POCO F3/Mi 11X),Munch(Redmi K40S/POCO F4), both MIUI and AOSP.
lateautumn233android_kernel_oneplus_sm8250OnePlus 8 Serials
Sreeshankar KNeverSettle KernelOnePlus Nord (avicii)
Molyuuneko_kernel_xiaomi_gauguinRedmi Note 9 Pro/ Mi 10T Lite/ Mi 10i
guh0613android_kernel_oppo_sm8150OPPO Reno Ace (OP4A89)
LeviMarvinandroid_kernel_xiaomi_aliothRedmi K40 / POCO F3
cibimokernel_xiaomi_raphael_ksuXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
EndCreditskernel_xiaomi_sm7250Redmi K30 5G ( picasso ) , Redmi K30i 5G ( picasso_48m)
msnxandroid-msm-coral-4.14-android13Pixel 4 XL
SoDebugkernel_xiaomi_raphaelXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
H1mJTkernel_realme_RMX1901Realme X (RMX1901/RMX1901CN)
SonalSingh18android_kernel_xiaomi_sm6250Miatoll [curtana, excalibur, gram, joyeuse]
RooGhz720kernel_xiaomi_lavenderRedmi Note 7 (Lavender)
JunASAKAkernel_google_msm-4.9_KernelSUGoogle Pixel 3a & 3a XL (sargo & bonito)
RooGhz720kernel_asus_X01BDAsus Zenfone Max Pro M1/M2
Evans Mikekernel_xiaomi_raphael_bool-xXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
easterNdayKSU_Thyme_BuildBotXiaomi 10S
tedomi2705kernel_xiaomi_sdm660Xiaomi Redmi Note 6 Pro (tulip)
RyuujiXandroid_kernel_asus_sdm660-4.19Asus Zenfone Max Pro M1 (X00TD)/ M2 (X01BD) (Linux 4.19)
liqidecgandroid_kernel_xiaomi_sdm710Mi 8 SE (sirius) (Linux 4.9)
Abdelhay-Aliandroid_kernel_huawei_hi6250Huawei P20 lite (hi6250) (Linux 4.9)
reocatandroid_kernel_nokia_sdm660_ksuNokia 6.1 (2018)
Tuan Anhkernel_nokia_msm8998Nokia 8 (Repartitioned)/8 Sirocco (NLA/A1N)
bggRGjQaUbCoEandroid_kernel_samsung_sm8250Samsung Galaxy S20+ 5G (y2q)
SOVIET-ANDROIDkernel_xiaomi_raphaelXK20 Pro Raphael DSP & A only SAR support
Coconutatandroid_kernel_huawei_vtr_emui9_KernelSUHuawei P10,P10 Plus,Mate9,Mate9 Pro(Kirin960 Series),Stable For GSI
dabao1955android_kernel_OPPO_PEQM00MediaTek devices in the OPPO Reno series on ColorOS13.x
Aflaungosandroid_kernel_motorola_msm8998Moto G6 Plus (evert)
TheNoFacekernel_oneplus_msm8998OnePlus 5/5T (cheeseburger/dumpling)
Nipin NA (Joker-V2)Xcalibur kernel (violet)Xiaomi Redmi Note 7 Pro (violet)
Sr-Hankernel_xiaomi_mojitoRedmi Note 10 (Sunny/Mojito)
dabao1955android_kernel_OPPO_OP4ED5OPPO Reno6 on ColorOS11.x/ColorOS12.x,kernel version4.14.186+
rushiranpiseandroid_kernel_samsung_exynos9610_mintKernel 4.14.194 exynos9610 Non-GKI Device, Added KernelSu using manual method
CN-Scarspixel_experience_kernel_xiaomi_sm8250_kernelSUPixel Experience Kernel 4.19.282 for Xiaomi Redmi K40S / Xiaomi Poco F4 (munch)
exerMiyo TokuSony Tama (akari, apollo, aurora, akatsuki) (Linux 4.9)
likkaiQuicksilver KernelXiaomi 11 Lite 5G NE (lisa)
awakened1712android_kernel_samsung_exynos9820Samsung S10/N10
awakened1712android_kernel_oneplus_sm8350Oneplus 9/9Pro
siimsekLightning KernelXiaomi Redmi Note 8/8T (ginkgo/willow)
GiovanYCringekernel_a50Galaxy A50 (A505f,fn,g,gn,gt)
Asriadi Rahimandroid_kernel_google_wahooGoogle Pixel 2/2XL
Flameandroid_kernel_xiaomi_sm8250POCO F3/Redmi K40/Mi 11X (alioth)
DawfukFRkernel_oneplus_sm8250 (Stellaris-Kernel)Oneplus 8 (Instantnoodle), Oneplus 8T (Kebab), Oneplus 8 Pro (Instantnoodlep), Oneplus 9R (lemonades) [msm-4.19]
Tejas Singhkernel_xiaomi_ginkgo (Cuh Kernel)Xiaomi Redmi Note 8/8T (ginkgo/willow)
Coconutatandroid_kernel_xiaomi_ruby_expRedmi Note 12 Pro / Pro+ For MIUI 14
Coconutatandroid_kernel_xiaomi_sdm845_expXiaomi Mi 8 Pro(UD)[equuleus]/Explorer Edition[ursa]
Abdul Wahid Khankernel_xiaomi_begoniaRedmi Note 8 Pro (Begonia/Begoniain)
Abdul Wahid Khankernel_xiaomi_marbleXiaomi Poco F5 / Redmi Note 12 Turbo (Marble)
zfdx123kernel_xiaomi_aliothRedmi K40 (alioth)
wxt1221android_kernel_oneplus_sdm845Oneplus 6 (enchilada) | Oneplus 6T (fajita) with no Retrofit Dynamic Partitions
zharzinhooKernel-Oriente-GuampMoto g9 play
hc841NovaCore_kernelMoto g9 play
zlm324android_kernel_xiaomi_msm8998_ksua lineage kernel forked from LineageOS official repository, version 4.4.302, added ksu.
zlm324android_kernel_xiaomi_msm8953_ksuXiaomi 5X (tiffany)
Vincent4440android_kernel_xiaomi_sm8250Poco F4: munch
zharzinhooandroid_kernel_motorola_cebuMoto g9 power
tiandoufayaleandroid_kernel_samsung_sm8250Samsung Tab S7 WIFI(T870)
starmoeandroid_kernel_oneplus_msm8998Oneplus 5/5T, kernel version 4.4.302

Released under the GPL3 License.

- diff --git a/guide/what-is-kernelsu.html b/guide/what-is-kernelsu.html index e7b21f8563a7..210e4278e278 100644 --- a/guide/what-is-kernelsu.html +++ b/guide/what-is-kernelsu.html @@ -15,7 +15,7 @@
Skip to content
On this page

What is KernelSU?

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.

Features

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.

How to use

Please refer: Installation

How to build

How to build

Discussion

Released under the GPL3 License.

- diff --git a/hashmap.json b/hashmap.json index 5dfdbb84c439..1a8ce61403b0 100644 --- a/hashmap.json +++ b/hashmap.json @@ -1 +1 @@ -{"guide_difference-with-magisk.md":"869f5d82","guide_installation.md":"ec5f3b13","guide_module.md":"0288d934","guide_rescue-from-bootloop.md":"86b40f3b","ja_jp_guide_hidden-features.md":"9c5dddb2","id_id_guide_difference-with-magisk.md":"0aaca6ef","guide_what-is-kernelsu.md":"340bbd63","id_id_guide_how-to-build.md":"1ecedb69","id_id_guide_how-to-integrate-for-non-gki.md":"16b9216a","id_id_guide_installation.md":"a7bb551d","ja_jp_guide_unofficially-support-devices.md":"06897d4a","ja_jp_guide_what-is-kernelsu.md":"779775a2","pt_br_guide_app-profile.md":"7a2ced3a","ja_jp_index.md":"be3c7573","pt_br_guide_difference-with-magisk.md":"92ea83b4","pt_br_guide_faq.md":"bfc97031","pt_br_guide_hidden-features.md":"df3f1d4b","pt_br_guide_how-to-build.md":"50a0b380","pt_br_guide_how-to-integrate-for-non-gki.md":"9373963e","pt_br_guide_installation.md":"8193d15a","id_id_guide_faq.md":"8fe1170a","pt_br_guide_rescue-from-bootloop.md":"f4a13bcd","pt_br_guide_module.md":"3c459c0f","id_id_guide_unofficially-support-devices.md":"70457e3b","index.md":"042b4c20","guide_app-profile.md":"9faae288","guide_faq.md":"4a5fa376","guide_how-to-build.md":"cf9f2c40","guide_hidden-features.md":"45e791e6","ja_jp_guide_installation.md":"2cc6f4de","id_id_index.md":"9ad2e601","guide_how-to-integrate-for-non-gki.md":"35d629c6","id_id_guide_what-is-kernelsu.md":"aee47f37","ru_ru_guide_rescue-from-bootloop.md":"d9d6936e","ru_ru_guide_unofficially-support-devices.md":"1021e8d6","ru_ru_index.md":"4f8b1975","vi_vn_guide_difference-with-magisk.md":"16f29788","vi_vn_guide_faq.md":"ef1e0e86","vi_vn_guide_how-to-build.md":"f5e5323c","vi_vn_guide_app-profile.md":"37d09526","ru_ru_guide_what-is-kernelsu.md":"b17b08a8","vi_vn_guide_installation.md":"7fef5e5e","vi_vn_guide_hidden-features.md":"fca4632f","vi_vn_guide_how-to-integrate-for-non-gki.md":"9b3f1403","vi_vn_guide_module.md":"a6a2e6fc","vi_vn_guide_unofficially-support-devices.md":"51220c54","vi_vn_index.md":"a84edf49","vi_vn_guide_what-is-kernelsu.md":"bea8d4b7","zh_cn_guide_difference-with-magisk.md":"401c4c2d","zh_cn_guide_hidden-features.md":"cdd5624f","zh_cn_guide_app-profile.md":"557e9b58","ru_ru_guide_hidden-features.md":"395803e0","zh_cn_guide_faq.md":"0939b2cb","zh_cn_guide_installation.md":"612797b7","zh_cn_guide_how-to-build.md":"f4f2a6dd","ru_ru_guide_how-to-build.md":"1b3dd3fb","id_id_guide_module.md":"372def27","pt_br_guide_what-is-kernelsu.md":"b42bbc04","ru_ru_guide_module.md":"015ebdb2","ru_ru_guide_installation.md":"bd641868","zh_cn_guide_module.md":"66de1042","ru_ru_guide_faq.md":"6785049e","ru_ru_guide_app-profile.md":"8936210e","pt_br_guide_unofficially-support-devices.md":"1fdead1e","pt_br_index.md":"a1524471","ja_jp_guide_faq.md":"94dc4bed","ru_ru_guide_difference-with-magisk.md":"d39f4b2d","zh_cn_guide_how-to-integrate-for-non-gki.md":"891eeb81","ru_ru_guide_how-to-integrate-for-non-gki.md":"7c70c478","id_id_guide_rescue-from-bootloop.md":"ec3ef7ee","ja_jp_guide_difference-with-magisk.md":"150a386f","ja_jp_guide_module.md":"111a0bd0","zh_cn_guide_unofficially-support-devices.md":"bb2d3146","zh_tw_guide_faq.md":"c68533d0","zh_tw_guide_hidden-features.md":"f0bea9ae","zh_tw_guide_module.md":"c6111b20","zh_tw_guide_how-to-build.md":"ef330d07","zh_tw_guide_how-to-integrate-for-non-gki.md":"e3487c4d","zh_tw_guide_installation.md":"0f23d3bf","guide_unofficially-support-devices.md":"0356a347","ja_jp_guide_rescue-from-bootloop.md":"d26f95c4","zh_tw_guide_rescue-from-bootloop.md":"db20cf2e","zh_tw_guide_unofficially-support-devices.md":"b63896b9","zh_tw_guide_what-is-kernelsu.md":"a2ba0439","zh_cn_guide_rescue-from-bootloop.md":"3d907e03","vi_vn_guide_rescue-from-bootloop.md":"d796809c","zh_tw_guide_difference-with-magisk.md":"4315a5ce","zh_cn_index.md":"7dc4034d","zh_cn_guide_what-is-kernelsu.md":"cdc98b69","zh_tw_index.md":"896578f0"} +{"guide_faq.md":"4a5fa376","id_id_guide_unofficially-support-devices.md":"70457e3b","id_id_index.md":"9ad2e601","id_id_guide_what-is-kernelsu.md":"aee47f37","guide_hidden-features.md":"45e791e6","guide_how-to-build.md":"cf9f2c40","guide_how-to-integrate-for-non-gki.md":"35d629c6","guide_rescue-from-bootloop.md":"86b40f3b","guide_unofficially-support-devices.md":"0356a347","guide_what-is-kernelsu.md":"340bbd63","id_id_guide_difference-with-magisk.md":"0aaca6ef","guide_installation.md":"ec5f3b13","guide_module.md":"0288d934","id_id_guide_installation.md":"a7bb551d","id_id_guide_faq.md":"8fe1170a","ja_jp_guide_unofficially-support-devices.md":"06897d4a","index.md":"042b4c20","ja_jp_guide_difference-with-magisk.md":"150a386f","ja_jp_guide_hidden-features.md":"9c5dddb2","ja_jp_guide_installation.md":"2cc6f4de","ja_jp_guide_module.md":"111a0bd0","ja_jp_guide_rescue-from-bootloop.md":"d26f95c4","id_id_guide_rescue-from-bootloop.md":"ec3ef7ee","id_id_guide_module.md":"372def27","guide_app-profile.md":"9faae288","ru_ru_guide_rescue-from-bootloop.md":"d9d6936e","ru_ru_guide_unofficially-support-devices.md":"1021e8d6","vi_vn_guide_what-is-kernelsu.md":"bea8d4b7","vi_vn_guide_hidden-features.md":"fca4632f","vi_vn_guide_how-to-build.md":"f5e5323c","ja_jp_guide_what-is-kernelsu.md":"779775a2","ja_jp_index.md":"be3c7573","vi_vn_guide_how-to-integrate-for-non-gki.md":"9b3f1403","pt_br_guide_app-profile.md":"7a2ced3a","pt_br_guide_difference-with-magisk.md":"92ea83b4","pt_br_guide_faq.md":"bfc97031","pt_br_guide_hidden-features.md":"df3f1d4b","pt_br_guide_how-to-build.md":"50a0b380","pt_br_guide_how-to-integrate-for-non-gki.md":"9373963e","vi_vn_guide_installation.md":"7fef5e5e","pt_br_guide_installation.md":"8193d15a","pt_br_guide_module.md":"3c459c0f","pt_br_guide_rescue-from-bootloop.md":"f4a13bcd","vi_vn_guide_module.md":"a6a2e6fc","vi_vn_guide_unofficially-support-devices.md":"51220c54","ja_jp_guide_faq.md":"94dc4bed","id_id_guide_how-to-build.md":"1ecedb69","id_id_guide_how-to-integrate-for-non-gki.md":"16b9216a","ru_ru_guide_module.md":"015ebdb2","zh_tw_guide_how-to-integrate-for-non-gki.md":"e3487c4d","ru_ru_guide_how-to-integrate-for-non-gki.md":"7c70c478","pt_br_index.md":"a1524471","ru_ru_guide_app-profile.md":"8936210e","ru_ru_guide_difference-with-magisk.md":"d39f4b2d","vi_vn_guide_app-profile.md":"37d09526","ru_ru_guide_faq.md":"6785049e","vi_vn_guide_difference-with-magisk.md":"16f29788","vi_vn_guide_faq.md":"ef1e0e86","ru_ru_guide_hidden-features.md":"395803e0","ru_ru_guide_how-to-build.md":"1b3dd3fb","ru_ru_guide_installation.md":"bd641868","vi_vn_index.md":"a84edf49","zh_cn_guide_app-profile.md":"557e9b58","zh_cn_guide_difference-with-magisk.md":"401c4c2d","zh_cn_guide_faq.md":"0939b2cb","zh_cn_guide_hidden-features.md":"cdd5624f","zh_cn_guide_how-to-build.md":"f4f2a6dd","zh_cn_guide_how-to-integrate-for-non-gki.md":"891eeb81","zh_cn_guide_installation.md":"612797b7","zh_cn_guide_module.md":"66de1042","zh_cn_guide_rescue-from-bootloop.md":"3d907e03","zh_cn_guide_unofficially-support-devices.md":"bb2d3146","zh_cn_guide_what-is-kernelsu.md":"cdc98b69","zh_cn_index.md":"7dc4034d","zh_tw_guide_difference-with-magisk.md":"4315a5ce","zh_tw_guide_faq.md":"c68533d0","zh_tw_guide_hidden-features.md":"f0bea9ae","zh_tw_guide_how-to-build.md":"ef330d07","zh_tw_guide_installation.md":"0f23d3bf","zh_tw_guide_module.md":"c6111b20","zh_tw_guide_rescue-from-bootloop.md":"db20cf2e","zh_tw_guide_unofficially-support-devices.md":"b63896b9","guide_difference-with-magisk.md":"869f5d82","zh_tw_guide_what-is-kernelsu.md":"a2ba0439","zh_tw_index.md":"896578f0","pt_br_guide_unofficially-support-devices.md":"1fdead1e","ru_ru_guide_what-is-kernelsu.md":"b17b08a8","ru_ru_index.md":"4f8b1975","vi_vn_guide_rescue-from-bootloop.md":"d796809c","pt_br_guide_what-is-kernelsu.md":"b42bbc04"} diff --git a/id_ID/guide/difference-with-magisk.html b/id_ID/guide/difference-with-magisk.html index d2d2475f5d7e..036b7528f8cf 100644 --- a/id_ID/guide/difference-with-magisk.html +++ b/id_ID/guide/difference-with-magisk.html @@ -15,7 +15,7 @@
Skip to content
On this page

Perbedaan dengan Magisk

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.

Kesamaan

  • Format file modul: keduanya menggunakan format zip untuk mengatur modul, dan format modulnya hampir sama
  • Direktori pemasangan modul: keduanya terletak di /data/adb/modules
  • Tanpa sistem: keduanya mendukung modifikasi / sistem dengan cara tanpa sistem melalui modul
  • post-fs-data.sh: waktu eksekusi dan semantiknya persis sama
  • service.sh: waktu eksekusi dan semantiknya persis sama
  • system.prop: sepenuhnya sama
  • sepolicy.rule: sama persis
  • BusyBox: skrip dijalankan di BusyBox dengan "mode mandiri" diaktifkan di kedua kasus

Perbedaan

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:

  • Modul KernelSU tidak dapat diinstal dalam mode Pemulihan.
  • Modul KernelSU tidak memiliki dukungan bawaan untuk Zygisk (tetapi Anda dapat menggunakan modul Zygisk melalui ZygiskOnKernelSU.
  • Metode untuk mengganti atau menghapus file dalam modul KernelSU sama sekali berbeda dari Magisk. KernelSU tidak mendukung metode .replace. Sebagai gantinya, Anda perlu membuat file dengan nama yang sama dengan mknod filename c 0 0 untuk menghapus file terkait.
  • Direktori untuk BusyBox berbeda. BusyBox bawaan di KernelSU terletak di /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!
  • KernelSU tidak mendukung file .replace; namun, KernelSU mendukung variabel REMOVE dan REPLACE untuk menghapus atau mengganti file dan folder.

Rilis Dibawah Lisensi GPL3.

- diff --git a/id_ID/guide/faq.html b/id_ID/guide/faq.html index 347d1e041e06..7fa86dae338e 100644 --- a/id_ID/guide/faq.html +++ b/id_ID/guide/faq.html @@ -15,7 +15,7 @@
Skip to content
On this page

FAQ

Apakah KernelSU mendukung perangkat saya?

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.

Apakah KernelSU membutuhkan buka-bootloader?

Ya, seharusnya.

Apakah KernelSU mendukung modul?

Ya, Tetapi masih dalam versi awal, bisa jadi ngebug. Mohon tunggu sampai semuanya stabil 😃

Apakah KernelSU mendukung Xposed?

Ya, Dreamland dan TaiChi sekarang bekerja sebagian, Dan kita sedang mencoba untuk membuat Xposed Framework lainnya bekerja.

Apakah KernelSU kompatibel dengan Magisk?

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.

Akankah KernelSU menggantikan Magisk?

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.

Dapatkah KernelSU mendukung perangkat non GKI?

Hal ini dimungkinkan. Tetapi Anda harus mengunduh sumber kernel dan mengintegrasikan KernelSU ke source tree dan mengkompilasi kernel sendiri.

Dapatkah KernelSU mendukung perangkat di bawah Android 12?

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:

  1. Perangkat yang diluncurkan dengan Android 12 harus didukung.
  2. Perangkat dengan kernel lama (Beberapa perangkat Android 12 juga memiliki kernel lama) dapat dikompilasi (Anda harus membuat kernel sendiri)

Dapatkah KernelSU mendukung kernel lama?

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!

Cara mengintegrasikan KernelSU untuk kernel lama?

Silakan merujuk ke guide

Rilis Dibawah Lisensi GPL3.

- diff --git a/id_ID/guide/how-to-build.html b/id_ID/guide/how-to-build.html index edc11d2359e2..b44a81191c47 100644 --- a/id_ID/guide/how-to-build.html +++ b/id_ID/guide/how-to-build.html @@ -18,7 +18,7 @@ mv <kernel_manifest.xml> .repo/manifests repo init -m manifest.xml repo sync

<kernel_manifest.xml> adalah berkas manifes yang dapat menentukan build secara unik, Anda dapat menggunakan manifes tersebut untuk melakukan build yang dapat diprediksikan ulang. Anda harus mengunduh berkas manifes dari Google GKI release builds

Build

Silakan periksa official docs terlebih dahulu.

Sebagai contoh, kita perlu build image kernel aarch64:

sh
LTO=thin BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh

Jangan lupa untuk menambahkan flag LTO=thin, jika tidak, maka build akan gagal jika memori komputer Anda kurang dari 24GB.

Mulai dari Android 13, kernel dibuild oleh bazel:

sh
tools/bazel build --config=fast //common:kernel_aarch64_dist

Build Kernel dengan KernelSU

Jika Anda dapat build kernel dengan sukses, maka build KernelSU sangatlah mudah, jalankan perintah ini di root dir kernel source:

sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -
sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main
sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.5.2

Dan kemudian build ulang kernel dan Anda akan mendapatkan image kernel dengan KernelSU!

- diff --git a/id_ID/guide/how-to-integrate-for-non-gki.html b/id_ID/guide/how-to-integrate-for-non-gki.html index bfc789ce8246..9a41374fd2af 100644 --- a/id_ID/guide/how-to-integrate-for-non-gki.html +++ b/id_ID/guide/how-to-integrate-for-non-gki.html @@ -166,7 +166,7 @@ if (disposition != INPUT_IGNORE_EVENT && type != EV_SYN) add_input_randomness(type, code, value);

Terakhir, edit KernelSU/kernel/ksu.c dan beri komentar pada enable_sucompat() lalu build kernel Anda lagi, KernelSU akan bekerja dengan baik.

- diff --git a/id_ID/guide/installation.html b/id_ID/guide/installation.html index bca8a8187892..0cf872873871 100644 --- a/id_ID/guide/installation.html +++ b/id_ID/guide/installation.html @@ -15,7 +15,7 @@
Skip to content
On this page

Instalasi

Periksa apakah perangkat Anda didukung

Unduh aplikasi manajer KernelSU dari github releases atau github actions, lalu instal aplikasi ke perangkat dan buka aplikasi:

  • Jika aplikasi menunjukkan Unsupported, itu berarti Anda harus mengkompilasi kernel sendiri, KernelSU tidak akan dan tidak pernah menyediakan boot image untuk Anda flash.
  • Jika aplikasi menunjukkan Not installed, maka perangkat Anda secara resmi didukung oleh KernelSU.

Temukan boot.img yang tepat

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 lz4gz.

Flash boot.img ke perangkat

Hubungkan perangkat Anda dengan adb lalu jalankan adb reboot bootloader untuk masuk ke mode fastboot, lalu gunakan perintah ini untuk mem-flash KernelSU:

sh
fastboot flash boot boot.img

Reboot

Ketika di-flash, Anda harus menyalakan ulang perangkat Anda:

sh
fastboot reboot

Rilis Dibawah Lisensi GPL3.

- diff --git a/id_ID/guide/module.html b/id_ID/guide/module.html index 44ff6f787c23..a2b80916d14c 100644 --- a/id_ID/guide/module.html +++ b/id_ID/guide/module.html @@ -95,7 +95,7 @@ set_perm file owner group filepermission context for all directories in <directory> (including itself), it will call: set_perm dir owner group dirpermission context

Boot scripts

Di KernelSU, skrip dibagi menjadi dua jenis berdasarkan mode operasinya: mode post-fs-data dan mode layanan late_start:

Di KernelSU, skrip startup dibagi menjadi dua jenis berdasarkan lokasi penyimpanannya: skrip umum dan skrip modul:

Semua skrip boot akan berjalan di shell BusyBox ash KernelSU dengan "Mode Mandiri" diaktifkan.

- diff --git a/id_ID/guide/rescue-from-bootloop.html b/id_ID/guide/rescue-from-bootloop.html index fb1350754af2..b6e7aea09bc9 100644 --- a/id_ID/guide/rescue-from-bootloop.html +++ b/id_ID/guide/rescue-from-bootloop.html @@ -15,7 +15,7 @@
Skip to content
On this page

Recovery dari bootloop

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".

Brick saat memflash partisi boot

Di KernelSU, situasi berikut dapat menyebabkan bata boot saat mem-flash partisi boot:

  1. Anda mem-flash image boot dalam format yang salah. Misalnya, jika format booting ponsel Anda adalah gz, tetapi Anda mem-flash image berformat lz4, maka ponsel tidak akan dapat melakukan booting.
  2. Ponsel Anda perlu menonaktifkan verifikasi AVB agar dapat boot dengan benar (biasanya perlu menghapus semua data di ponsel).
  3. Kernel Anda memiliki beberapa bug atau tidak cocok untuk flash ponsel Anda.

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.

Brick disebabkan modul

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!

Module normal

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:

  1. Pembaruan AB
  2. Selamatkan dengan menekan Volume Turun

Pembaruan AB

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.

Recovery dengan menekan Volume Bawah

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:

  1. Mode Aman bawaan dari beberapa sistem; beberapa sistem memiliki Safe Mode bawaan yang dapat diakses dengan menekan lama tombol volume turun, sementara yang lain (seperti MIUI) dapat mengaktifkan Safe Mode di Recovery. Saat memasuki Safe Mode sistem, KernelSU juga akan masuk ke Safe Mode dan secara otomatis menonaktifkan modul.
  2. Safe Mode bawaan dari KernelSU; metode pengoperasiannya adalah tekan tombol volume turun secara terus-menerus selama lebih dari tiga kali setelah layar boot pertama. Perhatikan bahwa ini adalah rilis pers, rilis pers, rilis pers, bukan tekan dan tahan.

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.

Module berbahaya

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:

  1. Hapus data dan flash sistem resmi.
  2. Konsultasikan layanan purna jual.

Rilis Dibawah Lisensi GPL3.

- diff --git a/id_ID/guide/unofficially-support-devices.html b/id_ID/guide/unofficially-support-devices.html index 49f7277b4f76..8b4361f330db 100644 --- a/id_ID/guide/unofficially-support-devices.html +++ b/id_ID/guide/unofficially-support-devices.html @@ -16,7 +16,7 @@
Skip to content
On this page

Perangkat Yang Didukung Tidak Resmi

:::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.

:::

PengelolaRepositoryPerangkat yang didukung
diphonsD8G_Kernel_oxygenPoco F3: alioth | Poco F4: munch | MI10T/PRO: Apollo
diphonsD8G_Kernel_SM8150Poco X3 Pro: Vayu | Bhima
diphonsD8G_Kernel_SDM845Poco F1 | MI8 | MiMix2S
diphonsD8G_Kernel_SM8350Vili
diphonsD8G_Kernel_MarblePoco F5 | Redmi Note 12 Turbo | Marble
th1nhhdkandroid_kernel_sony_sm8250-kernelsuSony Xperia 1 II | Sony Xperia 5 II
akash07knexus_kernel_xiaomi_sm8250Poco F4: munch
HMTheBoy154Darkmatter-kernelGeneric x86_64 devices running Android-x86
Asuka-mioandroid_kernel_xiaomi_casMi 10 Ultra: cas
xiaoleGunMiku_kernel_xiaomi_waynewayne
YamazakuraHkernel_xiaomi_cepheuscepheus for pixel experience
SakuraNotStupidandroid_kernel_xiaomi_sdm710Xiaomi MI 8 SE(sirius/xmsirius)
Aquarius223(paper)android_kernel_xiaomi_msm8998MI 6 (sagit) and MIX 2 (chiron) for LineageOS
SlackerStateandroid_kernel_xiaomi_sm6150Redmi K30 4G (phoenix)
RooGhz720kernel_xiaomi_sm6150REDMI NOTE 10 PRO (sweet)
OnlyTomInSecondandroid_kernel_xiaomi_sdm845Mi 8 (dipper) for LineageOS
Rohail33RealKing KernelApollo(Redmi K30S Ultra/Mi 10T/Mi 10T Pro),Alioth(Redmi K40/POCO F3/Mi 11X),Munch(Redmi K40S/POCO F4), both MIUI and AOSP.
lateautumn233android_kernel_oneplus_sm8250OnePlus 8 Serials
Sreeshankar KNeverSettle KernelOnePlus Nord (avicii)
Molyuuneko_kernel_xiaomi_gauguinRedmi Note 9 Pro/ Mi 10T Lite/ Mi 10i
guh0613android_kernel_oppo_sm8150OPPO Reno Ace (OP4A89)
LeviMarvinandroid_kernel_xiaomi_aliothRedmi K40 / POCO F3
cibimokernel_xiaomi_raphael_ksuXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
EndCreditskernel_xiaomi_sm7250Redmi K30 5G ( picasso ) , Redmi K30i 5G ( picasso_48m)
msnxandroid-msm-coral-4.14-android13Pixel 4 XL
SoDebugkernel_xiaomi_raphaelXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
H1mJTkernel_realme_RMX1901Realme X (RMX1901/RMX1901CN)
SonalSingh18android_kernel_xiaomi_sm6250Miatoll [curtana, excalibur, gram, joyeuse]
RooGhz720kernel_xiaomi_lavenderRedmi Note 7 (Lavender)
JunASAKAkernel_google_msm-4.9_KernelSUGoogle Pixel 3a & 3a XL (sargo & bonito)
RooGhz720kernel_asus_X01BDAsus Zenfone Max Pro M1/M2
Evans Mikekernel_xiaomi_raphael_bool-xXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
easterNdayKSU_Thyme_BuildBotXiaomi 10S
tedomi2705kernel_xiaomi_sdm660Xiaomi Redmi Note 6 Pro (tulip)
RyuujiXandroid_kernel_asus_sdm660-4.19Asus Zenfone Max Pro M1 (X00TD)/ M2 (X01BD) (Linux 4.19)
liqidecgandroid_kernel_xiaomi_sdm710Mi 8 SE (sirius) (Linux 4.9)
Abdelhay-Aliandroid_kernel_huawei_hi6250Huawei P20 lite (hi6250) (Linux 4.9)
reocatandroid_kernel_nokia_sdm660_ksuNokia 6.1 (2018)
Tuan Anhkernel_nokia_msm8998Nokia 8 (Repartitioned)/8 Sirocco (NLA/A1N)
bggRGjQaUbCoEandroid_kernel_samsung_sm8250Samsung Galaxy S20+ 5G (y2q)
SOVIET-ANDROIDkernel_xiaomi_raphaelXK20 Pro Raphael DSP & A only SAR support
Coconutatandroid_kernel_huawei_vtr_emui9_KernelSUHuawei P10,P10 Plus,Mate9,Mate9 Pro(Kirin960 Series),Stable For GSI
dabao1955android_kernel_OPPO_PEQM00MediaTek devices in the OPPO Reno series on ColorOS13.x
Aflaungosandroid_kernel_motorola_msm8998Moto G6 Plus (evert)
TheNoFacekernel_oneplus_msm8998OnePlus 5/5T (cheeseburger/dumpling)
Nipin NA (Joker-V2)Xcalibur kernel (violet)Xiaomi Redmi Note 7 Pro (violet)
Sr-Hankernel_xiaomi_mojitoRedmi Note 10 (Sunny/Mojito)
dabao1955android_kernel_OPPO_OP4ED5OPPO Reno6 on ColorOS11.x/ColorOS12.x,kernel version4.14.186+
rushiranpiseandroid_kernel_samsung_exynos9610_mintKernel 4.14.194 exynos9610 Non-GKI Device, Added KernelSu using manual method
CN-Scarspixel_experience_kernel_xiaomi_sm8250_kernelSUPixel Experience Kernel 4.19.282 for Xiaomi Redmi K40S / Xiaomi Poco F4 (munch)
exerMiyo TokuSony Tama (akari, apollo, aurora, akatsuki) (Linux 4.9)
likkaiQuicksilver KernelXiaomi 11 Lite 5G NE (lisa)
awakened1712android_kernel_samsung_exynos9820Samsung S10/N10
awakened1712android_kernel_oneplus_sm8350Oneplus 9/9Pro
siimsekLightning KernelXiaomi Redmi Note 8/8T (ginkgo/willow)
GiovanYCringekernel_a50Galaxy A50 (A505f,fn,g,gn,gt)
Asriadi Rahimandroid_kernel_google_wahooGoogle Pixel 2/2XL
Flameandroid_kernel_xiaomi_sm8250POCO F3/Redmi K40/Mi 11X (alioth)
DawfukFRkernel_oneplus_sm8250 (Stellaris-Kernel)Oneplus 8 (Instantnoodle), Oneplus 8T (Kebab), Oneplus 8 Pro (Instantnoodlep), Oneplus 9R (lemonades) [msm-4.19]
Tejas Singhkernel_xiaomi_ginkgo (Cuh Kernel)Xiaomi Redmi Note 8/8T (ginkgo/willow)
Coconutatandroid_kernel_xiaomi_ruby_expRedmi Note 12 Pro / Pro+ For MIUI 14
Coconutatandroid_kernel_xiaomi_sdm845_expXiaomi Mi 8 Pro(UD)[equuleus]/Explorer Edition[ursa]
Abdul Wahid Khankernel_xiaomi_begoniaRedmi Note 8 Pro (Begonia/Begoniain)
Abdul Wahid Khankernel_xiaomi_marbleXiaomi Poco F5 / Redmi Note 12 Turbo (Marble)
zfdx123kernel_xiaomi_aliothRedmi K40 (alioth)
wxt1221android_kernel_oneplus_sdm845Oneplus 6 (enchilada) | Oneplus 6T (fajita) with no Retrofit Dynamic Partitions
zharzinhooKernel-Oriente-GuampMoto g9 play
hc841NovaCore_kernelMoto g9 play
zlm324android_kernel_xiaomi_msm8998_ksua lineage kernel forked from LineageOS official repository, version 4.4.302, added ksu.
zlm324android_kernel_xiaomi_msm8953_ksuXiaomi 5X (tiffany)
Vincent4440android_kernel_xiaomi_sm8250Poco F4: munch
zharzinhooandroid_kernel_motorola_cebuMoto g9 power
tiandoufayaleandroid_kernel_samsung_sm8250Samsung Tab S7 WIFI(T870)
starmoeandroid_kernel_oneplus_msm8998Oneplus 5/5T, kernel version 4.4.302

Rilis Dibawah Lisensi GPL3.

- diff --git a/id_ID/guide/what-is-kernelsu.html b/id_ID/guide/what-is-kernelsu.html index 92f2587c8022..3297250eec5a 100644 --- a/id_ID/guide/what-is-kernelsu.html +++ b/id_ID/guide/what-is-kernelsu.html @@ -15,7 +15,7 @@
Skip to content
On this page

Apa itu KernelSU?

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

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.

Bagaimana cara menggunakannya

Silakan merujuk ke: Installation

Bagaimana cara men-buildnya

How to build

Diskusi

Rilis Dibawah Lisensi GPL3.

- diff --git a/id_ID/index.html b/id_ID/index.html index 9a5f07911e47..4015d70b1dde 100644 --- a/id_ID/index.html +++ b/id_ID/index.html @@ -15,7 +15,7 @@
Skip to content

KernelSU

Sebuah solusi root kernel-based untuk Android

KernelSU

Kernel-based

KernelSU bekerja dalam mode Linux kernel, dan mempunyai kelebihan diatas aplikasi userspace.

Kontrol akses daftar putih

Hanya aplikasi yang diberikan izin root yang bisa mengakses `su`, aplikasi lain tidak bisa mengakses su.

Dukungan modul

KernelSU mendukung modifikasi /system tanpa-sistem dalam overlayfs, bahkan bisa membuat system dapat ditulis.

Sumber terbuka

KernelSU adalah projek sumber terbuka dibawah lisensi GPL-3.

Rilis Dibawah Lisensi GPL3.

- diff --git a/index.html b/index.html index c92023ba5bf2..e4eef4884a64 100644 --- a/index.html +++ b/index.html @@ -15,7 +15,7 @@
Skip to content

KernelSU

A kernel-based root solution for Android

KernelSU

Kernel-based

As the name suggests, KernelSU works under the Linux kernel giving it more control over userspace applications.

Root Access Control

Only permitted apps may access or see `su`, all other apps are not aware of this.

Customizable Root Privileges

KernelSU allows customization of `su`'s uid, gid, groups, capabilities, and SELinux rules, locking up root privileges.

Modules

Modules may modify /system systemlessly using overlayfs enabling great power.

Released under the GPL3 License.

- diff --git a/ja_JP/guide/difference-with-magisk.html b/ja_JP/guide/difference-with-magisk.html index 91627c15ca25..9a7e97154e47 100644 --- a/ja_JP/guide/difference-with-magisk.html +++ b/ja_JP/guide/difference-with-magisk.html @@ -15,7 +15,7 @@
Skip to content
On this page

Magisk との違い

KernelSU モジュールと Magisk モジュールには多くの共通点がありますが、実装の仕組みが全く異なるため、必然的にいくつかの相違点が存在します。Magisk と KernelSU の両方でモジュールを動作させたい場合、これらの違いを理解する必要があります。

似ているところ

  • モジュールファイルの形式:どちらもzip形式でモジュールを整理しており、モジュールの形式はほぼ同じです。
  • モジュールのインストールディレクトリ:どちらも /data/adb/modules に配置されます。
  • システムレス:どちらもモジュールによるシステムレスな方法で /system を変更できます。
  • post-fs-data.sh: 実行時間と意味は全く同じです。
  • service.sh: 実行時間と意味は全く同じです。
  • system.prop:全く同じです。
  • sepolicy.rule:全く同じです。
  • BusyBox:スクリプトは BusyBox で実行され、どちらの場合も「スタンドアロンモード」が有効です。

違うところ

違いを理解する前に、モジュールが KernelSU で動作しているか Magisk で動作しているかを区別する方法を知っておく必要があります。環境変数 KSU を使うとモジュールスクリプトを実行できるすべての場所 (customize.sh, post-fs-data.sh, service.sh) で区別できます。KernelSU では、この環境変数に true が設定されます。

以下は違いです:

  • KernelSU モジュールは、リカバリーモードではインストールできません。
  • KernelSU モジュールには Zygisk のサポートが組み込まれていません(ただしZygiskOnKernelSUを使うと Zygisk モジュールを使用できます)。
  • KernelSU モジュールにおけるファイルの置換や削除の方法は、Magisk とは全く異なります。KernelSU は .replace メソッドをサポートしていません。その代わり、mknod filename c 0 0 で同名のファイルを作成し、対応するファイルを削除する必要があります。
  • BusyBox 用のディレクトリが違います。KernelSU の組み込み BusyBox は /data/adb/ksu/bin/busybox に、Magisk では /data/adb/magisk/busybox に配置されます。これは KernelSU の内部動作であり、将来的に変更される可能性があることに注意してください!
  • KernelSU は .replace ファイルをサポートしていません。しかし、KernelSU はファイルやフォルダを削除したり置き換えたりするための REMOVEREPLACE 変数をサポートしています。

GPL3 ライセンスでリリースされています。

- diff --git a/ja_JP/guide/faq.html b/ja_JP/guide/faq.html index ea97b50e8bcc..5fe4c1260ce9 100644 --- a/ja_JP/guide/faq.html +++ b/ja_JP/guide/faq.html @@ -15,7 +15,7 @@
Skip to content
On this page

よくある質問

私のデバイスは KernelSU に対応していますか?

まず、お使いのデバイスがブートローダーのロックを解除できる必要があります。もしできないのであれば、サポート外です。

もし KernelSU アプリで「非対応」と表示されたら、そのデバイスは最初からサポートされていないことになりますが、カーネルソースをビルドして KernelSU を組み込むか、非公式の対応デバイスで動作させることが可能です。

KernelSU を使うにはブートローダーのロックを解除する必要がありますか?

はい。

KernelSU はモジュールに対応していますか?

はい。ただし初期バージョンであるためバグがある可能性があります。安定するのをお待ちください。

KernelSU は Xposed に対応していますか?

はい。DreamlandTaiChi が動作します。LSPosed については、Zygisk on KernelSU を使うと動作するようにできます。

KernelSU は Zygisk に対応していますか?

KernelSU は Zygisk サポートを内蔵していません。Zygisk on KernelSU を使ってください。

KernelSU は Magisk と互換性がありますか?

KernelSU のモジュールシステムは Magisk のマジックマウントと競合しており、KernelSU で有効になっているモジュールがある場合、Magisk 全体が動作しなくなります。

しかし、KernelSU の su だけを使うのであれば、Magisk とうまく連携することができます。KernelSU は kernel を、Magisk は ramdisk を修正するため、両者は共存できます。

KernelSU は Magisk の代わりになりますか?

私たちはそうは思っていませんし、それが目標でもありません。Magisk はユーザ空間の root ソリューションとして十分であり、長く使われ続けるでしょう。KernelSU の目標は、ユーザーにカーネルインターフェースを提供することであり、Magisk の代用ではありません。

KernelSU は GKI 以外のデバイスに対応できますか?

可能です。ただしカーネルソースをダウンロードし、KernelSU をソースツリーに統合して、自分でカーネルをビルドする必要があります。

KernelSU は Android 12 以下のデバイスに対応できますか?

KernelSU の互換性に影響を与えるのはデバイスのカーネルであり、Android のバージョンとは無関係です。唯一の制限は、Android 12 で発売されたデバイスはカーネル5.10以上(GKI デバイス)でなければならないことです:

  1. Android 12 をプリインストールして発売された端末は対応しているはずです。
  2. カーネルが古い端末(一部の Android 12 端末はカーネルも古い)は対応可能ですが、カーネルは自分でビルドする必要があります。

KernelSU は古いカーネルに対応できますか?

KernelSU は現在カーネル4.14にバックポートされていますが、それ以前のカーネルについては手動でバックポートする必要があります。プルリクエスト歓迎です!

古いカーネルに KernelSU を組み込むには?

ガイド を参考にしてください。

Android のバージョンが13なのに、カーネルは「android12-5.10」と表示されるのはなぜ?

カーネルのバージョンは Android のバージョンと関係ありません。カーネルを書き込む必要がある場合は、常にカーネルのバージョンを使用してください。Android のバージョンはそれほど重要ではありません。

KernelSU に-mount-master/global のマウント名前空間はありますか?

今はまだありませんが(将来的にはあるかもしれません)、グローバルマウントの名前空間に手動で切り替える方法は、以下のようにたくさんあります:

  1. nsenter -t 1 -m sh でシェルをグローバル名前空間にします。
  2. nsenter --mount=/proc/1/ns/mnt を実行したいコマンドに追加すればグローバル名前空間で実行されます。 KernelSU は このような使い方 もできます。

GKI 1.0 なのですが、使えますか?

GKI1 は GKI2 と全く異なるため、カーネルは自分でビルドする必要があります。

GPL3 ライセンスでリリースされています。

- diff --git a/ja_JP/guide/hidden-features.html b/ja_JP/guide/hidden-features.html index 7d373dd11015..bd50c0f6906d 100644 --- a/ja_JP/guide/hidden-features.html +++ b/ja_JP/guide/hidden-features.html @@ -15,7 +15,7 @@
Skip to content
On this page

隠し機能

.ksurc

デフォルトでは /system/bin/sh/system/etc/mkshrc を読み込みます。

/data/adb/ksu/.ksurc ファイルを作成することで、カスタマイズした rc ファイルを su に読み込ませられます。

GPL3 ライセンスでリリースされています。

- diff --git a/ja_JP/guide/installation.html b/ja_JP/guide/installation.html index c419785fe349..9e058f297a9e 100644 --- a/ja_JP/guide/installation.html +++ b/ja_JP/guide/installation.html @@ -17,7 +17,7 @@
Skip to content
On this page

インストール

デバイスが対応しているか確認する

GitHub Releases または Coolapk market から KernelSU Manager アプリをダウンロードし、お使いのデバイスにインストールしてください。

  • アプリが「非対応」と表示した場合は、自分でカーネルをコンパイルする必要があるという意味です。KernelSU は書き込むためのブートイメージを提供しません。
  • アプリが「未インストール」と表示した場合、お使いのデバイスは KernelSU に対応しています。

ヒント

非対応と表示されているデバイスについては、非公式の対応デバイスであればご自身でカーネルをビルドできます。

純正の boot.img をバックアップ

書き込む前に、まず純正の boot.img をバックアップする必要があります。ブートループが発生した場合は、fastboot を使用して純正のブートイメージを書き込むことでいつでもシステムを復旧できます。

警告

書き込みによりデータ損失を引き起こす可能性があります。次のステップに進む前に、このステップを必ず行うようにしてください!また、可能であればすべてのデータをバックアップしてください。

必要な知識

ADB と fastboot

このチュートリアルでは、デフォルトで ADB と fastboot のツールを使用します。ご存じない方は、まず検索エンジンを使って勉強されることをおすすめします。

KMI

同じ Kernel Module Interface (KMI) のカーネルバージョンは互換性があります。これが GKI の「汎用」という意味です。逆に言えば KMI が異なればカーネルには互換性がなく、お使いのデバイスと異なる KMI のカーネルイメージを書き込むと、ブートループが発生する場合があります。

具体的には GKI デバイスの場合、カーネルバージョンの形式は以下のようになります:

txt
KernelRelease :=
 Version.PatchLevel.SubLevel-AndroidRelease-KmiGeneration-suffix
 w      .x         .y       -zzz           -k            -something

w.x-zzz-k は KMI のバージョンです。例えば、デバイスのカーネルバージョンが 5.10.101-android12-9-g30979850fc20 である場合、その KMIは 5.10-android12-9 であり、理論的には他の KMI カーネルでも正常に起動できます。

ヒント

カーネルバージョンの SubLevel は、KMI の一部ではないことに注意してください。5.10.101-android12-9-g30979850fc205.10.137-android12-9-g30979850fc20 と同じ KMI を持っているということになります。

Kernel バージョンと Android バージョンの違い

注意: カーネルバージョンと Android バージョンは必ずしも同じではありません

カーネルのバージョンは「android12-5.10.101」なのに、Android システムのバージョンは「Android 13」などとなっている場合、驚かないでください。Linux カーネルのバージョン番号は、必ずしもデバイスの出荷時にプリインストールされている Android システムのバージョンと一致していません。Android システムが後でアップグレードされた場合、一般的にはカーネルのバージョンは変更されません。書き込む際は、必ずカーネルバージョンを参照してください!!!

インストール方法

KernelSU のインストール方法はいくつかあり、それぞれ適したシーンが異なりますので、必要に応じて選択してください。

  1. カスタムリカバリー(TWRPなど)でインストールする
  2. Franco Kernel Manager などのカーネル管理アプリでインストールする
  3. KernelSU が提供する boot.img を使用し、fastboot でインストールする
  4. boot.img を手動でパッチしてインストールする

カスタムリカバリーでインストール

前提条件:デバイスに TWRP などのカスタムリカバリーがあること。ない場合、または公式リカバリーしかない場合は他の方法を使用してください。

手順:

  1. KernelSUのリリースページから、お使いのデバイスのバージョンにあった AnyKernel3 で始まる ZIP パッケージをダウンロードします。例えば、デバイスのカーネルのバージョンがandroid12-5.10. 66の場合、AnyKernel3-android12-5.10.66_yyyy-MM.zip(yyyyは年、MMは月)のファイルをダウンロードします。
  2. デバイスを TWRP へ再起動します。
  3. adb を使用して AnyKernel3-*.zip をデバイスの /sdcard に入れ、TWRP GUI でインストールを選択します。または直接adb sideload AnyKernel-*.zip でインストールできます。

この方法は TWRP を使用できるならどのようなインストール(初期インストールやその後のアップグレード)にも適しています。

カーネル管理アプリでインストール

前提条件:お使いのデバイスが root 化されている必要があります。例えば、Magisk をインストールして root を取得した場合、または古いバージョンの KernelSU をインストールしており、別のバージョンの KernelSU にアップグレードする必要がある場合などです。お使いのデバイスが root 化されていない場合、他の方法をお試しください。

手順:

  1. AnyKernel3 ZIP をダウンロードします。ダウンロード方法は、「カスタムリカバリーでインストール」を参照してください。
  2. カーネル管理アプリを開き、AnyKernel3 の ZIP をインストールします。

カーネル管理アプリは以下のようなものが人気です:

  1. Kernel Flasher
  2. Franco Kernel Manager
  3. Ex Kernel Manager

この方法は KernelSU をアップグレードするときに便利で、パソコンがなくてもできます。(まずはバックアップしてください!)

KernelSU が提供する boot.img を使用してインストール

この方法は TWRP や root 権限を必要としないので、KernelSU を初めてインストールする場合に適しています。

正しい boot.img を見つける

KernelSU では、GKI デバイス用の汎用 boot.img を提供しています。デバイスの boot パーティションに boot.img をフラッシュする必要があります。

boot.img は、GitHub Release からダウンロードできます。例えば、あなたのデバイスがカーネル android12-5.10.101 の場合、android-5.10.101_yyyy-MM.boot-<format>.imgをダウンロードする必要があります。(KMI を同じにしてください!)。

<format>は純正 boot.img のカーネル圧縮形式を指します。純正の boot.img のカーネル圧縮形式を確認してください。間違った圧縮形式を使うと、ブートループするかもしれません。

情報

  1. magiskboot を使えば、元のブートの圧縮形式を知ることができます。もちろん、あなたのデバイスと同じモデルを持つ、より経験豊富な他の人にも聞くこともできます。また、カーネルの圧縮形式は通常変更されないので、ある圧縮形式でうまく起動した場合、後でその形式を試すことも可能です。
  2. Xiaomi デバイスでは通常 gz無圧縮が使われます。
  3. Pixel デバイスでは以下の手順に従ってください。

boot.img をデバイスに書き込む

adb でデバイスを接続し、adb reboot bootloader で fastboot モードにし、このコマンドで KernelSU を書き込んでください:

sh
fastboot flash boot boot.img

情報

デバイスが fastboot boot をサポートしている場合、まず fastboot boot.img を使えば書き込みせずにシステムを起動できます。予期せぬことが起こった場合は、もう一度再起動して起動してください。

再起動

書き込みが完了したら、デバイスを再起動します:

sh
fastboot reboot

boot.img を手動でパッチ

デバイスによっては、boot.img のフォーマットが lz4 でない、gz である、無圧縮であるなど、あまり一般的でないことがあります。最も典型的なのは Pixel で、boot.img フォーマットは lz4_legacy 圧縮、RAM ディスクは gzlz4_legacy 圧縮です。この時、KernelSU が提供した boot.img を直接書き込むとデバイスが起動できなくなる場合があります。その場合は手動で boot.img に対してパッチしてください。

パッチ方式は一般的に2種類あります:

  1. Android-Image-Kitchen
  2. magiskboot

このうち、Android-Image-Kitchen は PC での操作に適しており、magiskboot はデバイスとの連携が必要です。

準備

  1. お使いのデバイスの純正 boot.img を入手します。デバイスメーカーから入手できます。payload-dumper-goが必要かもしれません。
  2. お使いのデバイスの KMI バージョンに合った、KernelSU が提供する AnyKernel3 の ZIP ファイルをダウンロードします(カスタムリカバリーでインストールを参照してください)。
  3. AnyKernel3 パッケージを展開し、KernelSU のカーネルファイルである Image ファイルを取得します。

Android-Image-Kitchen を使う

  1. Android-Image-Kitchen を PC にダウンロードします。
  2. 純正 boot.img を Android-Image-Kitchen のルートフォルダに入れます。
  3. Android-Image-Kitchen のルートディレクトリで ./unpackimg.sh boot.img を実行して、boot.imgを展開します。
  4. split_img ディレクトリの boot.img-kernel を AnyKernel3 から展開した Image に置き換えます(boot.img-kernelに名前が変わっていることに注意してください)。
  5. Android-Image-Kitchen のルートディレクトリで ./repackimg.sh を実行すると、 image-new.img というファイルが生成されます。

magiskboot を使う

  1. 最新の Magisk をリリースページからダウンロードしてください。
  2. Magisk-*.apk を Magisk-vesion.zip に名前を変更して展開してください。
  3. Magisk-v25.2/lib/arm64-v8a/libmagiskboot.soを adb でデバイスに転送します:adb push Magisk-v25.2/lib/arm64-v8a/libmagiskboot.so /data/local/tmp/magiskboot
  4. 純正 boot.img と AnyKernel3 の中の Image をデバイスに転送します。
  5. adb shell に入り、cd /data/local/tmp/ し、chmod +x magiskboot を実行します。
  6. adb shell に入り、cd /data/local/tmp/ し、./magiskboot unpack boot.img を実行して boot.img を抽出します。kernel ファイルが純正カーネルです。
  7. kernelImage で置き換えます: mv -f Image kernel
  8. ./magiskboot repack boot.img を実行してブートイメージをリパックします。出来上がった new-boot.img を fastboot でデバイスに書き込んでください。

その他の方法

実はこれらのインストール方法はすべて、元のカーネルを KernelSU が提供するカーネルに置き換えるという主旨でしかなく、これが実現できれば他の方法でもインストール可能です:

  1. まず Magisk をインストールし、Magisk を通じて root 権限を取得し、カーネル管理アプリで KernelSU の AnyKernel ZIPをインストールする
  2. PC 上で何らかの書き込みツールを使用し、KernelSU が提供するカーネルを書き込む

GPL3 ライセンスでリリースされています。

- diff --git a/ja_JP/guide/module.html b/ja_JP/guide/module.html index 400361138b38..aae7166f0c62 100644 --- a/ja_JP/guide/module.html +++ b/ja_JP/guide/module.html @@ -95,7 +95,7 @@ set_perm file owner group filepermission context <directory> 内のすべてのディレクトリ(自身を含む)に対しては以下が実行されます: set_perm dir owner group dirpermission context

ブートスクリプト

KernelSU では、スクリプトは実行モードによって post-fs-data モードと late_start サービスモードの2種類に分けられます:

KernelSU では、起動スクリプトは保存場所によって一般スクリプトとモジュールスクリプトの2種類に分けられます:

すべてのブートスクリプトは、KernelSU の Busybox ash シェルで「スタンドアロンモード」を有効にした状態で実行されます。

- diff --git a/ja_JP/guide/rescue-from-bootloop.html b/ja_JP/guide/rescue-from-bootloop.html index 88dc17aef16f..d0e3d9961e99 100644 --- a/ja_JP/guide/rescue-from-bootloop.html +++ b/ja_JP/guide/rescue-from-bootloop.html @@ -15,7 +15,7 @@
Skip to content
On this page

ブートループからの復旧

デバイスに書き込む際、デバイスが「文鎮化」状態になる場面に遭遇することがあります。理論的には、fastboot で boot パーティションを書き込んだだけだったり、不適切なモジュールをインストールしてデバイスが起動しなくなったりした場合なら、適切な操作で復旧できます。このページでは、「文鎮化」状態になったデバイスを復旧させるための緊急手段を紹介します。

boot パーティションの書き込みによる文鎮化

KernelSU では、以下のような状況で boot パーティションを書き込んだときに文鎮化する場合があります:

  1. 間違った形式の boot イメージを書き込んでしまった場合。例えばお使いのデバイスのパーティション形式が gz なのに lz4 形式のイメージを書き込んでしまうと、起動しなくなります。
  2. お使いのデバイスが起動するために AVB 検証を無効にする必要がある場合(通常、無効にするにはすべてのデータを消去する必要があります)。
  3. カーネルにバグがある、または書き込みに適していない場合。

どのような状況であっても、純正の boot イメージを書き込むことで復旧できます。したがって、インストールする前にまずは純正の boot パーティションをバックアップすることを強くおすすめします。バックアップしていない場合は、あなたと同じデバイスを持つ他のユーザー、または公式ファームウェアから純正の boot イメージを入手できます。

モジュールによる文鎮化

モジュールのインストールはデバイスを文鎮化させる一般的な原因です。モジュールを未知のソースからインストールしないでください!モジュールは root 権限を持つため、あなたのデバイスに不可逆的なダメージを与える可能性があります!

通常のモジュール

安全であることが確認されているモジュールをインストールしてデバイスが起動しなくなった場合、KernelSU では心配することなく簡単に復旧できます。KernelSU には、以下のようなデバイスを救出するための仕組みが組み込まれています:

  1. AB アップデート
  2. 音量下ボタンでの復旧

AB アップデート

KernelSU のモジュール更新は、OTA アップデートで使用される Android システムの AB アップデート機構からヒントを得ています。新しいモジュールをインストールしたり、既存のモジュールを更新したりする場合、現在使用されているモジュールファイルを直接変更することはありません。代わりに、すべてのモジュールが別のアップデートイメージに組み込まれます。システムが再起動された後、このアップデートイメージの使用を開始しようとします。Android システムが正常に起動した場合、モジュールは本当に更新されます。

そのため、デバイスを復旧する最もシンプルで一般的な方法は、強制的に再起動することです。モジュールをインストールした後にシステムを起動できなくなった場合、電源ボタンを10秒以上長押しするとシステムが自動的に再起動します。再起動後はモジュールを更新する前の状態にロールバックされ、以前に更新したモジュールは自動的に無効化されます。

音量下ボタンでの復旧

AB アップデートでも解決しない場合は、セーフモードを使用してみてください。セーフモードでは、すべてのモジュールが無効化されます。

セーフモードに入るには、2つの方法があります:

  1. 一部のシステムの内蔵セーフモード:音量下ボタンの長押しでセーフモードに入れるシステムもあれば、リカバリーでセーフモードに入れるシステム(MIUI など)もあります。システムのセーフモードに入ると KernelSU もセーフモードに入り、自動的にモジュールを無効化します。
  2. KernelSU の内蔵セーフモード:最初の起動画面の後、音量下キーを3回以上連続して押すと入れます。なお、押す→離すを三回繰り返すのであって、長押しではありません。

セーフモードに入ると、KernelSU Manager のモジュールページにあるすべてのモジュールが無効になります。「アンインストール」操作を行うことで、問題を起こしている可能性のあるモジュールをアンインストールできます。

内蔵のセーフモードはカーネルに実装されているため、キーイベントを見逃す可能性はありません。ただし、GKI 以外のカーネルでは手動によるコードの統合が必要な場合があるため、公式ドキュメントを参考にしてください。

悪意のあるモジュール

上記の方法でデバイスを救出できない場合、インストールしたモジュールが悪意のある操作をしているか、他の手段でデバイスを損傷している可能性が高いです。この場合、2つの方法しかありません:

  1. データを消去して純正システムをインストールし直す
  2. アフターセールスサービスに問い合わせする

GPL3 ライセンスでリリースされています。

- diff --git a/ja_JP/guide/unofficially-support-devices.html b/ja_JP/guide/unofficially-support-devices.html index 4357a23f7276..0b3afdc17a67 100644 --- a/ja_JP/guide/unofficially-support-devices.html +++ b/ja_JP/guide/unofficially-support-devices.html @@ -16,7 +16,7 @@
Skip to content
On this page

非公式の対応デバイス

警告

このページでは他の開発者が管理している、KernelSU をサポートする GKI 以外のデバイス用のカーネルを紹介しています。

警告

このページはあなたのデバイスに対応するソースコードを見つけるためのものであり、そのソースコードが KernelSU 開発者 によってレビューされたことを意味するものではありません。ご自身の責任においてご利用ください。

メンテナーリポジトリ対応デバイス
diphonsD8G_Kernel_oxygenPoco F3: alioth | Poco F4: munch | MI10T/PRO: Apollo
diphonsD8G_Kernel_SM8150Poco X3 Pro: Vayu | Bhima
diphonsD8G_Kernel_SDM845Poco F1 | MI8 | MiMix2S
diphonsD8G_Kernel_SM8350Vili
diphonsD8G_Kernel_MarblePoco F5 | Redmi Note 12 Turbo | Marble
th1nhhdkandroid_kernel_sony_sm8250-kernelsuSony Xperia 1 II | Sony Xperia 5 II
akash07knexus_kernel_xiaomi_sm8250Poco F4: munch
HMTheBoy154Darkmatter-kernelGeneric x86_64 devices running Android-x86
Asuka-mioandroid_kernel_xiaomi_casMi 10 Ultra: cas
xiaoleGunMiku_kernel_xiaomi_waynewayne
YamazakuraHkernel_xiaomi_cepheuscepheus for pixel experience
SakuraNotStupidandroid_kernel_xiaomi_sdm710Xiaomi MI 8 SE(sirius/xmsirius)
Aquarius223(paper)android_kernel_xiaomi_msm8998MI 6 (sagit) and MIX 2 (chiron) for LineageOS
SlackerStateandroid_kernel_xiaomi_sm6150Redmi K30 4G (phoenix)
RooGhz720kernel_xiaomi_sm6150REDMI NOTE 10 PRO (sweet)
OnlyTomInSecondandroid_kernel_xiaomi_sdm845Mi 8 (dipper) for LineageOS
Rohail33RealKing KernelApollo(Redmi K30S Ultra/Mi 10T/Mi 10T Pro),Alioth(Redmi K40/POCO F3/Mi 11X),Munch(Redmi K40S/POCO F4), both MIUI and AOSP.
lateautumn233android_kernel_oneplus_sm8250OnePlus 8 Serials
Sreeshankar KNeverSettle KernelOnePlus Nord (avicii)
Molyuuneko_kernel_xiaomi_gauguinRedmi Note 9 Pro/ Mi 10T Lite/ Mi 10i
guh0613android_kernel_oppo_sm8150OPPO Reno Ace (OP4A89)
LeviMarvinandroid_kernel_xiaomi_aliothRedmi K40 / POCO F3
cibimokernel_xiaomi_raphael_ksuXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
EndCreditskernel_xiaomi_sm7250Redmi K30 5G ( picasso ) , Redmi K30i 5G ( picasso_48m)
msnxandroid-msm-coral-4.14-android13Pixel 4 XL
SoDebugkernel_xiaomi_raphaelXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
H1mJTkernel_realme_RMX1901Realme X (RMX1901/RMX1901CN)
SonalSingh18android_kernel_xiaomi_sm6250Miatoll [curtana, excalibur, gram, joyeuse]
RooGhz720kernel_xiaomi_lavenderRedmi Note 7 (Lavender)
JunASAKAkernel_google_msm-4.9_KernelSUGoogle Pixel 3a & 3a XL (sargo & bonito)
RooGhz720kernel_asus_X01BDAsus Zenfone Max Pro M1/M2
Evans Mikekernel_xiaomi_raphael_bool-xXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
easterNdayKSU_Thyme_BuildBotXiaomi 10S
tedomi2705kernel_xiaomi_sdm660Xiaomi Redmi Note 6 Pro (tulip)
RyuujiXandroid_kernel_asus_sdm660-4.19Asus Zenfone Max Pro M1 (X00TD)/ M2 (X01BD) (Linux 4.19)
liqidecgandroid_kernel_xiaomi_sdm710Mi 8 SE (sirius) (Linux 4.9)
Abdelhay-Aliandroid_kernel_huawei_hi6250Huawei P20 lite (hi6250) (Linux 4.9)
reocatandroid_kernel_nokia_sdm660_ksuNokia 6.1 (2018)
Tuan Anhkernel_nokia_msm8998Nokia 8 (Repartitioned)/8 Sirocco (NLA/A1N)
bggRGjQaUbCoEandroid_kernel_samsung_sm8250Samsung Galaxy S20+ 5G (y2q)
SOVIET-ANDROIDkernel_xiaomi_raphaelXK20 Pro Raphael DSP & A only SAR support
Coconutatandroid_kernel_huawei_vtr_emui9_KernelSUHuawei P10,P10 Plus,Mate9,Mate9 Pro(Kirin960 Series),Stable For GSI
dabao1955android_kernel_OPPO_PEQM00MediaTek devices in the OPPO Reno series on ColorOS13.x
Aflaungosandroid_kernel_motorola_msm8998Moto G6 Plus (evert)
TheNoFacekernel_oneplus_msm8998OnePlus 5/5T (cheeseburger/dumpling)
Nipin NA (Joker-V2)Xcalibur kernel (violet)Xiaomi Redmi Note 7 Pro (violet)
Sr-Hankernel_xiaomi_mojitoRedmi Note 10 (Sunny/Mojito)
dabao1955android_kernel_OPPO_OP4ED5OPPO Reno6 on ColorOS11.x/ColorOS12.x,kernel version4.14.186+
rushiranpiseandroid_kernel_samsung_exynos9610_mintKernel 4.14.194 exynos9610 Non-GKI Device, Added KernelSu using manual method
CN-Scarspixel_experience_kernel_xiaomi_sm8250_kernelSUPixel Experience Kernel 4.19.282 for Xiaomi Redmi K40S / Xiaomi Poco F4 (munch)
exerMiyo TokuSony Tama (akari, apollo, aurora, akatsuki) (Linux 4.9)
likkaiQuicksilver KernelXiaomi 11 Lite 5G NE (lisa)
awakened1712android_kernel_samsung_exynos9820Samsung S10/N10
awakened1712android_kernel_oneplus_sm8350Oneplus 9/9Pro
siimsekLightning KernelXiaomi Redmi Note 8/8T (ginkgo/willow)
GiovanYCringekernel_a50Galaxy A50 (A505f,fn,g,gn,gt)
Asriadi Rahimandroid_kernel_google_wahooGoogle Pixel 2/2XL
Flameandroid_kernel_xiaomi_sm8250POCO F3/Redmi K40/Mi 11X (alioth)
DawfukFRkernel_oneplus_sm8250 (Stellaris-Kernel)Oneplus 8 (Instantnoodle), Oneplus 8T (Kebab), Oneplus 8 Pro (Instantnoodlep), Oneplus 9R (lemonades) [msm-4.19]
Tejas Singhkernel_xiaomi_ginkgo (Cuh Kernel)Xiaomi Redmi Note 8/8T (ginkgo/willow)
Coconutatandroid_kernel_xiaomi_ruby_expRedmi Note 12 Pro / Pro+ For MIUI 14
Coconutatandroid_kernel_xiaomi_sdm845_expXiaomi Mi 8 Pro(UD)[equuleus]/Explorer Edition[ursa]
Abdul Wahid Khankernel_xiaomi_begoniaRedmi Note 8 Pro (Begonia/Begoniain)
Abdul Wahid Khankernel_xiaomi_marbleXiaomi Poco F5 / Redmi Note 12 Turbo (Marble)
zfdx123kernel_xiaomi_aliothRedmi K40 (alioth)
wxt1221android_kernel_oneplus_sdm845Oneplus 6 (enchilada) | Oneplus 6T (fajita) with no Retrofit Dynamic Partitions
zharzinhooKernel-Oriente-GuampMoto g9 play
hc841NovaCore_kernelMoto g9 play
zlm324android_kernel_xiaomi_msm8998_ksua lineage kernel forked from LineageOS official repository, version 4.4.302, added ksu.
zlm324android_kernel_xiaomi_msm8953_ksuXiaomi 5X (tiffany)
Vincent4440android_kernel_xiaomi_sm8250Poco F4: munch
zharzinhooandroid_kernel_motorola_cebuMoto g9 power
tiandoufayaleandroid_kernel_samsung_sm8250Samsung Tab S7 WIFI(T870)
starmoeandroid_kernel_oneplus_msm8998Oneplus 5/5T, kernel version 4.4.302

GPL3 ライセンスでリリースされています。

- diff --git a/ja_JP/guide/what-is-kernelsu.html b/ja_JP/guide/what-is-kernelsu.html index b62f9da1ec1a..dc9cec66d767 100644 --- a/ja_JP/guide/what-is-kernelsu.html +++ b/ja_JP/guide/what-is-kernelsu.html @@ -15,7 +15,7 @@
Skip to content
On this page

KernelSU とは?

KernelSU は Android GKI デバイスのための root ソリューションです。カーネルモードで動作し、カーネル空間で直接ユーザー空間アプリに root 権限を付与します。

機能

KernelSU の最大の特徴は、カーネルベースであることです。KernelSU はカーネルモードで動作するため、今までにないカーネルインターフェイスを提供できます。例えば、カーネルモードで任意のプロセスにハードウェアブレークポイントを追加できる、誰にも気づかれずに任意のプロセスの物理メモリにアクセスできる、カーネル空間で任意のシステムコールを傍受できる、などです。

また、KernelSU は OverlayFS によるモジュールシステムを提供しており、カスタムプラグインをシステムに読み込めます。/system パーティションを変更する仕組みも提供しています。

使用方法

こちらをご覧ください: インストール方法

ビルド方法

ビルドするには

ディスカッション

GPL3 ライセンスでリリースされています。

- diff --git a/ja_JP/index.html b/ja_JP/index.html index 878686cc840e..2ffe3778e9c1 100644 --- a/ja_JP/index.html +++ b/ja_JP/index.html @@ -15,7 +15,7 @@
Skip to content

KernelSU

Android 向けのカーネルベース root ソリューション

KernelSU

カーネルベース

KernelSU は Linux カーネルモードで動作し、ユーザー空間よりも高度な制御が可能です。

ホワイトリストの権限管理

root 権限を許可したアプリのみが su にアクセスでき、他のアプリは su を見つけられません。

モジュール対応

KernelSU は OverlayFS により実際のシステムを改変せずに /system を変更できます。書き込み可能にすることさえできます。

オープンソース

KernelSU は GPL-3 でライセンスされたオープンソースプロジェクトです。

GPL3 ライセンスでリリースされています。

- diff --git a/pt_BR/guide/app-profile.html b/pt_BR/guide/app-profile.html index bf1406c73b5e..41a6e96042de 100644 --- a/pt_BR/guide/app-profile.html +++ b/pt_BR/guide/app-profile.html @@ -19,7 +19,7 @@ enforce app1 typeattribute app1 mlstrustedsubject allow app1 * * *

Observe que a regra allow app1 * * * é usada apenas para fins de demonstração. Na prática, esta regra não deve ser utilizada extensivamente, pois não difere muito do Modo permissivo.

Escalação

Se a configuração do Perfil Root não estiver definida corretamente, poderá ocorrer um cenário de escalação. As restrições impostas pelo Perfil Root poderão falhar involuntariamente.

Por exemplo, se você conceder permissão root a um usuário ADB shell (que é um caso comum) e, em seguida, conceder permissão root a um app normal, mas configurar seu Perfil Root com UID 2000 (que é o UID do usuário ADB shell), o app pode obter acesso root completo executando o comando su duas vezes:

  1. A primeira execução su está sujeita à aplicação do Perfil do Aplicativo e mudará para UID 2000 (adb shell) em vez de 0 (root).
  2. A segunda execução su, como o UID é 2000 e você concedeu acesso root ao UID 2000 (adb shell) na configuração, o app obterá privilégio de root completo.

OBSERVAÇÃO

Este comportamento é totalmente esperado e não é um bug. Portanto, recomendamos o seguinte:

Se você realmente precisa conceder permissões de root ao ADB (por exemplo, como desenvolvedor), não é aconselhável alterar o UID para 2000 ao configurar o Perfil Root. Usar 1000 (system) seria uma melhor escolha.

Perfil não Root

Desmontar módulos

O KernelSU fornece um mecanismo sem sistema para modificar partições do sistema, obtido através da montagem de overlayfs. No entanto, alguns apps podem ser sensíveis a esse comportamento. Assim, podemos descarregar módulos montados nesses apps configurando a opção “desmontar módulos”.

Além disso, a interface de configurações do gerenciador KernelSU fornece uma opção para "desmontar módulos por padrão". Por padrão, essa opção está ativada, o que significa que o KernelSU ou alguns módulos descarregarão módulos para este app, a menos que configurações adicionais sejam aplicadas. Se você não preferir esta configuração ou se ela afetar determinados apps, você terá as seguintes opções:

  1. Mantenha a opção "desmontar módulos por padrão" e desative individualmente a opção "desmontar módulos" no Perfil do Aplicativo para apps que exigem carregamento do módulo (agindo como uma "lista de permissões").
  2. Desative a opção "desmontar módulos por padrão" e ative individualmente a opção "desmontar módulos" no Perfil do Aplicativo para apps que exigem descarregamento do módulo (agindo como uma "lista negra").

INFORMAÇÕES

Em dispositivos que utilizam kernel versão 5.10 e superior, o kernel realiza o descarregamento dos módulos. No entanto, para dispositivos que executam versões de kernel abaixo de 5.10, essa opção é apenas uma opção de configuração e o próprio KernelSU não executa nenhuma ação. Alguns módulos, como Zygisksu, podem usar essa opção para determinar se o descarregamento do módulo é necessário.

- diff --git a/pt_BR/guide/difference-with-magisk.html b/pt_BR/guide/difference-with-magisk.html index 209488dab607..fd065fbb030e 100644 --- a/pt_BR/guide/difference-with-magisk.html +++ b/pt_BR/guide/difference-with-magisk.html @@ -15,7 +15,7 @@
Skip to content
On this page

Diferença com Magisk

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.

Semelhanças

  • Formato de arquivo do módulo: ambos usam o formato zip para organizar os módulos, e o formato dos módulos é quase o mesmo.
  • Diretório de instalação do módulo: ambos localizados em /data/adb/modules.
  • Sem sistema: ambos suportam a modificação de /system de maneira sem sistema por meio de módulos.
  • post-fs-data.sh: o tempo de execução e a semântica são exatamente os mesmos.
  • service.sh: o tempo de execução e a semântica são exatamente os mesmos.
  • system.prop: completamente o mesmo.
  • sepolicy.rule: completamente o mesmo.
  • BusyBox: os scripts são executados no BusyBox com o "Modo Autônomo" ativado em ambos os casos.

Diferenças

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:

  • Os módulos KernelSU não podem ser instalados no modo Recovery.
  • Os módulos KernelSU não têm suporte integrado para Zygisk (mas você pode usar módulos Zygisk através do ZygiskOnKernelSU.
  • O método para substituir ou excluir arquivos nos módulos KernelSU é completamente diferente do Magisk. O KernelSU não suporta o método .replace. Em vez disso, você precisa criar um arquivo com o mesmo nome mknod filename c 0 0 para excluir o arquivo correspondente.
  • Os diretórios do BusyBox são diferentes. O BusyBox integrado no KernelSU está localizado em /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!
  • O KernelSU não suporta arquivos .replace, entretanto, o KernelSU suporta as variáveis ​​REMOVE e REPLACE para remover ou substituir arquivos e pastas.
  • O KernelSU adiciona o estágio boot-completed para executar alguns scripts na inicialização concluída.
  • O KernelSU adiciona o estágio post-mount para executar alguns scripts após montar overlayfs.

Lançado sob a Licença GPL3.

- diff --git a/pt_BR/guide/faq.html b/pt_BR/guide/faq.html index 23ee7d223303..d7bb650c9141 100644 --- a/pt_BR/guide/faq.html +++ b/pt_BR/guide/faq.html @@ -15,7 +15,7 @@
Skip to content
On this page

FAQ

KernelSU oferece suporte ao meu dispositivo?

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.

KernelSU precisa desbloquear o Bootloader?

Certamente, sim.

KernelSU suporta módulos?

Sim, mas está na versão inicial, pode apresentar bugs. Por favor, aguarde até que fique estável.

KernelSU suporta Xposed?

Sim, Dreamland e TaiChi funcionam agora. Para o LSPosed, você pode fazer funcionar usando ZygiskOnKernelSU.

KernelSU suporta Zygisk?

KernelSU não tem suporte integrado ao Zygisk, mas você pode usar ZygiskOnKernelSU.

KernelSU é compatível com Magisk?

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.

KernelSU substituirá o Magisk?

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.

KernelSU pode oferecer suporte a dispositivos não GKI?

É 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.

KernelSU pode oferecer suporte a dispositivos abaixo do Android 12?

É 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:

  1. Os dispositivos lançados com Android 12 devem ser compatíveis.
  2. Dispositivos com kernel antigo (alguns dispositivos Android 12 também têm o kernel antigo) são compatíveis (você mesmo deve construir o kernel).

KernelSU pode suportar kernel antigo?

É 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!

Como integrar o KernelSU para o kernel antigo?

Por favor, consulte a guia Como integrar o KernelSU para kernels não GKI

Por que minha versão do Android é 13 e o kernel mostra “android12-5.10”?

A versão do Kernel não tem nada a ver com a versão do Android, se você precisar fazer o flash do kernel, use sempre a versão do kernel, a versão do Android não é tão importante.

Existe algum namespace de montagem --mount-master/global no KernelSU?

Não existe agora (talvez no futuro), mas há muitas maneiras de mudar manualmente para o namespace de montagem global, como:

  1. nsenter -t 1 -m sh para obter um shell no namespace de montagem global.
  2. Adicione nsenter --mount=/proc/1/ns/mnt ao comando que você deseja executar, o comando será executado no namespace de montagem global. O KernelSU também está usando desta forma

Eu sou GKI1.0, posso usar isso?

GKI1 é completamente diferente do GKI2, você deve compilar o kernel sozinho.

Lançado sob a Licença GPL3.

- diff --git a/pt_BR/guide/hidden-features.html b/pt_BR/guide/hidden-features.html index 48f1c96bc5e4..83e590e9decf 100644 --- a/pt_BR/guide/hidden-features.html +++ b/pt_BR/guide/hidden-features.html @@ -15,7 +15,7 @@
Skip to content
On this page

Recursos ocultos

.ksurc

Por padrão, /system/bin/sh carrega /system/etc/mkshrc.

Você pode fazer su carregar um arquivo rc personalizado criando um arquivo /data/adb/ksu/.ksurc.

Lançado sob a Licença GPL3.

- diff --git a/pt_BR/guide/how-to-build.html b/pt_BR/guide/how-to-build.html index d2fa139a7ea1..3c552e105660 100644 --- a/pt_BR/guide/how-to-build.html +++ b/pt_BR/guide/how-to-build.html @@ -18,7 +18,7 @@ mv <kernel_manifest.xml> .repo/manifests repo init -m manifest.xml repo sync

O <kernel_manifest.xml> é um arquivo de manifesto que pode determinar uma construção exclusivamente, você pode usar o manifesto para fazer uma construção re-preduzível. Você deve baixar o arquivo de manifesto em compilações de lançamento do Google GKI.

Construir

Por favor, verifique Como criar kernels primeiro.

Por exemplo, precisamos construir a imagem do kernel aarch64:

sh
LTO=thin BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh

Não se esqueça de adicionar o sinalizador LTO=thin, caso contrário a compilação poderá falhar se a memória do seu computador for inferior a 24 GB.

A partir do Android 13, o kernel é construído pelo bazel:

sh
tools/bazel build --config=fast //common:kernel_aarch64_dist

Construir o kernel com KernelSU

Se você conseguir construir o kernel com sucesso, então construir o KernelSU é muito fácil. Selecione qualquer um executado no diretório raiz de origem do kernel:

sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -
sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main
sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.5.2

E então reconstrua o kernel e você obterá uma imagem do kernel com KernelSU!

- diff --git a/pt_BR/guide/how-to-integrate-for-non-gki.html b/pt_BR/guide/how-to-integrate-for-non-gki.html index 5f7a88db9a88..a9df0c225b32 100644 --- a/pt_BR/guide/how-to-integrate-for-non-gki.html +++ b/pt_BR/guide/how-to-integrate-for-non-gki.html @@ -166,7 +166,7 @@ if (disposition != INPUT_IGNORE_EVENT && type != EV_SYN) add_input_randomness(type, code, value);

Finalmente, construa seu kernel novamente, e então, o KernelSU deve funcionar bem.

- diff --git a/pt_BR/guide/installation.html b/pt_BR/guide/installation.html index 163daedf1a5a..1e5f71e56880 100644 --- a/pt_BR/guide/installation.html +++ b/pt_BR/guide/installation.html @@ -17,7 +17,7 @@
Skip to content
On this page

Instalação

Verifique se o seu dispositivo é compatível

Baixe o app gerenciador KernelSU em GitHub Releases ou Coolapk market, e instale-o no seu dispositivo:

  • Se o app mostrar Sem suporte, significa que você deve compilar o kernel sozinho, o KernelSU não fornecerá e nunca fornecerá uma boot image para você instalar.
  • Se o app mostrar Não instalado, então seu dispositivo é oficialmente suportado pelo KernelSU.

INFORMAÇÕES

Para dispositivos mostrando Sem suporte, aqui está os Dispositivos com suporte não oficial, você mesmo pode compilar o kernel.

Backup padrão do boot.img

Antes de fleshar, você deve primeiro fazer backup do seu boot.img padrão. Se você encontrar algum bootloop, você sempre pode restaurar o sistema voltando para o boot de fábrica usando o fastboot.

AVISO

Fleshar pode causar perda de dados, certifique-se de executar esta etapa bem antes de prosseguir para a próxima! Você também pode fazer backup de todos os dados do seu telefone, se necessário.

Conhecimento necessário

ADB e fastboot

Por padrão, você usará as ferramentas ADB e fastboot neste tutorial, portanto, se você não as conhece, recomendamos pesquisar para aprender sobre elas primeiro.

KMI

Kernel Module Interface (KMI), versões de kernel com o mesmo KMI são compatíveis, isso é o que "geral" significa no GKI; por outro lado, se o KMI for diferente, então esses kernels não são compatíveis entre si, e atualizar uma imagem do kernel com um KMI diferente do seu dispositivo pode causar um bootloop.

Especificamente, para dispositivos GKI, o formato da versão do kernel deve ser o seguinte:

txt
KernelRelease :=
 Version.PatchLevel.SubLevel-AndroidRelease-KmiGeneration-suffix
 w      .x         .y       -zzz           -k            -something

w.x-zzz-k é a versão KMI. Por exemplo, se a versão do kernel de um dispositivo for 5.10.101-android12-9-g30979850fc20, então seu KMI será 5.10-android12-9. Teoricamente, ele pode inicializar normalmente com outros kernels KMI.

DICA

Observe que o SubLevel na versão do kernel não faz parte do KMI! Isso significa que 5.10.101-android12-9-g30979850fc20 tem o mesmo KMI que 5.10.137-android12-9-g30979850fc20!

Versão do kernel vs Versão do Android

Por favor, observe: A versão do kernel e a versão do Android não são necessariamente iguais!

Se você descobrir que a versão do seu kernel é android12-5.10.101, mas a versão do seu sistema Android é Android 13 ou outra, não se surpreenda, pois o número da versão do sistema Android não é necessariamente igual ao número da versão do kernel Linux. O número da versão do kernel Linux geralmente é consistente com a versão do sistema Android que acompanha o dispositivo quando ele é enviado. Se o sistema Android for atualizado posteriormente, a versão do kernel geralmente não será alterada. Se você precisar fazer o flash, por favor, consulte sempre a versão do kernel!

Introdução

Existem vários métodos de instalação do KernelSU, cada um adequado para um cenário diferente, portanto escolha conforme necessário.

  1. Instalar com Recovery personalizado (por exemplo, TWRP)
  2. Instalar com um app kernel flash, como Franco Kernel Manager
  3. Instalar com fastboot usando o boot.img fornecido por KernelSU
  4. Repare o boot.img manualmente e instale-o

Instalar com Recovery personalizado

Pré-requisito: Seu dispositivo deve ter um Recovery personalizado, como TWRP. Se apenas o Recovery oficial estiver disponível, use outro método.

Etapa:

  1. Na página de lançamento do KernelSU, baixe o pacote zip começando com AnyKernel3 que corresponde à versão do seu telefone; por exemplo, a versão do kernel do telefone é android12-5.10. 66, então você deve baixar o arquivo AnyKernel3-android12-5.10.66_yyyy-MM.zip (onde yyyy é o ano e MM é o mês).
  2. Reinicie o telefone no TWRP.
  3. Use o adb para colocar AnyKernel3-*.zip no telefone /sdcard e escolha instalá-lo na interface do TWRP; ou você pode diretamente adb sideload AnyKernel-*.zip para instalar.

PS. Este método é adequado para qualquer instalação (não limitado à instalação inicial ou atualizações subsequentes), desde que você use TWRP.

Instalar com Kernel Flasher

Pré-requisito: Seu dispositivo deve estar rooteado. Por exemplo, você instalou o Magisk para obter root ou instalou uma versão antiga do KernelSU e precisa atualizar para outra versão do KernelSU. Se o seu dispositivo não estiver rooteado, tente outros métodos.

Etapa:

  1. Baixe o zip AnyKernel3; consulte a seção Instalar com Recovery personalizado para obter instruções de download.
  2. Abra o app Kernel Flash e use o zip AnyKernel3 fornecido para fazer o flash.

Se você nunca usou algum app kernel flash antes, os seguintes são os mais populares.

  1. Kernel Flasher
  2. Franco Kernel Manager
  3. Ex Kernel Manager

PS. Este método é mais conveniente ao atualizar o KernelSU e pode ser feito sem um computador (backup primeiro).

Instalar com o boot.img fornecido por KernelSU

Este método não requer que você tenha TWRP, nem que seu telefone tenha privilégios de root; é adequado para sua primeira instalação do KernelSU.

Encontre o boot.img adequado

O KernelSU fornece um boot.img genérico para dispositivos GKI e você deve liberar o boot.img para a partição boot do dispositivo.

Você pode baixar o boot.img em GitHub Release, por favor, observe que você deve usar a versão correta do boot.img. Por exemplo, se o seu dispositivo exibe o kernel android12-5.10.101 , você precisa baixar android-5.10.101_yyyy-MM.boot-<format>.img. (Mantenha o KMI consistente!)

Onde <format> se refere ao formato de compactação do kernel do seu boot.img oficial, por favor, verifique o formato de compactação do kernel de seu boot.img original. Você deve usar o formato correto, por exemplo: lz4, gz. Se você usar um formato de compactação incorreto, poderá encontrar bootloop.

INFORMAÇÕES

  1. Você pode usar o magiskboot para obter o formato de compactação de seu boot original; é claro que você também pode perguntar a outras pessoas mais experientes com o mesmo modelo do seu dispositivo. Além disso, o formato de compactação do kernel geralmente não muda, portanto, se você inicializar com êxito com um determinado formato de compactação, poderá tentar esse formato mais tarde.
  2. Os dispositivos Xiaomi geralmente usam gz ou uncompressed.
  3. Para dispositivos Pixel, siga as instruções abaixo.

Flash boot.img para o dispositivo

Use o adb para conectar seu dispositivo, execute adb reboot bootloader para entrar no modo fastboot e use este comando para atualizar o KernelSU:

sh
fastboot flash boot boot.img

INFORMAÇÕES

Se o seu dispositivo suportar fastboot boot, você pode usar primeiro fastboot boot boot.img para tentar usar o boot.img para inicializar o sistema primeiro. Se algo inesperado acontecer, reinicie-o novamente para inicializar.

Reiniciar

Após a conclusão do flash, você deve reiniciar o dispositivo:

sh
fastboot reboot

Corrigir boot.img manualmente

Para alguns dispositivos, o formato boot.img não é tão comum, como lz4, gz e uncompressed. O mais típico é o Pixel, seu formato boot.img é lz4_legacy compactado, ramdisk pode ser gz também pode ser compactado lz4_legacy. Neste momento, se você fleshar diretamente o boot.img fornecido pelo KernelSU, o telefone pode não conseguir inicializar. Neste momento, você pode corrigir manualmente o boot.img para conseguir isso.

Geralmente existem dois métodos de patch:

  1. Android-Image-Kitchen
  2. magiskboot

Entre eles, o Android-Image-Kitchen é adequado para operação no PC e o magiskboot precisa da cooperação do telefone.

Preparação

  1. Obtenha o boot.img padrão do telefone; você pode obtê-lo com os fabricantes do seu dispositivo, você pode precisar do payload-dumper-go.
  2. Baixe o arquivo zip AnyKernel3 fornecido pelo KernelSU que corresponde à versão KMI do seu dispositivo (você pode consultar Instalar com Recovery personalizado).
  3. Descompacte o pacote AnyKernel3 e obtenha o arquivo Image, que é o arquivo do kernel do KernelSU.

Usando o Android-Image-Kitchen

  1. Baixe o Android-Image-Kitchen para o seu computador.
  2. Coloque o boot.img padrão na pasta raiz do Android-Image-Kitchen.
  3. Execute ./unpackimg.sh boot.img no diretório raiz do Android-Image-Kitchen, este comando descompactará o boot.img e você obterá alguns arquivos.
  4. Substitua boot.img-kernel no diretório split_img pela Image que você extraiu do AnyKernel3 (observe a mudança de nome para boot.img-kernel).
  5. Execute ./repackimg.sh no diretório raiz de 在 Android-Image-Kitchen, e você obterá um arquivo chamado image-new.img. Faça o flash deste boot.img por fastboot (consulte a seção anterior).

Usando o magiskboot

  1. Baixe o Magisk mais recente em GitHub Releases.
  2. Renomeie o Magisk-*.apk para Magisk-vesion.zip e descompacte-o.
  3. Envie Magisk-v25.2/lib/arm64-v8a/libmagiskboot.so para o seu dispositivo por adb: adb push Magisk-v25.2/lib/arm64-v8a/libmagiskboot.so /data/local/tmp/magiskboot.
  4. Envie o boot.img padrão e Image em AnyKernel3 para o seu dispositivo.
  5. Entre no diretório adb shell e cd /data/local/tmp/ e, em seguida, chmod +x magiskboot.
  6. Entre no shell adb e no diretório cd /data/local/tmp/, execute ./magiskboot unpack boot.img para descompactar boot.img, você obterá um arquivo kernel, este é o seu kernel padrão.
  7. Substitua kernel por Image: mv -f Image kernel.
  8. Execute ./magiskboot repack boot.img para reembalar o boot.img, e você obterá um arquivo new-boot.img, faça o flash deste arquivo para o dispositivo por fastboot.

Outros métodos

Na verdade, todos esses métodos de instalação têm apenas uma ideia principal, que é substituir o kernel original pelo fornecido pelo KernelSU, desde que isso possa ser alcançado, ele pode ser instalado. Por exemplo, a seguir estão outros métodos possíveis.

  1. Primeiro instale o Magisk, obtenha privilégios de root através do Magisk e então use o kernel flasher para fazer o flash no zip AnyKernel do KernelSU.
  2. Use algum kit de ferramentas de flash em PCs para fleshar no kernel fornecido pelo KernelSU.

Lançado sob a Licença GPL3.

- diff --git a/pt_BR/guide/module.html b/pt_BR/guide/module.html index f276f7e1dfac..1ee0a71f2e94 100644 --- a/pt_BR/guide/module.html +++ b/pt_BR/guide/module.html @@ -100,7 +100,7 @@ contexto de permissão de arquivo do grupo proprietário do arquivo set_perm para todos os diretórios em <directory> (including itself), ele vai ligar: set_perm dir owner group dirpermission context

Scripts de inicialização

No KernelSU, os scripts são divididos em dois tipos com base em seu modo de execução: modo post-fs-data e modo de serviço late_start:

No KernelSU, os scripts de inicialização são divididos em dois tipos com base no local de armazenamento: scripts gerais e scripts de módulo:

Todos os scripts de inicialização serão executados no shell BusyBox ash do KernelSU com o "Modo Autônomo" ativado.

- diff --git a/pt_BR/guide/rescue-from-bootloop.html b/pt_BR/guide/rescue-from-bootloop.html index ee62baf646cd..8da79c12b899 100644 --- a/pt_BR/guide/rescue-from-bootloop.html +++ b/pt_BR/guide/rescue-from-bootloop.html @@ -15,7 +15,7 @@
Skip to content
On this page

Resgate do bootloop

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".

Bloqueio por fleshear partição boot

No KernelSU, as seguintes situações podem causar bloqueio de inicialização ao fleshear a partição boot:

  1. Você atualizou uma imagem boot no formato errado. Por exemplo, se o formato de boot do seu telefone for gz, mas você atualizou uma imagem no formato lz4, o telefone não será capaz de inicializar.
  2. Seu telefone precisa desativar a verificação AVB para inicializar corretamente (geralmente exigindo a limpeza de todos os dados do telefone).
  3. Seu kernel tem alguns bugs ou não é adequado para o flash do seu telefone.

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.

Bloqueio por módulos

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!

Módulos normais

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:

  1. Atualização AB
  2. Recupere pressionando o botão de diminuir volume

Atualização AB

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.

Recupere pressionando o botão de diminuir volume

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:

  1. O Modo de Segurança integrado de alguns sistemas. Alguns sistemas possuem um Modo de Segurança integrado que pode ser acessado pressionando longamente o botão de diminuir volume, enquanto outros (como a MIUI) podem ativar o Modo de Segurança no Recovery. Ao entrar no Modo de Segurança do sistema, o KernelSU também entrará no Modo de Segurança e desativará automaticamente os módulos.
  2. O Modo de Segurança integrado do KernelSU. O método de operação é pressionar a tecla de diminuir volume continuamente por mais de três vezes após a primeira tela de inicialização.

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.

Módulos maliciosos

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:

  1. Limpe os dados e instale o sistema oficial.
  2. Consulte o serviço pós-venda.

Lançado sob a Licença GPL3.

- diff --git a/pt_BR/guide/unofficially-support-devices.html b/pt_BR/guide/unofficially-support-devices.html index 78cf3a1d2560..b02adbacb398 100644 --- a/pt_BR/guide/unofficially-support-devices.html +++ b/pt_BR/guide/unofficially-support-devices.html @@ -16,7 +16,7 @@
Skip to content
On this page

Dispositivos com suporte não oficial

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.

MantenedorRepositórioDispositivos suportados
diphonsD8G_Kernel_oxygenPoco F3: alioth | Poco F4: munch | MI10T/PRO: Apollo
diphonsD8G_Kernel_SM8150Poco X3 Pro: Vayu | Bhima
diphonsD8G_Kernel_SDM845Poco F1 | MI8 | MiMix2S
diphonsD8G_Kernel_SM8350Vili
diphonsD8G_Kernel_MarblePoco F5 | Redmi Note 12 Turbo | Marble
th1nhhdkandroid_kernel_sony_sm8250-kernelsuSony Xperia 1 II | Sony Xperia 5 II
akash07knexus_kernel_xiaomi_sm8250Poco F4: munch
HMTheBoy154Darkmatter-kernelGeneric x86_64 devices running Android-x86
Asuka-mioandroid_kernel_xiaomi_casMi 10 Ultra: cas
xiaoleGunMiku_kernel_xiaomi_waynewayne
YamazakuraHkernel_xiaomi_cepheuscepheus for pixel experience
SakuraNotStupidandroid_kernel_xiaomi_sdm710Xiaomi MI 8 SE(sirius/xmsirius)
Aquarius223(paper)android_kernel_xiaomi_msm8998MI 6 (sagit) and MIX 2 (chiron) for LineageOS
SlackerStateandroid_kernel_xiaomi_sm6150Redmi K30 4G (phoenix)
RooGhz720kernel_xiaomi_sm6150REDMI NOTE 10 PRO (sweet)
OnlyTomInSecondandroid_kernel_xiaomi_sdm845Mi 8 (dipper) for LineageOS
Rohail33RealKing KernelApollo(Redmi K30S Ultra/Mi 10T/Mi 10T Pro),Alioth(Redmi K40/POCO F3/Mi 11X),Munch(Redmi K40S/POCO F4), both MIUI and AOSP.
lateautumn233android_kernel_oneplus_sm8250OnePlus 8 Serials
Sreeshankar KNeverSettle KernelOnePlus Nord (avicii)
Molyuuneko_kernel_xiaomi_gauguinRedmi Note 9 Pro/ Mi 10T Lite/ Mi 10i
guh0613android_kernel_oppo_sm8150OPPO Reno Ace (OP4A89)
LeviMarvinandroid_kernel_xiaomi_aliothRedmi K40 / POCO F3
cibimokernel_xiaomi_raphael_ksuXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
EndCreditskernel_xiaomi_sm7250Redmi K30 5G ( picasso ) , Redmi K30i 5G ( picasso_48m)
msnxandroid-msm-coral-4.14-android13Pixel 4 XL
SoDebugkernel_xiaomi_raphaelXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
H1mJTkernel_realme_RMX1901Realme X (RMX1901/RMX1901CN)
SonalSingh18android_kernel_xiaomi_sm6250Miatoll [curtana, excalibur, gram, joyeuse]
RooGhz720kernel_xiaomi_lavenderRedmi Note 7 (Lavender)
JunASAKAkernel_google_msm-4.9_KernelSUGoogle Pixel 3a & 3a XL (sargo & bonito)
RooGhz720kernel_asus_X01BDAsus Zenfone Max Pro M1/M2
Evans Mikekernel_xiaomi_raphael_bool-xXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
easterNdayKSU_Thyme_BuildBotXiaomi 10S
tedomi2705kernel_xiaomi_sdm660Xiaomi Redmi Note 6 Pro (tulip)
RyuujiXandroid_kernel_asus_sdm660-4.19Asus Zenfone Max Pro M1 (X00TD)/ M2 (X01BD) (Linux 4.19)
liqidecgandroid_kernel_xiaomi_sdm710Mi 8 SE (sirius) (Linux 4.9)
Abdelhay-Aliandroid_kernel_huawei_hi6250Huawei P20 lite (hi6250) (Linux 4.9)
reocatandroid_kernel_nokia_sdm660_ksuNokia 6.1 (2018)
Tuan Anhkernel_nokia_msm8998Nokia 8 (Repartitioned)/8 Sirocco (NLA/A1N)
bggRGjQaUbCoEandroid_kernel_samsung_sm8250Samsung Galaxy S20+ 5G (y2q)
SOVIET-ANDROIDkernel_xiaomi_raphaelXK20 Pro Raphael DSP & A only SAR support
Coconutatandroid_kernel_huawei_vtr_emui9_KernelSUHuawei P10,P10 Plus,Mate9,Mate9 Pro(Kirin960 Series),Stable For GSI
dabao1955android_kernel_OPPO_PEQM00MediaTek devices in the OPPO Reno series on ColorOS13.x
Aflaungosandroid_kernel_motorola_msm8998Moto G6 Plus (evert)
TheNoFacekernel_oneplus_msm8998OnePlus 5/5T (cheeseburger/dumpling)
Nipin NA (Joker-V2)Xcalibur kernel (violet)Xiaomi Redmi Note 7 Pro (violet)
Sr-Hankernel_xiaomi_mojitoRedmi Note 10 (Sunny/Mojito)
dabao1955android_kernel_OPPO_OP4ED5OPPO Reno6 on ColorOS11.x/ColorOS12.x,kernel version4.14.186+
rushiranpiseandroid_kernel_samsung_exynos9610_mintKernel 4.14.194 exynos9610 Non-GKI Device, Added KernelSu using manual method
CN-Scarspixel_experience_kernel_xiaomi_sm8250_kernelSUPixel Experience Kernel 4.19.282 for Xiaomi Redmi K40S / Xiaomi Poco F4 (munch)
exerMiyo TokuSony Tama (akari, apollo, aurora, akatsuki) (Linux 4.9)
likkaiQuicksilver KernelXiaomi 11 Lite 5G NE (lisa)
awakened1712android_kernel_samsung_exynos9820Samsung S10/N10
awakened1712android_kernel_oneplus_sm8350Oneplus 9/9Pro
siimsekLightning KernelXiaomi Redmi Note 8/8T (ginkgo/willow)
GiovanYCringekernel_a50Galaxy A50 (A505f,fn,g,gn,gt)
Asriadi Rahimandroid_kernel_google_wahooGoogle Pixel 2/2XL
Flameandroid_kernel_xiaomi_sm8250POCO F3/Redmi K40/Mi 11X (alioth)
DawfukFRkernel_oneplus_sm8250 (Stellaris-Kernel)Oneplus 8 (Instantnoodle), Oneplus 8T (Kebab), Oneplus 8 Pro (Instantnoodlep), Oneplus 9R (lemonades) [msm-4.19]
Tejas Singhkernel_xiaomi_ginkgo (Cuh Kernel)Xiaomi Redmi Note 8/8T (ginkgo/willow)
Coconutatandroid_kernel_xiaomi_ruby_expRedmi Note 12 Pro / Pro+ For MIUI 14
Coconutatandroid_kernel_xiaomi_sdm845_expXiaomi Mi 8 Pro(UD)[equuleus]/Explorer Edition[ursa]
Abdul Wahid Khankernel_xiaomi_begoniaRedmi Note 8 Pro (Begonia/Begoniain)
Abdul Wahid Khankernel_xiaomi_marbleXiaomi Poco F5 / Redmi Note 12 Turbo (Marble)
zfdx123kernel_xiaomi_aliothRedmi K40 (alioth)
wxt1221android_kernel_oneplus_sdm845Oneplus 6 (enchilada) | Oneplus 6T (fajita) with no Retrofit Dynamic Partitions
zharzinhooKernel-Oriente-GuampMoto g9 play
hc841NovaCore_kernelMoto g9 play
zlm324android_kernel_xiaomi_msm8998_ksua lineage kernel forked from LineageOS official repository, version 4.4.302, added ksu.
zlm324android_kernel_xiaomi_msm8953_ksuXiaomi 5X (tiffany)
Vincent4440android_kernel_xiaomi_sm8250Poco F4: munch
zharzinhooandroid_kernel_motorola_cebuMoto g9 power
tiandoufayaleandroid_kernel_samsung_sm8250Samsung Tab S7 WIFI(T870)
starmoeandroid_kernel_oneplus_msm8998Oneplus 5/5T, kernel version 4.4.302

Lançado sob a Licença GPL3.

- diff --git a/pt_BR/guide/what-is-kernelsu.html b/pt_BR/guide/what-is-kernelsu.html index b96ff097d127..80ae30d6bc30 100644 --- a/pt_BR/guide/what-is-kernelsu.html +++ b/pt_BR/guide/what-is-kernelsu.html @@ -15,7 +15,7 @@
Skip to content
On this page

O que é KernelSU?

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.

Características

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.

Como usar

Por favor, consulte: Instalação

Como construir

Como construir o KernelSU?

Discussão

Lançado sob a Licença GPL3.

- diff --git a/pt_BR/index.html b/pt_BR/index.html index 12c491c785e2..46b15a6646ff 100644 --- a/pt_BR/index.html +++ b/pt_BR/index.html @@ -15,7 +15,7 @@
Skip to content

KernelSU

Uma solução root baseada em kernel para Android

KernelSU

Baseado em kernel

Como o nome sugere, KernelSU funciona no kernel Linux, dando-lhe mais controle sobre os apps do espaço do usuário.

Controle de acesso root

Somente apps permitidos podem acessar ou ver su, todos os outros apps não estão cientes disso.

Privilégios de root personalizáveis

KernelSU permite a personalização de uid, gid, grupos, capacidades e regras SELinux do su, bloqueando privilégios de root.

Módulo

Os módulos podem modificar /system sem sistema usando overlayfs permitindo grande potência.

Lançado sob a Licença GPL3.

- diff --git a/ru_RU/guide/app-profile.html b/ru_RU/guide/app-profile.html index 0a9735542ef5..f44020dfe9cd 100644 --- a/ru_RU/guide/app-profile.html +++ b/ru_RU/guide/app-profile.html @@ -19,7 +19,7 @@ enforce app1 typeattribute app1 mlstrustedsubject allow app1 * * *

Обратите внимание, что правило allow app1 * * * используется только в демонстрационных целях. На практике это правило не должно широко использоваться, поскольку оно мало чем отличается от разрешительного режима.

Эскалация

При неправильной настройке корневого профиля может возникнуть сценарий эскалации: ограничения, накладываемые корневым профилем, могут непреднамеренно не сработать.

Например, если предоставить права root пользователю ADB shell (что является обычным случаем), а затем предоставить права root обычному приложению, но настроить его профиль root с UID 2000 (это UID пользователя ADB shell), то приложение может получить полный доступ root, выполнив команду su дважды:

  1. При первом выполнении команды su будет применен профиль App Profile и произойдет переход на UID 2000 (adb shell) вместо 0 (root).
  2. При втором выполнении команды su, поскольку UID равен 2000, а в конфигурации вы предоставили доступ root к UID 2000 (adb shell), приложение получит полные привилегии root.

Примечание

Такое поведение вполне ожидаемо и не является ошибкой. Поэтому мы рекомендуем следующее:

Если вам действительно необходимо предоставить права root в ADB (например, как разработчику), не рекомендуется изменять UID на 2000 при настройке корневого профиля. Лучше использовать 1000 (система).

Некорневой профиль

Размонтирование модулей

KernelSU предоставляет бессистемный механизм модификации системных разделов, реализуемый через монтирование overlayfs. Однако некоторые приложения могут быть чувствительны к такому поведению. Поэтому мы можем выгрузить модули, смонтированные в этих приложениях, установив опцию "размонтирование модулей".

Кроме того, в интерфейсе настроек менеджера KernelSU имеется переключатель "размонтирование модулей по умолчанию". По умолчанию этот переключатель включен, что означает, что KernelSU или некоторые модули будут выгружать модули для данного приложения, если не будут применены дополнительные настройки. Если вам не нравится эта настройка или если она влияет на определенные приложения, у вас есть следующие возможности:

  1. Оставить переключатель "размонтирование модулей по умолчанию" и индивидуально отключить опцию "размонтирование модулей" в профиле приложений для приложений, требующих загрузки модулей (действует как "белый список").
  2. Отключить переключатель "размонтирование модулей по умолчанию" и индивидуально включить опцию "размонтирование модулей" в App Profile для приложений, требующих выгрузки модулей (действует как "черный список").

INFO

В устройствах, использующих ядро версии 5.10 и выше, выгрузку модулей выполняет само ядро. Однако для устройств с ядром версии ниже 5.10 этот переключатель является лишь опцией конфигурации, и KernelSU сам по себе не предпринимает никаких действий. Некоторые модули, например, Zygisksu, могут использовать этот переключатель для определения необходимости выгрузки модулей.

- diff --git a/ru_RU/guide/difference-with-magisk.html b/ru_RU/guide/difference-with-magisk.html index 39bf5852c814..dd666701475e 100644 --- a/ru_RU/guide/difference-with-magisk.html +++ b/ru_RU/guide/difference-with-magisk.html @@ -15,7 +15,7 @@
Skip to content
On this page

Различия с Magisk

Несмотря на большое количество сходств между модулями KernelSU и модулями Magisk, неизбежно возникают и различия, обусловленные совершенно разными механизмами их реализации. Если вы хотите, чтобы ваш модуль работал как на Magisk, так и на KernelSU, вы должны понимать эти различия.

Сходства

  • Формат файлов модулей: оба используют формат zip для организации модулей, и формат модулей практически одинаков
  • Каталог установки модулей: оба расположены в /data/adb/modules.
  • Бессистемность: оба поддерживают модификацию /system бессистемным способом через модули
  • post-fs-data.sh: время выполнения и семантика полностью совпадают
  • service.sh: время выполнения и семантика полностью совпадают
  • system.prop: полностью совпадает
  • sepolicy.rule: полностью совпадает
  • BusyBox: скрипты запускаются в BusyBox с включенным "автономным режимом" в обоих случаях

Различия

Прежде чем разбираться в различиях, необходимо знать, как отличить, в каком режиме работает ваш модуль - KernelSU или Magisk. Для этого можно использовать переменную окружения KSU во всех местах, где можно запустить скрипты модуля (customize.sh, post-fs-data.sh, service.sh). В KernelSU эта переменная окружения будет установлена в значение true.

Вот некоторые отличия:

  • Модули KernelSU не могут быть установлены в режиме Recovery.
  • Модули KernelSU не имеют встроенной поддержки Zygisk (но вы можете использовать модули Zygisk через ZygiskOnKernelSU.
  • Метод замены или удаления файлов в модулях KernelSU полностью отличается от Magisk. KernelSU не поддерживает метод .replace. Вместо этого необходимо создать одноименный файл с помощью команды mknod filename c 0 0 для удаления соответствующего файла.
  • Каталоги для BusyBox отличаются. Встроенный BusyBox в KernelSU находится в каталоге /data/adb/ksu/bin/busybox, а в Magisk - в каталоге /data/adb/magisk/busybox. Обратите внимание, что это внутреннее поведение KernelSU и в будущем оно может измениться!
  • KernelSU не поддерживает файлы .replace; однако KernelSU поддерживает переменные REMOVE и REPLACE для удаления или замены файлов и папок.

Выпускается под лицензией GPL3.

- diff --git a/ru_RU/guide/faq.html b/ru_RU/guide/faq.html index 8337c9b58142..c4180e893743 100644 --- a/ru_RU/guide/faq.html +++ b/ru_RU/guide/faq.html @@ -15,7 +15,7 @@
Skip to content
On this page

FAQ

Поддерживает ли KernelSU мое устройство?

Во-первых, ваше устройство должно быть способно разблокировать загрузчик. Если не может, значит, устройство не поддерживается.

Затем установите на устройство приложение KernelSU manager App и откройте его, если оно покажет Unsupported, то ваше устройство не поддерживается из коробки, но вы можете собрать исходный код ядра и интегрировать KernelSU, чтобы заставить его работать, или использовать неофициально-поддерживаемые-устройства.

Нужно ли для KernelSU разблокировать загрузчик?

Безусловно, да.

Поддерживает ли KernelSU модули?

Да, но это ранняя версия, она может быть глючной. Пожалуйста, подождите, пока она станет стабильной 😃

Поддерживает ли KernelSU Xposed?

Да, Dreamland и TaiChi работают. Что касается LSPosed, то его можно заставить работать с помощью Zygisk на KernelSU

Поддерживает ли KernelSU Zygisk?

KernelSU не имеет встроенной поддержки Zygisk, но вы можете использовать Zygisk на KernelSU.

Совместим ли KernelSU с Magisk?

Система модулей KernelSU конфликтует с магическим монтированием Magisk, если в KernelSU включен какой-либо модуль, то весь Magisk не будет работать.

Но если вы используете только su из KernelSU, то он будет хорошо работать с Magisk: KernelSU модифицирует kernel, а Magisk - ramdisk, они могут работать вместе.

Заменит ли KernelSU Magisk?

Мы так не считаем, и это не является нашей целью. Magisk достаточно хорош для решения проблемы root в пользовательском пространстве и будет жить долго. Цель KernelSU - предоставить пользователям интерфейс ядра, а не заменить Magisk.

Может ли KernelSU поддерживать устройства, не относящиеся к GKI?

Это возможно. Но для этого необходимо скачать исходный текст ядра, подключить KernelSU к дереву исходных текстов и скомпилировать ядро самостоятельно.

Может ли KernelSU поддерживать устройства под управлением Android 12?

На совместимость KernelSU влияет ядро устройства, и версия Android здесь ни при чем. Единственное ограничение - устройства, запускаемые с Android 12, должны иметь ядро 5.10+ (устройства GKI). Итак:

  1. Устройства, выпущенные под управлением Android 12, должны поддерживаться.
  2. Устройства со старым ядром (некоторые устройства с Android 12 также имеют старое ядро) совместимы (Вы должны собрать ядро самостоятельно).

Может ли KernelSU поддерживать старое ядро?

Это возможно, KernelSU бэкпортирован на ядро 4.14, для более старых ядер, вам нужно сделать бэкпорт вручную, и PR приветствуются!

Как интегрировать KernelSU в старое ядро?

Пожалуйста, обратитесь к руководству

Почему моя версия Android - 13, а ядро показывает "android12-5.10"?

Версия ядра не имеет никакого отношения к версии Android, если вам нужно прошить ядро, всегда используйте версию ядра, версия Android не так важна.

Есть ли в KernelSU пространство имен --mount-master/global mount?

Сейчас нет (возможно, в будущем), но есть много способов переключиться на глобальное пространство имен монтирования вручную, например:

  1. nsenter -t 1 -m sh для получения оболочки в глобальном пространстве имен монтирования.
  2. Добавить nsenter --mount=/proc/1/ns/mnt к команде, которую вы хотите выполнить, тогда команда будет выполнена в глобальном пространстве имен монтирования. KernelSU также использует этот способ

Я GKI1.0, могу ли я использовать это?

GKI1 полностью отличается от GKI2, вы должны скомпилировать ядро самостоятельно.

Выпускается под лицензией GPL3.

- diff --git a/ru_RU/guide/hidden-features.html b/ru_RU/guide/hidden-features.html index 1286626dcfae..8a5efbd874d6 100644 --- a/ru_RU/guide/hidden-features.html +++ b/ru_RU/guide/hidden-features.html @@ -15,7 +15,7 @@
Skip to content
On this page

Скрытые возможности

.ksurc

По умолчанию /system/bin/sh загружает /system/etc/mkshrc.

Вы можете заставить su загружать пользовательский rc-файл, создав файл /data/adb/ksu/.ksurc.

Выпускается под лицензией GPL3.

- diff --git a/ru_RU/guide/how-to-build.html b/ru_RU/guide/how-to-build.html index 69bf59f0e437..b272bd8c7f52 100644 --- a/ru_RU/guide/how-to-build.html +++ b/ru_RU/guide/how-to-build.html @@ -18,7 +18,7 @@ mv <kernel_manifest.xml> .repo/manifests repo init -m manifest.xml repo sync

Файл <kernel_manifest.xml> - это файл манифеста, который может однозначно определять сборку, с его помощью можно выполнить пересборку. Файл манифеста следует загрузить с сайта Сборки релизов Google GKI

Построение

Пожалуйста, сначала ознакомьтесь с официальной документацией.

Например, нам необходимо собрать образ ядра aarch64:

sh
LTO=thin BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh

Не забудьте добавить флаг LTO=thin, иначе сборка может завершиться неудачей, если память вашего компьютера меньше 24 Гб.

Начиная с Android 13, сборка ядра осуществляется с помощью bazel:

sh
tools/bazel build --config=fast //common:kernel_aarch64_dist

Сборка ядра с помощью KernelSU

Если вы успешно собрали ядро, то собрать KernelSU очень просто, выберите любой запуск в корневом каталоге исходного кода ядра:

sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -
sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main
sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.5.2

А затем пересоберите ядро и получите образ ядра с KernelSU!

- diff --git a/ru_RU/guide/how-to-integrate-for-non-gki.html b/ru_RU/guide/how-to-integrate-for-non-gki.html index 3ef5b1a6db62..fe70ad54e936 100644 --- a/ru_RU/guide/how-to-integrate-for-non-gki.html +++ b/ru_RU/guide/how-to-integrate-for-non-gki.html @@ -166,7 +166,7 @@ if (disposition != INPUT_IGNORE_EVENT && type != EV_SYN) add_input_randomness(type, code, value);

Наконец, снова соберите ядро, KernelSU должен работать хорошо.

- diff --git a/ru_RU/guide/installation.html b/ru_RU/guide/installation.html index 8fb3fdfa3f71..cb489c9ce323 100644 --- a/ru_RU/guide/installation.html +++ b/ru_RU/guide/installation.html @@ -17,7 +17,7 @@
Skip to content
On this page

Установка

Проверьте, поддерживается ли ваше устройство

Скачайте приложение менеджера KernelSU с сайта GitHub Releases или Coolapk market и установите его на устройство:

  • Если приложение показывает Unsupported, это означает, что Вы должны скомпилировать ядро самостоятельно, KernelSU не будет и никогда не предоставит Вам загрузочный образ для прошивки.
  • Если приложение показывает Не установлено, значит, ваши устройства официально поддерживаются KernelSU.

INFO

Для устройств, показывающих Unsupported, здесь находится Unofficially-support-devices, вы можете скомпилировать ядро самостоятельно.

Резервное копирование стокового файла boot.img

Перед прошивкой необходимо создать резервную копию файла boot.img. Если возникнет ошибка загрузки, вы всегда сможете восстановить систему, перепрошив ее на заводскую загрузку с помощью fastboot.

WARNING

Прошивка может привести к потере данных, поэтому обязательно выполните этот шаг перед переходом к следующему шагу!!! При необходимости можно также создать резервную копию всех данных на телефоне.

Необходимые знания

ADB и fastboot

По умолчанию в этом руководстве вы будете использовать инструменты ADB и fastboot, поэтому, если вы их не знаете, рекомендуем сначала воспользоваться поисковой системой, чтобы узнать о них.

KMI

Kernel Module Interface (KMI), версии ядра с одинаковым KMI совместимы Это то, что в GKI означает "общий"; наоборот, если KMI отличается, то эти ядра несовместимы друг с другом, и прошивка образа ядра с другим KMI, чем у вашего устройства, может привести к bootloop.

В частности, для устройств GKI формат версии ядра должен быть следующим:

txt
KernelRelease :=
 Version.PatchLevel.SubLevel-AndroidRelease-KmiGeneration-suffix
 w      .x         .y       -zzz           -k            -something

w.x-zz-k - версия KMI. Например, если версия ядра устройства 5.10.101-android12-9-g30979850fc20, то его KMI - 5.10-android12-9; теоретически оно может нормально загружаться с другими ядрами KMI.

TIP

Обратите внимание, что SubLevel в версии ядра не является частью KMI! Это означает, что 5.10.101-android12-9-g30979850fc20 имеет тот же KMI, что и 5.10.137-android12-9-g30979850fc20!

Версия ядра и версия Android

Обратите внимание: Версия ядра и версия Android - это не обязательно одно и то же!

Если вы обнаружили, что версия ядра android12-5.10.101, а версия системы Android - Android 13 или другая, не удивляйтесь, поскольку номер версии системы Android не обязательно совпадает с номером версии ядра Linux; Номер версии ядра Linux обычно соответствует версии системы Android, поставляемой с устройством при его поставке. При последующем обновлении системы Android версия ядра, как правило, не меняется. При необходимости прошивки укажите версию ядра!!!.

Введение

Существует несколько способов установки KernelSU, каждый из которых подходит для разных сценариев, поэтому выбирайте их по своему усмотрению.

  1. Установка с помощью пользовательского Recovery (например, TWRP)
  2. Установка с помощью приложения для прошивки ядра, например, Franco Kernel Manager
  3. Установка с помощью fastboot с использованием boot.img, предоставленного KernelSU
  4. Восстановить boot.img вручную и установить его

Установка с помощью пользовательского Recovery

Необходимые условия: На устройстве должен быть установлен пользовательский Recovery, например TWRP; если его нет или доступен только официальный Recovery, воспользуйтесь другим способом.

Шаг:

  1. С Release page KernelSU загрузите zip-пакет, начинающийся с AnyKernel3, который соответствует версии вашего телефона; например, версия ядра телефона - android12-5.10. 66, то следует скачать файл AnyKernel3-android12-5.10.66_yyy-MM.zip (где yyyy - год, а MM - месяц).
  2. Перезагрузите телефон в TWRP.
  3. С помощью adb поместите AnyKernel3-*.zip в /sdcard телефона и выберите установку в графическом интерфейсе TWRP; или вы можете напрямую adb sideload AnyKernel-*.zip для установки.

PS. Данный способ подходит для любой установки (не ограничиваясь начальной установкой или последующими обновлениями), если вы используете TWRP.

Установка с помощью Kernel Flasher

Необходимые условия: Ваше устройство должно быть рутованным. Например, вы установили Magisk, чтобы получить root, или установили старую версию KernelSU и должны обновить ее до другой версии; если ваше устройство не укоренено, попробуйте другие методы.

Шаг:

  1. Загрузите zip-архив AnyKernel3; инструкции по загрузке см. в разделе Установка с помощью пользовательского Recovery.
  2. Откройте приложение для прошивки ядра и используйте предоставленный AnyKernel3 zip для прошивки.

Если вы раньше не использовали приложение для прошивки ядра, то наиболее популярными являются следующие.

  1. Kernel Flasher
  2. Franco Kernel Manager
  3. Ex Kernel Manager

PS. Этот способ более удобен при обновлении KernelSU и может быть выполнен без компьютера (сначала сделайте резервную копию!). .

Установка с помощью boot.img, предоставленного KernelSU

Этот способ не требует наличия TWRP и root-прав на телефоне; он подходит для первой установки KernelSU.

Найти подходящий boot.img

KernelSU предоставляет общий boot.img для устройств GKI, и его необходимо прошить в загрузочный раздел устройства.

Вы можете загрузить boot.img с GitHub Release, обратите внимание, что вы должны использовать правильную версию boot.img. Например, если на устройстве установлено ядро android12-5.10.101, то необходимо загрузить android-5.10.101_yyy-MM.boot-<format>.img. , необходимо загрузить android-5.10.101_yyy-MM.boot-<format>.img.(Соблюдайте соответствие KMI!).

Где <format> означает формат сжатия ядра в официальном boot.img, проверьте формат сжатия ядра в оригинальном boot.img, вы должны использовать правильный формат, например, lz4, gz; если вы используете неправильный формат сжатия, вы можете столкнуться с bootloop.

INFO

  1. Вы можете использовать magiskboot для получения формата сжатия исходной загрузки; конечно, вы также можете спросить других, более опытных ребят с той же моделью, что и ваше устройство. Кроме того, формат сжатия ядра обычно не меняется, поэтому, если вы успешно загрузились с определенным форматом сжатия, вы можете попробовать этот формат позже.
  2. Устройства Xiaomi обычно используют gz или без сжатия.
  3. Для устройств Pixel следуйте приведенным ниже инструкциям.

прошить boot.img на устройство

Используйте adb для подключения устройства, затем выполните adb reboot bootloader для входа в режим fastboot, после чего используйте эту команду для прошивки KernelSU:

sh
fastboot flash boot boot.img

INFO

Если устройство поддерживает fastboot boot, можно сначала использовать fastboot boot boot.img, чтобы попытаться использовать boot.img для загрузки системы. Если произойдет что-то непредвиденное, перезагрузите его снова для загрузки.

перезагрузка

После завершения прошивки необходимо перезагрузить устройство:

sh
fastboot reboot

Исправить boot.img вручную

Для некоторых устройств формат boot.img не так распространен, например, не lz4, gz или несжатый; наиболее типичным является Pixel, его boot.img имеет формат lz4_legacy со сжатием, ramdisk может быть gz, также может быть lz4_legacy со сжатием; в это время, если напрямую прошить boot.img, предоставляемый KernelSU, телефон может не загрузиться; в это время можно вручную исправить boot.img для достижения цели.

Как правило, существует два способа исправления:

  1. Android-Image-Kitchen
  2. magiskboot

Среди них Android-Image-Kitchen подходит для работы на ПК, а magiskboot нуждается в сотрудничестве мобильного телефона.

Подготовка

  1. Получите стоковый boot.img вашего телефона; его можно получить у производителя устройства, возможно, вам понадобится payload-dumper-go
  2. Загрузите zip-файл AnyKernel3, предоставленный KernelSU, который соответствует версии KMI вашего устройства (можно обратиться к разделу Установка с помощью пользовательского Recovery).
  3. Распакуйте пакет AnyKernel3 и получите файл Image, который является файлом ядра KernelSU.

Использование Android-Image-Kitchen

  1. Загрузите программу Android-Image-Kitchen на свой компьютер.
  2. Поместите файл boot.img в корневую папку Android-Image-Kitchen.
  3. Выполните команду ./unpackimg.sh boot.img в корневом каталоге Android-Image-Kitchen, в результате чего boot.img распакуется и появятся некоторые файлы.
  4. Замените boot.img-kernel в каталоге split_img тем образом, который вы извлекли из AnyKernel3 (обратите внимание на изменение названия на boot.img-kernel).
  5. Выполните команду ./repackimg.sh в корневом каталоге 在 Android-Image-Kitchen; Вы получите файл с именем image-new.img; Прошейте этот boot.img с помощью fastboot (см. предыдущий раздел).

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

  1. Загрузите последнюю версию Magisk с Release Page.
  2. Переименуйте Magisk-*.apk в Magisk-vesion.zip и разархивируйте его.
  3. Закачайте Magisk-v25.2/lib/arm64-v8a/libmagiskboot.so на устройство с помощью adb: adb push Magisk-v25.2/lib/arm64-v8a/libmagiskboot.so /data/local/tmp/magiskboot.
  4. Установите на устройство стоковый boot.img и образ в AnyKernel3.
  5. Войдите в оболочку adb и перейдите в каталог /data/local/tmp/, затем chmod +x magiskboot.
  6. Войдите в adb shell и cd директории /data/local/tmp/, выполните команду ./magiskboot unpack boot.img для распаковки boot.img, вы получите файл kernel, это и есть ваше стоковое ядро.
  7. Замените kernel на Image: mv -f Image kernel.
  8. Выполните команду ./magiskboot repack boot.img, чтобы перепаковать boot img, и получите файл new-boot.img, прошейте его на устройство с помощью fastboot.

Другие методы

На самом деле все эти способы установки имеют только одну основную идею - заменить исходное ядро на ядро, предоставляемое KernelSU; если это возможно, то установка возможна; например, возможны следующие способы.

  1. Сначала установить Magisk, получить права root через Magisk, а затем с помощью kernel flasher прошить AnyKernel zip из KernelSU.
  2. Использовать какой-либо инструментарий для прошивки на ПК, чтобы прошить ядро, предоставленное KernelSU.

Выпускается под лицензией GPL3.

- diff --git a/ru_RU/guide/module.html b/ru_RU/guide/module.html index ed7797372657..91b4fd7fd711 100644 --- a/ru_RU/guide/module.html +++ b/ru_RU/guide/module.html @@ -95,7 +95,7 @@ set_perm file owner group filepermission context для всех каталогов в <directory> (включая себя самого), он вызовет: set_perm dir owner group dirpermission context

Загрузочные сценарии

В KernelSU скрипты делятся на два типа в зависимости от режима их работы: режим post-fs-data и режим late_start service:

В KernelSU скрипты запуска делятся на два типа по месту их хранения: общие скрипты и скрипты модулей:

Все загрузочные скрипты будут выполняться в оболочке BusyBox ash от KernelSU с включенным "Автономным режимом".

- diff --git a/ru_RU/guide/rescue-from-bootloop.html b/ru_RU/guide/rescue-from-bootloop.html index a28032e84ecf..2518aed61c68 100644 --- a/ru_RU/guide/rescue-from-bootloop.html +++ b/ru_RU/guide/rescue-from-bootloop.html @@ -15,7 +15,7 @@
Skip to content
On this page

Выход из циклической загрузки

При прошивке устройства могут возникать ситуации, когда устройство становится "окирпиченным". Теоретически, если использовать fastboot только для прошивки загрузочного раздела или установить неподходящие модули, из-за которых устройство не загружается, то это можно восстановить соответствующими операциями. В данном документе описаны некоторые экстренные методы восстановления работоспособности "окирпиченного" устройства.

Кирпич путем перепрошивки загрузочного раздела

В KernelSU при прошивке загрузочного раздела могут возникнуть следующие ситуации:

  1. Загрузочный образ прошивается в неправильном формате. Например, если формат загрузки телефона - gz, а вы прошили образ в формате lz4, то телефон не сможет загрузиться.
  2. Для корректной загрузки телефона необходимо отключить проверку AVB (обычно для этого требуется стереть все данные на телефоне).
  3. Ядро содержит ошибки или не подходит для прошивки телефона.

Независимо от ситуации, восстановить работоспособность можно путем прошивки стокового загрузочного образа. Поэтому в начале руководства по установке мы настоятельно рекомендуем создать резервную копию стокового загрузочного образа перед прошивкой. Если у вас нет резервной копии, вы можете получить оригинальную заводскую загрузку от других пользователей с таким же устройством, как у вас, или из официальной прошивки.

Окирпичивание из-за модулей

Установка модулей может быть более распространенной причиной окирпичивания устройства, но мы должны серьезно предупредить вас: Не устанавливайте модули из неизвестных источников! Поскольку модули обладают правами root, они могут нанести непоправимый ущерб вашему устройству!

Нормальные модули

Если вы прошили модуль, безопасность которого доказана, но он приводит к невозможности загрузки устройства, то такая ситуация легко восстанавливается в KernelSU без каких-либо проблем. KernelSU имеет встроенные механизмы для спасения устройства, в том числе следующие:

  1. Обновление AB
  2. Восстановление при нажатии клавиши уменьшения громкости

AB-обновление

Механизм обновления модулей в KernelSU основан на механизме AB-обновления, используемом в OTA-обновлениях системы Android. При установке нового модуля или обновлении существующего он не будет напрямую изменять текущий файл модуля. Вместо этого все модули будут встроены в другой образ обновления. После перезагрузки системы она попытается начать использовать этот образ обновления. Если система Android успешно загрузится, то модули будут действительно обновлены.

Поэтому самым простым и наиболее часто используемым методом спасения устройства является принудительная перезагрузка. Если после прошивки модуля не удается запустить систему, можно нажать и удерживать кнопку питания более 10 секунд, после чего система автоматически перезагрузится; после перезагрузки произойдет откат к состоянию до обновления модуля, а ранее обновленные модули будут автоматически отключены.

Спасение, с зажатой клавишей уменьшения громкости

Если обновление AB не помогло решить проблему, можно попробовать использовать Безопасный режим. В безопасном режиме все модули отключены.

Войти в безопасный режим можно двумя способами:

  1. Встроенный безопасный режим некоторых систем; некоторые системы имеют встроенный безопасный режим, доступ к которому осуществляется долгим нажатием кнопки уменьшения громкости, в то время как другие (например, MIUI) могут включить безопасный режим в Recovery. При входе в безопасный режим системы KernelSU также переходит в безопасный режим и автоматически отключает модули.
  2. Встроенный безопасный режим KernelSU; метод работы заключается в том, что после первого экрана загрузки необходимо непрерывно нажать клавишу уменьшения громкости более трех раз. Обратите внимание, что именно нажать-отпустить, нажать-отпустить, нажать-отпустить, а не нажать и удерживать.

После входа в безопасный режим все модули на странице модулей менеджера KernelSU Manager отключаются, но можно выполнить операцию "деинсталляция" для удаления модулей, которые могут вызывать проблемы.

Встроенный безопасный режим реализован в ядре, поэтому вероятность пропуска ключевых событий из-за перехвата исключена. Однако для ядер, отличных от ГКИ, может потребоваться ручная интеграция кода, и за рекомендациями можно обратиться к официальной документации.

Вредоносные модули

Если описанные выше способы не помогли спасти устройство, то высока вероятность того, что установленный модуль имеет вредоносные операции или повредил устройство иным способом. В этом случае есть только два варианта:

  1. Стереть данные и прошить официальную систему.
  2. Обратиться в сервисную службу.

Выпускается под лицензией GPL3.

- diff --git a/ru_RU/guide/unofficially-support-devices.html b/ru_RU/guide/unofficially-support-devices.html index 72d861edf98c..988546be8f39 100644 --- a/ru_RU/guide/unofficially-support-devices.html +++ b/ru_RU/guide/unofficially-support-devices.html @@ -16,7 +16,7 @@
Skip to content
On this page

Неофициально поддерживаемые устройства

WARNING

На этой странице представлены ядра для устройств, не поддерживающих ГКИ и поддерживающих KernelSU, которые поддерживаются другими разработчиками.

WARNING

Эта страница предназначена только для поиска исходного кода, соответствующего вашему устройству, и НЕ означает, что исходный код был проверен разработчиками KernelSU. Вы должны использовать его на свой страх и риск.

СопровождающийРепозиторийПоддерживаемое устройство
diphonsD8G_Kernel_oxygenPoco F3: alioth | Poco F4: munch | MI10T/PRO: Apollo
diphonsD8G_Kernel_SM8150Poco X3 Pro: Vayu | Bhima
diphonsD8G_Kernel_SDM845Poco F1 | MI8 | MiMix2S
diphonsD8G_Kernel_SM8350Vili
diphonsD8G_Kernel_MarblePoco F5 | Redmi Note 12 Turbo | Marble
th1nhhdkandroid_kernel_sony_sm8250-kernelsuSony Xperia 1 II | Sony Xperia 5 II
akash07knexus_kernel_xiaomi_sm8250Poco F4: munch
HMTheBoy154Darkmatter-kernelGeneric x86_64 devices running Android-x86
Asuka-mioandroid_kernel_xiaomi_casMi 10 Ultra: cas
xiaoleGunMiku_kernel_xiaomi_waynewayne
YamazakuraHkernel_xiaomi_cepheuscepheus for pixel experience
SakuraNotStupidandroid_kernel_xiaomi_sdm710Xiaomi MI 8 SE(sirius/xmsirius)
Aquarius223(paper)android_kernel_xiaomi_msm8998MI 6 (sagit) and MIX 2 (chiron) for LineageOS
SlackerStateandroid_kernel_xiaomi_sm6150Redmi K30 4G (phoenix)
RooGhz720kernel_xiaomi_sm6150REDMI NOTE 10 PRO (sweet)
OnlyTomInSecondandroid_kernel_xiaomi_sdm845Mi 8 (dipper) for LineageOS
Rohail33RealKing KernelApollo(Redmi K30S Ultra/Mi 10T/Mi 10T Pro),Alioth(Redmi K40/POCO F3/Mi 11X),Munch(Redmi K40S/POCO F4), both MIUI and AOSP.
lateautumn233android_kernel_oneplus_sm8250OnePlus 8 Serials
Sreeshankar KNeverSettle KernelOnePlus Nord (avicii)
Molyuuneko_kernel_xiaomi_gauguinRedmi Note 9 Pro/ Mi 10T Lite/ Mi 10i
guh0613android_kernel_oppo_sm8150OPPO Reno Ace (OP4A89)
LeviMarvinandroid_kernel_xiaomi_aliothRedmi K40 / POCO F3
cibimokernel_xiaomi_raphael_ksuXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
EndCreditskernel_xiaomi_sm7250Redmi K30 5G ( picasso ) , Redmi K30i 5G ( picasso_48m)
msnxandroid-msm-coral-4.14-android13Pixel 4 XL
SoDebugkernel_xiaomi_raphaelXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
H1mJTkernel_realme_RMX1901Realme X (RMX1901/RMX1901CN)
SonalSingh18android_kernel_xiaomi_sm6250Miatoll [curtana, excalibur, gram, joyeuse]
RooGhz720kernel_xiaomi_lavenderRedmi Note 7 (Lavender)
JunASAKAkernel_google_msm-4.9_KernelSUGoogle Pixel 3a & 3a XL (sargo & bonito)
RooGhz720kernel_asus_X01BDAsus Zenfone Max Pro M1/M2
Evans Mikekernel_xiaomi_raphael_bool-xXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
easterNdayKSU_Thyme_BuildBotXiaomi 10S
tedomi2705kernel_xiaomi_sdm660Xiaomi Redmi Note 6 Pro (tulip)
RyuujiXandroid_kernel_asus_sdm660-4.19Asus Zenfone Max Pro M1 (X00TD)/ M2 (X01BD) (Linux 4.19)
liqidecgandroid_kernel_xiaomi_sdm710Mi 8 SE (sirius) (Linux 4.9)
Abdelhay-Aliandroid_kernel_huawei_hi6250Huawei P20 lite (hi6250) (Linux 4.9)
reocatandroid_kernel_nokia_sdm660_ksuNokia 6.1 (2018)
Tuan Anhkernel_nokia_msm8998Nokia 8 (Repartitioned)/8 Sirocco (NLA/A1N)
bggRGjQaUbCoEandroid_kernel_samsung_sm8250Samsung Galaxy S20+ 5G (y2q)
SOVIET-ANDROIDkernel_xiaomi_raphaelXK20 Pro Raphael DSP & A only SAR support
Coconutatandroid_kernel_huawei_vtr_emui9_KernelSUHuawei P10,P10 Plus,Mate9,Mate9 Pro(Kirin960 Series),Stable For GSI
dabao1955android_kernel_OPPO_PEQM00MediaTek devices in the OPPO Reno series on ColorOS13.x
Aflaungosandroid_kernel_motorola_msm8998Moto G6 Plus (evert)
TheNoFacekernel_oneplus_msm8998OnePlus 5/5T (cheeseburger/dumpling)
Nipin NA (Joker-V2)Xcalibur kernel (violet)Xiaomi Redmi Note 7 Pro (violet)
Sr-Hankernel_xiaomi_mojitoRedmi Note 10 (Sunny/Mojito)
dabao1955android_kernel_OPPO_OP4ED5OPPO Reno6 on ColorOS11.x/ColorOS12.x,kernel version4.14.186+
rushiranpiseandroid_kernel_samsung_exynos9610_mintKernel 4.14.194 exynos9610 Non-GKI Device, Added KernelSu using manual method
CN-Scarspixel_experience_kernel_xiaomi_sm8250_kernelSUPixel Experience Kernel 4.19.282 for Xiaomi Redmi K40S / Xiaomi Poco F4 (munch)
exerMiyo TokuSony Tama (akari, apollo, aurora, akatsuki) (Linux 4.9)
likkaiQuicksilver KernelXiaomi 11 Lite 5G NE (lisa)
awakened1712android_kernel_samsung_exynos9820Samsung S10/N10
awakened1712android_kernel_oneplus_sm8350Oneplus 9/9Pro
siimsekLightning KernelXiaomi Redmi Note 8/8T (ginkgo/willow)
GiovanYCringekernel_a50Galaxy A50 (A505f,fn,g,gn,gt)
Asriadi Rahimandroid_kernel_google_wahooGoogle Pixel 2/2XL
Flameandroid_kernel_xiaomi_sm8250POCO F3/Redmi K40/Mi 11X (alioth)
DawfukFRkernel_oneplus_sm8250 (Stellaris-Kernel)Oneplus 8 (Instantnoodle), Oneplus 8T (Kebab), Oneplus 8 Pro (Instantnoodlep), Oneplus 9R (lemonades) [msm-4.19]
Tejas Singhkernel_xiaomi_ginkgo (Cuh Kernel)Xiaomi Redmi Note 8/8T (ginkgo/willow)
Coconutatandroid_kernel_xiaomi_ruby_expRedmi Note 12 Pro / Pro+ For MIUI 14
Coconutatandroid_kernel_xiaomi_sdm845_expXiaomi Mi 8 Pro(UD)[equuleus]/Explorer Edition[ursa]
Abdul Wahid Khankernel_xiaomi_begoniaRedmi Note 8 Pro (Begonia/Begoniain)
Abdul Wahid Khankernel_xiaomi_marbleXiaomi Poco F5 / Redmi Note 12 Turbo (Marble)
zfdx123kernel_xiaomi_aliothRedmi K40 (alioth)
wxt1221android_kernel_oneplus_sdm845Oneplus 6 (enchilada) | Oneplus 6T (fajita) with no Retrofit Dynamic Partitions
zharzinhooKernel-Oriente-GuampMoto g9 play
hc841NovaCore_kernelMoto g9 play
zlm324android_kernel_xiaomi_msm8998_ksua lineage kernel forked from LineageOS official repository, version 4.4.302, added ksu.
zlm324android_kernel_xiaomi_msm8953_ksuXiaomi 5X (tiffany)
Vincent4440android_kernel_xiaomi_sm8250Poco F4: munch
zharzinhooandroid_kernel_motorola_cebuMoto g9 power
tiandoufayaleandroid_kernel_samsung_sm8250Samsung Tab S7 WIFI(T870)
starmoeandroid_kernel_oneplus_msm8998Oneplus 5/5T, kernel version 4.4.302

Выпускается под лицензией GPL3.

- diff --git a/ru_RU/guide/what-is-kernelsu.html b/ru_RU/guide/what-is-kernelsu.html index 42bd2bdb4a3a..0ed1dbcb498b 100644 --- a/ru_RU/guide/what-is-kernelsu.html +++ b/ru_RU/guide/what-is-kernelsu.html @@ -15,7 +15,7 @@
Skip to content
On this page

Что такое KernelSU?

KernelSU - это root-решение для устройств Android GKI, работающее в режиме ядра и предоставляющее root-права пользовательским приложениям непосредственно в пространстве ядра.

Особенности

Основной особенностью KernelSU является то, что он основан на ядре. KernelSU работает в режиме ядра, поэтому он может предоставить интерфейс ядра, которого раньше не было. Например, мы можем добавить аппаратную точку останова любому процессу в режиме ядра; мы можем получить доступ к физической памяти любого процесса без чьего-либо ведома; мы можем перехватить любой syscall в пространстве ядра; и т.д.

Кроме того, KernelSU предоставляет систему модулей через overlayfs, что позволяет загружать в систему пользовательские плагины. Также предусмотрен механизм модификации файлов в разделе /system.

Как использовать

Пожалуйста, обратитесь к: Установка

Как собрать

Как собрать

Обсуждение

Выпускается под лицензией GPL3.

- diff --git a/ru_RU/index.html b/ru_RU/index.html index 5f82f8d0962a..61fff20e24e6 100644 --- a/ru_RU/index.html +++ b/ru_RU/index.html @@ -15,7 +15,7 @@
Skip to content

KernelSU

Основанное на ядре root-решение для Android

KernelSU

Основанный на ядре

KernelSU работает в режиме ядра Linux, он имеет больше контроля над пользовательскими приложениями.

Контроль доступа по белому списку

Только приложение, которому предоставлено разрешение root, может получить доступ к `su`, другие приложения не могут воспринимать su.

Ограниченные root-права

KernelSU позволяет вам настраивать uid, gid, группы, возможности и правила SELinux для su. Заприте root-власть в клетке.

Модульность и открытый исходный код

KernelSU поддерживает модификацию /system бессистемно с помощью overlayfs и имеет открытый исходный код под лицензией GPL-3.

Выпускается под лицензией GPL3.

- diff --git a/templates/adb b/templates/adb index 9949a62fd7a0..024515ab72b8 100644 --- a/templates/adb +++ b/templates/adb @@ -8,9 +8,6 @@ "groups":[ "ADB" ], - "capabilities":[], - "context":"u:r:su:s0", - "namespace":"INHERITED", "locales": { "zh_CN": { "name": "Adb 模版", diff --git a/templates/incompetent.root b/templates/incompetent.root index 337edc5c1d82..f73ca99084bb 100644 --- a/templates/incompetent.root +++ b/templates/incompetent.root @@ -2,19 +2,16 @@ "id":"incompetent.root", "name":"incompetent root", "author":"kernelsu.org", - "description":"A incompetent root user with minimal capability", + "description":"A incompetent root user without any capability", "uid":0, "gid":0, "groups":[ "ROOT" ], - "capabilities":[], - "context":"u:r:su:s0", - "namespace":"INHERITED", "locales": { "zh_CN": { "name": "无能的 Root", - "description": "权能极低的无能 root 用户" + "description": "无任何权能的 root 用户" } } } diff --git a/templates/system b/templates/system index a0ad9954e80e..e1bf0c0ab53b 100644 --- a/templates/system +++ b/templates/system @@ -2,19 +2,16 @@ "id":"system", "author":"kernelsu.org", "name":"system ", - "description":"The permission level at which the Android system runs without capabilities", + "description":"The permission level at which the Android system runs without any capability", "uid":1000, "gid":1000, "groups":[ "SYSTEM" ], - "capabilities":[], - "context":"u:r:su:s0", - "namespace":"INHERITED", "locales": { "zh_CN": { "name": "Android 系统", - "description": "Android 系统运行的权限级别,但没有多数权能" + "description": "Android 系统运行的权限级别,但没有任何权能" } } } diff --git a/vi_VN/guide/app-profile.html b/vi_VN/guide/app-profile.html index 77cadbe400dc..24c6f439d70e 100644 --- a/vi_VN/guide/app-profile.html +++ b/vi_VN/guide/app-profile.html @@ -19,7 +19,7 @@ enforce app1 typeattribute app1 mlstrustedsubject allow app1 * * *

Lưu ý rằng quy tắc allow app1 * * * chỉ được sử dụng cho mục đích minh họa. Trong thực tế, quy tắc này không nên được sử dụng rộng rãi vì nó không khác nhiều so với chế độ cho phép.

Escalation

Nếu cấu hình của Root Profile không được đặt đúng cách, một tình huống escalation (leo thang) có thể xảy ra: các hạn chế do Root Profile áp đặt có thể vô tình bị lỗi.

Ví dụ: nếu bạn cấp quyền root cho người dùng shell ADB (đây là trường hợp phổ biến), sau đó bạn cấp quyền root cho một ứng dụng thông thường nhưng định cấu hình cấu hình gốc của nó bằng UID 2000 (là UID của người dùng shell ADB) , ứng dụng có thể có được quyền truy cập root đầy đủ bằng cách thực hiện lệnh su hai lần:

  1. Lần thực thi su đầu tiên phải tuân theo sự thực thi của App Profile và sẽ chuyển sang UID 2000 (adb shell) thay vì 0 (root).
  2. Lần thực thi su thứ hai, vì UID là 2000 và bạn đã cấp quyền truy cập root cho UID 2000 (adb shell) trong cấu hình, ứng dụng sẽ có toàn quyền root.

Ghi chú

Hành vi này hoàn toàn được mong đợi và không phải là lỗi. Vì vậy, chúng tôi khuyến nghị như sau:

Nếu bạn thực sự cần cấp quyền root cho ADB (ví dụ: với tư cách là nhà phát triển), bạn không nên thay đổi UID thành 2000 khi định cấu hình Root Profile. Sử dụng 1000 (hệ thống) sẽ là lựa chọn tốt hơn.

Non-Root Profile

Umount Modules

KernelSU cung cấp một cơ chế systemless để sửa đổi các phân vùng hệ thống, đạt được thông qua việc gắn overlayfs. Tuy nhiên, một số ứng dụng có thể nhạy cảm với hành vi đó. Do đó, chúng ta có thể dỡ bỏ các mô-đun được gắn trên các ứng dụng này bằng cách đặt tùy chọn "umount modules".

Ngoài ra, giao diện cài đặt của trình quản lý KernelSU cung cấp một công tắc cho "umount modules by default". Theo mặc định, công tắc này được bật, có nghĩa là KernelSU hoặc một số mô-đun sẽ hủy tải các mô-đun cho ứng dụng này trừ khi áp dụng cài đặt bổ sung. Nếu bạn không thích cài đặt này hoặc nếu nó ảnh hưởng đến một số ứng dụng nhất định, bạn có các tùy chọn sau:

  1. Giữ nút chuyển cho "umount modules by default" và tắt riêng tùy chọn "umount modules" trong App Profile đối với các ứng dụng yêu cầu tải mô-đun (hoạt động như "whitelist").
  2. Tắt khóa chuyển cho "umount modules by default" và bật riêng tùy chọn "umount modules" trong App Profile cho các ứng dụng yêu cầu dỡ bỏ mô-đun (hoạt động như "blacklist").

INFO

Trong các thiết bị sử dụng kernel phiên bản 5.10 trở lên, kernel thực hiện việc dỡ tải các mô-đun. Tuy nhiên, đối với các thiết bị chạy phiên bản kernel dưới 5.10, công tắc này chỉ đơn thuần là một tùy chọn cấu hình và bản thân KernelSU không thực hiện bất kỳ hành động nào. Một số mô-đun, chẳng hạn như Zygisksu, có thể sử dụng công tắc này để xác định xem có cần thiết phải dỡ bỏ mô-đun hay không.

- diff --git a/vi_VN/guide/difference-with-magisk.html b/vi_VN/guide/difference-with-magisk.html index 3cb4bc4a81df..5e026e911b57 100644 --- a/vi_VN/guide/difference-with-magisk.html +++ b/vi_VN/guide/difference-with-magisk.html @@ -15,7 +15,7 @@
Skip to content
On this page

Sự khác biệt với Magisk

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.

Điểm tương đồng

  • Định dạng file mô-đun: đều sử dụng định dạng zip để sắp xếp các mô-đun và định dạng của các mô-đun gần như giống nhau
  • Thư mục cài đặt mô-đun: cả hai đều nằm trong /data/adb/modules
  • systemless: cả hai đều hỗ trợ sửa đổi /system theo cách không có hệ thống thông qua các mô-đun
  • post-fs-data.sh: thời gian thực hiện và ngữ nghĩa hoàn toàn giống nhau
  • service.sh: thời gian thực hiện và ngữ nghĩa hoàn toàn giống nhau
  • system.prop: hoàn toàn giống nhau
  • sepolicy.rule: hoàn toàn giống nhau
  • BusyBox: các tập lệnh được chạy trong BusyBox với "standalone mode" được bật trong cả hai trường hợp

Điểm khác biệt

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:

  • Không thể cài đặt các mô-đun KernelSU ở chế độ Recovery.
  • Các mô-đun KernelSU không có hỗ trợ tích hợp cho Zygisk (nhưng bạn có thể sử dụng các mô-đun Zygisk thông qua ZygiskOnKernelSU.
  • Phương pháp thay thế hoặc xóa file trong module KernelSU hoàn toàn khác với Magisk. KernelSU không hỗ trợ phương thức .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.
  • Các thư mục của BusyBox khác nhau. BusyBox tích hợp trong KernelSU nằm ở /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!
  • KernelSU không hỗ trợ file .replace; tuy nhiên, KernelSU hỗ trợ biến REMOVEREPLACE để xóa hoặc thay thế các tệp và thư mục.
  • KernelSU thêm giai đoạn boot-completed để chạy một số script khi khởi động xong.
  • KernelSU thêm giai đoạn post-mount để chạy một số tập lệnh sau khi gắn overlayfs

Phát hành dưới giấy phép GPL3.

- diff --git a/vi_VN/guide/faq.html b/vi_VN/guide/faq.html index 5266e038ac99..4909f07069fc 100644 --- a/vi_VN/guide/faq.html +++ b/vi_VN/guide/faq.html @@ -15,7 +15,7 @@
Skip to content
On this page

FAQ

KernelSU có hỗ trợ thiết bị của tôi không?

Đầ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.

KernelSU có cần mở khóa Bootloader không?

Chắc chắn có.

KernelSU có hỗ trợ các mô-đun không?

Có, nhưng đây là phiên bản đầu tiên nên có thể bị lỗi. Đợi nó ổn định nhé 😃

KernelSU có hỗ trợ Xposed không?

Có, DreamlandTaiChi 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 có hỗ trợ Zygisk không?

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.

KernelSU có tương thích với Magisk không?

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.

KernelSU sẽ thay thế Magisk?

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.

KernelSU có thể hỗ trợ các thiết bị không phải GKI không?

Đ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.

KernelSU có thể hỗ trợ các thiết bị dưới Android 12 không?

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ế:

  1. Các thiết bị chạy Android 12 phải được hỗ trợ.
  2. Các thiết bị có kernel cũ (Một số thiết bị Android 12 cũng là kernel cũ) tương thích (Bạn nên tự build kernel)

KernelSU có thể hỗ trợ kernel cũ không?

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!

Làm cách nào để tích hợp KernelSU cho kernel cũ?

Vui lòng tham khảo hướng dẫn

Tại sao phiên bản Android của tôi là 13 và kernel hiển thị "android12-5.10"?

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.

Đã có mount namespace --mount-master/global trên KernelSU chưa?

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ư:

  1. nsenter -t 1 -m sh để lấy shell trong global mount namespace.
  2. Thêm 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ày

Tôi là GKI1.0, tôi có thể sử dụng cái này không?

GKI1 khác hoàn toàn với GKI2, bạn phải tự biên dịch kernel.

Phát hành dưới giấy phép GPL3.

- diff --git a/vi_VN/guide/hidden-features.html b/vi_VN/guide/hidden-features.html index c4b16fe10b11..d18d9385b9d9 100644 --- a/vi_VN/guide/hidden-features.html +++ b/vi_VN/guide/hidden-features.html @@ -15,7 +15,7 @@
Skip to content
On this page

Tính Năng Ẩn

.ksurc

Theo mặc định, /system/bin/sh tải /system/etc/mkshrc.

Bạn có thể tạo su tải tệp rc tùy chỉnh bằng cách tạo tệp /data/adb/ksu/.ksurc.

Phát hành dưới giấy phép GPL3.

- diff --git a/vi_VN/guide/how-to-build.html b/vi_VN/guide/how-to-build.html index dc8cd7d1fec0..5d82a21d08f5 100644 --- a/vi_VN/guide/how-to-build.html +++ b/vi_VN/guide/how-to-build.html @@ -18,7 +18,7 @@ mv <kernel_manifest.xml> .repo/manifests repo init -m manifest.xml repo sync

<kernel_manifest.xml> là một tệp kê khai có thể xác định duy nhất một bản dựng, bạn có thể sử dụng tệp kê khai đó để thực hiện một bản dựng có thể dự đoán lại. Bạn nên tải xuống tệp kê khai từ Google GKI release builds

Build

Trước tiên, vui lòng kiểm tra tài liệu chính thức.

Ví dụ: chúng ta cần xây dựng kernel image aarch64:

sh
LTO=thin BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh

Đừng quên thêm cờ LTO=thin, nếu không quá trình xây dựng có thể thất bại nếu bộ nhớ máy tính của bạn nhỏ hơn 24Gb.

Bắt đầu từ Android 13, kernel được xây dựng bởi bazel:

sh
tools/bazel build --config=fast //common:kernel_aarch64_dist

Build Kernel với KernelSU

Nếu bạn có thể build kernel thành công thì việc xây dựng KernelSU thật dễ dàng, Chọn bất kỳ một lần chạy trong thư mục gốc nguồn Kernel:

sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -
sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main
sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.5.2

Và sau đó build lại kernel và bạn sẽ có được image kernel với KernelSU!

- diff --git a/vi_VN/guide/how-to-integrate-for-non-gki.html b/vi_VN/guide/how-to-integrate-for-non-gki.html index 0c120a523fcd..683553f754e1 100644 --- a/vi_VN/guide/how-to-integrate-for-non-gki.html +++ b/vi_VN/guide/how-to-integrate-for-non-gki.html @@ -104,7 +104,7 @@ if ((flags & ~(AT_SYMLINK_NOFOLLOW | AT_NO_AUTOMOUNT | AT_EMPTY_PATH | KSTAT_QUERY_FLAGS)) != 0) return -EINVAL;

Bạn sẽ tìm thấy bốn chức năng trong mã nguồn kernel:

  1. do_faccessat, thường là trong fs/open.c
  2. do_execveat_common, thường nằm trong fs/exec.c
  3. vfs_read, thường nằm trong fs/read_write.c
  4. vfs_statx, thường có trong fs/stat.c

Cuối cùng, chỉnh sửa KernelSU/kernel/ksu.c và bỏ enable_sucompat() sau đó xây dựng lại kernel của bạn, KernelSU sẽ hoạt động tốt.

- diff --git a/vi_VN/guide/installation.html b/vi_VN/guide/installation.html index 4ff40be7bb63..64a27f7b070f 100644 --- a/vi_VN/guide/installation.html +++ b/vi_VN/guide/installation.html @@ -17,7 +17,7 @@
Skip to content
On this page

Cách cài đặt

Kiểm tra xem thiết bị của bạn có được hỗ trợ không

Tải xuống APP KernelSU manager từ GitHub Releases hoặc Coolapk market và cài đặt nó vào thiết bị của bạn:

  • Nếu ứng dụng hiển thị Unsupported, nghĩa là Bạn nên tự biên dịch kernel, KernelSU sẽ không và không bao giờ cung cấp boot image để bạn flash.
  • Nếu ứng dụng hiển thị Not installed thì thiết bị của bạn đã được KernelSU hỗ trợ chính thức.

INFO

Đối với các thiết bị hiển thị Unsupported, đây là Thiết-bị-hỗ-trợ-không-chính-thức, bạn có thể tự biên dịch kernel.

Sao lưu stock boot.img

Trước khi flash, trước tiên bạn phải sao lưu stock boot.img. Nếu bạn gặp phải bootloop (vòng lặp khởi động), bạn luôn có thể khôi phục hệ thống bằng cách quay lại trạng thái khởi động ban đầu bằng fastboot.

WARNING

Việc flash có thể gây mất dữ liệu, hãy đảm bảo thực hiện tốt bước này trước khi chuyển sang bước tiếp theo!! Bạn cũng có thể sao lưu tất cả dữ liệu trên điện thoại nếu cần.

Kiến thức cần thiết

ADB và fastboot

Theo mặc định, bạn sẽ sử dụng các công cụ ADB và fastboot trong hướng dẫn này, vì vậy nếu bạn không biết về chúng, chúng tôi khuyên bạn nên sử dụng công cụ tìm kiếm để tìm hiểu về chúng trước tiên.

KMI

Kernel Module Interface (KMI), các phiên bản kernel có cùng KMI đều tương thích Đây là ý nghĩa của "general" trong GKI; ngược lại, nếu KMI khác thì các kernel này không tương thích với nhau và việc flash kernel image có KMI khác với thiết bị của bạn có thể gây ra bootloop.

Cụ thể, đối với thiết bị GKI, định dạng phiên bản kernel phải như sau:

txt
KernelRelease :=
 Version.PatchLevel.SubLevel-AndroidRelease-KmiGeneration-suffix
 w      .x         .y       -zzz           -k            -something

w.x-zzz-k là phiên bản KMI. Ví dụ: nếu phiên bản kernel của thiết bị là 5.10.101-android12-9-g30979850fc20, thì KMI của nó là 5.10-android12-9; về mặt lý thuyết, nó có thể khởi động bình thường với các kernel KMI khác.

TIP

Lưu ý rằng SubLevel trong phiên bản kernel không phải là một phần của KMI! Điều đó có nghĩa là 5.10.101-android12-9-g30979850fc20 có cùng KMI với 5.10.137-android12-9-g30979850fc20!

Phiên bản kernel vs Phiên bản Android

Xin lưu ý: Phiên bản kernel và phiên bản Android không nhất thiết phải giống nhau!

Nếu bạn nhận thấy phiên bản kernel của mình là android12-5.10.101 nhưng phiên bản hệ thống Android của bạn là Android 13 hoặc phiên bản khác; xin đừng ngạc nhiên, vì số phiên bản của hệ thống Android không nhất thiết phải giống với số phiên bản của kernel Linux; Số phiên bản của kernel Linux nhìn chung nhất quán với phiên bản của hệ thống Android đi kèm với thiết bị khi nó được xuất xưởng. Nếu hệ thống Android được nâng cấp sau này, phiên bản kernel thường sẽ không thay đổi. Nếu bạn cần flash, vui lòng tham khảo phiên bản kernel!!

Giới thiệu

Có một số phương pháp cài đặt KernelSU, mỗi phương pháp phù hợp với một kịch bản khác nhau, vì vậy vui lòng chọn khi cần.

  1. Cài đặt với Recovery tùy chỉnh (ví dụ TWRP)
  2. Cài đặt bằng ứng dụng flash kernel, chẳng hạn như Franco Kernel Manager
  3. Cài đặt thông qua fastboot bằng boot.img do KernelSU cung cấp
  4. Sửa boot.img theo cách thủ công và cài đặt nó

Cài đặt với Recovery tùy chỉnh

Điều kiện chắc chắn: Thiết bị của bạn phải có Recovery tùy chỉnh, chẳng hạn như TWRP; nếu không hoặc chỉ có Recovery chính thức, hãy sử dụng phương pháp khác.

Các bước:

  1. Từ Release page của KernelSU, tải xuống gói zip bắt đầu bằng AnyKernel3 phù hợp với phiên bản điện thoại của bạn; ví dụ: phiên bản kernel của điện thoại là android12-5.10. 66, thì bạn nên tải xuống tệp AnyKernel3-android12-5.10.66_yyyy-MM.zip (trong đó yyyy là năm và MM là tháng).
  2. Khởi động lại điện thoại vào TWRP.
  3. Sử dụng adb để đặt AnyKernel3-*.zip vào điện thoại /sdcard và chọn cài đặt nó trong GUI TWRP; hoặc bạn có thể trực tiếp adb sideload AnyKernel-*.zip để cài đặt.

PS. Phương pháp này phù hợp với mọi cài đặt (không giới hạn cài đặt ban đầu hoặc các nâng cấp tiếp theo), miễn là bạn sử dụng TWRP.

Cài đặt bằng Kernel Flasher

Điều kiện chắc chắn: Thiết bị của bạn phải được root. Ví dụ: bạn đã cài đặt Magisk để root hoặc bạn đã cài đặt phiên bản KernelSU cũ và cần nâng cấp lên phiên bản KernelSU khác; nếu thiết bị của bạn chưa được root, vui lòng thử các phương pháp khác.

Các bước:

  1. Tải xuống zip AnyKernel3; hãy tham khảo phần Cài đặt bằng Custom Recovery để biết hướng dẫn tải xuống.
  2. Mở Ứng dụng Kernel Flash và sử dụng zip AnyKernel3 được cung cấp để flash.

Nếu trước đây bạn chưa từng sử dụng Ứng dụng Kernel flash thì sau đây là những ứng dụng phổ biến hơn.

  1. Kernel Flasher
  2. Franco Kernel Manager
  3. Ex Kernel Manager

PS. Phương pháp này thuận tiện hơn khi nâng cấp KernelSU và có thể thực hiện mà không cần máy tính (sao lưu trước!). .

Các bước:

Cài đặt bằng boot.img do KernelSU cung cấp

Phương pháp này không yêu cầu bạn phải có TWRP, cũng như không yêu cầu điện thoại của bạn phải có quyền root; nó phù hợp cho lần cài đặt KernelSU đầu tiên của bạn.

Tìm boot.img thích hợp

KernelSU cung cấp boot.img chung cho các thiết bị GKI và bạn nên chuyển boot.img vào phân vùng boot của thiết bị.

Bạn có thể tải xuống boot.img từ GitHub Release, xin lưu ý rằng bạn nên sử dụng đúng phiên bản boot.img. Ví dụ: nếu thiết bị của bạn hiển thị kernel android12-5.10.101 , bạn cần tải xuống android-5.10.101_yyyy-MM.boot-<format>.img. (Giữ KMI nhất quán!)

Trong đó <format> đề cập đến định dạng nén kernel của boot.img chính thức của bạn, vui lòng kiểm tra định dạng nén kernel của boot.img ban đầu của bạn, bạn nên sử dụng đúng định dạng, ví dụ: lz4, gz; nếu bạn sử dụng định dạng nén không chính xác, bạn có thể gặp phải bootloop.

INFO

  1. Bạn có thể sử dụng magiskboot để lấy định dạng nén của boot ban đầu; Tất nhiên, bạn cũng có thể hỏi những người khác, có kinh nghiệm hơn có cùng kiểu máy với thiết bị của bạn. Ngoài ra, định dạng nén của kernel thường không thay đổi nên nếu bạn khởi động thành công với một định dạng nén nào đó thì bạn có thể thử định dạng đó sau.
  2. Các thiết bị Xiaomi thường sử dụng gz hoặc uncompressed (không nén).
  3. Đối với thiết bị Pixel, hãy làm theo hướng dẫn bên dưới.

flash boot.img vào thiết bị

Sử dụng adb để kết nối thiết bị của bạn, sau đó thực thi adb restart bootloader để vào chế độ fastboot, sau đó sử dụng lệnh này để flash KernelSU:

sh
fastboot flash boot boot.img

INFO

Nếu thiết bị của bạn hỗ trợ fastboot boot, trước tiên bạn có thể sử dụng fastboot boot boot.img để thử sử dụng boot.img để khởi động hệ thống trước. Nếu có điều gì bất ngờ xảy ra, hãy khởi động lại để boot.

khởi động lại

Sau khi flash xong bạn nên khởi động lại máy:

sh
fastboot reboot

Vá boot.img theo cách thủ công

Đối với một số thiết bị, định dạng boot.img không quá phổ biến, chẳng hạn như không lz4, gz và không nén; điển hình nhất là Pixel, định dạng boot.img của nó là nén lz4_legacy, ramdisk có thể là gz cũng có thể là nén lz4_legacy; tại thời điểm này, nếu bạn trực tiếp flash boot.img do KernelSU cung cấp, điện thoại có thể không khởi động được; Tại thời điểm này, bạn có thể vá boot.img theo cách thủ công để dùng được.

Nhìn chung có hai phương pháp vá:

  1. Android-Image-Kitchen
  2. magiskboot

Trong số đó, Android-Image-Kitchen phù hợp để hoạt động trên PC và magiskboot cần sự kết nối của điện thoại di động.

Chuẩn bị

  1. Lấy stock boot.img của điện thoại; bạn có thể lấy nó từ nhà sản xuất thiết bị của mình, bạn có thể cần payload-dumper-go
  2. Tải xuống tệp zip AnyKernel3 do KernelSU cung cấp phù hợp với phiên bản KMI của thiết bị của bạn (bạn có thể tham khảo Cài đặt với Khôi phục tùy chỉnh).
  3. Giải nén gói AnyKernel3 và lấy tệp Image, đây là tệp kernel của KernelSU.

Sử dụng Android-Image-Kitchen

  1. Tải Android-Image-Kitchen về máy tính.
  2. Đặt stock boot.img vào thư mục gốc của Android-Image-Kitchen.
  3. Thực thi ./unpackimg.sh boot.img tại thư mục gốc của Android-Image-Kitchen, lệnh này sẽ giải nén boot.img và bạn sẽ nhận được một số tệp.
  4. Thay thế boot.img-kernel trong thư mục split_img bằng Image bạn đã trích xuất từ AnyKernel3 (lưu ý đổi tên thành boot.img-kernel).
  5. Thực thi ./repackimg.sh tại thư mục gốc của 在 Android-Image-Kitchen; Và bạn sẽ nhận được một file có tên image-new.img; Flash boot.img này bằng fastboot(Tham khảo phần trước).

Sử dụng magiskboot

  1. Tải xuống Magisk mới nhất từ Trang phát hành
  2. Đổi tên Magisk-*.apk thành Magisk-vesion.zip và giải nén nó.
  3. Đẩy Magisk-v25.2/lib/arm64-v8a/libmagiskboot.so vào thiết bị của bạn bằng adb: adb push Magisk-v25.2/lib/arm64-v8a/libmagiskboot.so /data/local/tmp /magiskboot
  4. Đẩy stock boot.img và Image trong AnyKernel3 vào thiết bị của bạn.
  5. Nhập thư mục adb shell và cd /data/local/tmp/, sau đó chmod +x magiskboot
  6. Nhập adb shell và cd /data/local/tmp/, thực thi ./magiskboot unpack boot.img để giải nén boot.img, bạn sẽ nhận được file kernel, đây là kernel gốc của bạn.
  7. Thay thế kernel bằng Image: mv -f Image kernel
  8. Thực thi ./magiskboot repack boot.img để đóng gói lại boot img và bạn sẽ nhận được một tệp new-boot.img, flash tệp này vào thiết bị bằng fastboot.

Các phương pháp khác

Trên thực tế, tất cả các phương pháp cài đặt này chỉ có một ý tưởng chính, đó là thay thế kernel gốc bằng kernel do KernelSU cung cấp; chỉ cần đạt được điều này là có thể cài đặt được; ví dụ, sau đây là các phương pháp có thể khác.

  1. Trước tiên hãy cài đặt Magisk, nhận quyền root thông qua Magisk, sau đó sử dụng flasher kernel để flash trong zip AnyKernel từ KernelSU.
  2. Sử dụng một số bộ công cụ flash trên PC để flash trong kernel do KernelSU cung cấp.

Phát hành dưới giấy phép GPL3.

- diff --git a/vi_VN/guide/module.html b/vi_VN/guide/module.html index 4aea12575404..127d559f8f33 100644 --- a/vi_VN/guide/module.html +++ b/vi_VN/guide/module.html @@ -97,7 +97,7 @@ bối cảnh cấp phép tệp của nhóm chủ sở hữu tệp set_perm đối với tất cả các thư mục trong <directory> (bao gồm cả chính nó), nó sẽ gọi: set_perm bối cảnh phân quyền của nhóm chủ sở hữu thư mục

Tập lệnh khởi động

Trong KernelSU, tập lệnh được chia thành hai loại dựa trên chế độ chạy của chúng: chế độ post-fs-data và chế độ dịch vụ late_start:

Trong KernelSU, tập lệnh khởi động được chia thành hai loại dựa trên vị trí lưu trữ của chúng: tập lệnh chung và tập lệnh mô-đun:

Tất cả các tập lệnh khởi động sẽ chạy trong shell ash BusyBox của KernelSU với "Standalone Mode" được bật.

- diff --git a/vi_VN/guide/rescue-from-bootloop.html b/vi_VN/guide/rescue-from-bootloop.html index ae7b08317cae..eab369f6b591 100644 --- a/vi_VN/guide/rescue-from-bootloop.html +++ b/vi_VN/guide/rescue-from-bootloop.html @@ -15,7 +15,7 @@
Skip to content
On this page

Cứu khỏi bootloop (Vòng lặp khởi động)

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".

Brick bởi flash vào phân vùng boot

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:

  1. Bạn flash image boot sai định dạng. Ví dụ: nếu định dạng khởi động điện thoại của bạn là gz, nhưng bạn flash image định dạng lz4 thì điện thoại sẽ không thể khởi động.
  2. Điện thoại của bạn cần tắt xác minh AVB để khởi động bình thường (thường yêu cầu xóa tất cả dữ liệu trên điện thoại).
  3. Kernel của bạn có một số lỗi hoặc không phù hợp để flash điện thoại của bạn.

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).

Brick bởi mô-đun

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!

Mô-đun bình thường

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:

  1. Cập nhật AB
  2. Cứu bằng cách nhấn Giảm âm lượng

Cập nhật AB

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.

Cứu bằng cách nhấn Giảm âm lượng

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:

  1. Chế Độ An Toàn tích hợp (built-in Safe Mode) của một số hệ thống; một số hệ thống có Chế độ an toàn tích hợp có thể được truy cập bằng cách nhấn và giữ nút giảm âm lượng, trong khi những hệ thống khác (chẳng hạn như MIUI) có thể bật Chế Độ An Toàn trong Recovery. Khi vào Chế Độ An Toàn của hệ thống, KernelSU cũng sẽ vào Chế Độ An Toàn và tự động tắt các mô-đun.
  2. Chế Độ An Toàn tích hợp (built-in Safe Mode) của KernelSU; phương pháp thao tác là nhấn phím giảm âm lượng liên tục hơn ba lần sau màn hình khởi động đầu tiên. Lưu ý là nhấn-thả, nhấn-thả, nhấn-thả chứ không phải nhấn giữ.

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.

Mô-đun độc hại

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 ý:

  1. Xóa sạch dữ liệu và flash hệ thống chính thức.
  2. Tham khảo dịch vụ hậu mãi.

Phát hành dưới giấy phép GPL3.

- diff --git a/vi_VN/guide/unofficially-support-devices.html b/vi_VN/guide/unofficially-support-devices.html index dc9f66eec6e1..03e271dc0d22 100644 --- a/vi_VN/guide/unofficially-support-devices.html +++ b/vi_VN/guide/unofficially-support-devices.html @@ -16,7 +16,7 @@
Skip to content
On this page

Thiết bị hỗ trợ không chính thức

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ợ
diphonsD8G_Kernel_oxygenPoco F3: alioth | Poco F4: munch | MI10T/PRO: Apollo
diphonsD8G_Kernel_SM8150Poco X3 Pro: Vayu | Bhima
diphonsD8G_Kernel_SDM845Poco F1 | MI8 | MiMix2S
diphonsD8G_Kernel_SM8350Vili
diphonsD8G_Kernel_MarblePoco F5 | Redmi Note 12 Turbo | Marble
th1nhhdkandroid_kernel_sony_sm8250-kernelsuSony Xperia 1 II | Sony Xperia 5 II
akash07knexus_kernel_xiaomi_sm8250Poco F4: munch
HMTheBoy154Darkmatter-kernelGeneric x86_64 devices running Android-x86
Asuka-mioandroid_kernel_xiaomi_casMi 10 Ultra: cas
xiaoleGunMiku_kernel_xiaomi_waynewayne
YamazakuraHkernel_xiaomi_cepheuscepheus for pixel experience
SakuraNotStupidandroid_kernel_xiaomi_sdm710Xiaomi MI 8 SE(sirius/xmsirius)
Aquarius223(paper)android_kernel_xiaomi_msm8998MI 6 (sagit) and MIX 2 (chiron) for LineageOS
SlackerStateandroid_kernel_xiaomi_sm6150Redmi K30 4G (phoenix)
RooGhz720kernel_xiaomi_sm6150REDMI NOTE 10 PRO (sweet)
OnlyTomInSecondandroid_kernel_xiaomi_sdm845Mi 8 (dipper) for LineageOS
Rohail33RealKing KernelApollo(Redmi K30S Ultra/Mi 10T/Mi 10T Pro),Alioth(Redmi K40/POCO F3/Mi 11X),Munch(Redmi K40S/POCO F4), both MIUI and AOSP.
lateautumn233android_kernel_oneplus_sm8250OnePlus 8 Serials
Sreeshankar KNeverSettle KernelOnePlus Nord (avicii)
Molyuuneko_kernel_xiaomi_gauguinRedmi Note 9 Pro/ Mi 10T Lite/ Mi 10i
guh0613android_kernel_oppo_sm8150OPPO Reno Ace (OP4A89)
LeviMarvinandroid_kernel_xiaomi_aliothRedmi K40 / POCO F3
cibimokernel_xiaomi_raphael_ksuXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
EndCreditskernel_xiaomi_sm7250Redmi K30 5G ( picasso ) , Redmi K30i 5G ( picasso_48m)
msnxandroid-msm-coral-4.14-android13Pixel 4 XL
SoDebugkernel_xiaomi_raphaelXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
H1mJTkernel_realme_RMX1901Realme X (RMX1901/RMX1901CN)
SonalSingh18android_kernel_xiaomi_sm6250Miatoll [curtana, excalibur, gram, joyeuse]
RooGhz720kernel_xiaomi_lavenderRedmi Note 7 (Lavender)
JunASAKAkernel_google_msm-4.9_KernelSUGoogle Pixel 3a & 3a XL (sargo & bonito)
RooGhz720kernel_asus_X01BDAsus Zenfone Max Pro M1/M2
Evans Mikekernel_xiaomi_raphael_bool-xXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
easterNdayKSU_Thyme_BuildBotXiaomi 10S
tedomi2705kernel_xiaomi_sdm660Xiaomi Redmi Note 6 Pro (tulip)
RyuujiXandroid_kernel_asus_sdm660-4.19Asus Zenfone Max Pro M1 (X00TD)/ M2 (X01BD) (Linux 4.19)
liqidecgandroid_kernel_xiaomi_sdm710Mi 8 SE (sirius) (Linux 4.9)
Abdelhay-Aliandroid_kernel_huawei_hi6250Huawei P20 lite (hi6250) (Linux 4.9)
reocatandroid_kernel_nokia_sdm660_ksuNokia 6.1 (2018)
Tuan Anhkernel_nokia_msm8998Nokia 8 (Repartitioned)/8 Sirocco (NLA/A1N)
bggRGjQaUbCoEandroid_kernel_samsung_sm8250Samsung Galaxy S20+ 5G (y2q)
SOVIET-ANDROIDkernel_xiaomi_raphaelXK20 Pro Raphael DSP & A only SAR support
Coconutatandroid_kernel_huawei_vtr_emui9_KernelSUHuawei P10,P10 Plus,Mate9,Mate9 Pro(Kirin960 Series),Stable For GSI
dabao1955android_kernel_OPPO_PEQM00MediaTek devices in the OPPO Reno series on ColorOS13.x
Aflaungosandroid_kernel_motorola_msm8998Moto G6 Plus (evert)
TheNoFacekernel_oneplus_msm8998OnePlus 5/5T (cheeseburger/dumpling)
Nipin NA (Joker-V2)Xcalibur kernel (violet)Xiaomi Redmi Note 7 Pro (violet)
Sr-Hankernel_xiaomi_mojitoRedmi Note 10 (Sunny/Mojito)
dabao1955android_kernel_OPPO_OP4ED5OPPO Reno6 on ColorOS11.x/ColorOS12.x,kernel version4.14.186+
rushiranpiseandroid_kernel_samsung_exynos9610_mintKernel 4.14.194 exynos9610 Non-GKI Device, Added KernelSu using manual method
CN-Scarspixel_experience_kernel_xiaomi_sm8250_kernelSUPixel Experience Kernel 4.19.282 for Xiaomi Redmi K40S / Xiaomi Poco F4 (munch)
exerMiyo TokuSony Tama (akari, apollo, aurora, akatsuki) (Linux 4.9)
likkaiQuicksilver KernelXiaomi 11 Lite 5G NE (lisa)
awakened1712android_kernel_samsung_exynos9820Samsung S10/N10
awakened1712android_kernel_oneplus_sm8350Oneplus 9/9Pro
siimsekLightning KernelXiaomi Redmi Note 8/8T (ginkgo/willow)
GiovanYCringekernel_a50Galaxy A50 (A505f,fn,g,gn,gt)
Asriadi Rahimandroid_kernel_google_wahooGoogle Pixel 2/2XL
Flameandroid_kernel_xiaomi_sm8250POCO F3/Redmi K40/Mi 11X (alioth)
DawfukFRkernel_oneplus_sm8250 (Stellaris-Kernel)Oneplus 8 (Instantnoodle), Oneplus 8T (Kebab), Oneplus 8 Pro (Instantnoodlep), Oneplus 9R (lemonades) [msm-4.19]
Tejas Singhkernel_xiaomi_ginkgo (Cuh Kernel)Xiaomi Redmi Note 8/8T (ginkgo/willow)
Coconutatandroid_kernel_xiaomi_ruby_expRedmi Note 12 Pro / Pro+ For MIUI 14
Coconutatandroid_kernel_xiaomi_sdm845_expXiaomi Mi 8 Pro(UD)[equuleus]/Explorer Edition[ursa]
Abdul Wahid Khankernel_xiaomi_begoniaRedmi Note 8 Pro (Begonia/Begoniain)
Abdul Wahid Khankernel_xiaomi_marbleXiaomi Poco F5 / Redmi Note 12 Turbo (Marble)
zfdx123kernel_xiaomi_aliothRedmi K40 (alioth)
wxt1221android_kernel_oneplus_sdm845Oneplus 6 (enchilada) | Oneplus 6T (fajita) with no Retrofit Dynamic Partitions
zharzinhooKernel-Oriente-GuampMoto g9 play
hc841NovaCore_kernelMoto g9 play
zlm324android_kernel_xiaomi_msm8998_ksua lineage kernel forked from LineageOS official repository, version 4.4.302, added ksu.
zlm324android_kernel_xiaomi_msm8953_ksuXiaomi 5X (tiffany)
Vincent4440android_kernel_xiaomi_sm8250Poco F4: munch
zharzinhooandroid_kernel_motorola_cebuMoto g9 power
tiandoufayaleandroid_kernel_samsung_sm8250Samsung Tab S7 WIFI(T870)
starmoeandroid_kernel_oneplus_msm8998Oneplus 5/5T, kernel version 4.4.302

Phát hành dưới giấy phép GPL3.

- diff --git a/vi_VN/guide/what-is-kernelsu.html b/vi_VN/guide/what-is-kernelsu.html index 1635251bde74..3687986f158e 100644 --- a/vi_VN/guide/what-is-kernelsu.html +++ b/vi_VN/guide/what-is-kernelsu.html @@ -15,7 +15,7 @@
Skip to content
On this page

KernelSU là gì?

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

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.

Hướng dẫn sử dụng

Xin hãy xem: Cách cài đặt

Cách để build

Cách để build

Thảo luận

Phát hành dưới giấy phép GPL3.

- diff --git a/vi_VN/index.html b/vi_VN/index.html index 0f058e2189f0..a3b99d1cbdf3 100644 --- a/vi_VN/index.html +++ b/vi_VN/index.html @@ -15,7 +15,7 @@
Skip to content

KernelSU

Giải pháp root dựa trên kernel dành cho Android

KernelSU

Dựa trên Kernel

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.

Kiểm soát truy cập bằng whitelist

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.

Quyền root bị hạn chế

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.

Mô-đun & Nguồn mở

KernelSU hỗ trợ sửa đổi /system một cách systemless bằng overlayfs và nó có nguồn mở theo GPL-3.

Phát hành dưới giấy phép GPL3.

- diff --git a/zh_CN/guide/app-profile.html b/zh_CN/guide/app-profile.html index 3d17ac9be219..f2370329d63e 100644 --- a/zh_CN/guide/app-profile.html +++ b/zh_CN/guide/app-profile.html @@ -19,7 +19,7 @@ enforce app1 typeattribute app1 mlstrustedsubject allow app1 * * *

注意:此处的 allow app1 * * * 仅仅作为演示方便而使用,实际过程中不应使用这个规则,因为它跟 permissive 区别不大。

逃逸

如果 Root Profile 的配置不合理,那么可能会发生逃逸的情况:Root Profile 的限制会意外失效。

比如,如果你为 ADB shell 用户设置允许 root 权限(这是相当常见的情况);然后你给某个普通应用允许 root 权限,但是配置它的 root profile 中的 UID 为 2000(ADB shell 用户的 UID);那么此时,这个 App 可以通过执行两次 su 来获得完整的 root 权限:

  1. 第一次执行 su,由于 App Profile 强制生效,会正常切换到 UID 为 2000(adb shell) 而非 0(root)
  2. 第二次执行 su,由于此时它 UID 是 2000,而你给 2000(adb shell) 配置了允许 root,它会获得完整的 root 权限!

注意

这是完全符合预期的行为,并非 BUG!因此我们建议:

如果你的确需要给 adb 授予 root 权限(比如你是开发者),那么不建议你在配置 Root Profile 的时候将 UID 改成 2000,用 1000(system) 会更好。

Non Root Profile

卸载模块

KernelSU 提供了一种 systemless 的方式来修改系统分区,这是通过挂载 overlayfs 来实现的。但有些情况下,App 可能会对这种行为比较敏感;因此,我们可以通过设置“卸载模块”来卸载挂载在这些 App 上的模块。

另外,KernelSU 管理器的设置界面还提供了一个“默认卸载模块”的开关,这个开关默认情况下是开启的,这意味着如果不对 App 做额外的设置,默认情况下 KernelSU 或者某些模块会对此 App 执行卸载操作。当然,如果你不喜欢这个设置或者这个设置会影响某些 App,可以有如下选择:

  1. 保持“默认卸载模块”的开关,然后针对不需要“卸载模块”的 App 进行单独的设置,在 App Profile 中关闭“卸载模块”;(相当于“白名单“)。
  2. 关闭“默认卸载模块”的开关,然后针对需要“卸载模块”的 App 进行单独的设置,在 App Profile 中开启“卸载模块”;(相当于“黑名单“)。

INFO

KernelSU 在 5.10 及以上内核上,内核会执行“卸载模块”的操作;但在 5.10 以下的设备上,这个开关仅仅是一个“配置项”,KernelSU 本身不会做任何动作,一些模块(如 Zygisksu 会通过这个模块决定是否需要卸载)

- diff --git a/zh_CN/guide/difference-with-magisk.html b/zh_CN/guide/difference-with-magisk.html index e3b036b4a8c2..6607500d43e9 100644 --- a/zh_CN/guide/difference-with-magisk.html +++ b/zh_CN/guide/difference-with-magisk.html @@ -15,7 +15,7 @@
Skip to content
On this page

KernelSU 模块与 Magisk 的差异

虽然 KernelSU 模块与 Magisk 模块有很多相似之处,但由于它们的实现机制完全不同,因此不可避免地会有一些差异;如果你希望你的模块能同时在 Magisk 与 KernelSU 中运行,那么你必须了解这些差异。

相同之处

  • 模块文件格式: 都以 zip 的方式组织模块,并且模块的格式几乎相同
  • 模块安装目录: 都在 /data/adb/modules
  • systemless: 都支持通过模块的形式以 systemless 修改 /system
  • post-fs-data.sh: 执行时机完全一致,语义也完全一致
  • service.sh: 执行时机完全一致,语义也完全一致
  • system.prop: 完全相同
  • sepolicy.rule: 完全相同
  • BusyBox:脚本都在 BusyBox 中以“独立模式”运行

不同之处

在了解不同之处之前,你需要知道如何区分你的模块是运行在 KernelSU 还是运行在 Magisk 之中;在所有你可以运行模块脚本的地方(customize.sh, post-fs-data.sh, service.sh),你都可以通过环境变量KSU 来区分,在 KernelSU 中,这个环境变量将被设置为 true

以下是一些不同之处:

  1. KernelSU 的模块不支持在 Recovery 中安装。
  2. KernelSU 的模块没有内置的 Zygisk 支持(但你可以通过 ZygiskOnKernelSU 来使用 Zygisk 模块)。
  3. KernelSU 模块替换或者删除文件与 Magisk 完全不同。KernelSU 不支持 .replace 方式,相反,你需要通过 mknod filename c 0 0 创建同名文件夹来删除对应文件。
  4. BusyBox 的目录不同;KernelSU 内置的 BusyBox 在 /data/adb/ksu/bin/busybox 而 Magisk 在 /data/adb/magisk/busybox注意此为 KernelSU 内部行为,未来可能会更改!
  5. KernelSU 不支持 .replace 文件;但 KernelSU 支持 REPLACEREMOVE 变量。
  6. KernelSU 新增了一种脚本 boot-completed.sh,以便在 Android 系统启动后运行某些任务。
  7. KernelSU 新增了一种脚本 post-mount.sh,以便在 Overlayfs 挂载后运行某些任务。

在 GPL3 许可证下发布。

- diff --git a/zh_CN/guide/faq.html b/zh_CN/guide/faq.html index 7ad0d806dd80..76113df13e3f 100644 --- a/zh_CN/guide/faq.html +++ b/zh_CN/guide/faq.html @@ -15,7 +15,7 @@
Skip to content
On this page

常见问题

KernelSU 是否支持我的设备 ?

首先,您的设备应该能够解锁 bootloader。 如果不能,则不支持。

然后在你的设备上安装 KernelSU 管理器并打开它,如果它显示 不支持 ,那么你的设备没有官方支持的开箱即用的 boot image;但你可以自己编译内核集成 KernelSU 进而使用它。

KernelSU 是否需要解锁 Bootloader ?

当然需要。

KernelSU 是否支持模块 ?

支持,但它是早期版本,可能有问题。请等待它稳定 😃

KernelSU 是否支持 Xposed ?

支持。DreamlandTaiChi 可以正常运行。LSPosed 可以在 Zygisk on KernelSU 的支持下正常运行。

KernelSU 支持 Zygisk 吗?

KernelSU 本体不支持 Zygisk,但是你可以用 Zygisk on KernelSU 来使用 Zygisk 模块。

KernelSU 与 Magisk 兼容吗 ?

KernelSU 的模块系统与 Magisk 的 magic mount 有冲突,如果 KernelSU 中启用了任何模块,那么整个 Magisk 将无法工作。

但是如果你只使用 KernelSU 的 su,那么它会和 Magisk 一起工作:KernelSU 修改 kernel 、 Magisk 修改 ramdisk,它们可以一起工作。

KernelSU 会替代 Magisk 吗?

我们不这么认为,这也不是我们的目标。Magisk 对于用户空间 root 解决方案来说已经足够好了,它会存活很久。KernelSU 的目标是为用户提供内核接口,而不是替代 Magisk。

KernelSU 可以支持非 GKI 设备吗?

可以。但是你应该下载内核源代码并将 KernelSU 集成到源代码树中并自己编译内核。

KernelSU 支持 Android 12 以下的设备吗?

影响 KernelSU 兼容性的是设备内核的版本,它与设备的 Android 版本没有直接的关系。唯一有关联的是:出厂 Android 12 的设备,一定是 5.10 或更高的内核(GKI设备);因此结论如下:

  1. 出厂 Android 12 的设备必定是支持的(GKI 设备)
  2. 旧版本内核的设备(即使是 Android 12,也可能是旧内核)是兼容的(你需要自己编译内核)

KernelSU 可以支持旧内核吗?

可以,目前最低支持到 4.14;更低的版本你需要手动移植它,欢迎 PR !

如何为旧内核集成 KernelSU?

参考教程

为什么我手机系统是 Android 13,但内核版本却是 "android12-5.10"?

内核版本与 Android 版本无关,如果你需要刷入 KernelSU,请永远使用内核版本而非 Android 版本,如果你为 "android12-5.10" 的设备刷入 Android 13 的内核,等待你的将是 bootloop.

KernelSU 支持 --mount-master/全局挂载命名空间吗?

目前没有(未来可能会支持),但实际上有很多种办法手动进入全局命名空间,无需 su 内置支持,比如:

  1. nsenter -t 1 -m sh 可以获得一个全局 mount namespace 的 shell.
  2. 在你要执行的命令之前添加 nsenter --mount=/proc/1/ns/mnt 就可以让此命令在全局 mount namespace 下执行。 KernelSU 本身也使用了 这种方法

我是 GKI1.0, 能用 KernelSU 吗?

GKI1 跟 GKI2 完全是两个东西,所以你需要自行编译内核。

在 GPL3 许可证下发布。

- diff --git a/zh_CN/guide/hidden-features.html b/zh_CN/guide/hidden-features.html index 630a7d7bc9c6..4fb75319038e 100644 --- a/zh_CN/guide/hidden-features.html +++ b/zh_CN/guide/hidden-features.html @@ -15,7 +15,7 @@
Skip to content
On this page

隐藏功能

ksurc

默认情况下,/system/bin/sh 会加载 /system/etc/mkshrc

可以通过创建 /data/adb/ksu/.ksurc 文件来让 su 加载该文件而不是 /system/etc/mkshrc

在 GPL3 许可证下发布。

- diff --git a/zh_CN/guide/how-to-build.html b/zh_CN/guide/how-to-build.html index 7f121f0083dd..338551e0e9ab 100644 --- a/zh_CN/guide/how-to-build.html +++ b/zh_CN/guide/how-to-build.html @@ -18,7 +18,7 @@ mv <kernel_manifest.xml> .repo/manifests repo init -m manifest.xml repo sync

<kernel_manifest.xml> 是一个可以唯一确定构建的清单文件,您可以使用该清单进行可重新预测的构建。 您应该从 通用内核映像 (GKI) 发布构建 下载清单文件

构建

请先查看 官方文档

例如,我们需要构建 aarch64 内核镜像:

sh
LTO=thin BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh

不要忘记添加 LTO=thin, 否则,如果您的计算机内存小于 24GB,构建可能会失败.

从 Android 13 开始,内核由 bazel 构建:

sh
tools/bazel build --config=fast //common:kernel_aarch64_dist

使用 KernelSU 构建内核

如果您可以成功构建内核,那么构建 KernelSU 就很容易,根据自己的需求在内核源代码根目录中运行以下任一命令:

sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -
sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main
sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.5.2

然后重建内核,您将获得带有 KernelSU 的内核映像!

- diff --git a/zh_CN/guide/how-to-integrate-for-non-gki.html b/zh_CN/guide/how-to-integrate-for-non-gki.html index 0209d3ba7bb5..25ba6dd52d4b 100644 --- a/zh_CN/guide/how-to-integrate-for-non-gki.html +++ b/zh_CN/guide/how-to-integrate-for-non-gki.html @@ -166,7 +166,7 @@ if (disposition != INPUT_IGNORE_EVENT && type != EV_SYN) add_input_randomness(type, code, value);

改完之后重新编译内核即可。

- diff --git a/zh_CN/guide/installation.html b/zh_CN/guide/installation.html index e25e8d8d2a5e..7b99f940e4d4 100644 --- a/zh_CN/guide/installation.html +++ b/zh_CN/guide/installation.html @@ -17,7 +17,7 @@
Skip to content
On this page

安装

检查您的设备是否被支持

GitHub Releases酷安 下载 KernelSU 管理器应用,然后将应用程序安装到设备并打开:

  • 如果应用程序显示 “不支持”,则表示您的设备不支持 KernelSU,你需要自己编译设备的内核才能使用,KernelSU 官方不会也永远不会为你提供一个可以刷写的 boot 镜像。
  • 如果应用程序显示 “未安装”,那么 KernelSU 支持您的设备;可以进行下一步操作。

INFO

对于显示“不支持”的设备,这里有一个非官方支持设备列表,你可以用这个列表里面的内核自行编译。

备份你的 boot.img

在进行刷机操作之前,你必须先备份好自己的原厂 boot.img。如果你后续刷机出现了任何问题,你都可以通过使用 fastboot 刷回原厂 boot 来恢复系统。

WARNING

任何刷机操作都是有风险的,请务必做好这一步再进行下一步操作!!必要时你还可以备份你手机的所有数据。

必备知识

ADB 和 fastboot

此教程默认你会使用 ADB 和 fastboot 工具,如果你没有了解过,建议使用搜索引擎先学习相关知识。

KMI

KMI 全称 Kernel Module Interface,相同 KMI 的内核版本是兼容的 这也是 GKI 中“通用”的含义所在;反之,如果 KMI 不同,那么这些内核之间无法互相兼容,刷入与你设备 KMI 不同的内核镜像可能会导致死机。

具体来说,对 GKI 的设备,其内核版本格式应该如下:

txt
KernelRelease :=
 Version.PatchLevel.SubLevel-AndroidRelease-KmiGeneration-suffix
 w      .x         .y       -zzz           -k            -something

其中,w.x-zzz-k 为 KMI 版本。例如,一个设备内核版本为5.10.101-android12-9-g30979850fc20,那么它的 KMI 为 5.10-android12-9;理论上刷入其他这个 KMI 的内核也能正常开机。

TIP

请注意,内核版本中的 SubLevel 不属于 KMI 的范畴!也就是说 5.10.101-android12-9-g30979850fc205.10.137-android12-9-g30979850fc20 的 KMI 相同!

内核版本与 Android 版本

请注意:内核版本与 Android 版本并不一定相同!

如果您发现您的内核版本是 android12-5.10.101,然而你 Android 系统的版本为 Android 13 或者其他;请不要觉得奇怪,因为 Android 系统的版本与 Linux 内核的版本号不一定是一致的;Linux 内核的版本号一般与设备出厂的时候自带的 Android 系统的版本一致,如果后续 Android 系统升级,内核版本一般不会发生变化。如果你需要刷机,请以内核版本为准!!

安装介绍

KernelSU 的安装方法有如下几种,各自适用于不同的场景,请按需选择:

  1. 使用自定义 Recovery(如 TWRP)安装
  2. 使用内核刷写 App,如 (Franco Kernel Manager)安装
  3. 使用 KernelSU 提供的 boot.img 使用 fastboot 安装
  4. 手动修补 boot.img 然后安装

使用自定义 Recovery 安装

前提:你的设备必须有自定义的 Recovery,如 TWRP;如果没有或者只有官方 Recovery,请使用其他方法。

步骤:

  1. 在 KernelSU 的 Release 页面 下载与你手机版本匹配的以 AnyKernel3 开头的 zip 刷机包;例如,手机内核版本为 android12-5.10.66,那么你应该下载 AnyKernel3-android12-5.10.66_yyyy-MM.zip 这个文件(其中 yyyy 为年份,MM 为月份)。
  2. 重启手机进入 TWRP。
  3. 使用 adb 将 AnyKernel3-*.zip 放到手机 /sdcard 然后在 TWRP 图形界面选择安装;或者你也可以直接 adb sideload AnyKernel-*.zip 安装。

PS. 这种方法适用于任何情况下的安装(不限于初次安装或者后续升级),只要你用 TWRP 就可以操作。

使用内核刷写 App 安装

前提:你的设备必须已经 root。例如你已经安装了 Magisk 获取了 root,或者你已经安装了旧版本的 KernelSU 需要升级到其他版本的 KernelSU;如果你的设备无 root,请尝试其他方法。

步骤:

  1. 下载 AnyKernel3 的刷机包;下载方法参考 使用自定义 Recovery 安装那一节的内容。
  2. 打开内核刷写 App 使用提供的 AnyKernel3 刷机包刷入。

如果你之前没有用过内核刷写 App,那么下面几个是比较流行的:

  1. Kernel Flasher
  2. Franco Kernel Manager
  3. Ex Kernel Manager

PS. 这种方法在升级 KernelSU 的时候较为方便,无需电脑即可完成(注意备份!)。

使用 KernelSU 提供的 boot.img 安装

这种方法无需你有 TWRP,也不需要你的手机有 root 权限;适用于你初次安装 KernelSU。

找到合适的 boot.img

KernelSU 为 GKI 设备提供了通用的 boot.img,您应该将 boot.img 刷写到设备的 boot 分区。

您可以从 GitHub Release 下载 boot.img, 请注意您应该使用正确版本的 boot.img. 例如,如果您的设备显示内核是 android12-5.10.101, 需要下载 android-5.10.101_yyyy-MM.boot-<format>.img.

其中 <format> 指的是你的官方 boot.img 的内核压缩格式,请检查您原有 boot.img 的内核压缩格式,您应该使用正确的格式,例如 lz4gz;如果是用不正确的压缩格式,刷入 boot 后可能无法开机。

INFO

  1. 您可以通过 magiskboot 来获取你原来 boot 的压缩格式;当然您也可以询问与您机型相同的其他更有经验的童鞋。另外,内核的压缩格式通常不会发生变化,如果您使用某个压缩格式成功开机,后续可优先尝试这个格式。
  2. 小米设备通常使用 gz 或者 不压缩
  3. Pixel 设备有些特殊,请查看下面的教程。

将 boot.img 刷入设备

使用 adb 连接您的设备,然后执行 adb reboot bootloader 进入 fastboot 模式,然后使用此命令刷入 KernelSU:

sh
fastboot flash boot boot.img

INFO

如果你的设备支持 fastboot boot,可以先使用 fastboot boot boot.img 来先尝试使用 boot.img 引导系统,如果出现意外,再重启一次即可开机。

重启

刷入完成后,您应该重新启动您的设备:

sh
fastboot reboot

手动修补 boot.img

对于某些设备来说,其 boot.img 格式不那么常见,比如不是 lz4, gz 和未压缩;最典型的就是 Pixel,它 boot.img 的格式是 lz4_legacy 压缩,ramdisk 可能是 gz 也可能是 lz4_legacy 压缩;此时如果你直接刷入 KernelSU 提供的 boot.img,手机可能无法开机;这时候,你可以通过手动修补 boot.img 来实现。

修补方法总体有两种:

  1. Android-Image-Kitchen
  2. magiskboot

其中,Android-Image-Kitchen 适用于 PC 上操作,magiskboot 需要手机配合。

准备

  1. 获取你手机的原厂 boot.img;你可以通过你手机的线刷包解压后之间获取,如果你是卡刷包,那你也许需要payload-dumper-go
  2. 下载 KernelSU 提供的与你设备 KMI 版本一致的 AnyKernel3 刷机包(可以参考 自定义 TWRP 刷入一节)。
  3. 解压缩 AnyKernel3 刷机包,获取其中的 Image 文件,此文件为 KernelSU 的内核文件。

使用 Android-Image-Kitchen

  1. 下载 Android-Image-Kitchen 至你电脑
  2. 将手机原厂 boot.img 放入 Android-Image-Kitchen 根目录
  3. 在 Android-Image-Kitchen 根目录执行 ./unpackimg.sh boot.img;此命名会将 boot.img 拆开,你会得到若干文件。
  4. split_img 目录中的 boot.img-kernel 替换为你从 AnyKernel3 解压出来的 Image(注意名字改为 boot.img-kernel)。
  5. 在 Android-Image-Kitchecn 根目录执行 ./repackimg.sh;此时你会得到一个 image-new.img 的文件;使用此 boot.img 通过 fastboot 刷入即可(刷入方法参考上一节)。

使用 magiskboot

  1. 在 Magisk 的 Release 页面 下载最新的 Magisk 安装包。
  2. 将 Magisk-*.apk 重命名为 Magisk-vesion.zip 然后解压缩。
  3. 将解压后的 Magisk-v25.2/lib/arm64-v8a/libmagiskboot.so 文件,使用 adb push 到手机:adb push Magisk-v25.2/lib/arm64-v8a/libmagiskboot.so /data/local/tmp/magiskboot
  4. 使用 adb 将原厂 boot.img 和 AnyKernel3 中的 Image 推送到手机
  5. adb shell 进入 /data/local/tmp/ 目录,然后赋予刚 push 文件的可执行权限 chmod +x magiskboot
  6. adb shell 进入 /data/local/tmp/ 目录,执行 ./magiskboot unpack boot.img 此时会解包 boot.img 得到一个叫做 kernel 的文件,这个文件为你原厂的 kernel
  7. 使用 Image 替换 kernel: mv -f Image kernel
  8. 执行 ./magiskboot repack boot.img 打包 img,此时你会得到一个 new-boot.img 的文件,使用这个文件 fastboot 刷入设备即可。

其他变通方法

其实所有这些安装方法的主旨只有一个,那就是替换原厂的内核为 KernelSU 提供的内核;只要能实现这个目的,就可以安装;比如以下是其他可行的方法:

  1. 首先安装 Magisk,通过 Magisk 获取 root 权限后使用内核刷写器刷入 KernelSU 的 AnyKernel 包。
  2. 使用某些 PC 上的刷机工具箱刷入 KernelSU 提供的内核。

在 GPL3 许可证下发布。

- diff --git a/zh_CN/guide/module.html b/zh_CN/guide/module.html index e945c6d6bcac..820822ce0e60 100644 --- a/zh_CN/guide/module.html +++ b/zh_CN/guide/module.html @@ -100,7 +100,7 @@ set_perm file owner group filepermission context for all directories in <directory> (including itself), it will call: set_perm dir owner group dirpermission context

启动脚本

在 KernelSU 中,根据脚本运行模式的不同分为两种:post-fs-data 模式和 late_start 服务模式。

在 KernelSU 中,启动脚本根据存放位置的不同还分为两种:通用脚本和模块脚本。

所有启动脚本都将在 KernelSU 的 BusyBox ash shell 中运行,并启用“独立模式”。

- diff --git a/zh_CN/guide/rescue-from-bootloop.html b/zh_CN/guide/rescue-from-bootloop.html index d00cf8ffc80d..ed60488eb15a 100644 --- a/zh_CN/guide/rescue-from-bootloop.html +++ b/zh_CN/guide/rescue-from-bootloop.html @@ -15,7 +15,7 @@
Skip to content
On this page

救砖

在刷机的时候我们可能会遇到设备“变砖”的情况,理论上讲,如果你只是使用 fastboot 刷入 boot 分区或者安装不合适的模块导致设备无法启动,那么这都可以通过合适的操作恢复手机;本文档旨在提供一些急救方法让你可以在“变砖”中恢复。

刷入 boot 变砖

在 KernelSU 中,刷入 boot 变砖有如下可能:

  1. 你刷入了错误格式的 boot 镜像。比如你的手机 boot 格式是 gz 的,但你刷入了 lz4 格式的镜像,那么此时手机无法启动。
  2. 你的手机需要关闭 avb 验证才能正常启动(注意这通常意味着需要清除手机所有数据)。
  3. 你的 kernel 有某些 bug 或者你的 kernel 不适合你这个手机刷入。

无论哪种情况,你都可以通过刷入原厂 boot恢复;因此,在安装教程最开始,我们已经强烈建议大家,在刷机之前备份自己的原厂 boot!如果你没有备份,那么你可以通过其他跟你相同设备的童鞋或者官方固件包获取原厂 boot。

刷入模块变砖

刷入模块变砖可能是大家遇到更常见的情况,但是这里必须郑重告诉大家:请勿刷入来路不明的模块!!。因为模块其实是有 root 权限的,它完全可能导致你的设备发生不可逆的损坏!

普通模块变砖

如果大家刷入某些开源的或者被证明是安全的模块使得手机无法启动,那么这种情况在 KernelSU 中非常容易恢复,完全无需担心。KernelSU 内置了如下两种机制来救砖:

  1. AB 更新
  2. 音量键救砖

AB 更新

KernelSU 的模块更新借鉴了 Android 系统 OTA 更新时的 AB 更新机制,如果你安装了新模块或者对已有模块有更新操作,不会直接操作当前使用的模块文件,而是会把所有模块构建成另外一个 update 镜像;系统重启之后,会使用这个 update 镜像尝试启动一次,如果 Android 系统成功启动,才会真正更新模块。

因此,最简单最常用的救砖方法就是:强制重启一次。如果你在刷某个模块之后系统无法启动,你可以长按电源键超过 10 秒,系统会自动重启;重启之后会回滚到更新模块之前的状态,之前更新的模块会被自动禁用。

音量键救砖

如果 AB 更新依然无法解决,你可以尝试使用安全模式。进入安全模式之后,所有的模块都会被禁用。

进入安全模式的方法有两种:

  1. 某些系统自带的安全模式;有些系统是长按音量下,有些系统(比如MIUI)可以在 Recovery 中开启安全模式。进入系统的安全模式后,KernelSU 也会进入安全模式,自动禁用模块。
  2. KernelSU 内置的安全模式;操作方法:开机第一屏后,连续按音量下键超过三次。注意是按下-松开、按下-松开、按下-松开,不是按着不动。

进入安全模式以后,KernelSU 管理器的模块页面所有模块都被禁用,但你可以执行“卸载”操作,卸载可能会有问题的模块。

内置的安全模式是在内核里面实现的,因此不会出现按键事件被拦截导致捕获不到的情况。不过对于非 GKI 内核,可能需要手动集成代码,可以参考官网教程。

格机或其他病毒模块变砖

如果以上方法无法拯救你的设备,那么很有可能你装的模块有恶意操作或者通过其他方式损坏了你的设备,这种情况下,只有两个建议:

  1. 清除数据后刷入完整刷入官方系统。
  2. 咨询售后服务。

在 GPL3 许可证下发布。

- diff --git a/zh_CN/guide/unofficially-support-devices.html b/zh_CN/guide/unofficially-support-devices.html index c8356526c881..b4a92ea00a0f 100644 --- a/zh_CN/guide/unofficially-support-devices.html +++ b/zh_CN/guide/unofficially-support-devices.html @@ -16,7 +16,7 @@
Skip to content
On this page

非官方支持设备

WARNING

本文档列出由其他开发者维护的支持 KernelSU 的非 GKI 设备内核

WARNING

本文档仅方便查找设备对应源码,这并不意味该源码 KernelSU 开发者审查,你应自行承担使用风险。

维护者仓库地址支持设备
diphonsD8G_Kernel_oxygenPoco F3: alioth | Poco F4: munch | MI10T/PRO: Apollo
diphonsD8G_Kernel_SM8150Poco X3 Pro: Vayu | Bhima
diphonsD8G_Kernel_SDM845Poco F1 | MI8 | MiMix2S
diphonsD8G_Kernel_SM8350Vili
diphonsD8G_Kernel_MarblePoco F5 | Redmi Note 12 Turbo | Marble
th1nhhdkandroid_kernel_sony_sm8250-kernelsuSony Xperia 1 II | Sony Xperia 5 II
akash07knexus_kernel_xiaomi_sm8250Poco F4: munch
HMTheBoy154Darkmatter-kernelGeneric x86_64 devices running Android-x86
Asuka-mioandroid_kernel_xiaomi_casMi 10 Ultra: cas
xiaoleGunMiku_kernel_xiaomi_waynewayne
YamazakuraHkernel_xiaomi_cepheuscepheus for pixel experience
SakuraNotStupidandroid_kernel_xiaomi_sdm710Xiaomi MI 8 SE(sirius/xmsirius)
Aquarius223(paper)android_kernel_xiaomi_msm8998MI 6 (sagit) and MIX 2 (chiron) for LineageOS
SlackerStateandroid_kernel_xiaomi_sm6150Redmi K30 4G (phoenix)
RooGhz720kernel_xiaomi_sm6150REDMI NOTE 10 PRO (sweet)
OnlyTomInSecondandroid_kernel_xiaomi_sdm845Mi 8 (dipper) for LineageOS
Rohail33RealKing KernelApollo(Redmi K30S Ultra/Mi 10T/Mi 10T Pro),Alioth(Redmi K40/POCO F3/Mi 11X),Munch(Redmi K40S/POCO F4), both MIUI and AOSP.
lateautumn233android_kernel_oneplus_sm8250OnePlus 8 Serials
Sreeshankar KNeverSettle KernelOnePlus Nord (avicii)
Molyuuneko_kernel_xiaomi_gauguinRedmi Note 9 Pro/ Mi 10T Lite/ Mi 10i
guh0613android_kernel_oppo_sm8150OPPO Reno Ace (OP4A89)
LeviMarvinandroid_kernel_xiaomi_aliothRedmi K40 / POCO F3
cibimokernel_xiaomi_raphael_ksuXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
EndCreditskernel_xiaomi_sm7250Redmi K30 5G ( picasso ) , Redmi K30i 5G ( picasso_48m)
msnxandroid-msm-coral-4.14-android13Pixel 4 XL
SoDebugkernel_xiaomi_raphaelXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
H1mJTkernel_realme_RMX1901Realme X (RMX1901/RMX1901CN)
SonalSingh18android_kernel_xiaomi_sm6250Miatoll [curtana, excalibur, gram, joyeuse]
RooGhz720kernel_xiaomi_lavenderRedmi Note 7 (Lavender)
JunASAKAkernel_google_msm-4.9_KernelSUGoogle Pixel 3a & 3a XL (sargo & bonito)
RooGhz720kernel_asus_X01BDAsus Zenfone Max Pro M1/M2
Evans Mikekernel_xiaomi_raphael_bool-xXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
easterNdayKSU_Thyme_BuildBotXiaomi 10S
tedomi2705kernel_xiaomi_sdm660Xiaomi Redmi Note 6 Pro (tulip)
RyuujiXandroid_kernel_asus_sdm660-4.19Asus Zenfone Max Pro M1 (X00TD)/ M2 (X01BD) (Linux 4.19)
liqidecgandroid_kernel_xiaomi_sdm710Mi 8 SE (sirius) (Linux 4.9)
Abdelhay-Aliandroid_kernel_huawei_hi6250Huawei P20 lite (hi6250) (Linux 4.9)
reocatandroid_kernel_nokia_sdm660_ksuNokia 6.1 (2018)
Tuan Anhkernel_nokia_msm8998Nokia 8 (Repartitioned)/8 Sirocco (NLA/A1N)
bggRGjQaUbCoEandroid_kernel_samsung_sm8250Samsung Galaxy S20+ 5G (y2q)
SOVIET-ANDROIDkernel_xiaomi_raphaelXK20 Pro Raphael DSP & A only SAR support
Coconutatandroid_kernel_huawei_vtr_emui9_KernelSUHuawei P10,P10 Plus,Mate9,Mate9 Pro(Kirin960 Series),Stable For GSI
dabao1955android_kernel_OPPO_PEQM00MediaTek devices in the OPPO Reno series on ColorOS13.x
Aflaungosandroid_kernel_motorola_msm8998Moto G6 Plus (evert)
TheNoFacekernel_oneplus_msm8998OnePlus 5/5T (cheeseburger/dumpling)
Nipin NA (Joker-V2)Xcalibur kernel (violet)Xiaomi Redmi Note 7 Pro (violet)
Sr-Hankernel_xiaomi_mojitoRedmi Note 10 (Sunny/Mojito)
dabao1955android_kernel_OPPO_OP4ED5OPPO Reno6 on ColorOS11.x/ColorOS12.x,kernel version4.14.186+
rushiranpiseandroid_kernel_samsung_exynos9610_mintKernel 4.14.194 exynos9610 Non-GKI Device, Added KernelSu using manual method
CN-Scarspixel_experience_kernel_xiaomi_sm8250_kernelSUPixel Experience Kernel 4.19.282 for Xiaomi Redmi K40S / Xiaomi Poco F4 (munch)
exerMiyo TokuSony Tama (akari, apollo, aurora, akatsuki) (Linux 4.9)
likkaiQuicksilver KernelXiaomi 11 Lite 5G NE (lisa)
awakened1712android_kernel_samsung_exynos9820Samsung S10/N10
awakened1712android_kernel_oneplus_sm8350Oneplus 9/9Pro
siimsekLightning KernelXiaomi Redmi Note 8/8T (ginkgo/willow)
GiovanYCringekernel_a50Galaxy A50 (A505f,fn,g,gn,gt)
Asriadi Rahimandroid_kernel_google_wahooGoogle Pixel 2/2XL
Flameandroid_kernel_xiaomi_sm8250POCO F3/Redmi K40/Mi 11X (alioth)
DawfukFRkernel_oneplus_sm8250 (Stellaris-Kernel)Oneplus 8 (Instantnoodle), Oneplus 8T (Kebab), Oneplus 8 Pro (Instantnoodlep), Oneplus 9R (lemonades) [msm-4.19]
Tejas Singhkernel_xiaomi_ginkgo (Cuh Kernel)Xiaomi Redmi Note 8/8T (ginkgo/willow)
Coconutatandroid_kernel_xiaomi_ruby_expRedmi Note 12 Pro / Pro+ For MIUI 14
Coconutatandroid_kernel_xiaomi_sdm845_expXiaomi Mi 8 Pro(UD)[equuleus]/Explorer Edition[ursa]
Abdul Wahid Khankernel_xiaomi_begoniaRedmi Note 8 Pro (Begonia/Begoniain)
Abdul Wahid Khankernel_xiaomi_marbleXiaomi Poco F5 / Redmi Note 12 Turbo (Marble)
zfdx123kernel_xiaomi_aliothRedmi K40 (alioth)
wxt1221android_kernel_oneplus_sdm845Oneplus 6 (enchilada) | Oneplus 6T (fajita) with no Retrofit Dynamic Partitions
zharzinhooKernel-Oriente-GuampMoto g9 play
hc841NovaCore_kernelMoto g9 play
zlm324android_kernel_xiaomi_msm8998_ksua lineage kernel forked from LineageOS official repository, version 4.4.302, added ksu.
zlm324android_kernel_xiaomi_msm8953_ksuXiaomi 5X (tiffany)
Vincent4440android_kernel_xiaomi_sm8250Poco F4: munch
zharzinhooandroid_kernel_motorola_cebuMoto g9 power
tiandoufayaleandroid_kernel_samsung_sm8250Samsung Tab S7 WIFI(T870)
starmoeandroid_kernel_oneplus_msm8998Oneplus 5/5T, kernel version 4.4.302

在 GPL3 许可证下发布。

- diff --git a/zh_CN/guide/what-is-kernelsu.html b/zh_CN/guide/what-is-kernelsu.html index 2abd5e5611a0..d924d232c8fb 100644 --- a/zh_CN/guide/what-is-kernelsu.html +++ b/zh_CN/guide/what-is-kernelsu.html @@ -15,7 +15,7 @@
Skip to content
On this page

什么是 KernelSU?

KernelSU 是 Android GKI 设备的 root 解决方案,它工作在内核模式,并直接在内核空间中为用户空间应用程序授予 root 权限。

功能

KernelSU 的主要特点是它是基于内核的。 KernelSU 运行在内核空间, 所以它可以提供我们以前从未有过的内核接口。 例如,我们可以在内核模式下为任何进程添加硬件断点;我们可以在任何进程的物理内存中访问,而无人知晓;我们可以在内核空间拦截任何系统调用; 等等。

KernelSU 还提供了一个基于 overlayfs 的模块系统,允许您加载自定义插件到系统中。它还提供了一种修改 /system 分区中文件的机制。

如何使用

请参考: 安装

如何构建

请参考: 如何构建

讨论

在 GPL3 许可证下发布。

- diff --git a/zh_CN/index.html b/zh_CN/index.html index 0083ac53442b..1b4d6e09c7ee 100644 --- a/zh_CN/index.html +++ b/zh_CN/index.html @@ -15,7 +15,7 @@
Skip to content

KernelSU

Android 上的内核级的 root 方案

KernelSU

基于内核

KernelSU 运行在内核空间,对用户空间应用有更强的掌控。

白名单访问控制

只有被授权的 App 才可以访问 `su`,而其他 App 无法感知其存在。

受限制的 root 权限

KernelSU 可以自定义 `su` 的 uid, gid, groups, capabilities 和 SELinux 规则:把 root 权限关进笼子里。

模块系统 & 开源

KernelSU 支持通过 overlayfs 修改 /system,并且是 GPL-3 许可下的开源项目。

在 GPL3 许可证下发布。

- diff --git a/zh_TW/guide/difference-with-magisk.html b/zh_TW/guide/difference-with-magisk.html index 5238b5c7a3b9..0fce0b45daf7 100644 --- a/zh_TW/guide/difference-with-magisk.html +++ b/zh_TW/guide/difference-with-magisk.html @@ -15,7 +15,7 @@
Skip to content
On this page

KernelSU 模組與 Magisk 的差異

儘管 KernelSU 模組和 Magisk 模組之間有許多相似之處,但由於它們完全不同的實作機制,不可避免地存在一些差異;如果您想讓您的模組同時在 Magisk 和 KernelSU 上運作,那麼您必須瞭解這些差異。

相同之處

  • 模組檔案格式:都以 Zip 的格式組織模組,並且模組的格式幾乎相同
  • 模組安裝目錄:都位於 /data/adb/modules
  • Systemless:都支援透過模組的形式以 systemless 修改 /system
  • post-fs-data.sh:執行時間和語義完全相同
  • service.sh:執行時間和語義完全相同
  • system.prop:完全相同
  • sepolicy.rule:完全相同
  • BusyBox:指令碼在 BusyBox 中以「獨立模式」執行

不同之處

在瞭解不同之處之前,您需要知道如何區分您的模組是在 KernelSU 還是 Magisk 中執行;在所有可以執行模組指令碼的位置 (customize.sh, post-fs-data.sh, service.sh),您都可以使用環境變數 KSU 來區分,在 KernelSU 中,這個環境變數將被設定為 true

以下是一些不同之處:

  1. KernelSU 的模組不支援在 Recovery 中安裝。
  2. KernelSU 的模組沒有內建的 Zygisk 支援 (但您可以透過 ZygiskOnKernelSU 來使用 Zygisk 模組)。
  3. KernelSU 模組取代或刪除檔案與 Magisk 完全不同。KernelSU 不支援 .replace 方法,相反,您需要透過 mknod filename c 0 0 建立相同名稱的資料夾以刪除對應檔案。
  4. BusyBox 的目錄不同;KernelSU 內建的 BusyBox 在 /data/adb/ksu/bin/busybox 而 Magisk 在 /data/adb/magisk/busybox注意此為 KernelSU 內部行為,未來可能會變更!
  5. KernelSU 不支援 .replace 檔案;但 KernelSU 支援 REPLACEREMOVE 變數以移除或取代檔案 (資料夾)。

係依據 GPL3 授權發行。

- diff --git a/zh_TW/guide/faq.html b/zh_TW/guide/faq.html index a8751aa1d7a6..c53330ae8f56 100644 --- a/zh_TW/guide/faq.html +++ b/zh_TW/guide/faq.html @@ -15,7 +15,7 @@
Skip to content
On this page

常見問題

KernelSU 是否支援我的裝置?

首先,您的裝置應該能解鎖 Bootloader。如果不能,則不支援。

然後在您的裝置上安裝 KernelSU 管理員並開啟它,如果它顯示 不支援,那麼您的裝置沒有官方支援的開箱即用的 Boot 映像;但您可以自行建置核心來源並整合 KernelSU 以繼續使用。

KernelSU 是否需要解鎖 Bootloader?

當然需要。

KernelSU 是否支援模組?

支援,但它是早期版本,可能存在問題。請等候它逐漸穩定 😃

KernelSU 是否支援 Xposed ?

支援。DreamlandTaiChi 可以正常運作。LSPosed 可以在 Zygisk on KernelSU 的支援下正常運作。

KernelSU 支援 Zygisk 嗎?

KernelSU 沒有內建 Zygisk 支援,但是您可以用 Zygisk on KernelSU 來使用 Zygisk 模組。

KernelSU 與 Magisk 相容嗎?

KernelSU 的模組系統與 Magisk 的 magic mount 存在衝突,如果在 KernelSU 中啟用了任何模組,那麼整個 Magisk 將無法正常運作。

但是如果您只使用 KernelSU 的 su,那么它會和 Magisk 一同運作:KernelSU 修改 kernel 、 Magisk 修改 ramdisk,它們可以搭配使用。

KernelSU 会取代 Magisk 嗎?

我們不這樣認為,這也不是我們的目標。Magisk 對於使用者空間 Root 解決方案來說已經足夠優秀了,它會存在很長一段時間。KernelSU 的目標是為使用者提供核心介面,而非取代 Magisk。

KernelSU 可以支援非 GKI 裝置嗎?

可以。但是您應該下載核心來源並整合 KernelSU 至來源樹狀結構並自行編譯核心。

KernelSU 支援 Android 12 以下的裝置嗎?

影響 KernelSU 相容性的是裝置的核心版本,它與 Android 版本並無直接關係。唯一有關聯的是:原廠 Android 12 的裝置,一定是 5.10 或更高的核心 (GKI 裝置);因此結論如下:

  1. 原廠 Android 12 的裝置必定支援 (GKI 裝置)
  2. 舊版核心的裝置 (即使是 Android 12,也可能是舊版核心) 是相容的 (您需要自行建置核心)

KernelSU 可以支援舊版核心嗎?

可以,目前最低支援到 4.14;更低的版本您需要手動移植它,歡迎 PR!

如何為舊版核心整合 KernelSU?

請參閱指南

為何我的 Android 版本為 13,但核心版本卻是 "android12-5.10"?

核心版本與 Android 版本無關,如果您要刷新 KernelSU,請一律使用核心版本而非 Android 版本,如果你為 "android12-5.10" 的裝置刷新 Android 13 的核心,等候您的將會是開機迴圈。

KernelSU 支援 --mount-master/全域掛接命名空間嗎?

目前沒有 (未來可能會支援),但實際上有很多種方法手動進入全域命名空間,無需 Su 內建支援,比如:

  1. nsenter -t 1 -m sh 可以取得一個全域 mount namespace 的 shell.
  2. 在您要執行的命令前新增 nsenter --mount=/proc/1/ns/mnt 即可使此命令在全域 mount namespace 下執行。KernelSU 本身也使用了 這種方法

我是 GKI1.0,能用 KernelSU 嗎?

GKI1 與 GKI2 完全不同,所以您需要自行編譯核心。

係依據 GPL3 授權發行。

- diff --git a/zh_TW/guide/hidden-features.html b/zh_TW/guide/hidden-features.html index 0297f5e73548..16eb38df535c 100644 --- a/zh_TW/guide/hidden-features.html +++ b/zh_TW/guide/hidden-features.html @@ -15,7 +15,7 @@
Skip to content
On this page

隱藏功能

ksurc

預設狀況下,/system/bin/sh 會載入 /system/etc/mkshrc

可以透過建立 /data/adb/ksu/.ksurc 檔案來讓 Su 載入此檔案而非 /system/etc/mkshrc

係依據 GPL3 授權發行。

- diff --git a/zh_TW/guide/how-to-build.html b/zh_TW/guide/how-to-build.html index be3e86fb1df4..85a95f735b7a 100644 --- a/zh_TW/guide/how-to-build.html +++ b/zh_TW/guide/how-to-build.html @@ -18,7 +18,7 @@ mv <kernel_manifest.xml> .repo/manifests repo init -m manifest.xml repo sync

<kernel_manifest.xml> 是一個可以唯一確定組建的資訊清單檔案,您可以使用這個資訊清單進行可重新預測的組建。您需要從標準核心映像 (GKI) 發行組建 下載資訊清單檔案

建置

請先查看官方文件

例如,我們需要建置 aarch64 核心映像:

sh
LTO=thin BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh

不要忘記新增 LTO=thin,否則,如果您的電腦記憶體小於 24GB,建置可能會失敗。

從 Android 13 開始,核心由 bazel 建置:

sh
tools/bazel build --config=fast //common:kernel_aarch64_dist

使用 KernelSU 建置核心

如果您可以成功建置核心,那麼建置 KernelSU 就會非常輕鬆,依自己的需求在核心原始碼根目錄中執行以下任一命令:

sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -
sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main
sh
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.5.2

然後重新建置核心,您將會得到一個帶有 KernelSU 的核心映像!

- diff --git a/zh_TW/guide/how-to-integrate-for-non-gki.html b/zh_TW/guide/how-to-integrate-for-non-gki.html index f86e705be468..4a69754b2c69 100644 --- a/zh_TW/guide/how-to-integrate-for-non-gki.html +++ b/zh_TW/guide/how-to-integrate-for-non-gki.html @@ -166,7 +166,7 @@ if (disposition != INPUT_IGNORE_EVENT && type != EV_SYN) add_input_randomness(type, code, value);

最後,再次建置您的核心,KernelSU 將會如期運作。

- diff --git a/zh_TW/guide/installation.html b/zh_TW/guide/installation.html index bb030279c468..04a9e1b0870f 100644 --- a/zh_TW/guide/installation.html +++ b/zh_TW/guide/installation.html @@ -17,7 +17,7 @@
Skip to content
On this page

安裝

檢查您的裝置是否受支援

GitHub Releases酷安 下載 KernelSU 管理員應用程式,然後將應用程式安裝至裝置並開啟:

  • 如果應用程式顯示「不支援」,則表示您的裝置不支援 KernelSU,您需要自行編譯核心才能繼續使用,,KernelSU 官方也永遠不會為您提供一個可以刷新的 Boot 映像。
  • 如果應用程式顯示「未安裝」,那麼 KernelSU 支援您的裝置;可以進行下一步作業。

INFO

對於顯示「不支援」的裝置,這裡有一個非官方支援裝置清單,您可以使用這個清單裡的核心自行編譯。

備份您的原廠 boot.img

在進行刷新作業前,您必須預先備份您的原廠 boot.img。如果您在後續刷新作業中出現了任何問題,您都可以透過使用 Fastboot 刷新回到原廠 Boot 以還原系統。

WARNING

刷新作業可能會造成資料遺失,請確保做好這一步再繼續進行下一步作業!!必要時您還可以備份您手機的所有資料。

必要知識

ADB 和 Fastboot

預設狀況下,您將會使用 ADB 和 Fastboot 工具,如果您不知道它們,建議使用搜尋引擎先瞭解相關內容。

KMI

KMI 全稱 Kernel Module Interface,相同 KMI 的核心版本是相容的 這也是 GKI 中「標準」的涵義所在;反之,如果 KMI 不同,那麼這些核心之間無法彼此相容,刷新與您裝置 KMI 不同的核心映像可能會導致開機迴圈。

具體來講,對 GKI 的裝置,其核心版本格式應該如下:

txt
KernelRelease :=
 Version.PatchLevel.SubLevel-AndroidRelease-KmiGeneration-suffix
 w      .x         .y       -zzz           -k            -something

其中,w.x-zzz-k 為 KMI 版本。例如,一部裝置核心版本為 5.10.101-android12-9-g30979850fc20,那麼它的 KMI 為 5.10-android12-9;理論上刷新其他這個 KMI 的核心也能正常開機。

TIP

請注意,核心版本中的 SubLevel 並非 KMI 的一部分!也就是說 5.10.101-android12-9-g30979850fc205.10.137-android12-9-g30979850fc20 的 KMI 相同!

核心版本與 Android 版本

請注意:核心版本與 Android 版本並不一定相同!

如果您發現您的核心版本是 android12-5.10.101,然而您 Android 系統的版本為 Android 13 或者其他;請不要覺得奇怪,因為 Android 系統的版本與 Linux 核心的版本號碼並非一致;Linux 核心的版本號碼一般與裝置出廠時隨附的 Android 系統的版本一致,如果後續 Android 系統更新,核心版本一般不會發生變化。如果您需要刷新,請以核心版本為準!!

安裝簡介

KernelSU 的安裝方法有以下幾種,各自適用於不同的場景,請視需要選擇:

  1. 使用自訂 Recovery (如 TWRP) 安裝
  2. 使用核心刷新應用程式 (例如 Franco Kernel Manager) 安裝
  3. 使用 KernelSU 提供的 boot.img 透過 Fastboot 安裝
  4. 手動修補 boot.img 並安裝

使用自訂 Recovery 安裝

先決條件:您的裝置必須有自訂的 Recovery,例如 TWRP;如果沒有或者只有官方 Recovery,請使用其他方法。

步驟:

  1. 在 KernelSU 的 Release 頁面 下載與您手機版本相符的以 AnyKernel3 開頭的 Zip 套件;例如,手機核心版本為 android12-5.10.66,那麼您應該下載 AnyKernel3-android12-5.10.66_yyyy-MM.zip 這個檔案 (其中 yyyy 為年份,MM 為月份)。
  2. 重新開機手機至 TWRP。
  3. 使用 Adb 將 AnyKernel3-*.zip 放置到手機 /sdcard 然後在 TWRP 圖形使用者介面選擇並安裝;或者您也可以直接 adb sideload AnyKernel-*.zip 安裝。

PS. 這種方法適用於任何狀況下的安裝 (不限於初次安裝或後續更新),只要您用 TWRP 就可以進行作業。

使用核心刷新應用程式安裝

先決條件:您的裝置必須已經 Root。例如您已經安裝了 Magisk 並取得 Root 存取權,或者您已經安裝了舊版本的 KernelSU 需升級到其他版本的 KernelSU;如果您的裝置並未 Root,請嘗試其他方法。

步驟:

  1. 下載 AnyKernel3 的 Zip 檔案;請參閱 使用自訂 Recovery 安裝 章節的内容。
  2. 開啟核心刷新應用程式提供的 AnyKernel3 Zip 檔案進行刷新。

如果您先前並未使用過核心刷新應用程式,可以嘗試下面幾個方法:

  1. Kernel Flasher
  2. Franco Kernel Manager
  3. Ex Kernel Manager

PS. 這種方法在更新 KernelSU 時比較方便,無需電腦即可完成 (注意備份!)。

使用 KernelSU 提供的 boot.img 安裝

這種方法無需您有 TWRP,也無需您的手機有 Root 權限;適用於您初次安裝 KernelSU。

找到合適的 boot.img

KernelSU 為 GKI 裝置提供了標準 boot.img,您需要將 boot.img 刷新至裝置的 Boot 分割區。

您可以從 GitHub Release 下載 boot.img,請注意,您應該使用正確版本的 boot.img。例如,如果您的裝置顯示核心是 android12-5.10.101,需要下載 android-5.10.101_yyyy-MM.boot-<format>.img.

其中 <format> 指的是您的官方 boot.img 的核心壓縮格式,請檢查您原有 boot.img 的核心壓縮格式,您應該使用正確的格式,例如 lz4gz;如果使用不正確的壓縮格式,刷新 Boot 後可能無法開機。

INFO

  1. 您可以透過 magiskboot 以取得您的原始 Boot 的壓縮格式;當然,您也可以詢問與您相同型號的其他更有經驗的使用者。另外,核心的壓縮格式通常部會出現變更,如果您使用的某個壓縮格式成功開機,後續可以優先嘗試這個格式。
  2. 小米裝置通常 gz 或者 不壓縮
  3. Pixel 裝置有些特殊,請遵循下方的指示。

將 boot.img 刷新至裝置

使用 adb 連接您的裝置,然後執行 adb reboot bootloader 進入 fastboot 模式,然後使用此命令刷新 KernelSU:

sh
fastboot flash boot boot.img

INFO

如果您的裝置支援 fastboot boot,可以先使用 fastboot boot boot.img 來先嘗試使用 boot.img 開機進入系統,如果出現意外,重新啟動即可開機。

重新開機

刷新完成後,您應該重新啟動您的裝置:

sh
fastboot reboot

手動修補 boot.img

對於某些裝置來說,其 boot.img 格式並不是很常見,比如 lz4gz 和未壓縮;最典型的就是 Pixel,它的 boot.img 格式是 lz4_legacy 壓縮,ramdisk 可能是 gz 也可能是 lz4_legacy 壓縮;此時如果您直接刷新 KernelSU 提供的 boot.img,手機可能無法開機;這時,您可以透過手動修補 boot.img 來完成。

一般有兩種修補方法:

  1. Android-Image-Kitchen
  2. magiskboot

其中,Android-Image-Kitchen 適用於在電腦上作業,magiskboot 需要手機協作。

準備

  1. 取得您手機的原廠 boot.img;您可以聯絡您的裝置製造商,您也可能需要payload-dumper-go
  2. 下載 KernelSU 提供的與您的裝置 KMI 一致地 AnyKernel3 Zip 檔案 (可參閱 使用自訂 Recovery 安裝)。
  3. 解壓縮 AnyKernel3 Zip 檔案,取得其中的 Image 檔案,此檔案為 KernelSU 的核心檔案。

使用 Android-Image-Kitchen

  1. 下載 Android-Image-Kitchen 至您的電腦。
  2. 將手機原廠 boot.img 放置於 Android-Image-Kitchen 根目錄。
  3. 在 Android-Image-Kitchen 根目錄執行 ./unpackimg.sh boot.img;此命令會將 boot.img 解除封裝,您會得到一些檔案。
  4. split_img 目錄中的 boot.img-kernel 取代為您從 AnyKernel3 解壓縮出來的 Image (注意名稱變更為 boot.img-kernel)。
  5. 在 Android-Image-Kitchecn 根目錄執行 ./repackimg.sh;此時您會得到一個 image-new.img 檔案;使用此 boot.img 透過 fastboot 刷新即可 (刷新方法請參閱上一章節)。

使用 magiskboot

  1. 在 Magisk 的 Release 頁面 下載最新的 Magisk 安裝套件。
  2. 將 Magisk-*.apk 重新命名為 Magisk-vesion.zip 然後解壓縮。
  3. 將解壓縮後的 Magisk-v25.2/lib/arm64-v8a/libmagiskboot.so 檔案,使用 Adb 推入至手機:adb push Magisk-v25.2/lib/arm64-v8a/libmagiskboot.so /data/local/tmp/magiskboot
  4. 使用 Adb 將原廠 boot.img 和 AnyKernel3 中的 Image 推入至手機。
  5. adb shell 進入 /data/local/tmp/ 目錄,然後賦予先前推入檔案的可執行權限 chmod +x magiskboot
  6. adb shell 進入 /data/local/tmp/ 目錄,執行 ./magiskboot unpack boot.img 此時會將 boot.img 解除封裝,得到一個名為 kernel 的檔案,這個檔案是您的原廠核心。
  7. 使用 Image 取代 kernel: mv -f Image kernel
  8. 執行 ./magiskboot repack boot.img 重新封裝 img,此時您會得到一個 new-boot.img 檔案,透過 Fastboot 將這個檔案刷新至裝置即可。

其他替代方法

其實所有這些安裝方法的主旨只有一個,那就是將原廠核心取代為 KernelSU 提供的核心;只要能實現這個目的,就可以安裝;比如以下是其他可行的方法:

  1. 首先安裝 Magisk,透過 Magisk 取得 Root 權限後使用核心刷新程式刷新 KernelSU 的 AnyKernel Zip。
  2. 使用某些 PC 上的刷新工具組刷新 KernelSU 提供的核心。

係依據 GPL3 授權發行。

- diff --git a/zh_TW/guide/module.html b/zh_TW/guide/module.html index 8c2e6b8abdf2..4ced9afca13b 100644 --- a/zh_TW/guide/module.html +++ b/zh_TW/guide/module.html @@ -98,7 +98,7 @@ set_perm file owner group filepermission context for all directories in <directory> (including itself), it will call: set_perm dir owner group dirpermission context

開機指令碼

在 KernelSU 中,依據指令碼執行模式的不同分為兩種:post-fs-data 模式和 late_start 服務模式。

在 KernelSU 中,開機指令碼依據存放位置的不同還分為兩種:一般指令碼和模組指令碼。

所有启动脚本都将在 KernelSU 的 BusyBox ash shell 中运行,并启用“独立模式”。

- diff --git a/zh_TW/guide/rescue-from-bootloop.html b/zh_TW/guide/rescue-from-bootloop.html index 000a20e8857a..e4c7a32f3860 100644 --- a/zh_TW/guide/rescue-from-bootloop.html +++ b/zh_TW/guide/rescue-from-bootloop.html @@ -15,7 +15,7 @@
Skip to content
On this page

搶救開機迴圈

在刷新裝置時,我們很可能會遇到裝置「變磚」的狀況,從理論上講,如果您只是使用 Fastboot 刷新 Boot 分割區或者安裝不合適的模組導致裝置無法開機,那麼這都可以透過合適的作業還原您的手機;這個文件提供一些緊急方法可以讓您在「變磚」中還原。

刷新 Boot 時變磚

在 KernelSU 中,刷新 boot 時變磚有下列原因:

  1. 你刷新了錯誤格式的 Boot 映像。比如您的手機 Boot 格式為 gz,但您刷新 lz4 格式的映像,那麼此時手機將無法開機。
  2. 您的手機需要關閉 AVB 驗證才可正常開機 (這通常需要抹除手機上的所有資料)。
  3. 您的核心存在某些錯誤或您的核心並不適合這部手機刷新。

無論哪種狀況,您都可以透過刷新原廠 Boot還原;因此,在安裝教學最開始,我們已經強烈建議大家,在刷新之前備份自己的原廠 Boot!如果您沒有備份,那麼您可以透過其他與您相同裝置的使用者或官方韌體擷取 Boot。

刷新模組變磚

刷新模組變磚可能是大家遇到的更常見的狀況,但是這裡要嚴正警示大家:不要刷新未知來源的模組!!。因為模組擁有 Root 權限,它能完全對您的裝置造成無法復原的損壞!

一般模組

如果大家刷新了某些開放原始碼的或者被證明是安全的模組使手機無法開機,那麼這種狀況在 KernelSU 中非常容易還原,也無需擔心。KernelSU 內建了下列兩種機制以搶救您的裝置:

  1. AB 更新
  2. 透過按下「音量 -」搶救

AB 更新

KernelSU 的模組借鑒了 Android 系統 OTA 更新時的 AB 更新機制,如果您安裝了新模組或者對現存模組進行了更新作業,不會直接修改目前使用的模組檔案,而是會把所有模組建置為另外一個更新映像;系統重新啟動後,會使用這個更新映像嘗試重新啟動一次,如果 Android 系統成功開機,模組才會真正更新。

因此,最簡單最常用的搶救方法就是:強制重新開機一次。如果您在刷新某個模組之後系統無法開機,您可以長按電源按鈕超過 10 秒,系統會自動重新開機;模組會回復為更新前的狀態,先前更新的模組也將會被自動停用。

透過按下「音量 -」搶救

如果 AB 更新仍然無法解決,您可以嘗試使用安全模式。進入安全模式之後,所有的模組將會被停用。

進入安全模式的方法有兩種:

  1. 某些系統內建的安全模式;有些系統是長按「音量 -」,有些系統 (例如 MIUI) 可以在 Recovery 中啟用安全模式。進入系統的安全模式後,KernelSU 也會進入安全模式,並自動停用模組。
  2. KernelSU 內建的安全模式;作業方法:開機第一個畫面後,連續按下「音量 -」按鈕超過三次。注意是按下-抬起、按下-抬起、按下-抬起,並非一直按下。

進入安全模式後,KernelSU 管理員的模組頁面的所有模組將會被停用,但您可以執行「解除安裝」作業,將可能存在問題的模組解除安裝。

內建的安全模式在核心中實作,因此不會出現按鍵活動無法攔截的狀況。不過對於非 GKI 核心,可能需要手動整合程式碼,可以參閱官方文件指南。

惡意模組

如果以上方法無法搶救您的裝置,那麼很可能您安裝的模組存在惡意作業或透過其他方式損壞了您的裝置,在這種狀況下,只有兩個建議:

  1. 抹除資料並刷新官方系統。
  2. 諮詢售後服務。

係依據 GPL3 授權發行。

- diff --git a/zh_TW/guide/unofficially-support-devices.html b/zh_TW/guide/unofficially-support-devices.html index 9fdf9918e2b4..78aabdcf2acc 100644 --- a/zh_TW/guide/unofficially-support-devices.html +++ b/zh_TW/guide/unofficially-support-devices.html @@ -16,7 +16,7 @@
Skip to content
On this page

非官方支援裝置

WARNING

本文件列出由其他開發人員維護的支援 KernelSU 的非 GKI 裝置核心

WARNING

本文件仅便於尋找裝置對應原始碼,這並非意味著這些原始碼 KernelSU 開發人員審查,您應自行承擔風險。

維護者存放庫支援裝置
diphonsD8G_Kernel_oxygenPoco F3: alioth | Poco F4: munch | MI10T/PRO: Apollo
diphonsD8G_Kernel_SM8150Poco X3 Pro: Vayu | Bhima
diphonsD8G_Kernel_SDM845Poco F1 | MI8 | MiMix2S
diphonsD8G_Kernel_SM8350Vili
diphonsD8G_Kernel_MarblePoco F5 | Redmi Note 12 Turbo | Marble
th1nhhdkandroid_kernel_sony_sm8250-kernelsuSony Xperia 1 II | Sony Xperia 5 II
akash07knexus_kernel_xiaomi_sm8250Poco F4: munch
HMTheBoy154Darkmatter-kernelGeneric x86_64 devices running Android-x86
Asuka-mioandroid_kernel_xiaomi_casMi 10 Ultra: cas
xiaoleGunMiku_kernel_xiaomi_waynewayne
YamazakuraHkernel_xiaomi_cepheuscepheus for pixel experience
SakuraNotStupidandroid_kernel_xiaomi_sdm710Xiaomi MI 8 SE(sirius/xmsirius)
Aquarius223(paper)android_kernel_xiaomi_msm8998MI 6 (sagit) and MIX 2 (chiron) for LineageOS
SlackerStateandroid_kernel_xiaomi_sm6150Redmi K30 4G (phoenix)
RooGhz720kernel_xiaomi_sm6150REDMI NOTE 10 PRO (sweet)
OnlyTomInSecondandroid_kernel_xiaomi_sdm845Mi 8 (dipper) for LineageOS
Rohail33RealKing KernelApollo(Redmi K30S Ultra/Mi 10T/Mi 10T Pro),Alioth(Redmi K40/POCO F3/Mi 11X),Munch(Redmi K40S/POCO F4), both MIUI and AOSP.
lateautumn233android_kernel_oneplus_sm8250OnePlus 8 Serials
Sreeshankar KNeverSettle KernelOnePlus Nord (avicii)
Molyuuneko_kernel_xiaomi_gauguinRedmi Note 9 Pro/ Mi 10T Lite/ Mi 10i
guh0613android_kernel_oppo_sm8150OPPO Reno Ace (OP4A89)
LeviMarvinandroid_kernel_xiaomi_aliothRedmi K40 / POCO F3
cibimokernel_xiaomi_raphael_ksuXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
EndCreditskernel_xiaomi_sm7250Redmi K30 5G ( picasso ) , Redmi K30i 5G ( picasso_48m)
msnxandroid-msm-coral-4.14-android13Pixel 4 XL
SoDebugkernel_xiaomi_raphaelXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
H1mJTkernel_realme_RMX1901Realme X (RMX1901/RMX1901CN)
SonalSingh18android_kernel_xiaomi_sm6250Miatoll [curtana, excalibur, gram, joyeuse]
RooGhz720kernel_xiaomi_lavenderRedmi Note 7 (Lavender)
JunASAKAkernel_google_msm-4.9_KernelSUGoogle Pixel 3a & 3a XL (sargo & bonito)
RooGhz720kernel_asus_X01BDAsus Zenfone Max Pro M1/M2
Evans Mikekernel_xiaomi_raphael_bool-xXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)
easterNdayKSU_Thyme_BuildBotXiaomi 10S
tedomi2705kernel_xiaomi_sdm660Xiaomi Redmi Note 6 Pro (tulip)
RyuujiXandroid_kernel_asus_sdm660-4.19Asus Zenfone Max Pro M1 (X00TD)/ M2 (X01BD) (Linux 4.19)
liqidecgandroid_kernel_xiaomi_sdm710Mi 8 SE (sirius) (Linux 4.9)
Abdelhay-Aliandroid_kernel_huawei_hi6250Huawei P20 lite (hi6250) (Linux 4.9)
reocatandroid_kernel_nokia_sdm660_ksuNokia 6.1 (2018)
Tuan Anhkernel_nokia_msm8998Nokia 8 (Repartitioned)/8 Sirocco (NLA/A1N)
bggRGjQaUbCoEandroid_kernel_samsung_sm8250Samsung Galaxy S20+ 5G (y2q)
SOVIET-ANDROIDkernel_xiaomi_raphaelXK20 Pro Raphael DSP & A only SAR support
Coconutatandroid_kernel_huawei_vtr_emui9_KernelSUHuawei P10,P10 Plus,Mate9,Mate9 Pro(Kirin960 Series),Stable For GSI
dabao1955android_kernel_OPPO_PEQM00MediaTek devices in the OPPO Reno series on ColorOS13.x
Aflaungosandroid_kernel_motorola_msm8998Moto G6 Plus (evert)
TheNoFacekernel_oneplus_msm8998OnePlus 5/5T (cheeseburger/dumpling)
Nipin NA (Joker-V2)Xcalibur kernel (violet)Xiaomi Redmi Note 7 Pro (violet)
Sr-Hankernel_xiaomi_mojitoRedmi Note 10 (Sunny/Mojito)
dabao1955android_kernel_OPPO_OP4ED5OPPO Reno6 on ColorOS11.x/ColorOS12.x,kernel version4.14.186+
rushiranpiseandroid_kernel_samsung_exynos9610_mintKernel 4.14.194 exynos9610 Non-GKI Device, Added KernelSu using manual method
CN-Scarspixel_experience_kernel_xiaomi_sm8250_kernelSUPixel Experience Kernel 4.19.282 for Xiaomi Redmi K40S / Xiaomi Poco F4 (munch)
exerMiyo TokuSony Tama (akari, apollo, aurora, akatsuki) (Linux 4.9)
likkaiQuicksilver KernelXiaomi 11 Lite 5G NE (lisa)
awakened1712android_kernel_samsung_exynos9820Samsung S10/N10
awakened1712android_kernel_oneplus_sm8350Oneplus 9/9Pro
siimsekLightning KernelXiaomi Redmi Note 8/8T (ginkgo/willow)
GiovanYCringekernel_a50Galaxy A50 (A505f,fn,g,gn,gt)
Asriadi Rahimandroid_kernel_google_wahooGoogle Pixel 2/2XL
Flameandroid_kernel_xiaomi_sm8250POCO F3/Redmi K40/Mi 11X (alioth)
DawfukFRkernel_oneplus_sm8250 (Stellaris-Kernel)Oneplus 8 (Instantnoodle), Oneplus 8T (Kebab), Oneplus 8 Pro (Instantnoodlep), Oneplus 9R (lemonades) [msm-4.19]
Tejas Singhkernel_xiaomi_ginkgo (Cuh Kernel)Xiaomi Redmi Note 8/8T (ginkgo/willow)
Coconutatandroid_kernel_xiaomi_ruby_expRedmi Note 12 Pro / Pro+ For MIUI 14
Coconutatandroid_kernel_xiaomi_sdm845_expXiaomi Mi 8 Pro(UD)[equuleus]/Explorer Edition[ursa]
Abdul Wahid Khankernel_xiaomi_begoniaRedmi Note 8 Pro (Begonia/Begoniain)
Abdul Wahid Khankernel_xiaomi_marbleXiaomi Poco F5 / Redmi Note 12 Turbo (Marble)
zfdx123kernel_xiaomi_aliothRedmi K40 (alioth)
wxt1221android_kernel_oneplus_sdm845Oneplus 6 (enchilada) | Oneplus 6T (fajita) with no Retrofit Dynamic Partitions
zharzinhooKernel-Oriente-GuampMoto g9 play
hc841NovaCore_kernelMoto g9 play
zlm324android_kernel_xiaomi_msm8998_ksua lineage kernel forked from LineageOS official repository, version 4.4.302, added ksu.
zlm324android_kernel_xiaomi_msm8953_ksuXiaomi 5X (tiffany)
Vincent4440android_kernel_xiaomi_sm8250Poco F4: munch
zharzinhooandroid_kernel_motorola_cebuMoto g9 power
tiandoufayaleandroid_kernel_samsung_sm8250Samsung Tab S7 WIFI(T870)
starmoeandroid_kernel_oneplus_msm8998Oneplus 5/5T, kernel version 4.4.302

係依據 GPL3 授權發行。

- diff --git a/zh_TW/guide/what-is-kernelsu.html b/zh_TW/guide/what-is-kernelsu.html index 115c71afe4a2..c6c823ba3fed 100644 --- a/zh_TW/guide/what-is-kernelsu.html +++ b/zh_TW/guide/what-is-kernelsu.html @@ -15,7 +15,7 @@
Skip to content
On this page

什麼是 KernelSU?

KernelSU 是 Android GKI 裝置的 Root 解決方案,它以核心模式運作,並直接在核心空間中為使用者空間應用程式授予 Root 權限。

功能

KernelSU 的主要功能是它是以核心為基礎的。 KernelSU 在核心空間中執行,所以它可以向我們提供從未有過的核心介面。例如,我們可以在核心模式中為任何處理程序新增硬體中斷點;我們可以在任何處理程序的實體記憶體中存取,而無人知曉;我們可以在核心空間攔截任何系統呼叫;等等。

KernelSU 還提供了一個以 overlayfs 為基礎的模組系統,允許您將自訂外掛程式載入到系統中。它還提供了一種修改 /system 分割區中檔案的機制。

如何使用

請參閱:安裝

如何建置

请參閱:如何建置

討論

係依據 GPL3 授權發行。

- diff --git a/zh_TW/index.html b/zh_TW/index.html index e1fae5c3b334..53ba95ee6696 100644 --- a/zh_TW/index.html +++ b/zh_TW/index.html @@ -15,7 +15,7 @@
Skip to content

KernelSU

Android 上以核心為基礎的 root 解決方案

KernelSU

以核心為基礎

KernelSU 以 Linux 核心模式運作,對使用者空間有更強的掌控。

白名單存取控制

僅有被授予 Root 權限的應用程式才可存取 `su`,而其他應用程式完全無法知悉。

模組支援

KernelSU 支援透過 overlayfs 修改 /system,它甚至可以使 /system 可寫入。

開放原始碼

KernelSU 是 GPL-3 授權下的開放原始碼專案。

係依據 GPL3 授權發行。

-