尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

KernelSU 非 GKI 设备指南:社区内核列表完整解读与自行集成方法

KernelSU 非 GKI 设备指南:社区内核列表完整解读与自行集成方法 KernelSU 非 GKI 设备指南社区内核列表完整解读与自行集成方法【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU本文以 KernelSU 官方文档中的非 GKI 设备页website/docs/guide/unofficially-support-devices.md为主体完整收录该页渲染用的社区内核数据website/docs/repos.json并结合官方安装指南与非 GKI 集成文档讲解如何在非 GKI 设备上定位可用的 KernelSU 内核源码、刷机前的关键校验要点以及在无现成内核时如何自行将 KernelSU 集成进内核源码树。一、背景官方支持边界与非 GKI 设备的现状KernelSU 是面向 Android GKI 设备的内核态 root 方案。根据其 FAQwebsite/docs/guide/faq.md与安装文档website/docs/guide/installation.md官方支持范围仅 GKI Linux Kernel 5.10实践中意味着设备出厂 Android 版本需为 12GKI 1.0 设备与 GKI 2.0 完全不同必须自行编译内核非 GKI 设备的判定安装 KernelSU Manager 后若显示Not installed说明设备被官方支持若显示Unsupported说明官方不提供 boot.img需要自行编译内核或寻找社区维护的内核重要变更非 GKI 设备页明确声明——该页仅供存档参考不再维护自 KernelSU v1.0 起官方放弃了对非 GKI 设备的正式支持。该页同时给出了两条使用前提性的警告原文档原样保留页面上列出的都是由其他开发者维护的、支持 KernelSU 的非 GKI 设备内核该页面仅用于帮助你找到对应设备的源码并不表示这些源码已被 KernelSU 开发者审查使用者应自行承担使用风险。因此这篇文档的定位是设备与社区内核源码的索引页。下面完整继承该页的数据结构与全部内容。二、页面实现与数据结构repos.json原始页面本身不内嵌数据而是通过 VuePress 的script setup引入数据文件并用v-for渲染成三列表格Maintainer / Repository / Support devicesscript setup import data from ../repos.json /script table theadtrthMaintainer/ththRepository/ththSupport devices/th/tr/thead tbody tr v-forrepo in data :keyrepo.devices td{{ repo.maintainer }}/td td{{ repo.kernel_name }}/td td{{ repo.devices }}/td /tr /tbody /table数据源即 website/docs/repos.json每条记录包含 5 个字段字段含义maintainer内核仓库维护者社区开发者maintainer_link维护者的主页/个人主页链接存储于数据文件中本文按规范不直接输出外部链接kernel_name内核仓库/分支名称kernel_link内核源码仓库地址同样存储于数据文件中devices支持的设备型号及代号提示由于本文不输出外部站点链接上表中的维护者与仓库链接请直接到 website/docs/repos.json 中按名称查找对应条目其中maintainer_link与kernel_link字段即为原始页面的跳转目标。该列表共有 100 余条记录品牌覆盖 Xiaomi/Redmi/Poco、OnePlus、Samsung、Google Pixel、Huawei/Honor、Realme、Nokia、ASUS、LG、OPPO、Motorola、Sony 等从仓库名可以直接读出 SoC 线索例如sm8250、sm8635、sdm845、sdm710、msm8998、sm6150、mt6765、hi6250、exynos9810等这正是下文按 SoC 检索方法的基础。三、社区维护的非 GKI 内核完整列表以下为 website/docs/repos.json 的全部条目与原文档页面表格一一对应维护者 / 内核仓库 / 支持设备维护者内核仓库支持设备diphonskernel_xiaomi_sm8250Poco F3: alioth | Poco F4: munch | MI10T/PRO: ApollodiphonsD8G_Kernel_SM8150Poco X3 Pro: Vayu | Bhimadiphonskernel_xiaomi_sdm845Poco F1diphonskernel_xiaomi_sm8350MI11T Pro: vilidiphonsD8G_Kernel_MarblePoco F5 | Redmi Note 12 Turbo | Marblediphonskernel_xiaomi_sm8635Poco F6: peridotth1nhhdkandroid_kernel_sony_sm8250-kernelsuSony Xperia 1 II | Sony Xperia 5 IIakash07knexus_kernel_xiaomi_sm8250Poco F4: munchHadadandroid_kernel_xiaomi_oncRedmi 7: onclite | Redmi Y3: oncHMTheBoy154Darkmatter-kernelGeneric x86_64 devices running Android-x86Asuka-mioandroid_kernel_xiaomi_casMi 10 Ultra: casxiaoleGunMiku_kernel_xiaomi_waynewayneSakuraNotStupidandroid_kernel_xiaomi_sdm710Xiaomi MI 8 SE (sirius/xmsirius)zlm324android_kernel_xiaomi_msm8998MI 6 (sagit) and MIX 2 (chiron) for LineageOSSlackerStateandroid_kernel_xiaomi_sm6150Redmi K30 4G (phoenix)RooGhz720kernel_xiaomi_sm6150REDMI NOTE 10 PRO (sweet)OnlyTomInSecondandroid_kernel_xiaomi_sdm845Mi 8 (dipper) for LineageOSRohail33RealKing KernelApollo (Redmi K30S Ultra/Mi 10T/Mi 10T Pro)Alioth (Redmi K40/POCO F3/Mi 11X)Munch (Redmi K40S/POCO F4)MIUI 与 AOSP 均可Sreeshankar KNeverSettle KernelOnePlus Nord (avicii)PSavarMattasPSM KernelOnePlus Nord (avicii)Molyuuneko_kernel_xiaomi_gauguinRedmi Note 9 Pro / Mi 10T Lite / Mi 10iguh0613android_kernel_oppo_sm8150OPPO Reno Ace (OP4A89)LeviMarvinandroid_kernel_xiaomi_aliothRedmi K40 / POCO F3cibimokernel_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 XLSoDebugkernel_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/M2Evans Mikekernel_xiaomi_raphael_bool-xXiaomi Redmi K20 Pro / Mi 9T Pro (raphael)easterNdayKSU_Thyme_BuildBotXiaomi 10Stedomi2705kernel_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 RaphaelDSP A only SAR supportdabao1955android_kernel_OPPO_PEQM00OPPO Reno 系列中 MediaTek 设备ColorOS 13.xAflaungosandroid_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)rushiranpiseandroid_kernel_samsung_exynos9610_mintKernel 4.14.194 exynos9610 非 GKI 设备手动方式集成 KernelSUCN-Scarspixel_experience_kernel_xiaomi_sm8250_kernelSUPixel Experience Kernel 4.19.282Xiaomi Redmi K40S / 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/N10awakened1712android_kernel_oneplus_sm8350Oneplus 9/9ProsiimsekLightning KernelXiaomi Redmi Note 8/8T (ginkgo/willow)GiovanYCringekernel_a50Galaxy A50 (A505f/fn/g/gn/gt)Asriadi Rahimandroid_kernel_google_wahooGoogle Pixel 2/2XLDawfukFRkernel_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)Abdul Wahid Khankernel_xiaomi_begoniaRedmi Note 8 Pro (Begonia/Begoniain)zfdx123kernel_xiaomi_aliothRedmi K40 (alioth)Bot-wxt1221android_kernel_oneplus_sdm845Oneplus 6 (enchilada) / Oneplus 6T (fajita)仅 Retrofit Dynamic Partitions 且配合 crdroidzlm324android_kernel_xiaomi_msm8998_ksu基于 LineageOS 官方仓库 fork 的 lineage 内核4.4.302已加入 ksuzlm324android_kernel_xiaomi_msm8953_ksuXiaomi 5X (tiffany)Vincent4440android_kernel_xiaomi_sm8250Poco F4: munchtiandoufayaleandroid_kernel_samsung_sm8250Samsung Tab S7 WIFI (T870)starmoeandroid_kernel_oneplus_msm8998Oneplus 5/5Tkernel 4.4.302supechickenkernel_xiaomi_sm8350Xiaomi 11T Pro (vili)Vaz15kkernelSU-A70qSamsung Galaxy A70 (A705MN / A705FN)whyakariandroid_kernel_xiaomi_ginkgoXiaomi Redmi Note 8/8T (ginkgo/willow)wulan17android_kernel_xiaomi_mt6765Redmi 6/6A (cereus/cactus)officialputuidandroid_kernel_realme_mt6785Realme 6/6i(印度)/6s/7/Narzo/Narzo 20 Pro/Narzo 30 4G (RM6785)liquidprjktliquid_kernel_realme_evenRealme C25/s 和 Narzo50A (even)TonklaistontonNEXGatokernelRealme 9 pro 5g | Oneplus nord ce 2 liteCoolestEnochkernel-su-huawei-nova2Huawei nova 2 (pic)RisenIDkernel_samsung_ascendia_sm7325Samsung Galaxy A52s 5G (a52sxq)RisenIDkernel_samsung_ascendia_sm7125Samsung Galaxy A52 4G (a52q)RisenIDkernel_samsung_ascendia_sm7125Samsung Galaxy A72 (a72q)RisenIDkernel_samsung_ascendia_sm7325Samsung Galaxy M52 5G (m52xq)A-JiuAsirius_KernelXiaomi MI 8 SE (MIUI12/12.5)picasso09KernelSU-RM6765RRealme C11/12/15 (RM6765)josedelinuxkernel_google_msm-4.9Google Pixel 3a 3a XL (sargo bonito)Lonelystar9xKernel_xiaomi_sdm845Poco F1 | MI8 | MiMix2S | MiMix3iceBear67android_kernel_exynos9810_kernelsuGalaxy Note 9 (N960N/F)BlackMesa123android_kernel_samsung_s5e8835Samsung Galaxy A54 5G (a54x)Fede2782android_kernel_samsung_a34xSamsung Galaxy A34 5G (a34x)SnowWolf725android_kernel_oneplus_sm8150Oneplus 7 (guacamoleb) / 7 Pro (guacamole) / 7T (hotdog) / 7TPro (hotdogb)Fede2782android_kernel_samsung_gta4xlGalaxy Tab S6 Lite LTE (gta4xl)ArchVisionsandroid_kernel_samsung_gts9fewifiSamsung Tab S9 FE (gts9fewifi) | Exynos 1380ravindu644android_kernel_beyondx_lposGalaxy S10 5G (KOR)ravindu644android_kernel_beyond1_lposGalaxy S10ravindu644android_kernel_beyond2Galaxy S10ravindu644android_kernel_beyond0Galaxy S10eRofikkernelkernel_lgv600tm_4.19LG V60 timelmDawid2849android_kernel_lge_sm8150LG G8 (alphaplus) / LG G8s (betalm) / LG G8X (mh2mml)lyc8503kernel_xiaomi_chopinRedmi Note 10 Pro 5G (chopin) / Poco X3 GT (choping)Fede2782android_kernel_motorola_sdm632Motorola Moto G7 (river)EmanuelCNN0KernelPoco F3 (alioth) | Mi 10T/Pro (apollo) | Poco F4 (munch)kvsnr113NOVA KernelPoco F3 (alioth) | Mi 10T/Pro (apollo) | Poco F4 (munch)anVzdHFtb25android_kernel_xiaomi_mt6768Redmi 9 (lancelot)rifsxdandroid_kernel_realme_RMX3511Realme C35 (RMX3511)qlADkernel_oneplus_sdm845OnePlus 6 (enchilada) with PixelExperiencersuntkOrgskernel_samsung_wingtechSamsung Galaxy A05 (a05m) 和 A04 (a04)itejo443android_kernel_samsung_sm7225Samsung Galaxy F23 和 M23 (m23xq)JuiImM30s-custom-kernelSamsung Galaxy M30s (M307F)poqdavidandroid_kernel_samsung_sma155fSamsung Galaxy A15 4G (sma155f) | MediaTek Helio G99xixiaobeiKernelSU_on_Huawei全部 Huawei Honor 设备四、如何为自己的设备定位合适的内核拿到列表后按以下步骤缩小范围先确认是否真的不受官方支持安装 KernelSU Manager若显示Not installed则设备属于 GKI应直接使用官方安装流程website/docs/guide/installation.md无需本页列表只有显示Unsupported时才需要在此查找。获取设备代号codename非 GKI 内核条目几乎都以代号标注设备如alioth、raphael、munch。可通过adb shell getprop ro.product.device查看本机代号它是匹配的第一关键字。按 SoC 线索二次筛选同型号设备的内核仓库名通常包含 SoC 型号sm8250、sdm845、msm8998、mt6785、exynos9810等。若没有与本机 SoC 一致的仓库就不要勉强使用。核对内核大版本部分条目在devices字段中直接标明了内核版本如Linux 4.9、4.4.302、4.19.282、4.14.194。它应与本机当前uname -r的主版本一致刷机前务必比对。同一设备存在多个内核时例如raphaelRedmi K20 Pro / Mi 9T Pro在列表中有 cibimo、SoDebug、Evans Mike、SOVIET-ANDROID 四个仓库Redmi Note 8/8T有 siimsek、Tejas Singh、whyakari 三个。这些均为社区项目成熟度与维护状态互不相同——应自行评估其活跃度与构建质量这与原文档源码未经 KernelSU 开发者审查、风险自担的声明一致。x86_64 特例列表中 HMTheBoy154 的 Darkmatter-kernel 面向运行 Android-x86 的通用 x86_64 设备。当前仓库对 x86_64 有专门支持由于上游对 syscall 表的加固现代 x86_64 内核需要启用KSU_X86_PATCH_SYSCALL_DISPATCHER或应用内核源码补丁详见 website/docs/guide/x86_64-support.md 与 kernel/Kconfig 中该选项的定义depends on KSU X86_64默认n实现位于 kernel/hook/x86_64/ 与 kernel/hook/patch_memory.h。Huawei/Honor 特例列表末尾的 KernelSU_on_Huawei 声称支持全部 Huawei Honor 设备其前提是设备内核已适配 GKI 风格构建对真正的非 GKI 华为旧机型仍需按下面的自行集成流程处理且必须使用 v1.0 之前的版本。五、刷机前的通用校验要点无论使用列表中的哪个社区内核以下要点均来自官方安装文档website/docs/guide/installation.md对非 GKI 场景同样适用且部分更关键备份原厂 boot.img文档明确刷机前备份原厂 boot.img 至关重要出现 bootloop 时可随时用 fastboot 刷回。非 GKI 设备刷的是完整内核镜像风险更集中在这一步KMI 概念主要针对 GKI 设备但理解它有助于判断内核兼容性内核版本格式为Version.PatchLevel.SubLevel-AndroidRelease-KmiGeneration-suffix即w.x.y-zzz-k-...其中w.x-zzz-k才是 KMI例如5.10.101-android12-9-g30979850fc20的 KMI 是5.10-android12-9SubLevel.y不属于KMI5.10.101与5.10.137属于同一 KMI安全补丁级security patch level新设备可能有防回滚机制拒绝刷入安全补丁级过旧的 boot 镜像例如设备内核为2023-11刷入2023-06的镜像可能直接 bootloop。选择社区内核构建时应关注其构建对应的补丁级内核版本 ≠ Android 版本内核版本对应的是设备出厂时的 Android 系统版本后续系统升级一般不改内核版本。刷机前一律以内核版本为准不要被 Android 版本号误导压缩格式匹配boot.img 内内核的压缩格式lz4、gz、uncompressedPixel 常见lz4_legacy刷错会 bootloop。文档经验Xiaomi 设备通常使用gz或uncompressed可用 magiskboot 解包原厂 boot.img 查看格式解包/重打包工具官方推荐magiskboot处理 boot 镜像文档提示 Android-Image-Kitchen 不建议使用因为它不能正确处理 boot metadata如安全补丁级。六、没有现成内核时自行将 KernelSU 集成进内核源码如果列表中没有你的设备官方给出的路径是自行编译。对应文档为 website/docs/guide/how-to-integrate-for-non-gki.md同样标注为存档、不再维护核心流程与版本限制如下版本限制关键前提KernelSU 1.0 及以后版本不再支持非 GKI 内核最后一个支持非 GKI 的版本是v0.9.5集成时必须指定该版本。前提条件是你能从源码构建出可启动的内核——如果厂商没有开源内核源码则难以在该设备上运行 KernelSU。方法一基于 kprobe 自动集成推荐KernelSU 使用 kprobe 做内核 hook。先把 KernelSU 加入内核源码树指定 tag 的参数用法在 kernel/setup.sh 中实现脚本会克隆仓库、在drivers/下创建kernelsu符号链接并修改drivers/Makefile与drivers/Kconfig也支持--cleanup回滚这些修改curl -LSs https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh | bash -s v0.9.5然后确认内核配置中 kprobe 已启用缺失时补上CONFIG_KPROBESy CONFIG_HAVE_KPROBESy CONFIG_KPROBE_EVENTSy重新编译内核后 KernelSU 应能正常工作。若KPROBES仍未启用可尝试启用CONFIG_MODULES或make menuconfig排查其他 KPROBES 依赖项。与当前仓库源码可以互相印证kernel/Kconfig 中config KSU声明depends on KPROBES EXT4_FSkprobe 用于 hookEXT4_FS用于ext4_unregister_sysfsdefault y——这正是集成后 defconfig 需要保持开启的配置项。kprobe 损坏的判定集成后若 bootloop可能是你内核里的 kprobe 有问题。文档给出的验证方法是注释掉KernelSU/kernel/ksu.c中的ksu_sucompat_init()与ksu_ksud_init()再编译若此时能正常开机即可怀疑 kprobe 损坏需要修复或使用手动方法。方法二手动修改内核源码kprobe 不可用或内核 4.8同样先用setup.sh引入 KernelSU然后在你的 defconfig可能位于arch/arm64/configs或arch/arm64/configs/vendor/...中确保启用# KernelSU CONFIG_KSUy接着在四个核心 VFS/执行路径函数处插入 hook 调用文档提供了完整 diff 可参考此处给出位置与调用签名内核函数典型位置插入的 KernelSU 调用do_faccessat内核 4.17 时直接在faccessatsyscall 定义处fs/open.cksu_handle_faccessat(dfd, filename, mode, NULL)do_execveat_commonfs/exec.cksu_handle_execveat(...)ksu_execveat_hook为真时或ksu_handle_execveat_sucompat(...)vfs_readfs/read_write.cksu_handle_vfs_read(file, buf, count, pos)ksu_vfs_read_hook为真时vfs_statx没有则改用vfs_fstatatfs/stat.cksu_handle_stat(dfd, filename, flags)所有调用都应包裹在#ifdef CONFIG_KSU ... #endif中并配合unlikely(ksu_xxx_hook)开关原文档中的 diff 已完整展示各函数的 extern 声明与插入点建议直接对照 website/docs/guide/how-to-integrate-for-non-gki.md 逐处应用。此外还有三个增强项均带参考 diffSafe Mode强烈建议启用防 bootloop修改drivers/input/input.c的input_handle_event在input_get_disposition之后插入ksu_handle_input_handle_event(type, code, value)受ksu_input_hook开关控制。注意文档提示若手动集成时不关闭CONFIG_KPROBES用户开机后按住音量减也能触发 Safe Mode因此手动集成时应禁用CONFIG_KPROBES修复终端pm命令执行失败修改fs/devpts/inode.c的devpts_get_priv插入ksu_handle_devpts(dentry-d_inode)path_umount回移植pre-GKI 内核 5.9模块卸载Umount module功能依赖 5.9 引入的path_umountfs/namespace.c文档给出了完整的can_umountpath_umount参考补丁不回移植该函数则卸载模块功能不可用。最后重新编译内核KernelSU 即可工作。七、风险边界与适用前提小结本页全部条目是社区索引官方不审查、不提供 boot.img、不承担维护责任原文档三段 warning 的核心自行集成路径锁定在v0.9.5 及更早1.0 仅面向 GKI 设备LKM / GKI 两种运行模式见 website/docs/guide/installation.md非 GKI 内核碎片化严重没有通用构建方式官方明确无法提供非 GKI boot.img刷任何内核前先备份 boot.img、核对内核版本与补丁级、确认压缩格式这是避免变砖的基本盘。八、相关仓库路径索引路径说明website/docs/guide/unofficially-support-devices.md本文主体对应的原始文档非 GKI 设备索引页website/docs/repos.json索引页渲染所用的全部社区内核数据website/docs/guide/installation.md官方安装指南支持判定、KMI、安全补丁级、压缩格式、magiskboot 流程website/docs/guide/how-to-integrate-for-non-gki.md非 GKI 内核自行集成完整指南kprobe / 手动 patch / Safe Mode / path_umountwebsite/docs/guide/faq.md官方支持范围、旧内核支持等问题的权威口径website/docs/guide/x86_64-support.mdx86_64 设备列表中的 Darkmatter-kernel 场景专用说明kernel/setup.sh将 KernelSU 引入内核源码树的脚本tag/commit 参数与--cleanupkernel/KconfigCONFIG_KSU依赖关系KPROBES EXT4_FS及各功能开关定义【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表