Skip to content
This repository was archived by the owner on Sep 22, 2025. It is now read-only.

MC-XiaoXiao/kernelcache_patcher

Repository files navigation

简介

该工具用于对自行编译的xnu内核进行一些修改,可以将iOS的内核缓存中的Kext或者自己编写的Kext添加进去,制作成一个自定义的内核缓存(针对iOS的格式)。

目前测试可以对iPad Mini 4,iPadOS 12.4(16G77)的内核(4903.270.47)以及iPadOS 16.3的内核(8792.82.2)正常解析,可能有BUG。

依赖

需要安装tinyxml2capstonekeystone

构建

mkdir build
cmake ..
make

使用方法

kernelcache_patcher <编译内核> <iOS内核> <符号列表文件> <Kext目录> <输出内核> [iOS内核补丁列表文件]

符号列表

该文件用于手动指定iOS内核中提取Kext的符号和地址。

新建一个空文本,写法比较简单,格式如下:

# 注释
地址,符号名

例子: 0xFFFFFFF006E11000,__ZTV10AppleARMIO

Kext目录

该参数用于指向一个存放了Kext的目录,结构如下:

  • *.kext
  • kexts.txt

*.kext为需要加入的kext

kexts.txt用于指定需要添加的kext名称(不带.kext后缀),或者是iOS内核缓存中Kext的包名,例如BCM2837com.apple.driver.AppleARMPlatformSystem.kext下的kext需要填写对应路径(不带.kext后缀)。

内核补丁

用于给iOS内核中Kext的指定部分进行补丁,补丁使用的是iOS内核缓存中的地址,格式如下:

# 注释
*地址
+补丁值

参考项目

About

将Kext添加到自编译的xnu内核中

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages