Apatch

  1. 为什么要进行内核root

    1
    2
    3
    4
    Magisk的修改集中在用户空间(boot.img里面加入magisk32/64、daemon、sepolicy补丁),/system/bin、/sbin、/proc/self/mounts会留下大量文件与挂载证据;App通过调用access()、stat()、fopen()等函数就可以检测到设备是否root。
    KernelSU/APatch/AKP在内核层面给用户授予root权限,用户空间几乎无感:没有su文件、没有额外挂载、不需要改动sepolicy,默认采用“白名单”机制——未被授权的普通App连su都调不到,所以传统“文件+挂载”几乎检测不到。
    常见的内核root工具有KernelSU、APatch、AKP等等,但是KSU适合GKI形式的安卓内核(内核>5.0),我这里测试机内核为4.4,所以采用APatch(APatch基于KSU魔改二开),https://apatch.dev/zh_CN/;
    但是app仍然可以调用内核一些接口,检测相关特征;想再深一点隐藏,就得继续在内核层把/proc/kallsyms、模块列表、syscall表、符号CRC等也一起去特征,于是就有了susfs4ksu-module、ReKernel之类的“二次补丁”。它们把暴露给用户的节点动态过滤掉,实现免杀的效果。
  2. 确保手机已经解开BL锁、电脑准备好adb和fastboot(fastboot devices检测不到设备是因为电脑没装驱动,最后面有WriteUp)

    1
    2
    3
    4
    5
    # 确保内核配置如下
    # CONFIG_KALLSYMS=y
    # CONFIG_KALLSYMS_ALL=y
    adb root
    adb shell "zcat /proc/config.gz | grep CONFIG_KALLSYMS"

    image-20251212210613758

  3. 提取当前的boot.img文件到电脑中

    1
    2
    1. 主要是为了后续操作不当,手机变砖时的急救措施。因为我无所谓,所以这里没有进行操作,工具自查
    2. 已经root过的手机,boot.img是被修改过的(magisk也改了内核),会导致后续的兼容问题,比如apatch的系统模块会提示不兼容magisk,所以准备官方干净的boot.img
  4. 从官网或者第三方刷机平台(如果我上传ROM包到第三方平台,我会在内核植入免杀马,所以谨慎下载!!!),下载当前系统的ROM包,建议手机型号和内核和原系统保持一致。Nexus和Pixel手机可参考:https://developers.google.cn/android/images?hl=zh-cn

  5. 得到的是一个压缩包,把它解开,里面还有一个image-xxxxx.zip的压缩包,继续解开,一会要对里面的boot.img进行魔改。通过adb将boot.img上传到手机(比如:adb push boot.img /sdcard/Download)

    image-20251212212342346

  6. 下载APatch.apk到手机:https://github.com/bmax121/APatch/releases

    1
    adb install APatch.apk
  7. 运行apatch,选择刚刚上传的boot.img,进行修改

    image-20251212212631164

    image-20251212212736471

    image-20251212212801162

  8. 将apatch打入内核,并设置密码

    image-20251212213100111

  9. 修改完成之后,屏幕中日志会告诉你修改之后的boot.img的位置,通过adb将它pull到电脑上

  10. 手机进fastboot模式(adb reboot bootloader),将修改之后的boot.img刷入boot分区

    image-20251212213751866

    1
    2
    fastboot flash boot boot.img
    fastboot reboot
  11. 重启之后,apatch正常运行,各个模块没有提示兼容性问题

    image-20251212214647435

  12. fastboot找不到设备

    • 电脑打开设备管理器,在其他设备或者便携设备中找到你的设备名称(如果没有,可以点击最右侧的“更多操作” ==> “查看” ==> “勾选显示隐藏的设备”)

    • 双击你的手机,点击更新驱动程序

      image-20251212222056267

      image-20251212222110864

      image-20251212222146996

      image-20251212222209433

    • 如果说fastboot仍然找不到设备,或者说根本没有Android Phone这个选项,手动下载驱动:https://gitcode.com/open-source-toolkit/1de04/blob/main/Fastboot%20%E9%A9%B1%E5%8A%A8.zip,然后解压

    • 如果你的系统存在Android Phone这个选项(右键 → 更新驱动 → 浏览我的计算机 → 让我从计算机的设备驱动列表选择) ==> 仍然双击进来 ==> 点击“从磁盘安装” ==> 选择刚刚解压得到的驱动文件(android_winusb.inf) ==> 选中后确定 ==> 下一步 ==> 弹出警告选「始终安装」

      image-20251212222956656

    • 如果系统中不存在Android Phone,那么选择移动设备(右键 → 更新驱动 → 浏览我的计算机 → 让我从计算机的设备驱动列表选择),然后重复上述步骤

    • 提示「第三方驱动无签名」导致装不上,先临时关掉驱动签名校验:Win10 设置 → 更新和安全 → 恢复 → 高级启动 → 立即重启 → 疑难解答 → 启动设置 → 重启 → 按7选「禁用驱动程序强制签名」

