ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

KernelSU 非 GKI 设备支持指南:社区内核清单、集成路径与风险控制

KernelSU 非 GKI 设备支持指南:社区内核清单、集成路径与风险控制 KernelSU 非 GKI 设备支持指南社区内核清单、集成路径与风险控制【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU本篇文章聚焦 KernelSU 官方文档中「非官方支持设备」Unofficially supported devices页面该页面汇集了由社区开发者维护、面向非 GKI 设备的 KernelSU 内核源码清单。读完本文你将掌握如何理解该清单的定位与三条核心警告、如何借助 website/docs/repos.json 按设备代号查找对应内核源码、非 GKI 设备上集成 KernelSU 的两种底层方式kprobe 与手动打补丁以及使用社区内核时必须承担的风险与安全措施。一、文档定位一份仅存档、不再维护的社区清单原始文档website/docs/vi_VN/guide/unofficially-support-devices.md英文原版见 website/docs/guide/unofficially-support-devices.md开篇即用三条警告框划定了这份清单的性质仅供存档参考不再维护自 KernelSU v1.0 起官方已放弃对非 GKI 设备的支持本文档仅作为历史资料留存不会随项目更新。列表内容由第三方维护页面中列出的都是其他开发者维护的、支持 KernelSU 的非 GKI 设备内核并非 KernelSU 官方产物。源码未经官方审查风险自担页面只用于帮你找到与设备匹配的源码完全不意味着该源码经过 KernelSU 开发者审查使用时需自行接受风险。这三点划清了官方支持与社区支持的边界官方支持只覆盖 GKI 内核Linux 5.10而非 GKI 设备要想用上 KernelSU只能依赖社区编译的内核或自行集成。二、为什么会有非官方支持GKI 与非 GKI 的分水岭要理解这份清单的价值需要先理解 GKIGeneric Kernel Image通用内核映像与非 GKI 的差异。官方安装文档 website/docs/guide/installation.md 中解释了核心概念KMIKernel Module Interface内核模块接口内核版本中w.x-zzz-k这一节即为 KMI 版本KMI 相同的内核互相兼容KMI 不同则互不兼容刷入 KMI 不匹配的内核映像可能直接导致无法开机。GKI 设备内核版本形如5.10.101-android12-9-g30979850fc20其 KMI 为5.10-android12-9。官方为 GKI 设备提供可直接刷写的通用 boot.img覆盖面广。非 GKI 设备内核碎片化严重不同厂商、不同平台、不同内核版本各自为政官方无法提供统一的非 GKI boot.img只能由社区按设备逐个适配。FAQwebsite/docs/guide/faq.md进一步说明官方支持的设备需要满足出厂即 Android 12 GKI 5.10 内核而旧内核如 4.14属于可支持但需自行编译的范畴。官方文档 website/docs/guide/how-to-integrate-for-non-gki.md 中明确KernelSU 1.0 及以后版本不再支持非 GKI 内核最后一个支持的版本是 v0.9.5——这也是为什么这份设备清单标注为不再维护。三、清单的工作机制一份 JSON 驱动的动态表格页面的表格并非手工维护的静态 HTML而是通过 Vue 的script setup从仓库内的数据文件动态渲染script setup import data from ../../repos.json /script table thead tr th维护者/th th仓库地址/th th支持设备/th /tr /thead tbody tr v-forrepo in data :keyrepo.devices tda :hrefrepo.maintainer_link ...{{ repo.maintainer }}/a/td tda :hrefrepo.kernel_link ...{{ repo.kernel_name }}/a/td td{{ repo.devices }}/td /tr /tbody /table数据源为 website/docs/repos.json每一条记录含四个字段字段含义示例maintainer内核维护者的用户名/昵称diphonsmaintainer_link维护者主页链接维护者的 GitHub/XDA 主页kernel_name内核仓库名称kernel_xiaomi_sm8250kernel_link内核源码仓库链接对应内核仓库地址devices支持设备列表含设备代号Poco F3: alioth \| Poco F4: munch该文件目前共收录106 条内核记录。若你想为文档页补充或核对数据只需编辑这一个 JSON 文件页面表格会自动刷新。四、如何使用清单按设备代号精准定位内核源码表格第三列是定位设备的关键。Android 社区习惯用设备代号codename指代机型例如alioth Redmi K40 / POCO F3 / Mi 11Xmunch Redmi K40S / POCO F4raphael Xiaomi Redmi K20 Pro / Mi 9T Proginkgo/willow Redmi Note 8 / 8Tavicii OnePlus Nord使用步骤先在手机设置中确认机型与内核版本 → 在表格第三列中搜索你的机型或代号 → 找到匹配项后通过第二列的kernel_link进入内核源码仓库 → 按仓库 README 说明编译刷入。注意同型号设备可能有多个维护者的内核如 raphael 有 5 个以上版本、alioth 有 3 个它们的差异通常体现在内核版本基线Linux 4.x/4.19、适配的 ROMMIUI / AOSP / LineageOS与附加特性上需按自己当前 ROM 环境选择。五、完整清单106 条社区内核速查表以下为 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)both MIUI and AOSPSreeshankar 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 Raphael DSP A only SAR supportdabao1955android_kernel_OPPO_PEQM00MediaTek devices in the OPPO Reno series on ColorOS13.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 Non-GKI DeviceAdded KernelSU using manual methodCN-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/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) with Retrofit Dynamic Partitions Only with crdroidzlm324android_kernel_xiaomi_msm8998_ksua lineage kernel forked from LineageOS official repository, version 4.4.302, added 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/5T, kernel version 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(Indian)/6s/7/Narzo/Narzo 20 Pro/Narzo 30 4G (RM6785)liquidprjktliquid_kernel_realme_evenRealme C25/s and 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)anVzdGFtb25android_kernel_xiaomi_mt6768Redmi 9 ( lancelot )rifsxdandroid_kernel_realme_RMX3511Realme C35 (RMX3511)qlADkernel_oneplus_sdm845OnePlus 6 (enchilada) with PixelExperiencersuntkOrgskernel_samsung_wingtechSamsung Galaxy A05 (a05m) and A04 (a04)itejo443android_kernel_samsung_sm7225Samsung Galaxy F23 and M23 (m23xq)JuiImM30s-custom-kernelSamsung Galaxy M30s (M307F)poqdavidandroid_kernel_samsung_sma155fSamsung Galaxy A15 4G (sma155f) | MediaTek Helio G99xixiaobeiKernelSU_on_HuaweiAll Huawei Honor devices六、生态概览设备与平台的分布规律对 website/docs/repos.json 的 106 条记录做统计可以清晰看出这份社区清单的生态特征高通的骁龙平台是绝对主力仅sm8250骁龙 865 系8 条、msm8998骁龙 835 系6 条、sdm845骁龙 845 系5 条、sm8150骁龙 855 系4 条就占去近四分之一另有sm8350、sm6150、sdm660、sdm710、sm6250、sm7250、sm7325、sm7125等多个平台。机型高度集中于小米/POCO 生态alioth、munch、raphael、ginkgo、apollo 等热销机型往往同时有 35 个不同维护者的内核竞争充分、选择丰富。三星是第二大阵营覆盖 Exynos 9610/9810/9820、Exynos 1380、以及骁龙平台的 A5x/M5x/S10 系列等。老内核版本大量存在多条记录明确标注 Linux 4.4.302、4.9、4.14、4.19 等基线印证了 KernelSU 曾被移植到 4.14 及更早版本的历史见 website/docs/guide/faq.md。特殊平台亦有覆盖包括 Android-x86 的通用 x86_64 内核Darkmatter-kernel、Pixel 2/2XLwahoo、Pixel 3amsm-4.9、Pixel 4 XLcoral等。七、风险与安全措施使用社区内核前必须做的事文档第三条警告强调清单中的源码未经过 KernelSU 开发者审查属于用得好不好全看维护者出了事自己兜着的社区资源。结合官方安装指南website/docs/guide/installation.md使用这些社区内核时应遵守以下安全底线刷入前备份原厂 boot.img这是官方反复强调的第一步。一旦出现 bootloop可通过 fastboot 刷回原厂 boot 恢复系统刷机操作可能造成数据丢失必要时先完整备份设备数据。核对内核版本而非 Android 版本KernelSU 的兼容性取决于内核版本而非系统版本。设备升级 Android 后内核版本一般不会变刷机前务必以内核版本为准详见安装文档的 Kernel version vs Android version 一节。优先选择匹配当前 ROM 的内核多条记录注明仅适配 LineageOS / PixelExperience / MIUI / AOSP 等特定 ROM 环境如 zlm324 的 msm8998 内核注明 for LineageOS跨 ROM 使用可能无法正常开机。了解 KMI 与安全补丁级别约束非 GKI 内核同样存在防回滚机制旧安全补丁级别的内核映像可能触发 bootloop应尽量选择安全补丁级别较新的内核。警惕引导循环的排查方法若集成后卡 bootloop官方集成指南给出一个判别手段——注释掉ksu_sucompat_init()与ksu_ksud_init()后若能正常开机则问题很可能出在内核的 kprobe 上。八、从用别人编译的内核到自己集成非 GKI 的两种接入方式如果清单里找不到你的设备或你希望自己维护内核官方保留了完整的非 GKI 集成指南website/docs/guide/how-to-integrate-for-non-gki.md这是理解社区内核是怎么做出来的的关键资料。前提是你的内核源码开源且你能从源码编译出可开机的内核。在此基础上有两种方式方式一基于 kprobe 的自动集成推荐KernelSU 的钩子机制依赖 kprobe。如果目标内核的 kprobe 稳定可用这是最省事的方式。流程如下将 KernelSU 拉入内核源码树注意非 GKI 只支持到 v0.9.5curl -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重新编译内核。若 KPROBES 仍无法启用可尝试开启CONFIG_MODULES或用make menuconfig排查其他依赖。需要说明的是仓库内的 kernel/setup.sh 是面向 GKI 源码树的集成脚本它会把KernelSU/kernel以符号链接方式挂到内核的drivers/kernelsu并向drivers/Makefile追加obj-$(CONFIG_KSU) kernelsu/、向drivers/Kconfig注入source drivers/kernelsu/Kconfig。非 GKI 场景下v0.9.5 时代原理相同脚本内drivers/与common/drivers/的目录探测逻辑恰好兼容两类源码树布局。从源码结构看这也解释了为什么社区内核仓库普遍保留了drivers/kernelsu软链接这一集成痕迹。方式二手动修改内核源码当 kprobe 因上游缺陷失效、或内核版本低于 4.8 时需要手动打补丁。核心步骤是在 defconfig 中启用 KernelSU注意 defconfig 可能位于arch/arm64/configs或其 vendor 子目录# KernelSU CONFIG_KSUy在四处系统调用路径插入 KernelSU 钩子调用官方指南提供了可直接套用的 diff 补丁do_faccessat通常位于fs/open.c→ 对应ksu_handle_faccessatdo_execveat_common通常位于fs/exec.c→ 对应ksu_handle_execveat/ksu_handle_execveat_sucompatvfs_read通常位于fs/read_write.c→ 对应ksu_handle_vfs_readvfs_statx或更老内核的vfs_fstatat通常位于fs/stat.c→ 对应ksu_handle_stat建议同时接入内置安全模式Safe Mode修改drivers/input/input.c的input_handle_event加入ksu_handle_input_handle_event调用以便在集成异常时通过按键进入安全模式自救。若手动集成且未禁用CONFIG_KPROBES用户可能在开机时误触安全模式因此手动集成时务必关闭CONFIG_KPROBES。若终端中pm命令执行失败需修改fs/devpts/inode.c的devpts_get_priv加入ksu_handle_devpts调用若内核早于 5.9 且需要卸载模块功能还需把 5.9 的path_umount回移backport到fs/namespace.c。仓库内 kernel/Kconfig 中CONFIG_KSU的定义印证了这套机制的依赖关系它声明depends on KPROBES EXT4_FS帮助文本明确指出在内核层面为 Android 系统提供 root 权限需要 CONFIG_KPROBES 支持内核钩子需要 CONFIG_EXT4_FS 支持ext4_unregister_sysfs且支持y编入内核与M编译为名为kernelsu的模块两种形态——后者正是 GKI 场景下 LKM 模式的来源。此外还提供KSU_DEBUG、KSU_DISABLE_MANAGER、KSU_DISABLE_POLICY、KSU_X86_PATCH_SYSCALL_DISPATCHER等可选项说明非 GKI 内核同样可以按需裁剪 KernelSU 功能面。九、如何确认你的设备是否被官方支持在动手折腾社区内核之前建议先用官方管理器确认设备状态详见 website/docs/guide/installation.md管理器显示Not installed设备受 KernelSU 官方支持直接使用官方 boot.img 或 LKM 即可。管理器显示Unsupported设备不在官方支持范围此时有两个出路——要么查阅本文介绍的社区内核清单直接使用现成内核要么按照官方非 GKI 集成指南自行编译内核。总结「非官方支持设备」清单是 KernelSU 在 v1.0 放弃非 GKI 官方支持之前社区生态的忠实留档它以 website/docs/repos.json 为数据源用动态表格记录了 106 个由第三方维护的 KernelSU 内核覆盖小米/POCO、三星、一加、Pixel、索尼、华为、诺基亚、LG、摩托罗拉、Realme、OPPO、华硕等多个品牌与高通的骁龙、联发科、三星 Exynos 等平台。使用这份清单时请始终牢记三条警告——仅供存档、非官方维护、未经审查、风险自担在刷入任何社区内核前备份原厂 boot 映像并优先选择与自身 ROM 环境匹配、内核基线相近的版本。若清单中没有你的设备非 GKI 集成指南 中基于 kprobe 与手动补丁的两条路径可以让你亲手把 KernelSU 带进任何一款内核源码开放的设备。【免费下载链接】KernelSUA Kernel based root solution for Android项目地址: https://gitcode.com/GitHub_Trending/ke/KernelSU创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表