Skip to content

补丁参考 ​

补丁按名称顺序应用 patches/xnu/*.patch 和 kits/NativePrelink/patches/*.patch。后置补丁 zzy-* 和 zzz-* 最后应用。

构建与工具链 ​

补丁作用
apple-only-cpu-tunables仅在 APPLE_ARM64_ARCH_FAMILY 应用 Apple CPU tunables
cxx-flag-dependenciesMakefile 模板把 CFLAGS 传给 C++ 目标
external-archive-dependencies外部静态库变化时重新链接内核
kernel-sdk-root分离 KERNEL_SDKROOT 与 SDKROOT 并加入 include 路径
local-availability允许 XNU_AVAILABILITY_PL 指向本地 availability.pl
public-entitlements-header加入浏览器 entitlement 名称并使用 CoreEntitlements
source-machine-layer加入 CONFIG_APPLE_AMCC 并调整 BCM2837 配置和文件列表
disabled-deferred-reclaim去掉破坏构建的未使用参数
published-freezer-condition修正 freezer 默认值的预处理条件

平台与 CPU ​

补丁作用
architectural-timer-entry启用原生架构定时器时跳过 BCM2837 定时器路由
armvirt-platform-personality加入 ArmCpu、ArmVirtPlatform 和 ArmDTPlatform personality
native-smp-secondaryMAX_CPUS 提高到 8,BCM2837 secondary CPU 使用 MPIDR Affinity1
native-arm-pan设置 XNU_NATIVE_PAN 时启用 ARMv8.1 PAN
native-dt-panic-region从设备树读取并校验 panic 日志区域

4 KiB 页 ​

补丁作用
native-4k-bootstrap-capacity为 4 KiB 映射调整 bootstrap 页表池,并在溢出前停止
native-4k-user-abi为用户 map、commpage 和 shared region 设置 4 KiB shift
native-4k-signature-hash-cache从已验证 16 KiB 块派生 4 KiB 代码签名哈希
pgz-aligned-validation对齐检查前解码 PGZ 地址
zzx-pmap-sync-64bit-pa用 ptoa() 保留 4 GiB 以上物理地址
non-apple-pmap-field匹配非 PAC pmap 字段布局
non-apple-iommu-bootstrap保护 UAT 和 SART bootstrap 及 PPL 代码
non-apple-cache-monitor保护 monitor enable 并导出 cache clean 符号

安全与 owner root ​

补丁作用
native-trust-cache-runtime在 BCM2837 初始化 trust cache 运行时
source-corecrypto14-bootstrap早期启动时注册源码 corecrypto
source-pthread-bootstrap早期启动时注册源码 pthread
native-aes-personality加入 AES、VirtIO 块、VirtIO 控制台、RAM 块和 UFS personality
offline-owner-root-crypto-probe设置 offline-owner-root-check 时启动 verified root 探针
offline-owner-root-binding-audit比较挂载根设备和 verified root 设备
offline-owner-boot-manifest从根和 cache 设备发布 owner 启动 manifest 哈希
offline-owner-cache-carrier选择 owner dyld cache 载体并校验设备和路径
offline-owner-systemos-mount挂载 SystemOS cryptex 并用 owner cache 组合根
offline-owner-z-air-init初始化 owner root 的 Z air 路径
offline-legacy-start在 IOKitBSDInit 后启动 legacy display 探针
offline-component-load-probes加载 APFS、IOGPU 和 mobile graphics 组件并记录检查点
offline-native-gpu-brokerDTrace 初始化后发布离线 GPU broker
sheng-platform-power日历初始化前运行板级 PMGR 集成

图形与显示 ​

补丁作用
offline-native-gpu-broker启动离线 GPU broker
zzy-native-gpu-addon-mount为 GPU addon 内容和启动任务挂载只读 union 视图
native-aes-personality注册存储和控制台 personality

诊断 ​

补丁作用
offline-pgz-alignment-probe加入 PGZ 分配探针和检查点
native-work-interval-trace记录最近的 work interval 结果供启动进度页显示
zzz-boot-progress在内核启动路径加入启动进度检查点

行为修复 ​

补丁作用
native-priv-work-interval在策略评估前授予 PRIV_WORK_INTERVAL
native-work-interval-soft-fail被拒绝的 CA client work interval 软失败
native-union-getattrlistbulk批量目录读取继续到 union 下层目录
null-root-media处理 IOService::setRootMedia 的空 root
published-freezer-condition修正 freezer 默认条件

Mockfs ​

补丁作用
mockfs-intermediate-lookup允许非最后分量的查找
mockfs-memory-device-widthlegacy ioctl 无法表达 64 位地址时使用设备路径
mockfs-statfs实现 vfs_getattr
mockfs-typed-allocationkalloc_type 和 kfree_type 使用结构体类型
mockfs-test-file在测试文件系统中加入 launchd 和 probe.bin

预链接补丁 ​

kits/NativePrelink/patches/:

补丁作用
xnu-10063.141.1-security-init.patch加入早期安全初始化入口
xnu-10063.141.1-sparse-index.patch加入稀疏预链接索引 ABI

新增补丁 ​

  1. 编辑 .cache/xnu-work。
  2. 用 git diff 生成补丁。
  3. 以正确的顺序命名并放入 patches/xnu/。
  4. 重新构建内核。

依赖其他补丁的补丁排在其后。修改 zzy 或 zzz 区域的补丁排在其前。

下一步 ​

Released under the BSD-2-Clause-Patent License.