Changelog
What changed, newest first: the part of the system, then what is different for whoever runs it. The commits say how.
Sources
What a build is made of, and where each part is fetched from. Nothing of these is kept in the repositories but the changes to it; the scripts named fetch the release and put the changes on.
- the kernel: Apple's XNU, tag
xnu-8796.121.2(the release the Darwin 16.5 user space was built from) --xnu/apply.sh, the changes inxnu/hakios.patchandxnu/files/, the drivers indrivers/ - the data volume: Apple's HFS Plus, tag
hfs-627.100.6--xnu/hfs/hfs.sh, the changes inxnu/hfs/hfs.patch - the boot: U-Boot
v2026.07--hakios-uefi/u-boot/apply.sh, the changes inhakios-uefi/u-boot/hakios.patchandfiles/; the device's part inhakios-sm7325/u-boot/ - the UEFI (the other way to start): Project Silicium's Mu-Silicium at
e51cd877e31c--hakios-uefi/apply.sh - the GPU's OpenGL ES: Mesa 25.0.7, the freedreno driver for the Adreno --
tools/mk-mesa.sh, the changes intools/mesa/ - the build tools: Apple's libdispatch, libpthread and AvailabilityVersions, bootstrap_cmds, unifdef, the macOS 13.3 SDK and the iPhoneOS 16.5 SDK --
xnu-deps/setup.sh - not fetched by anything here: the Darwin 16.5 user space, which you lay out from your own IPSW (
sysimage/), and the phone's own firmware, pulled from its Android (fw-*)
- repositories:
mainis the branch ofhakios-xnu-kernel-- what washakiosand thenu-boot;hakiosis gone,git cloneneeds no-b - site: a Changelog page, this file
- site: the commands to start with clone the public repository (
hakios-xnu-kernel);oosexgang/hakiosis private and cloned for nobody - site: the documentation synced, with the guide to installing beside Android and the U-Boot page in the table of contents
- u-boot: HakiOS's own U-Boot, started by the phone's bootloader from RAM; it starts the loader and the kernel from memory, nothing of the vendor's firmware in between
- u-boot: the loader's fastboot works under U-Boot (USB 2.0 without the link power states that dropped the cable after 3 s, endpoints and packet sizes as the loader asks, DWC3 transfers started when queued)
- u-boot: every download and every step says what it does on the screen, tagged
[oosexgang] - u-boot:
hakios sumchecks a flashed partition from the phone itself;hakios reboot bootloadergets to fastboot - install: HakiOS beside Android: U-Boot in
boot_a, Android in slot b untouched, a menu at every start (Android after 10 s, HakiOS (Darwin), fastboot, U-Boot's shell) - install: choosing Android marks HakiOS's slot unbootable and lets the bootloader switch; U-Boot never changes which slot is active (changing it by hand once left every image refused with "Device Error")
- install:
tools/userdata-carve.py --wipemakesdarwinat the end of userdata;tools/sparse-split.pycuts an 8 GB image into pieces Windows fastboot can send - storage: the data volume is HFS Plus in
darwinafter the system, about 12 GB, journaled, kept between starts; before,/private/varwas a memory volume shown as 1 GB and empty at every start - storage: HFS Plus built into the kernel; Apple's sources are fetched at
xnu/apply.sh, only this port's changes are kept - storage: the data volume's writes go straight to the flash and the cache is flushed when the journal asks (a flush and a read back after every write made the system crawl)
- storage: the loader takes any phone's
darwin(name, type, unit, at least 20 GiB), not only the first phone's place and identifier - storage:
tools/mkdatavol.pymakes the empty volume as a 50 KB image that leaves the system volume alone - graphics: the installed image draws with the GPU (Mesa,
GL=1): smooth, and the wallpaper drawn - graphics: the system's other services and the processes that draw parts of the interface are in the image (
REST=1): the wallpaper and the applications that need them - graphics: frames at 120 a second (
fb_hz=120), andfb_measure=1writes to the log how often the panel itself refreshes - loader: nothing printed over the system's screen while it runs; the log still takes every line
- loader: its log written under U-Boot too; a download the computer gave up on no longer hangs it
- wifi: the Wi-Fi controller is found where the system looks for its address, so registering applications no longer waits 5 s for each (found by the ios-sapphire port)
- tree: Darwin, not iOS, in the sources, the scripts, the file names and the documentation; no file of Apple's in the repositories
- docs: installing beside Android, step by step (
docs/dual-boot.md, in Russian too), and the U-Boot page with everything as it was done and checked