Pixel 6 上初试 KernelSU:从 App 隐藏开始
一直玩耍iOS越狱的我,这次感受下Android系统上的进程注入和app隐藏。这篇文章带领大家在 Pixel 6 + Android 15 上,从零搭建一条基于 KernelSU 的最小可用模块链路(app隐藏)。
当然这个app隐藏比较初级,单纯是hook java层面的app列表获取api。不管怎样,这个流程能直接感受下app隐藏能力。
一、什么是 KernelSU
KernelSU 是一套面向 Android GKI 设备的 Root 方案,官方主页在:
https://kernelsu.org/ 源码 https://github.com/tiann/KernelSU
与传统主要工作在用户空间的 Root 不同,KernelSU 的核心逻辑运行在 内核态,并在内核空间内直接向用户空间应用授予 Root 权限。
从实现层级上看,KernelSU 并不依赖修改 init、zygote 或 system 分区,而是通过内核本身提供能力。这使它能够接触到一些以往用户空间方案较难稳定利用的接口。
在能力层面,KernelSU 提供的是内核级接口,例如:
在内核态为任意进程设置硬件断点 以较低可见性的方式访问进程的物理内存 在内核空间拦截系统调用(syscall) 更早地介入进程执行过程
这些能力本身并不直接对应具体功能模块,但它们构成了 KernelSU 的技术基础。
二、Metamodule 机制
KernelSU 还引入了一种称为 Metamodule 的模块体系,相关说明在官方文档中:
https://kernelsu.org/guide/what-is-kernelsu.html
KernelSU 本体只负责提供底层能力和接口,而具体的挂载、systemless 修改逻辑,并不直接写死在核心中,而是交由 Metamodule 实现。
例如:
通过 meta-overlayfs提供对/system分区的 systemless 修改能力将不同类型的修改行为拆分为独立模块 避免核心功能随着模块需求不断膨胀
模块列表和可用 Metamodule 可以在官方站点查看:
https://modules.kernelsu.org/
三、实验环境
本次实验环境如下:
设备:Pixel 6(oriole) 系统:Android 15(BP1A.250505.005,2025 年 5 月) Root 方案:KernelSU(LKM 模式) 模块链路:KernelSU → Zygisk Next → LSPosed 验证目标:Hide My Applist
四、刷入官方 Android 15
系统部分没有做任何定制,直接使用 Google 官方 Factory Image,通过 Web Flash Tool 刷入。
选择最新Android15系统刷 https://developers.google.com/android/images#oriole
刷机完成后,设备处于一个完全干净的 Android 15 状态,仅解锁了 bootloader,用于后续实验。
https://flash.android.com/build/13277524?target=oriole-user&signed=true&wipe=true
五、KernelSU(LKM 模式)安装记录
KernelSU 的 LKM 模式安装流程与 Magisk 的思路相近,整体步骤如下:
首先从 Factory Image 中提取 boot.img,并推送到设备:
adb push boot.img /sdcard/Download/
随后在设备上使用 KernelSU Manager 对 boot.img 打补丁,生成 patched boot 镜像。
将补丁后的镜像拉回本地并刷入:
adb pull /sdcard/Download/kernelsu_patched.img
adb reboot bootloader
fastboot flash boot kernelsu_patched.img
fastboot reboot
重启后,KernelSU Manager 能够正常识别 Root 状态,说明内核侧已生效。
六、基础工具准备
为了便于后续操作,安装了一些基础工具:
adb install MT_File_Manager.apk
adb install F-Droid.apk
adb install Termux.apk
这些工具仅用于辅助查看文件、安装应用和执行命令,不影响 KernelSU 本身的工作方式。
七、Zygisk Next 与 LSPosed
KernelSU 本身并不实现 Zygisk,因此需要额外加载 Zygisk Next,再在其基础上使用 LSPosed(Zygisk 版本)。
LSPosed 模块通过 zip 形式推送并加载:
https://github.com/JingMatrix/LSPosed/releases
adb push LSPosed-zygisk-release.zip /sdcard/Download/
在 KernelSU Manager 中启用模块并重启后,LSPosed Manager 显示 Framework 为 Active,说明 hook 链路已经建立。
八、使用 Hide My Applist 验证 Hook 能力
作为第一个验证点,这里选择了 Hide My Applist:
项目地址:https://github.com/Dr-TSNG/Hide-My-Applist
该模块的行为比较直接: 控制目标应用是否能够获取完整的已安装应用列表。
安装 Hide My Applist 后,在 LSPosed 中为指定应用启用模块,并配置隐藏规则。重新启动目标应用后,应用列表行为发生变化,结果符合预期。
这一结果验证了如下链路在当前环境中是可用的:
KernelSU → Zygisk Next → LSPosed → 应用行为变化
九、小结
这次实践收敛在一个最小验证目标上。
一些比较直观的结论:
Pixel 6 在 Android 15 上使用 KernelSU 是可行的 LKM 模式的安装路径清晰,过程稳定 Zygisk Next + LSPosed 可以作为 KernelSU 下的基础 hook 组合 Hide My Applist 提供了一个简单、直接的验证入口
很开心,这些小功能可以增强学习的信心,新手很需要。