Skip to content

输出布局 ​

全部构建输出位于 out/。驱动只在设备仓库写入 unixnu.lock。

目录 ​

out/
  state.json
  feeds/
  ipsw/<build>/
  <board>/
    .config
    tree/
    logs/
    kernel/
      kernel.macho
    package/
      Build/Out/
    payload/
      payload.img
      payload.json
    boot/
      boot.img
      boot.json
    userdata/
      userdata-root.img
      userdata-root.json

state.json ​

json
{
  "device": "/path/to/device/repository"
}

没有 -D 和 UNIXNU_DEVICE 时,驱动从这里读取设备仓库。

feeds ​

每个 git 仓库和 ref 一个克隆:

out/feeds/<repo>-<hash>/

哈希覆盖 URL 和 ref。源码声明 path 时使用浅克隆、blobless 和 sparse checkout。

ipsw ​

out/ipsw/<build>/
  <member file>
  <member file>.json

sidecar 记录组件、成员路径、大小、SHA-256 和来源。缓存成员的大小和哈希匹配固定值时复用。

tree ​

tree/
  drivers/
  kits/
  patches/
  refer/
  scripts/
  package/
  build/
  .cache/

模块目录是符号链接,scripts/ 是副本。设备 package 出现在 kits/<board.kit>。

logs ​

文件步骤
kernel.logXNU 构建
kernel-bootstrap.log关闭进度层的首轮构建
prelink.log预链接
package.logEDK II package 构建
firmware-preflight.log板级预检
firmware.logEDK II 固件构建
basetools.logEDK II BaseTools 构建
payload.log负载卷
payload-adt.logADT 生成
payload-patch.logpanic 屏幕补丁
payload-skip-setup.logSetup 跳过
userdata.loguserdata 镜像

boot.json ​

字段含义
kernel_sha256kernel 字段哈希
ramdisk_bytesramdisk 大小
header_versionAndroid 启动镜像 header 版本
kernel_address内核加载地址
tags_addresstags 加载地址
image_sha256启动镜像哈希
image_bytes启动镜像大小
fd_sha256固件卷哈希
dtb_sha256设备树哈希
shim_bytesBootShim 大小
hardware_tested验证状态

payload.json ​

字段含义
kernel_sha256输入内核
payload_kernel_sha256负载中的内核
adt_sha256ADT sidecar
kernel_args命令行
trust_cache_sha256trust cache 包
data_ramdisk_sha256Data 种子
skip_setup是否跳过 Setup
panic_screen是否打入 panic 屏幕
payload_sha256负载镜像哈希
payload_bytes负载镜像大小
hardware_tested验证状态

userdata-root.json ​

字段含义
image_bytes镜像大小
image_sha256镜像哈希
manifest_sha256manifest 哈希
windows每个窗口的名称、偏移、大小和哈希
userdata_bytes分区容量
flash_commandfastboot 命令
source本地或远程 IPSW
hardware_tested验证状态

清理 ​

unixnu clean 删除板级输出下的 tree、logs、kernel、package、boot 和 edk2-conf,保留已拉取源码和解压的 IPSW 成员。

下一步 ​

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