Skip to content

Requirements ​

Host ​

The build driver runs on macOS. The kernel step invokes xcodebuild with the iphoneos SDK, and the --skip-setup option invokes hdiutil.

ToolUsed byInstall
macOS with Xcodekernel, skip-setupApp Store or developer.apple.com
Python 3.11 or newerevery steppython.org or Homebrew
git, makefetch, firmwareXcode command line tools or Homebrew
cmake, ninjakernel referencesbrew install cmake ninja
unifdeflibdispatch headersbrew install unifdef
LLVM with lldkernel, firmware, boot imagebrew install llvm
mtoolspayload volumebrew install mtools
dtcdevice tree propertiesbrew install dtc
QEMU and AAVMFoptional smoke testsbrew install qemu

The driver finds the keg-only Homebrew LLVM at /opt/homebrew/opt/llvm/bin without PATH changes. Other tools must be on PATH.

Network access is required for unixnu fetch, which fetches Apple source references and a Mu_Basecore tree.

External inputs ​

These inputs live outside the UniXNU repositories.

InputUsed byOptionEnvironment
Mu-Silicium checkout for the devicefirmware, boot image--uefi DIRUNIXNU_UEFI
Target IPSW, local file or HTTPS URLkernel prelink, userdata--ipsw PATH_OR_URLUNIXNU_IPSW
Decompressed kernelcachekernel prelink--kernelcache FILEUNIXNU_KERNELCACHE
Compiled device treeboot image--dtb FILEUNIXNU_DTB
Trust cache bundlepayload--trust-cache FILE
Data ramdisk seedpayload--data-ramdisk FILE
Platform seedpayload--unique-chip-id HEXUNIXNU_UNIQUE_CHIP_ID
Prebuilt static archiveskernel--kernel FILE for the payload, archives in the build tree
edk2 or Mu_Basecore treepackage, firmware--edk2 DIRUNIXNU_EDK2

The device repository supplies the board description, the kernel defconfig and the scripts that produce device-specific archives.

Device ​

The device needs:

  • An unlockable bootloader that accepts fastboot boot.
  • A UEFI port that provides a framebuffer, input, block I/O and file system access.
  • A UART or USB transport for logs during bring-up.
  • Enough RAM for the kernel window, the payload and the userdata image.
  • The target OS restore image and a matching device identity.

Next steps ​

  • Build describes the commands that consume these inputs.
  • Device repository describes the board file.
  • Devices lists device repositories and their specific inputs.

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