安装痕迹隐藏模块

  1. cherish_peekaboo.kpm

    • 在APatch内核里直接hook掉kallsyms、show_module、seq_puts等函数,屏蔽掉 apatch、supercall、ksu等关键字
    • 下载插件并上传到手机https://archive.org/download/cherish_peekaboo_kpm_apatch
    • APatch主界面 → 内核模块 → 右下角“+” → 选cherish_peekaboo_1.5.kpm → 开始修补 → 成功后重启
  2. ZygiskNext

    • 给后面所有Zygisk模块提供注入环境,本身也带一点隐藏Zygote痕迹的功能
    • 现在插件压缩包并上传到手机(不要解压)https://github.com/Dr-TSNG/ZygiskNext/releases
    • 打开APatch Manager → 底部栏点 “系统模块” → 右下角 “+” → 文件管理器里选中刚才的ZygiskNext-xxx.zip
    • 安装完成后界面会出现 “ZygiskNext” 卡片,右侧开关默认已打开 → 直接点右下角 “重启”。
    • 重启回来再进 APatch → 系统模块,能看到 ZygiskNext 卡片里出现 “已启用” 字样即表示运行成功
  3. TrickyStore

    • 伪造keystore和verifiedBootState,安全措施比较严格的软件(比如金融类的、交易类的)会检测这一块
    • 下载插件并上传到手机https://github.com/5ec1cff/TrickyStore/releases/,安装步骤同ZygiskNext
    • 重启之后,检查是否存在/data/adb/tricky_store/keybox.xml/data/adb/tricky_store/target.txt
    • 如果没有,准备1份未吊销的keybox.xml(可选,但想拿STRONG完整性必须放,注意不可以自动生成)。可以从海鲜市场购买或者从其他手机adb pull /data/misc/keystore,然后上传到手机
    • 编辑targets.txt,把要生效的App包名逐行写进去,若手机TEE已损坏,在包名后加英文感叹号!强制走软证书模式
    • 保存退出,TrickyStore 实时热加载,立刻生效,不需要重启
  4. Zygisk-Assistant

  5. 在apatch的设置里面,修改默认su提权指令,比如将su改为fuck

  6. 常见痕迹隐藏模块

    Tool Address
    Shamiko https://github.com/LSPosed/LSPosed.github.io/releases
    PlayIntegrityFix https://github.com/KOWX712/PlayIntegrityFix/releases/tag/v4.4-inject-s
    cherish_peekaboo_kpm https://archive.org/download/cherish_peekaboo_kpm_apatch
    ZygiskNext https://github.com/Dr-TSNG/ZygiskNext/releases
    TrickyStore https://github.com/5ec1cff/TrickyStore/releases/
    Zygisk-Assistant https://github.com/snake-4/Zygisk-Assistant/releases/
  7. 常见环境检测工具

    Tool Address
    Android-Native-Root-Detector https://github.com/reveny/Android-Native-Root-Detector/releases/
    NativeDetector https://github.com/Dr-TSNG/NativeDetector/releases
    Hunter /
    Momo /

Delta Magisk

安装

其实,无论哪种root方式,指纹对抗/环境隐藏,主要看插件的强大,能够抹除多少指纹。Apatch的插件确实要比原始人magisk好一些(其实没啥用,检测软件同样能检测),但目前来说Delta自身提供的隐藏功能就比较强大,再配合少部分第三方插件几乎很难检测,可过金融APP。

  1. 安装DeltaMagisk(KitsuneMagisk):非官方下载

    1
    adb install -r KitsuneMagisk.apk
  2. 将原始的boot.img上传到手机

    1
    adb push boot.img /sdcard
  3. 将Magisk安装进内核

    image-20260110134646246

  4. 选择原始的boot.img

    image-20260110134834569

    image-20260110134903151

    image-20260110134914590

    image-20260110134951720

  5. 将修补后的boot.img拖到电脑上(/storage/emulated/0就是/sdcard),准备刷入boot分区

    1
    adb pull /sdcard/Download/magisk_patched-27002_yaaFB.img ./magisk.img
  6. 进fastboot,刷入magisk.img就好了

    image-20260110135305164

  7. 继续重启

    image-20260110135426149

    image-20260110135548376

隐藏环境

  1. 开启隐藏功能(不要点配置MagiskHide),重启

    image-20260110135650068

  2. 隐藏Magisk本身

    image-20260110141033395

    image-20260110141159738

    image-20260110141321553

  3. 常见环境隐藏模块

    Name Purpose Address
    LSPosed 一个基于 Riru/Zygisk 的系统级框架,它本身不提供具体功能,而是作为一个“平台”,允许开发者创建各种“模块”来改变系统和应用的行为,从而实现高度定制化、增强功能或保护隐私(原版止步于Android14,社区大佬二开支持更高Android) Releases · JingMatrix/LSPosed
    Tricky Store 伪造设备的 Bootloader 状态和 Keybox 信息,让设备获得更高的完整性等级 https://github.com/5ec1cff/TrickyStore/releases/
    Zygisk Assistant 隐藏 Root 痕迹,让应用“看不见” Magisk、KernelSU、APatch 及 Zygisk 模块的存在,从而绕过检测 https://github.com/snake-4/Zygisk-Assistant/releases/
    Zygisk Next “增强版”的 Zygisk 加载器,主要解决两大问题:为 KernelSU 提供 Zygisk 支持,并增强 Root 隐藏能力 https://github.com/Dr-TSNG/ZygiskNext/releases
    隐藏应用列表 阻止/允许应用程序读取系统中的应用程序列表,方式第三方工具被检测 https://github.com/Dr-TSNG/Hide-My-Applist/releases
    PlayIntegrityFix PIF 通过修改系统属性(props)和构建信息(如指纹、型号等),让 Google Play 服务(DroidGuard)在验证设备时,误认为设备是官方、未修改的状态,从而通过检测 https://github.com/KOWX712/PlayIntegrityFix/releases/tag/v4.4-inject-s