架构技术评论

Pixel 6 上初试 KernelSU:从 App 隐藏开始

Image

一直玩耍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 机制

Image


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

Image

刷机完成后,设备处于一个完全干净的 Android 15 状态,仅解锁了 bootloader,用于后续实验。

https://flash.android.com/build/13277524?target=oriole-user&signed=true&wipe=true

Image
Image

五、KernelSU(LKM 模式)安装记录

KernelSU 的 LKM 模式安装流程与 Magisk 的思路相近,整体步骤如下:

首先从 Factory Image 中提取 boot.img,并推送到设备:

adb push boot.img /sdcard/Download/
Image

随后在设备上使用 KernelSU Manager 对 boot.img 打补丁,生成 patched boot 镜像。

将补丁后的镜像拉回本地并刷入:

adb pull /sdcard/Download/kernelsu_patched.img
adb reboot bootloader
fastboot flash boot kernelsu_patched.img
fastboot reboot
Image
Image

重启后,KernelSU Manager 能够正常识别 Root 状态,说明内核侧已生效。


六、基础工具准备

为了便于后续操作,安装了一些基础工具:

adb install MT_File_Manager.apk
adb install F-Droid.apk
adb install Termux.apk

这些工具仅用于辅助查看文件、安装应用和执行命令,不影响 KernelSU 本身的工作方式。

Image

七、Zygisk Next 与 LSPosed

KernelSU 本身并不实现 Zygisk,因此需要额外加载 Zygisk Next,再在其基础上使用 LSPosed(Zygisk 版本)。

Image

LSPosed 模块通过 zip 形式推送并加载:

https://github.com/JingMatrix/LSPosed/releases

adb push LSPosed-zygisk-release.zip /sdcard/Download/
Image

在 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 提供了一个简单、直接的验证入口

很开心,这些小功能可以增强学习的信心,新手很需要。